smaheshwar-pltr commented on code in PR #17155:
URL: https://github.com/apache/iceberg/pull/17155#discussion_r4287553361


##########
open-api/rest-catalog-open-api.py:
##########
@@ -791,10 +791,44 @@ class Sha256QueryLocal(Action):
     action: Literal['sha-256-query-local']
 
 
+class KeyManagementCredential(BaseModel):
+    """
+    Provider-specific credential config for accessing one or more KMS keys 
required by an encrypted
+    table operation.
+
+    The key-management provider is advertised in catalog configuration, such 
as `encryption.kms-type`
+    returned from `/v1/config`. The `config` map contains provider-specific 
properties for the
+    selected key-management provider.

Review Comment:
   I think it's valuable to support per-table too, cc @singhpk234 for thoughts 
too.
   
   I noted the design doc's argument for keeping it catalog-level because 
that's how it works today. But then I'd say: sure, one KMS per catalog is what 
we have with e.g. Hive, but there *storage access* is also configured per 
(client-side) catalog. REST permits storage access to per-table, and I think 
same applies to KMS, so the argument isn't that strong IMO.
   
   I wonder if the catalog-wide default you mention is then just a regular 
catalog property. Like, IIRC (could be wrong) `/config` can already return 
something like `io-impl` as a default and that works so wonder if we don't need 
anything special there.



##########
open-api/rest-catalog-open-api.py:
##########
@@ -791,10 +791,44 @@ class Sha256QueryLocal(Action):
     action: Literal['sha-256-query-local']
 
 
+class KeyManagementCredential(BaseModel):
+    """
+    Provider-specific credential config for accessing one or more KMS keys 
required by an encrypted
+    table operation.
+
+    The key-management provider is advertised in catalog configuration, such 
as `encryption.kms-type`
+    returned from `/v1/config`. The `config` map contains provider-specific 
properties for the
+    selected key-management provider.

Review Comment:
   I think it's valuable to support per-table too, cc @singhpk234 for thoughts 
also.
   
   I noted the design doc's argument for keeping it catalog-level because 
that's how it works today. But then I'd say: sure, one KMS per catalog is what 
we have with e.g. Hive, but there *storage access* is also configured per 
(client-side) catalog. REST permits storage access to per-table, and I think 
same applies to KMS, so the argument isn't that strong IMO.
   
   I wonder if the catalog-wide default you mention is then just a regular 
catalog property. Like, IIRC (could be wrong) `/config` can already return 
something like `io-impl` as a default and that works so wonder if we don't need 
anything special there.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to