Celiq
v0.12Open app โ†—
Docs/Context Studio/Lineage

Lineage

Trace what a semantic node depends on and what depends on it, using the graph-based Lineage browser in Context Studio.

LuminaryWeaverUpdated June 2026 ยท 5 min read
โœฆ
In this section
Part of Celiq's semantic layer platform. Connect your warehouse, model your data once, query it everywhere.
๐Ÿ’ก
Tip
What it is โ€” A graph-based lineage browser that traces the upstream dependencies and downstream dependents of any semantic node.
When to use it โ€” Before you change or remove a node, or when you need to understand where a node's data comes from and where it flows.
Where to find it โ€” Context Studio โ†’ Governance group โ†’ Lineage tab.
Who can use it โ€” Weaver and Luminary.

Lineage answers two questions about a node: what does this depend on? and what depends on this? It reads the semantic knowledge graph and walks the edges in both directions, so you can see the full chain of relationships, not just the immediate neighbors.

This is the graph-based lineage browser that lives inside Context Studio. It is distinct from the lineage view in Forge, which focuses on a single metric's authoring context. Use Lineage here when you want a workspace-wide, node-to-node dependency picture.

Overview

When you pick a node and select View lineage, Context Studio walks the knowledge graph from that node and returns two lists:

  • Upstream dependencies โ€” the objects this node depends on (edges pointing into the node).
  • Downstream dependents โ€” the objects that depend on this node (edges pointing out from the node).

Each result row shows the related object's object type (as a badge), its object id, and the relationship type that connects it. Rows are indented by their level, so you can read how many hops away each dependency sits. The walk follows the graph up to several hops, so an indirect dependency two or three steps away still appears, nested under the chain that leads to it.

When to use it

  • Before editing a node โ€” check the downstream dependents so you know which dashboards, topics, or analysts could be affected by your change.
  • Before deleting a node โ€” confirm nothing important depends on it.
  • When tracing data provenance โ€” follow the upstream chain to see which sources and nodes a metric ultimately draws from.
  • When debugging a surprising result โ€” walk the graph to confirm a node is wired to the dependencies you expect.

If you want a count-based summary of consumers (dashboards, alerts, Orion answers, topics, analysts) rather than the raw graph, use Impact Analysis instead โ€” it is the companion tab in the same Governance group.

Concepts

TermMeaning
NodeA semantic object in your model (for example, a domain node defined in CML). You pick one node as the starting point for the lineage walk.
Upstream dependencyAn object the selected node depends on. These are the inbound edges โ€” the things that feed the node.
Downstream dependentAn object that depends on the selected node. These are the outbound edges โ€” the things the node feeds.
Object typeThe kind of related object on each row, shown as a badge (for example a reveal, topic, analyst, decision, prism, or mosaic).
Relationship typeThe label on the graph edge that explains how two objects are connected.
LevelHow many hops the related object sits from the node you selected. Level 1 is a direct neighbor; higher levels are indirect and are shown indented.
Knowledge graphThe set of edges between semantic objects that Lineage walks. See Knowledge Graph for how those edges are built.

Getting started

You need a workspace with at least one semantic node, and the Weaver or Luminary role to open Context Studio's governance tabs.

1

Open Context Studio

Navigate to Context Studio from the main navigation.

2

Open the Lineage tab

In the left navigation, find the Governance group and select Lineage.

3

Confirm your nodes loaded

The Select node dropdown is populated from the nodes in your workspace. If it is empty, you have no nodes yet โ€” define one in Forge first.

Step-by-step

1

Select a node

Open the Select node dropdown and choose the node whose lineage you want to trace. The list is sorted by node name.

2

View the lineage

Click View lineage. The button shows Loadingโ€ฆ while the graph walk runs, then renders the results. The button stays disabled until you have picked a node.

3

Read the upstream dependencies

The Upstream dependencies section lists everything the node depends on. Each row shows the object-type badge, the object id, and (where present) the relationship type. A left-pointing arrow marks the direction.

4

Read the downstream dependents

The Downstream dependents section lists everything that depends on the node, marked with a right-pointing arrow. Use this list to gauge the blast radius of a change.

5

Follow the indentation

Within each section, deeper rows are indented. A level-2 row nested under a level-1 row means the dependency is two hops away, reached through the row above it.

Examples

Suppose you want to understand the lineage of a node called orders.

  1. In the Lineage tab, pick orders from the Select node dropdown.
  2. Click View lineage.

A typical result looks like this:

Upstream dependencies
  โ†  [node]    customers          derived_from
  โ†  [reveal]  net_revenue        computed_from

Downstream dependents
  โ†’  [reveal]  total_orders       references
  โ†’  [topic]   Sales Performance  uses
      โ†’  [analyst]  Weekly Sales Brief   uses
  โ†’  [mosaic]  Executive Dashboard  pins

Here orders depends on the customers node and the net_revenue reveal upstream. Downstream, the total_orders reveal and the Sales Performance topic both depend on it directly; the Weekly Sales Brief analyst depends on it indirectly through that topic, which is why it is indented one level deeper.

The underlying request the tab makes is:

GET /api/context/lineage/node/<node-id>

It returns an upstream list and a downstream list; each item carries object_type, object_id, relationship_type, and level.

Best practices

  • Check downstream before any destructive change. Renames and deletes ripple outward โ€” the downstream list shows you exactly what to revalidate.
  • Trace upstream to verify provenance. If a metric looks wrong, walk its upstream chain to confirm it draws from the sources you intend.
  • Pair Lineage with Impact Analysis. Lineage gives you the node-by-node chain; Impact Analysis gives you the rolled-up counts of affected dashboards, alerts, and Orion answers. Read both before a risky change.
  • Keep the graph current. Lineage is only as complete as the edges in the knowledge graph. If a relationship is missing, see Knowledge Graph to understand how edges are generated.

Tips

๐Ÿ’ก
Tip

The arrows tell you the direction at a glance: โ† points back to upstream dependencies (what feeds the node) and โ†’ points forward to downstream dependents (what the node feeds). Read indentation as distance โ€” deeper rows are farther from the node you selected.

Common mistakes

โš ๏ธ
Warning
  • Confusing upstream and downstream. Upstream is what the node depends on; downstream is what depends on the node. Deleting a node breaks its downstream dependents, not its upstream dependencies.
  • Assuming an empty list means no relationships exist. A section showing None found means no edges of that direction are recorded in the graph for this node โ€” it does not prove nothing uses the node in reality. Confirm the Knowledge Graph is populated.
  • Forgetting indirect dependents. The walk follows multiple hops, so deeply indented rows are still affected by your change even though they are not direct neighbors.

Troubleshooting

SymptomCauseFix
The Select node dropdown only shows "Choose a nodeโ€ฆ"The workspace has no nodes, so the node list came back empty.Define a node in Forge, then reopen the Lineage tab.
View lineage stays greyed outNo node is selected โ€” the button is disabled until you pick one.Choose a node from the dropdown first.
Both sections show None foundThe selected node has no edges recorded in the knowledge graph.Check the Knowledge Graph to confirm edges have been generated for this node.
A dependency you expect is missingThe relationship is not (yet) an edge in the graph.Verify the relationship exists in the model and that the graph has been built; see Knowledge Graph.
The lineage looks stale after a model changeThe graph edges had not refreshed when you ran the walk.Re-run View lineage after the graph updates.