diff --git a/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/CorsConfig.kt b/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/CorsConfig.kt index 3d62d55ae..46abeeb1e 100644 --- a/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/CorsConfig.kt +++ b/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/CorsConfig.kt @@ -20,6 +20,7 @@ class CorsConfig( ) { private val logger = LoggerFactory.getLogger(CorsConfig::class.java) + @Bean @Order(Ordered.HIGHEST_PRECEDENCE) fun corsWebFilter(): CorsWebFilter { diff --git a/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/OpenApiConfig.kt b/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/OpenApiConfig.kt index ac4597ed7..26d82ad6d 100644 --- a/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/OpenApiConfig.kt +++ b/api/api-app/src/main/kotlin/co/nilin/opex/api/app/config/OpenApiConfig.kt @@ -10,11 +10,14 @@ import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration @Configuration -class OpenApiConfig() { +class OpenApiConfig( + @Value("\${app.openapi.server-url:}") + private val serverUrl: String +) { @Bean fun opexOpenApi(): OpenAPI { - return OpenAPI() + val openApi= OpenAPI() .info( Info() .title("Opex API") @@ -33,6 +36,16 @@ class OpenApiConfig() { .description("JWT Bearer token") ) ) + if (serverUrl.isNotBlank()) { + openApi.servers( + listOf( + Server() + .url(serverUrl) + .description("Public API server") + ) + ) + } + return openApi } } diff --git a/api/api-app/src/main/resources/application.yml b/api/api-app/src/main/resources/application.yml index 29bd59f40..61f39109e 100644 --- a/api/api-app/src/main/resources/application.yml +++ b/api/api-app/src/main/resources/application.yml @@ -152,7 +152,8 @@ app: cors: enabled: true allowed-origins: ${ALLOWED_ORIGINS:"http://localhost:8110"} - + openapi: + server-url: ${OPEN_API_SERVER_URL} # --- Swagger / SpringDoc (env-driven) --- springdoc: api-docs: diff --git a/auth-gateway/auth-gateway-app/src/main/kotlin/co/nilin/opex/auth/config/OpenApiConfig.kt b/auth-gateway/auth-gateway-app/src/main/kotlin/co/nilin/opex/auth/config/OpenApiConfig.kt index f736645e7..6955a8c89 100644 --- a/auth-gateway/auth-gateway-app/src/main/kotlin/co/nilin/opex/auth/config/OpenApiConfig.kt +++ b/auth-gateway/auth-gateway-app/src/main/kotlin/co/nilin/opex/auth/config/OpenApiConfig.kt @@ -10,11 +10,14 @@ import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration @Configuration(proxyBeanMethods = false) -class AuthGatewayOpenApiConfig() { +class AuthGatewayOpenApiConfig( + @Value("\${app.openapi.server-url:}") + private val serverUrl: String +) { @Bean fun authGatewayOpenApi(): OpenAPI { - return OpenAPI() + val openApi = OpenAPI() .info( Info() .title("Opex Auth Gateway API") @@ -32,5 +35,15 @@ class AuthGatewayOpenApiConfig() { .description("JWT Bearer token") ) ) + if (serverUrl.isNotBlank()) { + openApi.servers( + listOf( + Server() + .url(serverUrl) + .description("Public API server") + ) + ) + } + return openApi } } diff --git a/auth-gateway/auth-gateway-app/src/main/resources/application.yml b/auth-gateway/auth-gateway-app/src/main/resources/application.yml index 647bc0bda..04ceb4f9e 100644 --- a/auth-gateway/auth-gateway-app/src/main/resources/application.yml +++ b/auth-gateway/auth-gateway-app/src/main/resources/application.yml @@ -83,6 +83,8 @@ app: cors: enabled: true allowed-origins: ${ALLOWED_ORIGINS:"http://localhost:8110"} + openapi: + server-url: ${OPEN_API_SERVER_URL} # --- Swagger / SpringDoc (env-driven) --- springdoc: api-docs: diff --git a/docker-compose.yml b/docker-compose.yml index c8b020b6c..1874f04f3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -426,7 +426,8 @@ services: - SWAGGER_UI_ENABLED=${SWAGGER_UI_ENABLED} - SWAGGER_AUTH_ENABLED=${SWAGGER_AUTH_ENABLED} - SWAGGER_AUTH_AUTHORITY=${SWAGGER_AUTH_AUTHORITY} - - ALLOWED_ORIGINS:${ALLOWED_ORIGINS} + - ALLOWED_ORIGINS=${ALLOWED_ORIGINS} + - OPEN_API_SERVER_URL=${OPEN_API_SERVER_URL_AUTH} volumes: - auth-gateway-keys:/app/keys depends_on: @@ -526,7 +527,8 @@ services: - SWAGGER_UI_ENABLED=${SWAGGER_UI_ENABLED} - SWAGGER_AUTH_ENABLED=${SWAGGER_AUTH_ENABLED} - SWAGGER_AUTH_AUTHORITY=${SWAGGER_AUTH_AUTHORITY} - - ALLOWED_ORIGINS:${ALLOWED_ORIGINS} + - ALLOWED_ORIGINS=${ALLOWED_ORIGINS} + - OPEN_API_SERVER_URL=${OPEN_API_SERVER_URL_API} depends_on: - consul - vault