Skip to main content

Module config

Module config 

Source
Expand description

Parsed pipeline.yaml / pipeline.json schema (matrix-aware).

Top-level shape:

version: 1
name: optional-human-name
pipeline:               # required — full base config
  source: { type, config }
  sink:   { type, config }
  transforms: [...]
  state:  { type, config }
matrix:                 # optional — omitted or empty == one anonymous row
  - id: <string>
    parent: <id>
    parent_key: <jsonpath>   # default "id"
    source: { ... }     # partial override, deep-merged into pipeline.source
    sink:   { ... }
    transforms: [...]   # row-level transforms, appended after pipeline + source layers
    state:  { ... }     # if Some, replaces pipeline.state wholesale
execution:              # optional
  max_concurrent: <usize>
  on_error: continue|stop

The wire format is intentionally loose: every connector keeps its own config schema, and the CLI threads a serde_json::Value through to the connector’s serde::Deserialize impl. That keeps this struct stable as new fields are added to individual connectors without needing CLI work.

Structs§

ConnectorSpec
A { type, config } block, the universal shape for both sources and sinks.
DlqSpec
DLQ configuration block under pipeline.dlq:.
ExecutionSpec
Execution-time controls.
MatrixRow
One row of the matrix: block.
ObservabilitySpec
Top-level observability block: Prometheus scrape endpoint and tracing level.
PartialConnector
A partial connector override carried by a matrix row. Both type and config are optional so rows can swap the kind, override only the inner config, or both. ref: (optional) picks which named template under pipeline.sources / pipeline.sinks this row instantiates; when absent, the row inherits the legacy singular pipeline.source / pipeline.sink (registered internally as a template named default).
PipelineConfig
Top-level pipeline definition.
PipelineSpec
The base pipeline definition. Each matrix row is resolved against the template catalogs below; the singular source / sink fields are the legacy way to declare a single template (internally named default).
PrometheusSpec
Configuration for the Prometheus metrics HTTP endpoint.
StateStoreSpec
State-store backend selector.
TracingSpec
Tracing / log-level configuration.
TransformSpec
A single transform declaration.

Enums§

OnBatchErrorSpec
Mirrors faucet_core::OnBatchError but with JsonSchema derived and Deserialize accepting the YAML/JSON shape. Converted to the core type during executor::build_dlq_config.
OnError
Failure-handling policy across the matrix.

Functions§

parse_with_extension
Convenience: parse a config from text using a synthetic path so the right parser is selected. Used by tests and the validate --stdin flow.