Skip to main content

dbtective is a Rust-powered 'detective' for `dbt metadata` best practices.

Project description

🕵️ dbtective

dbtective is a Rust-powered 'detective' for dbt metadata best practices. As your dbt project grows, keeping metadata consistent and high-quality can become a real challenge.

Explore the full documentation.

[!WARNING] dbtective is currently in very early stages. Issues and commits are welcome, but don't rely on us yet!

dbtective makes it easy to spot and fix common issues, examples:

  • Missing descriptions: Does every model and seed have a description?
  • Column types: Are all columns explicitly typed?
  • Ownership: Do all sources have an owner?
  • Naming conventions: Are all marts following your team's naming standards?

We detect and enforce these rules in your pre-commit and CI/CD pipeline, so fast you will barely notice🕵️

Installation

Pip (pypi)
pip install dbtective
uv

Install as a dev dependency:

uv install dbtective --dev
Shell installer (macOS/Linux)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/feliblo/dbtective/releases/latest/download/dbtective-installer.sh | sh
PowerShell installer (Windows)
irm https://github.com/feliblo/dbtective/releases/latest/download/dbtective-installer.ps1 | iex
Homebrew
brew install feliblo/tap/dbtective
Binary download

Pre-built binaries for Linux, macOS, and Windows are available on the releases page.

Quickstart

All possible checks can be found in the checks documentation. Information about configuring dbtective is shown at the config documentation

Example

  1. Create a dbtective.yml config file in the root of your dbt project. For example:
manifest_tests:
  - name: "models_must_have_description"
    type: "has_description"
    severity: "error"
    applies_to: ["models", "sources"]
    description: " models and sources must have a description."

  - name: "naming_convention"
    type: "name_convention"
    description: "Everything must follow the naming convention."
    pattern: "snake_case"

 - name: "all_marts_must_be_tagged"
    type: "has_tags"
    severity: "warning"
    applies_to: ["models"]
    tags:
      - "mart"
    description: "All marts must be tagged with 'mart'"
  1. Run dbtective in the root of your current directory or specify an entry point if your dbt_project is not located in the root/current drectory.
dbtective run
dbtective run --entry-point "my_dbt_project"

Contributing

We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation, your help makes dbtective better for everyone.

Quick start: Install just command line runner & take a look at the commands in the justfile.

To build and run on the example project (./dbt_project using config ./dbt_project/dbtective.yml) use:

just run
just run-verbose

For detailed contributing guidelines, development setup, and coding standards, please see CONTRIBUTING.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dbtective-0.1.8-py3-none-win_amd64.whl (1.4 MB view details)

Uploaded Python 3Windows x86-64

dbtective-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

dbtective-0.1.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

dbtective-0.1.8-py3-none-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

dbtective-0.1.8-py3-none-macosx_10_12_x86_64.whl (1.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file dbtective-0.1.8-py3-none-win_amd64.whl.

File metadata

  • Download URL: dbtective-0.1.8-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dbtective-0.1.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a9b8356537d6e88c8fb70fbedf48982b32842820aec544fb78f627f13f076d4f
MD5 b1b93f8f856e479a1c44d8fabd4defc6
BLAKE2b-256 9d38fc31557bef67368840b110fdeabbe007fc5b52757988b95b39a6ffa2fbd1

See more details on using hashes here.

File details

Details for the file dbtective-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: dbtective-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dbtective-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7799f61b921d9c1a402dab9945f885a8a0f4d1d5ee76b10edf0f325a927ee3b7
MD5 ad273e3e85dceb67936035f717f4ca2c
BLAKE2b-256 6190b08833896d1efa8d805641b02aa65b19d81047eaba1798cd33b2b15a6045

See more details on using hashes here.

File details

Details for the file dbtective-0.1.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: dbtective-0.1.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dbtective-0.1.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5c341e824bc0ede12c4bab438c0622b69830322a2fd71c5d67aa25c9957aeb30
MD5 33234a77c470dd867977391d0a947195
BLAKE2b-256 4649d013aadbbf4fa21af1820789f002313af1a4749eccd804260bc99763b320

See more details on using hashes here.

File details

Details for the file dbtective-0.1.8-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: dbtective-0.1.8-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dbtective-0.1.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94ca5f2c094c66f0b0b9465b73e480059c0fd41ab7c2d38bca68f54b512a00ce
MD5 5f4bedcf6b4de92054f53e9127e47ed5
BLAKE2b-256 3ff707bfbdb622672e4addef66a6b8f8f9d781a18481bb203c5bfac9bd0f5dcf

See more details on using hashes here.

File details

Details for the file dbtective-0.1.8-py3-none-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: dbtective-0.1.8-py3-none-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for dbtective-0.1.8-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7ebf72e4f0f0dc250481f5a72ca929638484900505d3b296ae7055cee2ef3392
MD5 3c8c2ebefc92aae0a69daec873e5a9a6
BLAKE2b-256 3a0593a2e0c83e73efbef63e8cdc5be64913f2d54aa180735765954269b82c7a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page