sungwy commented on code in PR #15850:
URL: https://github.com/apache/iceberg/pull/15850#discussion_r3070635063


##########
open-api/rest-catalog-open-api.yaml:
##########
@@ -3522,6 +3522,11 @@ components:
         If remote signing for a specific storage provider is enabled, clients 
must respect the following configurations when creating a remote signer client:
          - `signer.endpoint`: the remote signer endpoint. Required. Can either 
be a relative path (to be resolved against `signer.uri`) or an absolute URI.
          - `signer.uri`: the base URI to resolve `signer.endpoint` against. 
Optional. Only meaningful if `signer.endpoint` is a relative path. Defaults to 
the catalog's base URI if not set.
+         - `signer.properties.*`: additional properties to be passed through 
to the signer endpoint in remote sign
+           requests. Optional. If such properties are present, signer clients 
MUST pass them through to the signer

Review Comment:
   I think @singhpk234 raises a valid concern around backward compatibility 
with older clients that dont recognize this property. That said, I agree with 
@adutra that it would be helpful to decouple that concern from the normative 
behavior expected of newer clients that do understand it.
   
   I think it would be helpful to base the decision between `MUST` and `SHOULD` 
purely on the semantic role these properties play in the signing protocol. If 
they are intended as opaque catalog provided signer context that clients are 
expected to forward to the signer endpoint, then I think `MUST` is appropriate. 
If they are only optional hints, then `SHOULD` may be more appropriate. I’d 
personally like to better understand how these properties are expected to be 
used in practice, as that would help me form an opinion here.
   
   Backward compatibility is still a very important concern, but I think it is 
best to think of it as a separate concern. Older clients may omit these 
properties entirely, and servers can choose how to handle that case. It could 
decide to recompute the required data, process the request without it, or 
reject the request according to server policy.
   
   And that decision may also depend on how a given deployment has rolled out 
support for this behavior across its REST clients and engines. Keeping the 
normative requirement separate from backward compatibility concerns gives 
implementers more flexibility in how they adopt this property within their own 
ecosystem, while allowing the spec to evolve cleanly.
   
   If it's helpful, we could also make that server's compatibility expectation 
explicit in the spec as well.



-- 
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