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. - backfill
faucet backfill— replay a bounded historical window of a pipeline (#282).- catalog
catalog - Data Movement Catalog (#279) — the CLI-side write path.
- chunking
- Pure range chunking shared by
faucet backfilland thepartition:block (#479). Boundary parsing, timezone/DST-correct time windows, integer-range splitting, and offset/limit splitting. No I/O. - 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). - conformance
- Connector conformance scoring (#330).
- discovery_
matrix - Pure planning logic for the discovery-driven request matrix (#501).
- 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. - livemetrics
cli-progressorcli-tui - Shared live-view metrics plumbing (recorder install + Prometheus-text
sampler), compiled when either live-view feature is on.
Shared live-metrics plumbing for
faucet run— the in-process Prometheus recorder installer plus a pure Prometheus-text parser/aggregator. - mcp
mcp - MCP (Model Context Protocol) server surface for faucet (issue #420).
- 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. - params
- Typed pipeline parameters — the
params:block and the${param.NAME}interpolation namespace (#444). - partition
- Generic range partitioning (#479) — split one matrix row into N independent
invocations, each scoped to a chunk of a range via
${partition.*}tokens. - pipeline_
test faucet test— fixture-based, fully-offline pipeline testing (#210).- progress
cli-progress - Inline live progress for
faucet run(#385,cli-progressfeature). - reconcile
- Completeness reconciliation (#502).
- registry
- Feature-gated dispatch from a string
typeto a concrete connector. - registry_
index - Connector registry index (#208): the discovery/distribution layer behind
faucet search,faucet install, andfaucet list --available. - replication
faucet replicate— consistent snapshot → CDC streaming handoff.- scaffold
- Connector SDK scaffolding (#209): pure templates for
faucet new connector. - schedule
schedule faucet schedule— built-in cron scheduler.- schema_
compose - Compose the top-level JSON Schema for a whole
faucet.yamlconfig (#213). - secrets
- Secrets-manager interpolation for the config layer (#125).
- select
- Runtime matrix-row selection — the composable selection model spanning four issues that resolve through one eligibility → narrowing → parents → skip formula:
- 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. - templates
templates - Pipeline template registry (#444) — register a parameterized config once,
then trigger runs by
{id, params}. - topology
- Topology mode (issues #71 / #72): build and run a
faucet_core::Topologyfrom a config’spipeline.nodes/edgesblock. - transforms
- Compile YAML/JSON transform declarations into
TransformStagevalues. - tui
cli-tui - Live terminal UI for
faucet run --tui(#203,cli-tuifeature).
Functions§
- run_
command - Dispatch a parsed
Clito the matching command. Public so custom hosts and integration tests can drive the exact same code path asrun_mainwith a programmatically-builtCli(and a registry installed viaPluginRegistry::install). - 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.
- run_
main - Entry point for a custom
faucetbinary that bundles third-party connectors.