Lineage
The Lineage API allows you to track and manage data lineage relationships between assets in your Decube organization. Use these endpoints to retrieve lineage graphs, create, and maintain manual lineage connections, supporting data governance and impact analysis across your data ecosystem.
Get Lineage
Retrieve the full lineage graph for a given asset in a single direction — either upstream (sources that feed into it) or downstream (assets it feeds into). The response contains two lists: nodes, which are the unique assets in the graph including the queried asset itself, and relationships, which are the connections between them. Both top-level and column-level relationships are included.
Each relationship carries a data array describing the lineage sub-type — for example, whether the connection comes from a SQL transformation, a BI tool, an ETL job, or a manually created link. Use the direction parameter to walk the graph one direction at a time.
Get the lineage graph for an asset in the specified direction
ID of the asset
Type of the asset
Direction of lineage to traverse
Successful Response
Validation Error
GET /api/v1/data/catalog/lineage?asset_id=1&asset_type=dataset&direction=upstream HTTP/1.1
Host: connect.<REGION>.decube.io
Accept: */*
{
"nodes": [
{
"id": 1,
"type": "dataset",
"columns": [
{
"type": "text",
"id": 1
}
]
}
],
"relationships": [
{
"from_id": 1,
"from_type": "dataset",
"to_id": 1,
"to_type": "dataset",
"from_parent_id": 1,
"from_parent_type": "dataset",
"to_parent_id": 1,
"to_parent_type": "dataset",
"data": [
{
"type": "foreign_key"
}
]
}
]
}Manual Lineage
List any manual lineages attached to an object in the specified direction
The ID of the object to list lineages for
The type of the object to list lineages for
Whether the object is the source or target of the lineage
Successful Response
Validation Error
GET /api/v1/data/catalog/lineage/manual_lineage?id=1&type=dataset&object_is=source HTTP/1.1
Host: connect.<REGION>.decube.io
Accept: */*
[
{
"id": 1,
"source": {
"type": "text",
"name": "text",
"id": 1,
"subtype": "bigquery",
"qual_id": "text",
"icon": {
"type": "text",
"icon": "airbyte"
}
},
"target": {
"type": "text",
"name": "text",
"id": 1,
"subtype": "bigquery",
"qual_id": "text",
"icon": {
"type": "text",
"icon": "airbyte"
}
},
"data_job": {
"type": "text",
"name": "text",
"id": 1,
"subtype": "bigquery",
"qual_id": "text",
"icon": {
"type": "text",
"icon": "airbyte"
}
}
}
]Create a manual lineage between two objects, returns the ID of the generated lineage
Successful Response
Validation Error
POST /api/v1/data/catalog/lineage/manual_lineage HTTP/1.1
Host: connect.<REGION>.decube.io
Content-Type: application/json
Accept: */*
Content-Length: 105
{
"source": {
"id": 1,
"type": "dataset"
},
"target": {
"id": 1,
"type": "dataset"
},
"data_job": {
"type": "text",
"id": 1
}
}1Delete a manual lineage between two objects
The ID of the source object
The type of the source object
The ID of the target object
The type of the target object
Successful Response
Validation Error
DELETE /api/v1/data/catalog/lineage/manual_lineage?source_id=1&source_type=dataset&target_id=1&target_type=dataset HTTP/1.1
Host: connect.<REGION>.decube.io
Accept: */*
No content
Last updated