From d2e2c94a5cdcf3a98b2b475ba73301f04ecce6ed Mon Sep 17 00:00:00 2001 From: ajantha-bhat Date: Wed, 15 Apr 2026 19:58:16 +0530 Subject: [PATCH 1/3] feat(server): add Swagger UI for interactive API documentation Add the quarkus-smallrye-openapi extension to expose interactive Swagger UI at /q/swagger-ui and the OpenAPI spec at /q/openapi. Polaris already uses Swagger annotations throughout the codebase but does not serve API docs. This improves API discoverability for developers evaluating or integrating with Polaris. --- runtime/defaults/src/main/resources/application.properties | 2 ++ runtime/service/build.gradle.kts | 1 + 2 files changed, 3 insertions(+) diff --git a/runtime/defaults/src/main/resources/application.properties b/runtime/defaults/src/main/resources/application.properties index d0d4cc3916..e648477d5a 100644 --- a/runtime/defaults/src/main/resources/application.properties +++ b/runtime/defaults/src/main/resources/application.properties @@ -44,6 +44,8 @@ quarkus.otel.enabled=true #quarkus.mongodb.metrics.enabled=true #quarkus.mongodb.connection-string=mongodb://localhost:27017 quarkus.datasource.db-kind=postgresql +quarkus.smallrye-openapi.store-schema-directory=build/openapi +quarkus.swagger-ui.always-include=true # ---- Runtime Configuration ---- # Below are default values for properties that can be changed in runtime. diff --git a/runtime/service/build.gradle.kts b/runtime/service/build.gradle.kts index 630b5cbe35..7765a3ce11 100644 --- a/runtime/service/build.gradle.kts +++ b/runtime/service/build.gradle.kts @@ -58,6 +58,7 @@ dependencies { implementation("io.quarkus:quarkus-reactive-routes") implementation("io.quarkus:quarkus-hibernate-validator") implementation("io.quarkus:quarkus-smallrye-health") + implementation("io.quarkus:quarkus-smallrye-openapi") implementation("io.quarkus:quarkus-micrometer") implementation("io.quarkus:quarkus-micrometer-registry-prometheus") implementation("io.quarkus:quarkus-oidc") From 10210d9341abac715a63e36a6bb603765bb1b3e9 Mon Sep 17 00:00:00 2001 From: ajantha-bhat Date: Wed, 15 Apr 2026 21:03:00 +0530 Subject: [PATCH 2/3] fix(license): add license entries for smallrye-openapi transitive dependencies Add missing Apache License mentions for the transitive dependencies introduced by quarkus-smallrye-openapi: quarkus-swagger-ui, jandex, smallrye-open-api-core, smallrye-open-api-model, and microprofile-openapi-api. --- runtime/server/distribution/LICENSE | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/runtime/server/distribution/LICENSE b/runtime/server/distribution/LICENSE index 01e7d15fd0..46a997428c 100644 --- a/runtime/server/distribution/LICENSE +++ b/runtime/server/distribution/LICENSE @@ -335,6 +335,8 @@ This product bundles Quarkus. * Maven group:artifact IDs: io.quarkus:quarkus-smallrye-fault-tolerance * Maven group:artifact IDs: io.quarkus:quarkus-smallrye-health * Maven group:artifact IDs: io.quarkus:quarkus-smallrye-jwt-build +* Maven group:artifact IDs: io.quarkus:quarkus-smallrye-openapi +* Maven group:artifact IDs: io.quarkus:quarkus-swagger-ui * Maven group:artifact IDs: io.quarkus:quarkus-tls-registry * Maven group:artifact IDs: io.quarkus:quarkus-tls-registry-spi * Maven group:artifact IDs: io.quarkus:quarkus-transaction-annotations @@ -383,6 +385,7 @@ This product bundles several SmallRye project artifacts. * Maven group:artifact IDs: io.smallrye.reactive:smallrye-reactive-converter-api * Maven group:artifact IDs: io.smallrye.reactive:smallrye-reactive-converter-mutiny * Maven group:artifact IDs: io.smallrye.reactive:vertx-mutiny-generator +* Maven group:artifact IDs: io.smallrye:jandex * Maven group:artifact IDs: io.smallrye:smallrye-context-propagation * Maven group:artifact IDs: io.smallrye:smallrye-context-propagation-api * Maven group:artifact IDs: io.smallrye:smallrye-context-propagation-jta @@ -399,6 +402,8 @@ This product bundles several SmallRye project artifacts. * Maven group:artifact IDs: io.smallrye:smallrye-health-api * Maven group:artifact IDs: io.smallrye:smallrye-health-provided-checks * Maven group:artifact IDs: io.smallrye:smallrye-jwt +* Maven group:artifact IDs: io.smallrye:smallrye-open-api-core +* Maven group:artifact IDs: io.smallrye:smallrye-open-api-model * Maven group:artifact IDs: io.smallrye:smallrye-jwt-build * Maven group:artifact IDs: io.smallrye:smallrye-jwt-common @@ -1618,6 +1623,7 @@ This product bundles Microprofile. * Maven group:artifact IDs: org.eclipse.microprofile.fault-tolerance:microprofile-fault-tolerance-api * Maven group:artifact IDs: org.eclipse.microprofile.health:microprofile-health-api * Maven group:artifact IDs: org.eclipse.microprofile.jwt:microprofile-jwt-auth-api +* Maven group:artifact IDs: org.eclipse.microprofile.openapi:microprofile-openapi-api * Maven group:artifact IDs: org.eclipse.microprofile.reactive-streams-operators:microprofile-reactive-streams-operators-api * Maven group:artifact IDs: org.eclipse.microprofile.reactive-streams-operators:microprofile-reactive-streams-operators-core From d5a22c1ef9b7083f5b70ffd89b07f0b730e50b8f Mon Sep 17 00:00:00 2001 From: ajantha-bhat Date: Wed, 15 Apr 2026 21:47:22 +0530 Subject: [PATCH 3/3] fix: remove always-include to avoid exposing Swagger UI in production Remove quarkus.swagger-ui.always-include=true since it is a build-time property that would expose Swagger UI in all deployments. Quarkus auto-enables Swagger UI in dev mode, so developers get it via ./gradlew quarkusDev without any config. Production builds remain unaffected. --- runtime/defaults/src/main/resources/application.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/runtime/defaults/src/main/resources/application.properties b/runtime/defaults/src/main/resources/application.properties index e648477d5a..54c519643e 100644 --- a/runtime/defaults/src/main/resources/application.properties +++ b/runtime/defaults/src/main/resources/application.properties @@ -45,7 +45,6 @@ quarkus.otel.enabled=true #quarkus.mongodb.connection-string=mongodb://localhost:27017 quarkus.datasource.db-kind=postgresql quarkus.smallrye-openapi.store-schema-directory=build/openapi -quarkus.swagger-ui.always-include=true # ---- Runtime Configuration ---- # Below are default values for properties that can be changed in runtime.