A blueprint is a versioned template that OpenDOPS uses to generate a project. Each blueprint declares the files it produces and the conventions it enforces (resources, a runnable resource, and whether it ships a Python package), so OpenDOPS checks and command guidance adapt to its shape. The model is intentionally simple so new blueprints — and eventually new domains — can be added without changing the CLI.
Available blueprints
| Blueprint | Subsystem | Generates |
|---|---|---|
databricks-python-wheel-job | dbx dab | A spark_python_task job |
databricks-multi-task-workflow | dbx dab | A multi-task job (ingest → transform → publish) with failure alerts |
databricks-dlt-pipeline | dbx dab | A serverless Delta Live Tables pipeline |
databricks-sql-job | dbx dab | A job that runs a .sql file on a SQL warehouse |
databricks-unity-catalog | dbx dab | Schemas, volumes & grants — governance-as-code (no runnable) |
databricks-alerting-job | dbx dab | A job pre-wired with email/webhook alerts + health rules |
databricks-notebook-workspace | dbx notebook | A non-DAB notebook project deployed via databricks sync |
standard-dbt-project | dbt | A standardized dbt project (staging/marts, seeds, tests, env targets) run via the dbt CLI |
Pick a bundle blueprint with:
dops dbx dab bundle add <name> --blueprint <blueprint>
Want to see exactly what each one generates? Browse the
examples/directory — it holds the real rendered output of every blueprint (a complete bundle/project you can read file-by-file).
databricks-python-wheel-job
The built-in blueprint for the dops dbx dab domain. It generates a Python-first Databricks
Asset Bundle that runs a spark_python_task job.
Generates:
databricks.ymlwith stablesandbox,dev,staging, andprodtargets- a
resource_prefixvariable for branch-isolated sandbox deployments resources/jobs.ymlandresources/variables.yml- a
src/<package>/Python package (main,config,readers,writers,transforms/) - a
tests/suite for the pure transforms - a
README.mdand.dops/bundles/<name>.yamlmetadata
dops dbx dab bundle add customer-events-bronze \
--blueprint databricks-python-wheel-job \
--package customer_events_bronze \
--owner data-platform
Every generated bundle is independently validatable, deployable, runnable, and destroyable using native Databricks CLI commands from inside its own directory.
databricks-notebook-workspace
The built-in blueprint for the dops dbx notebook subsystem — a non-DAB Databricks project.
Instead of an Asset Bundle, it generates a notebook/workspace project that you deploy with the
native databricks sync command.
Generates:
notebooks/with a Databricks notebook in source format- a
src/<package>/Python package of pure, testable transforms (imported by notebooks) conf/per-environment workspace paths (dev / staging / prod)scripts/dops/sandbox-prefix.shand.dops/project.yamlmetadata.github/workflows/that calldatabricks syncdirectly
dops dbx notebook init analytics-notebooks --owner data-platform
dops dbx notebook commands --target sandbox --branch feature/DOPS-200
Sandbox deployments are branch-isolated by syncing to a
/<workspace>/sandbox/DEV_<branch>_<project> folder — the same prefix convention as bundles,
applied to the workspace path instead of resource names.
More Databricks bundle blueprints
These add to dops dbx dab bundle add --blueprint …, each generating a different Databricks
resource shape (OpenDOPS checks and bundle commands adapt automatically):
databricks-dlt-pipeline— a serverless Delta Live Tables pipeline (resources/pipelines.yml) plus a Python package of pure transforms.bundle commandsruns the pipeline, not a job.databricks-multi-task-workflow— a job with a dependency chain (ingest → transform → publish) and on-failure email notifications.databricks-sql-job— a job whose task runs a generated.sqlfile against a SQL warehouse, with a Python package of pure query helpers.databricks-unity-catalog— governance-as-code: declares schemas, managed volumes, and grants as bundle resources. OpenDOPS writes the declarations;databricks bundle deployapplies them (there’s nothing tobundle run).databricks-alerting-job— a job pre-wired with standardized notifications & alerts: email on start/success/failure, an on-failure webhook (Slack/PagerDuty/…), a run-duration health rule, and a timeout.
standard-dbt-project
The built-in blueprint for the dops dbt domain — a standardized dbt
project. OpenDOPS owns the structure; the dbt CLI runs it.
Generates:
dbt_project.yml,packages.yml, and a secret-freeprofiles.yml(connections via env vars)models/staging/+models/marts/with sources, a seed, and schema/column tests- a
generate_schema_namemacro so a whole feature branch lands in one flat schema scripts/dops/sandbox-prefix.sh,.dops/project.yaml, and.github/workflows/(rundbt)
dops dbt init analytics-dbt --adapter dbt-databricks --schema analytics
dops dbt commands --target sandbox --branch feature/DOPS-300
Branch-isolated sandboxes build into a DEV_<branch>_<schema> target schema (supplied at
runtime via DBT_SANDBOX_SCHEMA) — the same prefix convention as bundles, applied to the dbt
schema. Pick the adapter with --adapter (defaults to dbt-databricks).
On the roadmap
The blueprint model is built to extend. Still planned:
| Blueprint | Purpose |
|---|---|
databricks-notebook-job | Notebook-based jobs (DAB) |
dbt-on-databricks | dbt running on Databricks |
Beyond Databricks, entire domains are planned — each under its own dops namespace
(dops dbt, dops airflow, dops snowflake). See the home page for the roadmap.
Request a blueprint
Want a blueprint or domain sooner? Open an issue — the internal blueprint model is designed so additional templates can be added independently.