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)

Reply via email to