Appearance
Lineage API
6 operations. Paths are relative to the API host (http://localhost:5080 in local development). Every operation accepts an OIDC bearer token (Authorization: Bearer …) or a workspace API key (X-Api-Key: keel_live_…); errors are RFC 9457 Problem Details with a code (error codes). Permissions: matrix.
| Method | Path | Summary |
|---|---|---|
| POST | /api/v1/lineage/openlineage | Ingest an OpenLineage RunEvent (inputs, outputs, columnLineage facet). The workspace is the API key's, or ?workspaceId= for users. |
| GET | /api/v1/workspaces/{workspaceId}/lineage | Column-level lineage around an asset (docs/02 §6 reference): nodes with DQ status, edges, consumers. direction=up|down|both, depth 1–10. |
| POST | /api/v1/workspaces/{workspaceId}/lineage:rebuild | Queue a lineage rebuild (it also runs after every release and scan). |
| POST | /api/v1/workspaces/{workspaceId}/lineage/dbt | Import a dbt manifest.json: model dependencies become dataset-level lineage, mapped onto scanned tables. |
| GET | /api/v1/workspaces/{workspaceId}/lineage/impact | Everything downstream of an asset: model objects, releases, exports and serving consumers with last-used dates. |
| GET | /api/v1/workspaces/{workspaceId}/lineage/scopes | Lineage sources (models, view definitions, OpenLineage jobs, dbt projects) with edge counts and parser warnings. |
IngestOpenLineageEvent
http
POST /api/v1/lineage/openlineageIngest an OpenLineage RunEvent (inputs, outputs, columnLineage facet). The workspace is the API key's, or ?workspaceId= for users.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | query | uuid | no |
Request body (application/json): JsonElement
| Status | Description | Body |
|---|---|---|
| 200 | OK | LineageIngestedDto |
Response 200: LineageIngestedDto
| Field | Type | Notes |
|---|---|---|
edges | int32 | |
mappedDatasets | int32 | |
scope | string | |
unmapped | string[] | |
warnings | string[] |
GetLineage
http
GET /api/v1/workspaces/{workspaceId}/lineageColumn-level lineage around an asset (docs/02 §6 reference): nodes with DQ status, edges, consumers. direction=up|down|both, depth 1–10.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
assetRef | query | string | yes | |
direction | query | string | no | |
depth | query | int32 | no |
| Status | Description | Body |
|---|---|---|
| 200 | OK | LineageGraphDto |
Response 200: LineageGraphDto
| Field | Type | Notes |
|---|---|---|
depth | int32 | |
direction | string | |
edges | LineageEdgeDto[] | |
nodes | LineageNodeDto[] | |
notes | string[] | |
root | string | |
rootKind | LineageNodeKind | One of Table, View, Column, Entity, Dimension, Measure, Metric, Release, Export, Consumer, ExternalDataset, ExternalColumn |
truncated | boolean |
RebuildLineage
http
POST /api/v1/workspaces/{workspaceId}/lineage:rebuildQueue a lineage rebuild (it also runs after every release and scan).
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes |
Request body (application/json): RebuildLineageRequest?
| Status | Description | Body |
|---|---|---|
| 202 | Accepted | LineageRebuildQueuedDto |
Response 202: LineageRebuildQueuedDto
| Field | Type | Notes |
|---|---|---|
jobId | uuid |
ImportDbtManifest
http
POST /api/v1/workspaces/{workspaceId}/lineage/dbtImport a dbt manifest.json: model dependencies become dataset-level lineage, mapped onto scanned tables.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes |
Request body (application/json): JsonElement
| Status | Description | Body |
|---|---|---|
| 200 | OK | LineageIngestedDto |
Response 200: LineageIngestedDto
| Field | Type | Notes |
|---|---|---|
edges | int32 | |
mappedDatasets | int32 | |
scope | string | |
unmapped | string[] | |
warnings | string[] |
GetLineageImpact
http
GET /api/v1/workspaces/{workspaceId}/lineage/impactEverything downstream of an asset: model objects, releases, exports and serving consumers with last-used dates.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
assetRef | query | string | yes |
| Status | Description | Body |
|---|---|---|
| 200 | OK | ImpactDto |
Response 200: ImpactDto
| Field | Type | Notes |
|---|---|---|
assetRef | string | |
assets | ImpactedAssetDto[] | |
consumers | ImpactConsumerDto[] | |
exports | ImpactConsumerDto[] | |
kind | LineageNodeKind | One of Table, View, Column, Entity, Dimension, Measure, Metric, Release, Export, Consumer, ExternalDataset, ExternalColumn |
label | string | |
notes | string[] | |
releases | ImpactConsumerDto[] |
ListLineageScopes
http
GET /api/v1/workspaces/{workspaceId}/lineage/scopesLineage sources (models, view definitions, OpenLineage jobs, dbt projects) with edge counts and parser warnings.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes |
| Status | Description | Body |
|---|---|---|
| 200 | OK | LineageScopeDto[] |