Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,358 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dbt-bouncer logo

dbt-bouncer

Configure and enforce conventions for your dbt project.

dbt-core dbt Cloud Supported Docker Supported GitHub Actions Supported

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 YAML or TOML.
  • 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

  1. Install dbt-bouncer:

    pip install dbt-bouncer
  2. dbt-bouncer requires a manifest.json file. If not already present, run:

    dbt parse
  3. Create a dbt-bouncer.yml config file:

    dbt-bouncer init
  4. Run dbt-bouncer:

    $ dbt-bouncer run
    Running dbt-bouncer (X.X.X)...
    Loaded config from dbt-bouncer.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.

About

Configure and enforce conventions for your dbt project.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

123 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages