Skip to content

feat(kms): Add resolving KMS client factory - #3251

Draft
zakariya-s wants to merge 10 commits into
apache:mainfrom
zakariya-s:zstasa/resolving-kms-factory
Draft

zakariya-s wants to merge 10 commits into
apache:mainfrom
zakariya-s:zstasa/resolving-kms-factory

Conversation

@zakariya-s

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

What changes are included in this PR?

Adds ResolvingKmsClientFactory to iceberg-kms.

The factory selects an enabled built-in KMS implementation using the encryption.kms-type catalog property. The fixed aws, azure, and gcp values follow Iceberg Java.

Provider-specific configuration remains typed through methods such as with_aws_factory. Custom KMS implementations ontinue to use CatalogBuilder::with_kms_client_factory, replacing Java’s reflection-based encryption.kms-impl mechanism.

Like Java, the resolver rejects configurations containing both encryption.kms-type and encryption.kms-impl. The documentation also describes the current REST configuration initialization limitation.

Are these changes tested?

Yes, unit tests.

AI Disclosure

LLMs were used for assistance.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant