Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

feat(dbt): add ingest_dbt_manifest tool for Model/Source nodes and DEPENDS_ON lineage#583

Open
alexisperinger-ux wants to merge 3 commits into
DeusData:main from
alexisperinger-ux:feat/dbt-manifest-ingest
Open

feat(dbt): add ingest_dbt_manifest tool for Model/Source nodes and DEPENDS_ON lineage #583
alexisperinger-ux wants to merge 3 commits into
DeusData:main from
alexisperinger-ux:feat/dbt-manifest-ingest

Conversation

@alexisperinger-ux

@alexisperinger-ux alexisperinger-ux commented Jun 23, 2026
edited
Loading

Copy link
Copy Markdown
Contributor

Summary

dbt computes a resolved dependency graph into target/manifest.json, but it was never ingested, so a project's model and source lineage stayed invisible to the index even though dbt had already calculated it. This adds an opt-in MCP tool ingest_dbt_manifest {project, manifest_path}:

  • model / seed / snapshot become Model / Seed / Snapshot nodes; source becomes a Source node, each keyed by dbt unique_id.
  • Each node's depends_on.nodes becomes a DEPENDS_ON edge (model-to-model and model-to-source).
  • test and analysis resources are skipped, so the graph keeps only lineage-bearing nodes.

It runs after index_repository against an existing store, so it augments rather than fabricates a graph, and is independent of index mode.

No schema change: reuses cbm_store_upsert_node / cbm_store_insert_edge and the existing DEPENDS_ON edge type.

Tests: tool_ingest_dbt_manifest_issue576 in tests/test_mcp.c, asserting 5 models + 2 sources + 5 DEPENDS_ON edges from a fixture manifest, with the test node skipped.

Fixes #576.

Related PRs

This is one of three PRs that split the SQL + dbt graph-indexing work to keep each under the one-issue-per-PR contributing rule. They share the same extraction and registry plumbing, so they are one logical change reviewed as a set:

  • #582 : SQL DDL, first-class Table / View nodes + FROM/JOIN lineage (#574).
  • #584 : dbt Jinja from raw .sql, Model / Macro nodes + ref() / source() lineage (#575).
  • #583 (this PR): dbt manifest ingestion, Model / Source nodes + DEPENDS_ON lineage (#576).

...PENDS_ON lineage
Signed-off-by: alexisperinger-ux <alexis.peringer@iss-stoxx.com>
(cherry picked from commit e6a7493cb14306533f0a15f44b868e92145ca3e5)
Signed-off-by: alexisperinger-ux <alexis.peringer@iss-stoxx.com>
Signed-off-by: alexisperinger-ux <alexis.peringer@iss-stoxx.com>
(cherry picked from commit f96cc3966f30d135ef389d59c8ff16c59d656e0d)
Signed-off-by: alexisperinger-ux <alexis.peringer@iss-stoxx.com>
Signed-off-by: alexisperinger-ux <alexis.peringer@iss-stoxx.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Ingest dbt manifest.json into Model/Source nodes + DEPENDS_ON lineage

1 participant

AltStyle によって変換されたページ (->オリジナル) /