Skip to content

Commit

Permalink
OpenAPI bug fixes, remove unused properties, ignore split packages
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Edgar <[email protected]>
  • Loading branch information
MikeEdgar committed Feb 10, 2025
1 parent 2f41210 commit c235117
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,7 @@ public CompletionStage<Response> describeConsumerGroup(
description = "Consumer group patch dry run successful, nothing was applied",
content = @Content(schema = @Schema(implementation = ConsumerGroup.ConsumerGroupDocument.class)))
@APIResponse(responseCode = "204",
description = "Consumer group patch successful, changes applied",
content = @Content(schema = @Schema(implementation = Void.class)))
description = "Consumer group patch successful, changes applied")
@Expression(
targetName = "args",
// Only check when the request body Id is present (separately checked for @NotNull)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@

import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.streamshub.console.api.support.StringListParamConverterProvider.StringListParamConverter;
import com.github.streamshub.console.config.ConsoleConfig;
import com.github.streamshub.console.config.security.GlobalSecurityConfig;

import io.smallrye.openapi.api.util.FilterUtil;
import io.smallrye.openapi.api.util.UnusedSchemaFilter;
Expand Down Expand Up @@ -117,12 +119,31 @@ public void filterOpenAPI(OpenAPI openAPI) {
openAPI.getComponents().setSchemas(new TreeMap<>(openAPI.getComponents().getSchemas()));
// Prune any schemas no longer referenced
FilterUtil.applyFilter(new UnusedSchemaFilter(), openAPI);
Optional<ConsoleConfig> consoleConfig = Optional.empty();

config.getOptionalValue("quarkus.oidc.auth-server-url", String.class)
.ifPresent(url -> Optional.of(openAPI.getComponents())
.map(Components::getSecuritySchemes)
.map(schemes -> schemes.get("ConsoleSecurity"))
.ifPresent(scheme -> scheme.setOpenIdConnectUrl(url)));
try {
Instance<ConsoleConfig> configInstance = CDI.current().select(ConsoleConfig.class);

if (configInstance.isResolvable()) {
consoleConfig = Optional.of(configInstance.get());
}
} catch (Exception e) {
// Ignore, expected at build time where CDI may not be available
}

try {
consoleConfig.map(ConsoleConfig::getSecurity)
.map(GlobalSecurityConfig::getOidc)
.filter(oidc -> Objects.nonNull(oidc.getAuthServerUrl()))
.ifPresent(oidc -> Optional.of(openAPI.getComponents())
.map(Components::getSecuritySchemes)
.map(schemes -> schemes.get("ConsoleSecurity"))
.ifPresent(scheme -> {
scheme.setOpenIdConnectUrl(oidc.getAuthServerUrl() + "/.well-known/openid-configuration");
}));
} catch (Exception e) {
LOGGER.warnf("Error retrieving OIDC URL", e.getMessage());
}
}

void maybeSaveReference(Schema schema, String propertyName) {
Expand Down
13 changes: 5 additions & 8 deletions api/src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ quarkus.http.auth.basic=false
quarkus.http.auth.permission."oidc".policy=permit
quarkus.http.auth.permission."oidc".paths=/api/*

# See https://quarkus.io/guides/kafka-dev-services
# Enable when using quarkus-kafka-client
quarkus.kafka.devservices.enabled=false
quarkus.kubernetes-client.devservices.enabled=false
quarkus.devservices.enabled=false

Expand All @@ -35,6 +32,7 @@ quarkus.vertx.classpath-resolving=false

mp.openapi.scan.disable=false
mp.openapi.filter=com.github.streamshub.console.api.support.OASModelFilter
quarkus.smallrye-openapi.ignore-static-document=true
quarkus.smallrye-openapi.info-version=${quarkus.application.version:0.0.1-SNAPSHOT}
quarkus.smallrye-openapi.info-title=Streaming Platform Console API
quarkus.smallrye-openapi.info-description=API for interacting with Strimzi Kafka instances
Expand All @@ -44,6 +42,7 @@ quarkus.smallrye-openapi.security-scheme-name=ConsoleSecurity
quarkus.swagger-ui.enable=true
quarkus.swagger-ui.always-include=true
quarkus.swagger-ui.title=Console API
quarkus.swagger-ui.with-credentials=true

quarkus.log.category."org.apache.kafka".level=ERROR
# Apicurio cache logger is noisy for "not found" scenarios. We log the error
Expand All @@ -64,7 +63,10 @@ quarkus.log.category."io.apicurio.registry.resolver.ERCache".level=OFF
quarkus.arc.unremovable-types=com.github.streamshub.console.api.**
# Apicurio's Jackson customizer is distributed in a common jar by mistake
quarkus.arc.exclude-types=io.apicurio.registry.rest.JacksonDateTimeCustomizer
quarkus.arc.ignored-split-packages=io.apicurio.registry.content.*,io.apicurio.registry.rules.*,

quarkus.index-dependency.kafka-clients.group-id=org.apache.kafka
quarkus.index-dependency.kafka-clients.artifact-id=kafka-clients
quarkus.index-dependency.strimzi-api.group-id=io.strimzi
quarkus.index-dependency.strimzi-api.artifact-id=api

Expand All @@ -80,17 +82,12 @@ console.kafka.admin.default.api.timeout.ms=10000
%dev.quarkus.log.category."com.github.streamshub.console".level=DEBUG
%dev.quarkus.log.category."io.quarkus.oidc.runtime".level=INFO

# %dev.quarkus.apicurio-registry.devservices.enabled=true
# %dev.apicurio.rest.client.disable-auto-basepath-append=true
# %dev.quarkus.apicurio-registry.devservices.image-name=quay.io/apicurio/apicurio-registry-mem:2.6.x-release

########
#%testplain.quarkus.http.test-timeout=600s
%testplain.quarkus.devservices.enabled=true
%testplain.quarkus.keycloak.devservices.enabled=false
%testplain.quarkus.kubernetes-client.devservices.enabled=true
%testplain.quarkus.kubernetes-client.devservices.override-kubeconfig=true
%testplain.quarkus.apicurio-registry.devservices.image-name=quay.io/apicurio/apicurio-registry-mem:2.6.x-release
%testplain.apicurio.rest.client.disable-auto-basepath-append=true

#%testplain.quarkus.http.auth.proactive=false
Expand Down

0 comments on commit c235117

Please sign in to comment.