← All extensions
Lineage banner

Lineage

ivyx

See where your data came from, with the stages between a dataset and the model it trained

Lineage

See where your data came from, with the stages between a dataset and the model it trained.

This hub collects nothing. It derives a directed graph from what a lineage engine already records, so a workspace that ran its pipeline last month has its history the moment this extension is installed. Install the DVC engine and this panel reads DVC; write another engine and it reads that, with no change here.

What you can do

  • See the pipeline — every stage with what it reads and what it writes.
  • See the data — one row per path, marked as source data or as something a stage wrote, with the engine's own digest for it.
  • Walk back from anything — click a path and the panel shows the stages between it and the source data it came from.
  • Walk back from a model versionlineage.trace takes a registered model and version, resolves the training run, and reports the data that run read.
  • Ask programmaticallylineage.graph returns the whole graph and lineage.trace the walk, both through the capability gateway.

What it does not do

It does not export. The format that matters here is OpenLineage, which Marquez, DataHub and Atlan already read, and the whole value of adopting it is that the shape belongs to that ecosystem rather than to this one. An export shipped before that decision would be a shape this fleet then owns forever, so it ships with the engine that defines it.

Where the direction comes from

The audit record already names what a call touched, as payload.subjects. It does not say which way the edges point: fs.readFile and fs.writeFile produce identical subject records, and fs.copy records its source and its destination the same way. So a graph drawn from that field would point half its edges backwards.

The direction lives with the capability that knows it. mlops.<engine>.lineage reports what each stage read and what it wrote, separately, with digests — and that answer reaches the audit trail as the record's output, which is why the history here is retroactive.

The engine contract

An engine is a set of declared capability ids. The hub finds it by reading the capability catalogue once; nothing is imported across extensions and nothing is registered by hand.

Id Required Meaning
mlops.<engine>.lineage yes what each covered stage read and wrote, with digests
mlops.<engine>.reveal no the engine's own panel

The full contract is punica-editor/docs/lineage-engines.md.

Requirements

A lineage engine. extension-mlops-dvc 1.5.2 or newer ships the DVC one and needs a workspace with a dvc.lock, which dvc repro writes.

Getting started

  1. Install this extension and a lineage engine.
  2. Run your pipeline once, so the engine has something to describe.
  3. Open Lineage from the activity bar and click any path to walk back.

License

MIT