Skip to main content

Lineage

The Lineage resource (client.lineage) provides methods for querying and managing data lineage relationships, including cross-space connections and impact analysis.

Methods

get(space_slug, product_slug)

Get lineage information for a product.

ParameterTypeDescription
space_slugstrSpace identifier
product_slugstrProduct slug

Returns: LineageInfo with upstream and downstream lists

lineage = await client.lineage.get("analytics", "customer-events")
for product in lineage.upstream:
print(f" ← {product.name} (space: {product.space_slug})")

add_upstream(space_slug, product_slug, upstream_id)

Add a single upstream dependency. Saved bidirectionally.

ParameterTypeDescription
upstream_idUUIDUpstream product UUID

Returns: Product

await client.lineage.add_upstream("analytics", "customer-events", raw_events_id)

add_downstream(space_slug, product_slug, downstream_id)

Add a single downstream dependency. Saved bidirectionally.

Returns: Product


set_lineage(space_slug, product_id, *, upstream_ids=, downstream_ids=)

Replace the entire lineage for a product.

ParameterTypeDescription
upstream_idslist[UUID] | NoneUpstream dependency product UUIDs
downstream_idslist[UUID] | NoneDownstream dependency product UUIDs

Returns: Product

await client.lineage.set_lineage(
"analytics",
product_id,
upstream_ids=[raw_events_id, user_profiles_id],
)

impact_analysis(space_slug, product_id, *, depth=3)

Analyze downstream impact of changes to a product, including cross-space consumers.

ParameterTypeDefaultDescription
depthint3Max hop depth

Returns: ImpactAnalysis with impacted_products, impacted_contracts, total_impacted

impact = await client.lineage.impact_analysis("analytics", product_id)
print(f"Impacted: {impact.total_impacted} products")
for p in impact.impacted_products:
print(f" → {p.name} (owner: {p.owner.name})")

graph(space_slug, *, environment=, include_cross_space=True)

Get the full lineage graph for a space.

ParameterTypeDefaultDescription
environmentstr | NoneNoneFilter by environment
include_cross_spaceboolTrueInclude cross-space connections

Returns: LineageGraph with nodes and edges