For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 Lineage

get

Get the lineage graph for an asset in the specified direction

Query parameters
asset_idintegerRequired

ID of the asset

asset_typestring · enumRequired

Type of the asset

Possible values:
directionstring · enumRequired

Direction of lineage to traverse

Possible values:
Responses
200

Successful Response

application/json
get/catalog/lineage
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 Manual Lineages On Object

get

List any manual lineages attached to an object in the specified direction

Query parameters
idintegerRequired

The ID of the object to list lineages for

typestring · enumRequired

The type of the object to list lineages for

Possible values:
object_isstring · enumRequired

Whether the object is the source or target of the lineage

Possible values:
Responses
200

Successful Response

application/json
idintegerRequired
get/catalog/lineage/manual_lineage
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 Manual Lineage

post

Create a manual lineage between two objects, returns the ID of the generated lineage

Body
Responses
200

Successful Response

application/json
integerOptional
post/catalog/lineage/manual_lineage
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
  }
}
1

Delete Manual Lineage

delete

Delete a manual lineage between two objects

Query parameters
source_idintegerRequired

The ID of the source object

source_typestring · enumRequired

The type of the source object

Possible values:
target_idintegerRequired

The ID of the target object

target_typestring · enumRequired

The type of the target object

Possible values:
Responses
200

Successful Response

application/json
anyOptional
delete/catalog/lineage/manual_lineage
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