CLI Reference
celine-utils provides a unified CLI for governance and pipeline management.
celine-utils
├── governance
│ └── generate marquez
└── pipeline
├── init app
└── run (meltano | dbt | prefect)
governance generate marquez
Generate a governance.yaml scaffold from datasets discovered in Marquez (OpenLineage backend).
celine-utils governance generate marquez --app <app-name> [options]
Options:
| Option | Description | Default |
|---|---|---|
--app |
CELINE app name (required) | — |
--output, -o |
Output path for governance.yaml |
$PIPELINES_ROOT/apps/<app>/governance.yaml |
--marquez |
Marquez base URL | $OPENLINEAGE_URL or http://localhost:5000 |
--namespace |
OpenLineage namespace | $OPENLINEAGE_NAMESPACE or auto-derived |
--yes, -y |
Non-interactive mode — use defaults for all datasets | false |
Behavior:
- Fetches the list of datasets from Marquez in the specified namespace.
- In interactive mode: prompts for license, access level, classification, ownership, and tags for each dataset. Suggests pattern scopes (exact, schema wildcard, prefix wildcard).
- In
--yesmode: writes a skeletongovernance.yamlwith empty rules for each discovered dataset. - Writes the output file to the resolved path.
Usage examples:
# Interactive mode — configure each dataset
celine-utils governance generate marquez --app om
# Non-interactive — scaffold only
celine-utils governance generate marquez --app om --yes
# Custom Marquez URL and output path
celine-utils governance generate marquez \
--app om \
--marquez http://marquez.internal:5000 \
--output ./governance.yaml
# Custom namespace
celine-utils governance generate marquez \
--app om \
--namespace ds_prod_silver
Environment variables:
| Variable | Description |
|---|---|
OPENLINEAGE_URL |
Marquez base URL |
OPENLINEAGE_NAMESPACE |
Default namespace |
PIPELINES_ROOT |
Root of the pipelines monorepo (used for output path resolution) |
KEYCLOAK_* |
Keycloak client credentials for authenticated Marquez requests |
pipeline init app
Scaffold a new CELINE pipeline application directory.
celine-utils pipeline init app <app-name> [options]
Arguments:
| Argument | Description |
|---|---|
app-name |
Name of the new pipeline application |
Options:
| Option | Description | Default |
|---|---|---|
--force, -f |
Overwrite if the folder already looks like a pipeline app | false |
Resulting structure:
<app-name>/
meltano/
meltano.yml
dbt/
dbt_project.yml
profiles.yml
models/
tests/
macros/
seeds/
snapshots/
analyses/
flows/
pipeline.py
.env
README.md
Templates are rendered with {{ app_name }} substituted. Database connection values in .env are populated from environment variables (POSTGRES_HOST, POSTGRES_USER, etc.) if present.
Usage examples:
# Create a new pipeline app named "owm"
celine-utils pipeline init app owm
# Overwrite an existing scaffold
celine-utils pipeline init app owm --force
pipeline run
Execute pipeline components: Meltano ingestion, dbt transformations, or Prefect flows.
pipeline run meltano
celine-utils pipeline run meltano [command]
Runs a Meltano command inside the app's meltano/ directory.
| Argument | Description | Default |
|---|---|---|
command |
Meltano command string | run import |
# Default: run the import tap
celine-utils pipeline run meltano
# Run a specific command
celine-utils pipeline run meltano "run import --select my_stream"
pipeline run dbt
celine-utils pipeline run dbt <tag>
Runs dbt run --select tag:<tag> and dbt test --select tag:<tag> in the app's dbt/ directory.
| Argument | Description |
|---|---|
tag |
dbt selector (e.g. staging, silver, gold, test) |
celine-utils pipeline run dbt staging
celine-utils pipeline run dbt gold
pipeline run prefect
celine-utils pipeline run prefect [options]
Loads and executes a Prefect @flow-decorated function from the app's flows/ directory.
| Option | Description | Default |
|---|---|---|
--flow, -f |
Name of flows/<flow>.py (without extension) |
auto-detected |
--function, -x |
Function name inside the module | auto-detected via @flow decorator |
# Auto-detect flow file and function
celine-utils pipeline run prefect
# Specify explicitly
celine-utils pipeline run prefect --flow pipeline --function om_flow
Environment variables used by pipeline run:
| Variable | Description |
|---|---|
APP_NAME |
Override the inferred app name |
PIPELINES_ROOT |
Root of the pipelines monorepo |
MELTANO_PROJECT_ROOT |
Override Meltano project directory |
DBT_PROJECT_DIR |
Override dbt project directory |
DBT_PROFILES_DIR |
Override dbt profiles directory |
The runner auto-discovers the app root by walking upward from the current directory, looking for meltano/, dbt/, or flows/ subdirectories.