Skip to main content

How the integration works

dbt Core writes execution artifacts to its target directory. Send those artifacts to Sidecar after each production dbt command that you want Sidecar to monitor. You do not need to change how you invoke dbt. Add the Sidecar webhook to the production workflow that already runs your dbt commands.
Configure the webhook only in the environments and workflows that you want Sidecar to monitor. For example, add it to your production Airflow DAG without adding it to development DAGs.

Artifacts to send

dbt overwrites artifacts in the target directory when another dbt command runs. Upload the artifacts immediately after each command that you want to monitor.
The result artifact contains the dbt invocation ID and command, so these do not need to be separate webhook fields. Sidecar also does not require the dbt exit code, target name, Git commit SHA, or orchestrator run ID. Your workflow only needs to preserve the dbt exit code so that the original task still reports failure.
Include the current manifest.json whenever dbt produces it. Sidecar stores the newest manifest as the authoritative project graph for Catalog Sync, and it identifies the adapter and warehouse for Firefighter. Run results are additive execution history and do not have to be paired with a manifest from the same invocation. If dbt exits before writing a manifest, Sidecar can still use the result artifact for Firefighter and can apply it to the newest manifest already stored. If Sidecar has never received a manifest for the project, Catalog Sync waits for one before building the dbt asset inventory.

Before you begin

You need:
  • A dbt Core project that can run in the environment you want to monitor
  • Network access from that environment to https://service-platform.sidecardata.com
  • A Sidecar artifact token
In Sidecar, open the dbt Core connection and click Generate to create an artifact token. Store the token in your orchestrator or CI/CD secret manager as SIDECAR_ARTIFACT_TOKEN.

Upload artifacts with the webhook

Choose the result type produced by your dbt command.
Send manifest.json and run_results.json:
The copy-paste patterns send the current manifest so Firefighter has full warehouse context and Catalog Sync receives the latest project graph. No additional webhook metadata is required. The webhook must run even when dbt exits with an error. Use the pattern for your orchestrator below.

Configure your workflow

Choose the environment that runs your production dbt commands.
Capture the dbt exit code locally, upload the artifacts, and then return the original dbt failure. The exit code controls the workflow status and is not sent to Sidecar. If dbt succeeds but the upload fails, return the upload failure.

Model runs and data tests

Source freshness

Manual upload

You can also upload artifacts while creating or editing a dbt Core connection:
  1. Open the dbt Core tab on the onboarding or settings page.
  2. Upload manifest.json and run_results.json from a dbt build, dbt run, or dbt test command.
  3. Click Test, then click Save.
Manual uploads update Sidecar’s dbt metadata. Use automated webhook uploads for Firefighter so Sidecar receives failures when they occur.

Troubleshooting

Sidecar did not receive a failed run

Confirm that the upload step uses an always-run or failure callback. A command such as dbt build && curl ... skips the webhook when dbt fails.

The artifact file does not exist

Confirm that the webhook runs in the same working directory as dbt and uses the configured dbt target path. For ephemeral tasks and pods, upload before the container exits or mount a shared volume.

Sidecar received the wrong invocation

Upload immediately after each dbt command. Do not let another dbt command overwrite the target directory first. Use separate target directories for parallel invocations.