Skip to content

Configuration Reference

This page lists every supported configuration option, grouped by build-time and runtime usage.

Build-Time Configuration

These settings are read during build/compile and affect generated code or CLI wiring.

Pipeline YAML

The pipeline YAML controls global settings used by the annotation processor.

PropertyTypeDefaultDescription
transportenumGRPCGlobal transport for generated adapters (GRPC or REST).

If pipeline-config.yaml (the template configuration produced by Canvas or the template generator) is present, the build can also use it to generate protobuf definitions and orchestrator endpoints at compile time.

Orchestrator CLI (Annotation)

CLI metadata is configured on the orchestrator annotation.

Annotation AttributeTypeDefaultDescription
generateClibooleantrueEnables generation of the orchestrator CLI entrypoint.
namestring"orchestrator"CLI command name.
descriptionstring"Pipeline Orchestrator CLI"CLI command description.
versionstring"1.0.0"CLI command version.

Example:

java
@PipelineOrchestrator(
    generateCli = true,
    name = "payments-orchestrator",
    description = "CSV Payments Orchestrator CLI",
    version = "1.2.0"
)
public class OrchestratorMarker {
}

CLI input expectations:

  • --input / PIPELINE_INPUT must be a JSON object matching the input DTO.
  • --input-list / PIPELINE_INPUT_LIST must be a JSON array of input DTO objects.

Examples:

bash
./app -i '{"path":"/data/in"}'
bash
./app --input-list '[{"path":"/data/a"},{"path":"/data/b"}]'

Annotation Processor Options

Pass via maven-compiler-plugin with -A arguments.

OptionTypeDefaultDescription
-Apipeline.generatedSourcesDirpathnoneBase directory for role-specific generated sources.
-Apipeline.generatedSourcesRootpathnoneLegacy alias of pipeline.generatedSourcesDir.
-Apipeline.orchestrator.generatebooleanfalseGenerate orchestrator endpoint even without @PipelineOrchestrator. CLI generation still requires the annotation.

REST Path Overrides (Build-Time)

The annotation processor reads src/main/resources/application.properties during compilation to override REST paths:

PropertyTypeDefaultDescription
pipeline.rest.path.<ServiceName>stringnoneOverrides REST path by service name.
pipeline.rest.path.<fully.qualified.ServiceClass>stringnoneOverrides REST path by service class name.

Runtime Configuration

Prefix: pipeline

REST Client Endpoints

REST client steps use Quarkus REST client configuration:

PropertyTypeDefaultDescription
quarkus.rest-client.<client-name>.urlstringnoneBase URL for a REST client step.

client-name is derived from the service class name in kebab-case with a trailing Service removed (for example ProcessPaymentServiceprocess-payment).

Cache Configuration

Prefix: pipeline.cache

PropertyTypeDefaultDescription
pipeline.cache.providerstringnoneCache provider name (for example redis, caffeine, memory).
pipeline.cache.provider.classstringnoneFully-qualified cache provider class name to lock selection at runtime.
pipeline.cache.policystringcache-onlyDefault cache policy (prefer-cache/return-cached, cache-only, skip-if-present, require-cache, bypass-cache).
pipeline.cache.ttldurationnoneDefault cache TTL.
pipeline.cache.caffeine.namestringpipeline-cacheCache name for the Caffeine provider.
pipeline.cache.caffeine.maximum-sizelong10000Maximum cache size for the Caffeine provider.
pipeline.cache.caffeine.expire-after-writedurationnoneExpire entries after write for the Caffeine provider.
pipeline.cache.caffeine.expire-after-accessdurationnoneExpire entries after access for the Caffeine provider.
pipeline.cache.redis.prefixstringpipeline-cache:Key prefix for Redis cache entries.

Persistence Configuration

Prefix: pipeline.persistence

PropertyTypeDefaultDescription
pipeline.persistence.duplicate-keystringfailDuplicate key policy for persistence (fail, ignore, upsert).
pipeline.persistence.provider.classstringnoneFully-qualified persistence provider class name to lock selection at runtime.

Pipeline Execution

Prefix: pipeline

PropertyTypeDefaultDescription
pipeline.parallelismstringAUTOParallelism policy: SEQUENTIAL, AUTO, or PARALLEL.
pipeline.max-concurrencyinteger128Maximum in-flight items when parallel execution is enabled.

Global Defaults

Prefix: pipeline.defaults

PropertyTypeDefaultDescription
pipeline.defaults.retry-limitinteger3Max retry attempts for steps.
pipeline.defaults.retry-wait-mslong2000Base delay between retries (ms).
pipeline.defaults.recover-on-failurebooleanfalseEnables recovery behavior on failure.
pipeline.defaults.max-backofflong30000Maximum backoff delay (ms).
pipeline.defaults.jitterbooleanfalseAdds jitter to retry delays.
pipeline.defaults.backpressure-buffer-capacityinteger1024Backpressure buffer capacity.
pipeline.defaults.backpressure-strategystringBUFFERBackpressure strategy (BUFFER or DROP).

Build-Time Validation (Annotation Processor)

These are build-time options passed to the annotation processor (not runtime config).

OptionTypeDefaultDescription
pipeline.provider.class.<name>stringnoneProvider class name to validate ordering/thread-safety hints (e.g. pipeline.provider.class.cache=...).

Per-Step Overrides

Prefix: pipeline.step."fully.qualified.StepClass"

All properties listed under pipeline.defaults.* can be overridden per step:

properties
pipeline.step."com.example.MyStep".retry-limit=7
pipeline.step."com.example.MyStep".recover-on-failure=true

Startup Health Checks

PropertyTypeDefaultDescription
pipeline.health.startup-timeoutdurationPT5MMax time to wait for startup dependency health checks.