Andrea Cosentino created CAMEL-25185:
----------------------------------------
Summary: camel-openfga-starter: add the Spring Boot starter for
the camel-openfga component
Key: CAMEL-25185
URL: https://issues.apache.org/jira/browse/CAMEL-25185
Project: Camel
Issue Type: New Feature
Components: camel-spring-boot-starters
Reporter: Andrea Cosentino
{{camel-openfga}} landed on {{main}} for 4.23.0 in CAMEL-25028, so it needs a
Spring Boot starter like its two
companions: {{camel-opa-starter}} (CAMEL-24641) and {{camel-spiffe-starter}}.
h2. What is needed
{{components-starter/camel-openfga-starter}}, following the shape of
{{camel-opa-starter}}:
* the starter {{pom.xml}}, depending on {{camel-openfga}} and
{{camel-core-starter}};
* registration in {{components-starter/pom.xml}},
{{tooling/camel-spring-boot-bom/pom.xml}} and
{{tooling/camel-spring-boot-dependencies/pom.xml}};
* the nav entry in {{docs/spring-boot/modules/ROOT/nav.adoc}};
* the {{META-INF}} {{LICENSE.txt}} and {{NOTICE.txt}} boilerplate.
Everything else is produced by {{camel-spring-boot-generator-maven-plugin}}
during the build: the component
auto-configuration, configuration and converter classes,
{{src/main/docs/openfga.json}}, the
{{AutoConfiguration.imports}} entry, the starter documentation page, and the
{{camel-catalog-provider-springboot}} catalog entries.
h2. Note on the component's options
{{camel-openfga}} carries a few options whose Spring Boot binding is worth a
glance once generated, because they are
not plain scalars:
* {{openFgaClient}} is an autowired
{{dev.openfga.sdk.api.client.OpenFgaClient}};
* {{sslContextParameters}} is an {{SSLContextParameters}};
* {{connectTimeout}} and {{readTimeout}} are declared with {{javaType =
"java.time.Duration"}} but are {{long}}
millisecond values on the configuration, so they should generate as {{Long}}
in the same way camel-opa's
{{connectionTimeout}} and {{requestTimeout}} do;
* {{failOpen}} is annotated {{security = "insecure:dev"}}, and {{apiToken}} and
{{clientSecret}} are secrets.
h2. Not in scope
{{OpenFgaSecurityPolicy}} is a plain bean rather than a component, so it needs
no auto-configuration of its own; a
Spring Boot application declares it as a {{@Bean}} exactly as it would in plain
Camel. Worth keeping in mind that
{{useGlobalSslContextParameters}} on the component does not reach that policy,
which the component documentation
already states.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)