Expand description
§faucet-cli
A config-driven runner for faucet-stream
pipelines. Define a source, optional transforms, a sink, and (optionally)
a state store in a YAML or JSON file, then run it with the faucet binary —
no Rust code required.
The library half of this crate exposes the same building blocks the binary uses (config parsing, env interpolation, the connector registry) so that integrations and tests can reuse them.
Re-exports§
Modules§
- auth_
catalog - The top-level
auth:provider catalog. - catalog
catalog - Data Movement Catalog (#279) — the CLI-side write path.
- cli
- Argument parser shared by
main.rsand the integration tests. - commands
- Subcommand implementations. Each module owns its
run(...)entry point and stays free of clap so the integration tests can drive it directly. - compose
- Config composition front pre-pass:
extends(base inheritance),profiles(named overlays selected via--profile/FAUCET_PROFILE), and!include(YAML fragment substitution). Runs BEFORE${...}interpolation and the secrets pass, reusingcrate::merge::merge_value. - config
- Parsed
pipeline.yaml/pipeline.jsonschema (matrix-aware). - dlq_
replay faucet dlq— inspect, replay, and discard dead-letter-queue envelopes.- env_
config - Build a
PipelineConfigfrom a snapshot ofFAUCET_*environment variables. - env_
loader - Resolve a
.envfile path and auto-discover a pipeline config file. - error
- CLI-level error type. Wraps every failure mode the binary surfaces so
main()can render a single, user-readable line per failure. - executor
- Run a list of
ExpandedNodes under a bounded-concurrency executor. - expand
- Expand a parsed
PipelineConfiginto a flat list ofExpandedNodes ready for the executor to run. - init_
template - Schema-driven YAML template emitter for
faucet init. - interpolate
- Two-stage interpolation for pipeline configs.
- lineage_
glue lineage - Glue between the CLI config and
faucet-lineage: builds the shared emitter and maps resolved transform specs onto column-lineage ops. - merge
- Deep-merge of
serde_json::Valuefor matrix-row overrides. - notify
notify - Notification / incident-routing layer (#280).
- obs
- Shared observability setup (Prometheus + tracing) used by
runandschedule.install_observabilityis idempotent, so calling this once per process is safe even thoughmain.rsalready installed a basic subscriber. - pipeline_
test faucet test— fixture-based, fully-offline pipeline testing (#210).- registry
- Feature-gated dispatch from a string
typeto a concrete connector. - replication
faucet replicate— consistent snapshot → CDC streaming handoff.- schedule
schedule faucet schedule— built-in cron scheduler.- secrets
- Secrets-manager interpolation for the config layer (#125).
- serve
serve faucet serve— HTTP control plane (#127). Runs pipeline configs submitted over HTTP, reusingexecutor::run_expanded. Feature-gated onserve; structured likecli/src/schedule/. Seedocs/superpowers/specs/2026-05-30-faucet-serve-design.md.- sla
- Data-freshness & volume SLA monitoring (#202).
- state
- Build a
StateStorefrom a(kind, config)pair, with feature-gated backends for Redis and PostgreSQL. - transforms
- Compile YAML/JSON transform declarations into
TransformStagevalues.
Functions§
- run_
from_ yaml_ str - Convenience entry point for integration tests and custom hosts: parse a YAML config string, expand the matrix, and run all rows.