Connection & Authentication
Which setup mode should I use — dbt Cloud or dbt Core?
Which setup mode should I use — dbt Cloud or dbt Core?
prizm-dbt push-artifacts command as a step after your dbt commands.Both modes produce identical catalog, lineage, and observability output in Prizm. The choice is purely based on how your dbt project is run.What credentials does dbt Cloud integration require?
What credentials does dbt Cloud integration require?
How does the dbt Core CLI plugin authenticate?
How does the dbt Core CLI plugin authenticate?
prizm-dbt CLI plugin authenticates using an API token set as an environment variable:prizm-dbt validate to verify authentication before your first push.Can I connect multiple dbt projects or environments to Prizm?
Can I connect multiple dbt projects or environments to Prizm?
PRIZM_API_TOKEN values per project and set the --environment flag when pushing artifacts.All connectors appear separately in the Source list and have independent job history, settings, and schedules.dbt Cloud Setup
Should I use webhooks or scheduled pull for dbt Cloud?
Should I use webhooks or scheduled pull for dbt Cloud?
- Near-real-time ingestion — Prizm processes a completed run within seconds
- No polling overhead — fewer API calls to dbt Cloud
- Predictable, event-driven behavior
- Your network environment does not allow inbound webhook delivery
- You need to backfill historical run data
- You are in a regulated environment with strict inbound connectivity requirements
How do I configure the dbt Cloud webhook?
How do I configure the dbt Cloud webhook?
- In dbt Cloud, navigate to Account Settings → Webhooks
- Click New Webhook
- Enter the Prizm webhook URL (shown in your Prizm dbt connector settings)
- Select events:
job.run.completedandjob.run.errored - Copy the Webhook Secret and paste it into Prizm
What happens if a dbt Cloud run fails — are artifacts still ingested?
What happens if a dbt Cloud run fails — are artifacts still ingested?
job.run.erroredfires early and artifacts may not yet be written. Prizm records the failure signal immediately and retries artifact ingestion with backoff.job.run.completedfires after artifacts are fully written and available — Prizm ingests everything immediately.
run_results.json was produced, which includes the node-level failure details that drive alerting and observability.Can I restrict Prizm to specific dbt Cloud projects or environments?
Can I restrict Prizm to specific dbt Cloud projects or environments?
dbt Core Setup
Where in my pipeline should I run prizm-dbt push-artifacts?
Where in my pipeline should I run prizm-dbt push-artifacts?
dbt run, dbt test, dbt build, or dbt docs generate. The CLI operates purely on filesystem artifacts and does not interact with dbt at runtime.push-artifacts — Prizm will ingest whatever artifacts were produced (including a partial run_results.json with failure details). Use the || true pattern only if you explicitly want to push even on dbt failures:What if manifest.json is missing?
What if manifest.json is missing?
manifest.json is required. If it is not found at the resolved target path, push-artifacts exits with an error and lists:- The
--project-dirand--target-pathvalues used - The exact file paths checked
- The corrective action
prizm-dbt doctor to diagnose path resolution issues. Common causes: running push-artifacts before dbt run completes, or providing an incorrect --target-path.Does prizm-dbt push-artifacts slow down my pipeline?
Does prizm-dbt push-artifacts slow down my pipeline?
manifest.json files (1M+ nodes) may take 10–30 seconds.The command runs after dbt completes — it is not on the critical path of the dbt execution itself.Can I push from centralized artifact storage instead of running the CLI per-job?
Can I push from centralized artifact storage instead of running the CLI per-job?
Artifacts & Ingestion
What is sources.json and do I need it?
What is sources.json and do I need it?
sources.json contains the results of dbt freshness checks — it is generated by running dbt source freshness. It tells Prizm whether each source is fresh, in a warning state, or overdue based on the thresholds defined in your YAML.- Without
sources.json: Prizm still ingests source metadata (name, schema, freshness thresholds) frommanifest.jsonbut has no actual freshness check results. - With
sources.json: Prizm surfaces freshness violations and SLA breaches directly on source assets.
dbt source freshness on a schedule and push the resulting artifact with prizm-dbt push-artifacts (dbt Core) or ensure your dbt Cloud job includes a freshness step.Do I need catalog.json?
Do I need catalog.json?
catalog.json is optional. It provides warehouse-introspected column data types and statistics, which enrich the Prizm catalog with physical type information. However:- It is only generated by
dbt docs generate— never bydbt runordbt build - Prizm infers most column metadata from
manifest.jsonYAML definitions without needingcatalog.json
catalog.json when you run dbt docs generate in your pipeline. Skip it otherwise — Prizm will not error if it is absent.What is semantic_manifest.json and when is it generated?
What is semantic_manifest.json and when is it generated?
semantic_manifest.json contains your dbt Semantic Layer definitions — metrics, measures, dimensions, and saved queries using MetricFlow. It is only generated if your dbt project uses the semantic layer.Prizm ingests semantic_manifest.json to enrich the catalog with metric definitions and metric lineage. Full metric observability in the Prizm UI is coming in a future release.Are historical runs ingested when I first connect?
Are historical runs ingested when I first connect?
What happens if the same artifacts are pushed twice?
What happens if the same artifacts are pushed twice?
manifest.json content) does not create duplicate records. New artifacts with different content are ingested and versioned — Prizm keeps a history of artifact versions for lineage and audit purposes.For dbt Cloud, the same event delivered multiple times (webhook retries) is handled idempotently — deduplicated by {account_id, run_id, event_type}.Lineage
How does Prizm build lineage from dbt?
How does Prizm build lineage from dbt?
manifest.json — specifically the depends_on fields for each node. This produces a DAG of:Source → Model → Model → … → ExposurePrizm then stitches this with warehouse-side lineage (from Snowflake or Databricks) to create an end-to-end graph:Warehouse raw table → dbt Source → dbt Model → Warehouse output table → Tableau WorkbookIn the lineage view, dbt models appear as transformation edges by default. Enable the dbt-only toggle to show models as nodes for a focused dbt-to-dbt dependency view.Is column-level lineage supported?
Is column-level lineage supported?
- Column descriptions are defined in YAML
- The compiled SQL uses explicit column references (not
SELECT *)
A dbt model is not appearing in the lineage graph — why?
A dbt model is not appearing in the lineage graph — why?
- The model is included in the selected job’s artifact scope
manifest.jsonwas successfully pushed — check Settings → Sources → Logs- The model is not marked as
ephemeralmaterialization (ephemeral models are not physical assets and may not appear as lineage nodes) - The upstream warehouse connector (Snowflake, Databricks) is also connected — end-to-end lineage requires both connectors
Tests & Quality Signals
How do dbt test results become quality signals in Prizm?
How do dbt test results become quality signals in Prizm?
run_results.json is ingested, Prizm reads the test node results and creates quality signals for each test:- Passing test → contributes positively to the model’s quality score
- Warning test (severity: warn) → surfaces as a quality observation
- Failing test (severity: error) → creates a deterministic alert or issue on the model
Can failing dbt tests create Prizm issues automatically?
Can failing dbt tests create Prizm issues automatically?
run_results.json, and a link to the failed run.From the Tests tab on the dbt Jobs page, use the Create issue action on any failing test to create an issue manually.Where do I see dbt test results for a specific model?
Where do I see dbt test results for a specific model?
Connector Lifecycle
What happens if a dbt model is renamed or deleted?
What happens if a dbt model is renamed or deleted?
manifest.json against the previously ingested state:- Renamed: The old model asset is marked as deprecated; a new asset is created with the new name. Lineage history is preserved on the deprecated asset.
- Deleted: The model is marked as deprecated in the Prizm catalog. Deprecated assets are retained for historical lineage and audit purposes.
How often does Prizm sync metadata from dbt?
How often does Prizm sync metadata from dbt?
A dbt job run is not appearing in Prizm — how do I troubleshoot?
A dbt job run is not appearing in Prizm — how do I troubleshoot?
- dbt Cloud: Verify the webhook delivered successfully — check Account Settings → Webhooks → Delivery Log in dbt Cloud. If delivery failed, dbt retries up to 5 times.
- dbt Core: Verify
push-artifactsran successfully — check the command exit code and output. - Check Settings → Sources → Logs in Prizm for ingestion error details.
- Run
prizm-dbt doctor(dbt Core) to verify connectivity and artifact discovery. - Ensure the job is in the selected job list for the connector — unselected jobs are not ingested.
For connection errors and authentication issues, see the Troubleshooting page. For definitions of terms used in this FAQ, see the Glossary.