refactor(rest): 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?
The REST catalog manually parses URI and warehouse properties at initial load and while merging server defaults and overrides, alongside OAuth, headers, storage, and injected runtime state.
## Describe the solution you would like
Use the `Properties` derive macro for the REST catalog property projection while preserving client and server precedence, injected clients, arbitrary REST and storage properties, and secret-redacting debug output.
Acceptance criteria:
- Public REST catalog builder APIs remain unchanged.
- Server defaults, client configuration, and server overrides retain their current precedence.
- OAuth, header, FileIO, and KMS properties remain available downstream.
- Injected clients and redacted `Debug` output remain unchanged.
- Focused unit tests cover parsing, merge precedence, retention, and redaction.
## Willingness to contribute
I can contribute to this feature independently.
Contributor guide
Research direction
Start by locating the REST catalog implementation and its current URI, warehouse, server-default, client, and override property handling. Compare that flow with the Properties derive macro, then use focused unit tests for parsing, merge precedence, property retention, injected clients, and redacted Debug output to verify that the public builder APIs and behavior remain unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100