AWS: Remove deprecated S3 signer classes and properties - #17627
AWS: Remove deprecated S3 signer classes and properties#17627dramaticlly wants to merge 1 commit into
Conversation
These five classes were deprecated for removal in 1.12.0 and are now orphaned: they reference only each other and have no remaining callers in main or test sources. S3V4RestSignerClient uses the RemoteSign* equivalents. - S3SignRequest, S3SignResponse - S3SignRequestParser, S3SignResponseParser - S3ObjectMapper
| properties().containsKey(RESTCatalogProperties.SIGNER_ENDPOINT), | ||
| "S3 signer endpoint (%s) is required", | ||
| RESTCatalogProperties.SIGNER_ENDPOINT); | ||
| } |
There was a problem hiding this comment.
The change in this file is stricter than a pure deprecation-alias removal. Beyond stripping the s3.signer.uri/s3.signer.endpoint aliases, it also removes the working "v1/aws/s3/sign" implicit default (S3_SIGNER_DEFAULT_ENDPOINT), meaning users who set s3.remote-signing-enabled=true without ever configuring an explicit endpoint now fail at construction with IllegalArgumentException. The 1.11.0 LOG.warn, the @deprecated "no replacement, remove in 1.12.0" on S3_SIGNER_DEFAULT_ENDPOINT, and the updated SIGNER_ENDPOINT Javadoc ("If remote signing has been requested, this must be set") all point toward requiring the endpoint in 1.12.0
There was a problem hiding this comment.
Just leaving a note here, although I see this has already been noted in the description - thank you!
|
Hi @dramaticlly thanks for tackling this! Unfortunately things have changed since #15451 : When I last modified However in #16822, things changed in the opposite direction. Following this feedback, we decided instead that the signer endpoint would be "just" a regular endpoint, and its URL could be deterministically inferred as follows: (The same PR decided that server-specific data would from now on be communicated separately to signer clients via the new As a consequence, That's why I think this PR should not require Would that work for you? Thanks! |
Per review feedback on apache#17627, restores S3_SIGNER_DEFAULT_ENDPOINT and the default it provides for RESTCatalogProperties.SIGNER_ENDPOINT, reverting the "TODO change to required in 1.12.0" half of the previous commit. Since apache#16822, the signer endpoint is a regular endpoint whose URL the client can infer from the catalog URI, prefix and table identifier, so requiring it to be configured is the wrong direction. Server-specific data is now carried by RemoteSigningConfig instead, and support for that in the Java client will handle the signer endpoint separately. The removal of the legacy s3.signer.uri and s3.signer.endpoint properties is unaffected. This drops signerEndpointIsRequired and restores the default-endpoint case in signerUriResolution, and reverts the SIGNER_ENDPOINT additions to the TestS3FileIOProperties tests, which no longer need it.
Thanks @adutra for your pointer and context. I updated this PR accordingly to remove deprecated class and switch S3_SIGNER_URI and S3_SIGNER_ENDPOINT to its counterpart in RESTCatalogProperties. Can you please take another look? |
adutra
left a comment
There was a problem hiding this comment.
Thanks for changing the PR scope @dramaticlly ! It looks good to me, let's see what @nastra or @danielcweeks think.
|
FYI my PR is here: #17709 |
35e9e02 to
31afe33
Compare
1. Remove five orphaned classes
S3SignRequest,S3SignResponse,S3SignRequestParser,S3SignResponseParser,S3ObjectMapper.AI Disclosure
Model: Claude Opus 5 (1M context)
Platform/Tool: Claude Code
Human Oversight: reviewed
Prompt Summary: split #16449 into smaller self-contained PRs; verify each group compiles and tests green standalone; revise per reviewer feedback to drop the required-endpoint change