| Name | dbt-bouncer JSON |
| Version |
1.24.0
JSON |
| download |
| home_page | None |
| Summary | Configure and enforce conventions for your dbt project. |
| upload_time | 2025-10-19 18:35:47 |
| maintainer | Padraic Slattery |
| docs_url | None |
| author | Padraic Slattery |
| requires_python | <3.14,>=3.9.2 |
| license | MIT |
| keywords |
python
cli
dbt
ci/cd
|
| VCS |
|
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
<p align="center">
<img src="https://github.com/godatadriven/dbt-bouncer/raw/main/docs/assets/logo.svg" alt="dbt-bouncer logo" width="500"/>
</p>
<h1 align="center">
dbt-bouncer
</h1>
<h2 align="center">
Configure and enforce conventions for your dbt project.
</h2>
<div align="center">
<a>
<img src="https://img.shields.io/github/release/godatadriven/dbt-bouncer.svg?logo=github">
</a>
<a>
<img src="https://img.shields.io/badge/License-MIT-yellow.svg">
</a>
<a>
<img src="https://img.shields.io/github/last-commit/godatadriven/dbt-bouncer/main">
</a>
<a>
<img src="https://img.shields.io/github/commits-since/godatadriven/dbt-bouncer/latest">
</a>
</div>
<div align="center">
<a>
<img alt="dbt-core" src="https://img.shields.io/badge/dbt--core%20-%3E%3D1.7-333?logo=dbt">
</a>
<a>
<img alt="dbt Cloud Supported" src="https://img.shields.io/badge/dbt%20Cloud%20-Supported-ff694a?logo=dbt">
</a>
<a>
<img alt="Docker Supported" src="https://img.shields.io/badge/Docker%20-Supported-0db7ed?logo=docker">
</a>
<a>
<img alt="GitHub Supported" src="https://img.shields.io/badge/GitHub%20-Supported-333?logo=github">
</a>
</div>
<div align="center">
<a>
<img src="https://github.com/godatadriven/dbt-bouncer/actions/workflows/merge_pipeline.yml/badge.svg">
</a>
<a>
<img src="https://github.com/godatadriven/dbt-bouncer/actions/workflows/post_release_pipeline.yml/badge.svg">
</a>
<a>
<img src="https://img.shields.io/badge/style-ruff-41B5BE?style=flat">
</a>
<a>
<img src="https://www.aschey.tech/tokei/github/godatadriven/dbt-bouncer?category=code">
</a>
</div>
<br/>
## Documentation
All documentation can be found on `dbt-bouncer` [documentation website](https://godatadriven.github.io/dbt-bouncer/).
### TLDR
1. Install `dbt-bouncer`:
```shell
pip install dbt-bouncer
```
1. `dbt-bouncer` requires a `manifest.json` file. If not already present, run:
```shell
dbt parse
```
1. Create a `dbt-bouncer.yml` config file:
```yml
manifest_checks:
- name: check_model_directories
include: ^models
permitted_sub_directories:
- intermediate
- marts
- staging
- name: check_model_names
include: ^models/staging
model_name_pattern: ^stg_
```
1. Run `dbt-bouncer`:
```
$ dbt-bouncer
[...]
Running checks... |################################| 20/20
Done. SUCCESS=19 WARN=0 ERROR=1
Failed checks:
| Check name | Severity | Failure message |
|--------------------------|----------|---------------------------------------------------------------------------------------|
| check_model_directories: | error | AssertionError: `model` is located in `utilities`, this is not a valid sub-directory. |
```
## Reporting bugs and contributing code
- Want to report a bug or request a feature? Let us know and open [an issue](https://github.com/godatadriven/dbt-bouncer/issues/new/choose).
- Want to help us build `dbt-bouncer`? Check out the [Contributing Guide](https://github.com/godatadriven/dbt-bouncer/blob/HEAD/docs/CONTRIBUTING.md).
## 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](./CODE_OF_CONDUCT.md).
Raw data
{
"_id": null,
"home_page": null,
"name": "dbt-bouncer",
"maintainer": "Padraic Slattery",
"docs_url": null,
"requires_python": "<3.14,>=3.9.2",
"maintainer_email": "pgoslatara@gmail.com",
"keywords": "python, cli, dbt, CI/CD",
"author": "Padraic Slattery",
"author_email": "pgoslatara@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/7c/30/d17101dd6998c6668867002bbe74c01323efd4e88f59dafee80c44cf106f/dbt_bouncer-1.24.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img src=\"https://github.com/godatadriven/dbt-bouncer/raw/main/docs/assets/logo.svg\" alt=\"dbt-bouncer logo\" width=\"500\"/>\n</p>\n\n\n<h1 align=\"center\">\n dbt-bouncer\n</h1>\n<h2 align=\"center\">\n Configure and enforce conventions for your dbt project.\n</h2>\n\n<div align=\"center\">\n <a>\n\t<img src=\"https://img.shields.io/github/release/godatadriven/dbt-bouncer.svg?logo=github\">\n </a>\n <a>\n\t<img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\">\n </a>\n <a>\n\t<img src=\"https://img.shields.io/github/last-commit/godatadriven/dbt-bouncer/main\">\n </a>\n <a>\n\t<img src=\"https://img.shields.io/github/commits-since/godatadriven/dbt-bouncer/latest\">\n </a>\n</div>\n\n<div align=\"center\">\n <a>\n\t<img alt=\"dbt-core\" src=\"https://img.shields.io/badge/dbt--core%20-%3E%3D1.7-333?logo=dbt\">\n </a>\n <a>\n\t<img alt=\"dbt Cloud Supported\" src=\"https://img.shields.io/badge/dbt%20Cloud%20-Supported-ff694a?logo=dbt\">\n </a>\n <a>\n\t<img alt=\"Docker Supported\" src=\"https://img.shields.io/badge/Docker%20-Supported-0db7ed?logo=docker\">\n </a>\n <a>\n\t<img alt=\"GitHub Supported\" src=\"https://img.shields.io/badge/GitHub%20-Supported-333?logo=github\">\n </a>\n</div>\n\n<div align=\"center\">\n <a>\n\t<img src=\"https://github.com/godatadriven/dbt-bouncer/actions/workflows/merge_pipeline.yml/badge.svg\">\n </a>\n <a>\n\t<img src=\"https://github.com/godatadriven/dbt-bouncer/actions/workflows/post_release_pipeline.yml/badge.svg\">\n </a>\n <a>\n\t<img src=\"https://img.shields.io/badge/style-ruff-41B5BE?style=flat\">\n </a>\n <a>\n\t<img src=\"https://www.aschey.tech/tokei/github/godatadriven/dbt-bouncer?category=code\">\n </a>\n</div>\n<br/>\n\n## Documentation\n\nAll documentation can be found on `dbt-bouncer` [documentation website](https://godatadriven.github.io/dbt-bouncer/).\n\n### TLDR\n\n1. Install `dbt-bouncer`:\n\n ```shell\n pip install dbt-bouncer\n ```\n\n1. `dbt-bouncer` requires a `manifest.json` file. If not already present, run:\n\n ```shell\n dbt parse\n ```\n\n1. Create a `dbt-bouncer.yml` config file:\n\n ```yml\n manifest_checks:\n - name: check_model_directories\n include: ^models\n permitted_sub_directories:\n - intermediate\n - marts\n - staging\n - name: check_model_names\n include: ^models/staging\n model_name_pattern: ^stg_\n ```\n\n1. Run `dbt-bouncer`:\n\n ```\n $ dbt-bouncer\n\n [...]\n Running checks... |################################| 20/20\n Done. SUCCESS=19 WARN=0 ERROR=1\n Failed checks:\n | Check name | Severity | Failure message |\n |--------------------------|----------|---------------------------------------------------------------------------------------|\n | check_model_directories: | error | AssertionError: `model` is located in `utilities`, this is not a valid sub-directory. |\n ```\n\n## Reporting bugs and contributing code\n\n- Want to report a bug or request a feature? Let us know and open [an issue](https://github.com/godatadriven/dbt-bouncer/issues/new/choose).\n- Want to help us build `dbt-bouncer`? Check out the [Contributing Guide](https://github.com/godatadriven/dbt-bouncer/blob/HEAD/docs/CONTRIBUTING.md).\n\n## Code of Conduct\n\nEveryone interacting in `dbt-bouncer`'s codebase, issue trackers, chat rooms, and mailing lists is expected to follow the [Code of Conduct](./CODE_OF_CONDUCT.md).\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Configure and enforce conventions for your dbt project.",
"version": "1.24.0",
"project_urls": null,
"split_keywords": [
"python",
" cli",
" dbt",
" ci/cd"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2d17ed7ac1f8519f29286d07f2ebf209b3f01866aec0244491029ba196e8bcba",
"md5": "db56d4791db740f3d772820a9ec831df",
"sha256": "47d5f1e951379fb193f122fd7d849447a951a3fc8e3534d0b55130d8ed0d8b0e"
},
"downloads": -1,
"filename": "dbt_bouncer-1.24.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "db56d4791db740f3d772820a9ec831df",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.9.2",
"size": 61597,
"upload_time": "2025-10-19T18:35:45",
"upload_time_iso_8601": "2025-10-19T18:35:45.978343Z",
"url": "https://files.pythonhosted.org/packages/2d/17/ed7ac1f8519f29286d07f2ebf209b3f01866aec0244491029ba196e8bcba/dbt_bouncer-1.24.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7c30d17101dd6998c6668867002bbe74c01323efd4e88f59dafee80c44cf106f",
"md5": "ac181e5047eaa447c269fceb064d0d73",
"sha256": "49231c4ec269e143bab32dbb0b8fabc127cca60df6324e2d027d3039067c88d0"
},
"downloads": -1,
"filename": "dbt_bouncer-1.24.0.tar.gz",
"has_sig": false,
"md5_digest": "ac181e5047eaa447c269fceb064d0d73",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.9.2",
"size": 44786,
"upload_time": "2025-10-19T18:35:47",
"upload_time_iso_8601": "2025-10-19T18:35:47.617073Z",
"url": "https://files.pythonhosted.org/packages/7c/30/d17101dd6998c6668867002bbe74c01323efd4e88f59dafee80c44cf106f/dbt_bouncer-1.24.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-19 18:35:47",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "dbt-bouncer"
}