Skip to main content

Run history for dbt. Every invocation recorded, nothing overwritten.

Project description

dbt-logbook

Run history for dbt. Every invocation recorded, nothing overwritten.

dbt writes run_results.json and overwrites it on the next run. dbt-logbook keeps every run in a local SQLite store and gives you the views that history makes possible - with zero configuration and zero changes to your dbt project.

Per-model duration across runs, with a visible regression

What you get

  • Run timeline: every recorded invocation, status at a glance, failures inline
  • Per-model history: duration sparkline across runs - see the regression the moment it starts, and the failed runs marked on the line
  • What changed between two runs: checksum-based diff (added / removed / modified models), powered by dbt's own per-node checksums
  • Lineage: clickable DAG from your manifest, tests hidden by default

Quickstart

uvx dbt-logbook demo          # populated playground, no dbt project needed

In a real dbt project (any adapter - DuckDB, Snowflake, SQL Server, Postgres, ...):

cd your-dbt-project
uvx dbt-logbook ui            # instant read-only UI over the artifacts dbt already wrote

History accrues from the capture wrapper - change one line in your cron/CI:

dbt-logbook exec -- dbt build     # runs dbt untouched, records the run
                                  # exit code passes through exactly

Or ingest artifacts from anywhere (for example, downloaded CI artifacts):

dbt-logbook import path/to/artifacts --env prod

How it works

dbt-logbook reads only dbt's stable surfaces - the CLI and the artifact files (manifest.json, run_results.json) - and never imports dbt internals. That is why it works unchanged across dbt Core 1.7 through 2.0 (tested against golden artifacts of 1.7, 1.8, 1.10, 1.11, and 2.0-alpha), and why it needs no dbt installation of its own.

Every run's artifacts land in .dbtlogbook/history.db (SQLite; add .dbtlogbook/ to your project's .gitignore). Manifests are content-hashed and gzipped, so the store stays small. Failed dbt runs are captured too - those are the ones you'll want history for.

Platform notes

  • macOS and Linux. On Windows, ui and import are untested but should work (pure Python); exec is unsupported for now (POSIX signal semantics).
  • The UI binds to localhost only.

Roadmap

  • v0.2: local metadata API + MCP server over the store - ask your agent "what broke last night and what changed?"
  • v0.3: scheduler + Slack/Teams alerts (dbt-logbook serve)
  • v0.4: Slim CI state serving (last-good manifest per environment)

License: Apache-2.0. Not affiliated with dbt Labs; "dbt" is a trademark of dbt Labs, Inc.

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

dbt_logbook-0.1.0.tar.gz (755.0 kB view details)

Uploaded Source

Built Distribution

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

dbt_logbook-0.1.0-py3-none-any.whl (235.3 kB view details)

Uploaded Python 3

File details

Details for the file dbt_logbook-0.1.0.tar.gz.

File metadata

  • Download URL: dbt_logbook-0.1.0.tar.gz
  • Upload date:
  • Size: 755.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"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 dbt_logbook-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4c1862e472bbdcfd07384bd3ceb7d5b15547b5fe68902df2ae413d37f1c5c69e
MD5 103328736d9e35922eca29a8dce6c63b
BLAKE2b-256 58b479fdaa0c7ce91bed23c9b85fd72d1ecf45648c5b6bbb3646b797fd0d37d0

See more details on using hashes here.

File details

Details for the file dbt_logbook-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dbt_logbook-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 235.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"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 dbt_logbook-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3dd93311ae95b439b857fd081249945e35d18f6d4abf589aaae088fed37ebcde
MD5 1321f912ebe93984394361fd44304c77
BLAKE2b-256 4f69bafa9d5c74f80a85653fc79ea91694ac58cbb9e957d73d49b082e236efa5

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