refactor(s3tables): derive catalog configuration from properties
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 567
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 93
Description
Part of [apache/iceberg-rust#3094](https://github.com/apache/iceberg-rust/issues/3094).
## Is your feature request related to a problem or challenge?
`S3TablesCatalogBuilder::load` manually parses the table bucket ARN and endpoint URL and filters the remaining AWS and storage properties.
## Describe the solution you would like
Use the `Properties` derive macro for the S3 Tables catalog property projection while preserving builder configuration and the rule that `load` properties override builder values.
Acceptance criteria:
- Public builder APIs remain unchanged.
- Table bucket ARN validation remains compatible.
- Load-time bucket ARN and endpoint properties override builder values.
- Unknown AWS, FileIO, and KMS properties remain available downstream.
- Focused unit tests cover defaults, precedence, validation, and property retention.
## Willingness to contribute
I can contribute to this feature independently.
Contributor guide
Research direction
Start at S3TablesCatalogBuilder::load and inspect the existing builder configuration, Properties derive macro, and property projection behavior. Add focused unit tests for defaults, builder-versus-load precedence, table bucket ARN validation, and retention of unknown AWS, FileIO, and KMS properties; done means public builder APIs and compatible validation remain unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, rust
- Domain
- backend, cloud, databases
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100