Expand description
faucet doctor — preflight probes for every connector in a config (#126).
Expands the config, builds each root invocation’s source / sink / state
store, and runs their non-mutating check() probes concurrently (bounded by
a semaphore, each wrapped in a per-probe timeout). Prints a green/red
checklist (or --json) and exits with the number of failed probes
(clamped to 255).
Child invocations are listed but not probed: their configs depend on parent
records that only exist at run time (same limitation as faucet preview).
Structs§
- Invocation
Out - One expanded invocation and its probes (the
--jsonper-invocation shape). - Lint
Finding - One static-lint finding: a severity, a short stable
code, a message, and a fix hint. - Probe
Out - A single probe enriched with the role + connector it came from. This is the
--jsonshape for each probe.
Enums§
- Lint
Severity - Severity of a static config-lint finding.
Functions§
- count_
failures - Total number of failed probes across all invocations.
- probe_
invocation - Build the three connectors for one invocation and run their probes. When an
sla:block is configured,slacarries the spec plus the invocation’s base state key so the persisted SLA history can be probed read-only (staleness vsmax_staleness_secs, volume-baseline warm-up). - probe_
lineage lineage - Probe the pipeline-wide
lineage:transport reachability, returning a single-probe invocation (orNonewhen nolineage:block is configured). A failed probe is diagnostic only — lineage emission never blocks a run. - probe_
roots - Probe every root invocation’s source/sink/state concurrently (bounded).
Child invocations are skipped — their configs need parent records. Reused by
faucet doctorand serve’sdoctor_firstpreflight.sla/pipeline_namecome from the top-level config; when set, each root also gets read-only SLA staleness/baseline probes against its state store. - redact_
invocations - Scrub resolved secrets out of every probe
reason/hint. - run
- Execute the
doctorsubcommand.