Skip to main content

DBT DAG Auditor

Project description

Alt text

oliver-twist

DAG Auditor

Build status badge Code style: black PyPI PyPI - Python Version GitHub - License

oliver-twist is a dag auditing tool that audits the DBT DAG and generates a summary report. There is a docs site, including descriptions of all currently implemented rules.

please sir, can I automate my DAG auditing

Getting Started

To get started, install the package

$ pip install olivertwist

and then run it by passing it your dbt manifest JSON

olivertwist check manifest.json

This will report any failures to the console, and also in HTML format in a directory called target. You can optionally auto-open the report in a browser with:

olivertwist check manifest.json --browser

Full options are available with:

olivertwist check --help

Configuration

All rules are enabled by default. To change this you need a configuration file called olivertwist.yml in the same directory you are running olivertwist. An example configuration is shown below:

version: '1.0'
universal:
  - id: no-rejoin-models
    enabled: false
  - id: no-disabled-models
    enabled: true

There is a command to help you generate the config automatically:

olivertwist config

This will show all the available rules and allow you to toggle the ones that you want to enforce.

Local Development

Clone this repo and install the project:

poetry install

Install pre-commit hooks for linting

This is optional, but highly recommended to avoid annoying linting failure in CI.

poetry run pre-commit install

To run the pre-commit hooks locally:

poetry run pre-commit run

To get the latest versions of the dependencies and to update the poetry.lock file run:

poetry update

To run oliver-twist and generate the summary report run:

poetry run olivertwist example_manifest.json

Working with diagrams

To update and regenerate the images that illustrate rule failures in the documentation follow the next steps:

  • update the diagrams using the mermaid syntax
  • install yarn
  • cd docs/diagrams
  • ./generate.sh
  • inspect the generated images in ./docs/diagrams/output/
  • if you're happy with the results, run ./copy.sh so that they are copied over to ./docs/images
  • you can now reference those images. e.g. in .docs/rules.md

Creating a distribution

poetry build --format wheel

Project details


Download files

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

Source Distribution

olivertwist-0.2.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

olivertwist-0.2-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file olivertwist-0.2.tar.gz.

File metadata

  • Download URL: olivertwist-0.2.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.0 Darwin/19.6.0

File hashes

Hashes for olivertwist-0.2.tar.gz
Algorithm Hash digest
SHA256 648d6b023d024cb619daa92c6734f3885e32ed6b889dedc40e55cc1ad664d910
MD5 71f84f22b709a73cd738c149f1335791
BLAKE2b-256 d44a1b5d1caa7ee57f1dccf5f32fea5d46e59bbf33c14cea731a0273fdefa8f5

See more details on using hashes here.

File details

Details for the file olivertwist-0.2-py3-none-any.whl.

File metadata

  • Download URL: olivertwist-0.2-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.0 Darwin/19.6.0

File hashes

Hashes for olivertwist-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 00a4b27d624e609f0abd207af294a824375dc07a5cff5451c7a7e916c3e52052
MD5 26234e56f69207a3dc6ccfe02963b19c
BLAKE2b-256 69440459bca3eb67f4032cec642bb10c06d12bda0c0355c390983e265ba86c31

See more details on using hashes here.

Supported by

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