Declarative Automation Bundles (DABs, formerly Databricks Asset Bundles — officially renamed March 16, 2026) are an infrastructure-as-code framework that enables developers to programmatically define, deploy, and manage Databricks resources—including jobs, notebooks, pipelines, clusters, apps, and Unity Catalog objects—using declarative YAML or Python configuration. Introduced as Databricks' native CI/CD solution, DABs facilitate software engineering best practices such as source control, code review, automated testing, and multi-environment deployments (dev → staging → production). A key evolution in 2025–2026: DABs now support Python-based configuration (via bundle.py and @job_mutator decorators) and a direct deployment engine that removes the Terraform dependency and will become the sole supported deployment path. A key mental model: bundles treat your entire Databricks project—code, configuration, and dependencies—as a single deployable unit, ensuring consistency and reproducibility across environments.
What This Cheat Sheet Covers
This topic spans 19 focused tables and 206 indexed concepts. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
Table 1: Core Concepts and Terminology
| Concept | Example | Description |
|---|---|---|
databricks.yml at project root | A package containing all YAML/Python configuration files, source code, notebooks, and artifacts needed to deploy a Databricks project as a single unit. | |
bundle: name: my_projecttargets: dev: | The primary configuration file (required at bundle root) that defines bundle metadata, resources, targets, and deployment settings. | |
targets: dev: production: | An environment-specific configuration (e.g., dev, staging, production) that overrides base settings for workspace, compute, and permissions. | |
resources: jobs: pipelines: | The mapping section in YAML where you define Databricks assets like jobs, pipelines, apps, model serving endpoints, schemas, and volumes. | |
variables: catalog: default: dev | A custom placeholder that can be referenced via ${var.catalog} throughout YAML, making configurations reusable across targets. | |
databricks bundle init default-python | A project scaffold providing pre-configured folder structure, sample code, and YAML configuration to jumpstart bundle development. | |
mode: production | The deployment mode (development or production) that determines isolation behavior, immutability, and whether resources can be modified post-deploy. |