cf_pipeline_manager
cf_pipeline_manager runs the local Cogniflow pipeline manager daemon.
It is the only supported project entrypoint for starting pipeline execution.
It owns:
- daemon lifecycle
- polling queued runs and pending events
- launching
cf_pipeline_v2 - exposing manager commands over CLI
It does not replace cf_semantics_runtime. Runtime state, snapshots, queue
state, and event persistence live in cf_pipeline_manager.
Runtime Files
The manager writes local daemon state under workspace/pipeline_manager:
daemon.jsondaemon.lockdaemon.logruns/<run_id>/pipeline.engine.jsonruns/<run_id>/step_<index>.engine.jsonruns/<run_id>/engine.command.jsonruns/<run_id>/engine.stdout.logruns/<run_id>/engine.stderr.log
The manager uses ~/.cogniflow/workspace/pipeline_manager for its local daemon state.
CLI Entry Points
You can use either surface:
- standalone:
python -m cf_pipeline_manager ... - unified CLI:
cf pipeline manager ...
The command set is the same for both.
Command Overview
status
ensure-daemon
stop-daemon
activate
submit-run
snapshot
summaries
stop-run
emit-event
All commands return JSON.
Typical Flow
1. Start the daemon
python -m cf_pipeline_manager ensure-daemon
Or:
cf pipeline manager ensure-daemon
This starts the daemon if it is not already running and writes
workspace/pipeline_manager/daemon.json.
2. Check status
python -m cf_pipeline_manager status
Example output shape:
{
"running": true,
"workspace_dir": "C:\\repo\\workspace\\pipeline_manager",
"active_workers": [],
"worker_errors": {}
}
3. Activate a pipeline for manager scheduling
python -m cf_pipeline_manager activate opcua_fifo_avg_to_duckdb_parquet_triggered
You can also set runtime state explicitly:
python -m cf_pipeline_manager activate opcua_fifo_avg_to_duckdb_parquet_triggered --desired-state enabled --concurrency-limit 1 --priority 0
4. Submit a manual run
python -m cf_pipeline_manager submit-run opcua_fifo_avg_to_duckdb_parquet_triggered --source manual --request-id req-001
With JSON overrides:
python -m cf_pipeline_manager submit-run opcua_fifo_avg_to_duckdb_parquet_triggered `
--runner-overrides-json '{\"engine_iterations\":1}' `
--input-overrides-json '[{\"node_id\":\"pipe:opcua_fifo_avg_to_duckdb_parquet_triggered/n1\",\"parameters\":{\"endpoint\":\"opc.tcp://127.0.0.1:4841/VirtualPhServer\"}}]' `
--metadata-json '{\"origin\":\"cli\"}'
5. Inspect summaries or one pipeline snapshot
python -m cf_pipeline_manager summaries
python -m cf_pipeline_manager snapshot opcua_fifo_avg_to_duckdb_parquet_triggered
To inspect a specific run:
python -m cf_pipeline_manager snapshot opcua_fifo_avg_to_duckdb_parquet_triggered --selected-run-id <run_id>
6. Emit an event instead of a manual run
python -m cf_pipeline_manager emit-event opcua_fifo_avg_to_duckdb_parquet_triggered manual --source external --source-event-id evt-001 --dedupe-key evt-001 --payload-json '{\"kind\":\"manual\"}'
The manager will persist the event through cf_ontology and then try to drain
it into the run queue.
7. Stop a queued run
python -m cf_pipeline_manager stop-run opcua_fifo_avg_to_duckdb_parquet_triggered <run_id>
Stopping a queued run returns a stopped result. Stopping a running run returns a structured unsupported response instead of throwing.
8. Stop the daemon
python -m cf_pipeline_manager stop-daemon
Using The Unified CLI
If cf_core_cli is installed, the manager is also available here:
cf pipeline manager --help
cf pipeline manager ensure-daemon
cf pipeline manager activate opcua_fifo_avg_to_duckdb_parquet_triggered
cf pipeline manager submit-run opcua_fifo_avg_to_duckdb_parquet_triggered --source manual
cf pipeline manager summaries
Example Pipeline Assets
The canonical example pipeline used for manager testing is:
sandcastle/cf_pipeline/cf_pipeline_engine/examples/opcua_fifo_avg_to_duckdb_parquet_triggered.nq
The mirrored setup demo is:
sandcastle/cf_setup/src/cf_setup/demo/opcua_fifo_avg_to_duckdb_parquet_triggered.nq
The setup demo intentionally differs from the engine example in a few runtime values such as OPC UA endpoint, window size, and engine duration.
Notes
- The manager launches
cf_pipeline_v2directly. It does not shell out through thecf_pipeline_engineCLI wrapper. - The daemon binds to loopback HTTP only.
- Provider runtime path discovery still follows the existing
workspace/runtime/provider_registry.v1.jsonconvention.
Metadata
Release files for cf-pipeline-manager 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cf_pipeline_manager-0.1.0.tar.gz | 46.6 kB | Without provenance | Details for cf_pipeline_manager-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cf_pipeline_manager-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for cf_pipeline_manager-0.1.0-py3-none-any.whl |
Total release size: 88.0 kB
Release files / cf_pipeline_manager-0.1.0.tar.gz
| Download URL | cf_pipeline_manager-0.1.0.tar.gz |
|---|---|
| Size | 46.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ad4bb05b8afa88fa63d24eeb6aba5e3c9e109fd7965de050a86e898ca7076571
|
|
BLAKE2b-256 checksum How to use checksums |
7822023bc38e1b3d63aeb9f556d39a3a2477ed46ca8a701b93ba8144d2746d59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / cf_pipeline_manager-0.1.0-py3-none-any.whl
| Download URL | cf_pipeline_manager-0.1.0-py3-none-any.whl |
|---|---|
| Size | 41.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e45106269103b44761ff21a3867e183bedaf11afdba03d254ffa2cd00d7544ba
|
|
BLAKE2b-256 checksum How to use checksums |
1719c87a61ef727913f9516e42ad66799d4365da1c8ba520df2d5a11076b777a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Security for cf-pipeline-manager 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.