Implement basic support for rest.sigv4_enabled for the Iceberg REST catalog#917
Implement basic support for rest.sigv4_enabled for the Iceberg REST catalog#917phillipleblanc wants to merge 19 commits intoapache:mainfrom
rest.sigv4_enabled for the Iceberg REST catalog#917Conversation
|
I found this PR while digging into how to query AWS' REST catalog implementation for S3 Tables. |
I think we might need to rework this to not depend on the aws crates for the signing part - that seems to have some conflicts I wasn't able to resolve with the MSRV check. Looking at how the object_store crate does it would be a good start: https://github.com/apache/arrow-rs-object-store/blob/main/src/aws/credential.rs |
|
Closing because #1241 should be the preferred approach. |
Original change: #1 Upstream PR: apache#917
Original change: #1 Upstream PR: apache#917
Original change: #1 Upstream PR: apache#917
|
This pull request has been marked as stale due to 30 days of inactivity. It will be closed in 1 week if no further activity occurs. If you think that’s incorrect or this pull request requires a review, please simply write any comment. If closed, you can revive the PR at any time and @mention a reviewer or discuss it on the dev@iceberg.apache.org list. Thank you for your contributions. |
|
This pull request has been closed due to lack of activity. This is not a judgement on the merit of the PR in any way. It is just a way of keeping the PR queue manageable. If you think that is incorrect, or the pull request requires review, you can revive the PR at any time. |
Implements basic support for connecting to the AWS Glue Iceberg REST catalog by supporting the parameters
rest.sigv4-enabled,rest.signing-nameandrest.signing-region. See the corresponding parameters in the PyIceberg docs: https://py.iceberg.apache.org/configuration/#rest-catalogI've added a new feature to the
iceberg-catalog-restcalledsigv4which when enabled, will recognize the above configuration parameters. I've left this disabled by default.I added the crate
request_middlewareto allow running middleware on requests, and if therest.sigv4-enabledconfiguration is enabled, the middleware to sign the request and add the correctAuthorizationheader is enabled.I've tested this implementation in my project, and it works great for connecting to the AWS Glue REST catalog, i.e.
https://glue.<region>.amazonaws.com/icebergI based this logic on the equivalent logic in PyIceberg: https://github.com/apache/iceberg-python/blob/6fffb644518bb64e8f33883d850edbe18c12bd07/pyiceberg/catalog/rest.py#L475