README.md
July 24, 2026 · View on GitHub
dbt-bouncer
Configure and enforce conventions for your dbt project.
Documentation
All documentation can be found on dbt-bouncer documentation website.
Aims
dbt-bouncer aims to:
- Provide a 100% configurable way to enforce conventions in a dbt project.
- Be as fast as possible, running checks against dbt artifacts.
- Be as easy as possible to use, with a simple config file written in
YAMLorTOML. - Be as flexible as possible, allowing checks to be written in Python.
- Provide immediate feedback when run as a pre-commit hook or as part of a CI pipeline.
TLDR
-
Install
dbt-bouncer:pip install dbt-bouncer -
dbt-bouncerrequires amanifest.jsonfile. If not already present, run:dbt parse -
Create a
dbt-bouncer.ymlconfig file:dbt-bouncer init -
Run
dbt-bouncer:$ dbt-bouncer run Running dbt-bouncer (X.X.X)... Loaded config from dbt-bouncer-example.yml... Validating conf... Parsed artifacts for 'dbt_bouncer_test_project' ╭──────────────────┬─────────────────┬───────╮ │ Artifact │ Category │ Count │ ├──────────────────┼─────────────────┼───────┤ │ manifest.json │ Exposures │ 2 │ │ │ Macros │ 3 │ │ │ Nodes │ 12 │ │ │ Seeds │ 3 │ │ │ Semantic Models │ 1 │ │ │ Snapshots │ 2 │ │ │ Sources │ 4 │ │ │ Tests │ 36 │ │ │ Unit Tests │ 3 │ │ catalog.json │ Nodes │ 13 │ │ │ Sources │ 0 │ │ run_results.json │ Results │ 51 │ ╰──────────────────┴─────────────────┴───────╯ Assembled 463 checks, running... Running checks... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% `dbt-bouncer` failed. Please see below for more details or run `dbt-bouncer` with the `-v` flag. Failed checks ╭────────────────────────────────────┬────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Check name │ Severity │ Failure message │ ├────────────────────────────────────┼────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ check_model_names:48:orders │ ERROR │ Models in the staging layer should always start with "stg_". - `orders` does not match the supplied regex `^stg_`. │ ╰────────────────────────────────────┴────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ Done. SUCCESS=462 WARN=0 ERROR=1
Reporting bugs and contributing code
- Want to report a bug or request a feature? Let us know and open an issue.
- Want to help us build
dbt-bouncer? Check out the Contributing Guide.
Code of Conduct
Everyone interacting in dbt-bouncer's codebase, issue trackers, chat rooms, and mailing lists is expected to follow the Code of Conduct.