adam-christian-software opened a new pull request, #4926: URL: https://github.com/apache/polaris/pull/4926
<!-- ๐ Describe what changes you're proposing, especially breaking or user-facing changes. ๐ See https://github.com/apache/polaris/blob/main/CONTRIBUTING.md for more. --> ## Summary This adds a Polaris-specific catalog configuration endpoint at `/api/catalog/polaris/v1/config` that returns the same Iceberg `ConfigResponse` shape as the existing `/api/catalog/v1/config` route. The implementation follows the approach discussed on the dev list: https://lists.apache.org/thread/bov6nhryqjmtrxw5nxhss0o0c4ntn6o0 - Extracts catalog config response construction out of `IcebergCatalogHandler` into `CatalogConfigHandler`. - Keeps the existing Iceberg config route working by delegating it to the shared handler. - Adds a generated Polaris config API route from the Polaris catalog OpenAPI spec. - Adds CDI endpoint contributors so feature modules can advertise supported config endpoints directly; generic table and policy endpoints now contribute through that mechanism. - Updates `CHANGELOG.md` for the new user-facing endpoint. ## Behavior Existing Iceberg REST clients can continue calling `/api/catalog/v1/config`. Polaris-aware clients can migrate to `/api/catalog/polaris/v1/config` to discover Polaris-specific capabilities without depending on the Iceberg configuration route long term. The new route still requires the `warehouse` query parameter at runtime, matching the existing adapter behavior. ## Verification - [x] `./gradlew format compileAll` - [x] `./gradlew :polaris-api-catalog-service:compileJava` - [x] `./gradlew :polaris-runtime-service:compileJava :polaris-runtime-service:compileTestJava :polaris-runtime-service:test --tests "org.apache.polaris.service.catalog.iceberg.GetConfigTest"` - [x] `./gradlew :polaris-api-catalog-service:check` completed during the combined module check - [ ] `./gradlew :polaris-api-catalog-service:check :polaris-runtime-service:check` failed in `:polaris-runtime-service:intTest` with `RestCatalogKeycloakFileIT.initializationError`: Quarkus failed to resolve `PolarisApiEndpoints` because `ValueRegistry` was null; cleanup also suppressed a null `PolarisClient` close. The failure is in the Keycloak-backed integration-test setup and not in the changed config endpoint test coverage. ## Checklist - [x] ๐ก๏ธ Don't disclose security issues! (contact [email protected]) - [x] ๐ Clearly explained why the changes are needed, or linked related issues: Related to https://lists.apache.org/thread/bov6nhryqjmtrxw5nxhss0o0c4ntn6o0 - [x] ๐งช Added/updated tests with good coverage, or manually tested (and explained how) - [x] ๐ก Added comments for complex logic - [x] ๐งพ Updated `CHANGELOG.md` (if needed) - [x] ๐ Updated documentation in `site/content/in-dev/unreleased` (if needed; OpenAPI spec and generated bundle were updated for this API addition) -- 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]
