Skip to main content

A CLI and Python library for integrating Workstream and dbt-core.

Project description

workstream-dbt-core

A CLI and Python library for integrating dbt-core and Workstream.

Installation

pip install workstream-dbt-core

Usage

Installing this package installs a CLI app. You can learn about its commands and options using:

workstream --help

Reporting a dbt Invocation

Report a dbt-core invocation to Workstream by posting artifacts from dbt's target directory to the Workstream API. The CLI defaults to searching for a directory named target in the current working directory, but this is configurable with the --target-path or -t option.

workstream report -t /path/to/dbt/target --client-id abc123 --client-secret xyz987

Exit Codes

By default, workstream report will always exit with a 0 code, even if it encounters critical errors, so that it doesn't interrupt later steps in your pipeline.

However, if you rely on dbt failures to cause workflow failures, this may not work for you. If you would like workstream report to exit with a nonzero code when dbt runs, tests, or sources fail, you can run it with the --exit-nonzero option:

dbt test || true
workstream report --exit-nonzero

Environment Variables

All CLI options can also be set using environment variables. Vars start with the prefix WORKSTREAM_DBT_ and then share their name with their associated option. The following command is equivalent to the previous one:

WORKSTREAM_DBT_TARGET_PATH="/path/to/dbt/target" WORKSTREAM_DBT_CLIENT_ID="abc123" WORKSTREAM_DBT_CLIENT_SECRET="xyz987" workstream report

Contributing

This project is built with Poetry. After cloning, install with:

poetry install

Then spawn a subshell with a virtual environment activated:

poetry shell

Testing and Linting

This project uses pytest and ruff. With poetry shell activated, run tests with:

pytest

Format and lint with:

ruff format
ruff . --fix

or if you have make, lint and test with:

make

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

workstream_dbt_core-0.2.0.tar.gz (6.0 kB view hashes)

Uploaded Source

Built Distribution

workstream_dbt_core-0.2.0-py3-none-any.whl (8.0 kB view hashes)

Uploaded Python 3

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