Pipeline configuration
Pipelines are YAML files. The server stores them as configs; you run executions against those configs. This guide covers the day-to-day operator loop.
Validate before submitting
Section titled “Validate before submitting”Always validate locally first. Catches errors without touching the server:
factflow config validate backend/config/pipelines/my-pipeline.yamlExit 0 on success. Non-zero with stable error codes (E001–E501) on failure.
For JSON output (scriptable):
factflow config validate my-pipeline.yaml --output jsonWant a batch validation of every shipped YAML?
factflow config validate backend/config/pipelines/Create a config
Section titled “Create a config”factflow config create -f my-pipeline.yamlReturns the stored config record with an id. That id is what you pass to factflow config run.
From stdin:
cat my-pipeline.yaml | factflow config create -f -List and inspect
Section titled “List and inspect”factflow config listfactflow config list --activefactflow config list --inactive
factflow config get CONFIG_IDget returns the full YAML plus metadata (version, source type, hash).
Configs are versioned. Editing increments the version. In-flight executions are unaffected (they run against their snapshot):
factflow config edit CONFIG_ID -f my-pipeline-v2.yamlRun an execution
Section titled “Run an execution”factflow config run CONFIG_IDReturns an execution id. The pipeline starts immediately.
Delete
Section titled “Delete”factflow config delete CONFIG_IDReturns 204 on success. Doesn’t affect executions already run against the config (their snapshots are independent).
Startup validation
Section titled “Startup validation”On server startup, every shipped YAML under backend/config/pipelines/ is validated. Default is strict — a broken YAML aborts startup. To run warn-only (for rapid iteration):
FACTFLOW_CONFIG_VALIDATOR_STRICT=0 uv run python -m factflow_server serve --embeddedStrict is the production default. Don’t flip it off permanently.
Error codes
Section titled “Error codes”The validator uses a stable taxonomy:
E001–E099— YAML parsing errorsE100–E199— schema violations (missing fields, wrong types)E200–E299— route errors (unknown queue, bad concurrency)E300–E399— adapter errors (unknown type, invalid config)E400–E499— init message errors (missing route, bad payload)E500–E501— global errorsW501–W503— warnings (deprecated fields, suboptimal settings)
Full table in the pipeline YAML reference.
Related
Section titled “Related”- Running pipelines — after you create a config
- Pipeline YAML reference — full schema
- Adapter catalog — every adapter’s
type:and config - Concept: Pipelines