@duckcodeailabs/dql-core 0.8.9 → 0.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lineage/builder.d.ts +6 -17
- package/dist/lineage/builder.d.ts.map +1 -1
- package/dist/lineage/builder.js +68 -83
- package/dist/lineage/builder.js.map +1 -1
- package/dist/lineage/index.d.ts +1 -1
- package/dist/lineage/index.d.ts.map +1 -1
- package/dist/lineage/index.js +1 -1
- package/dist/lineage/index.js.map +1 -1
- package/dist/lineage/lineage-graph.d.ts +2 -2
- package/dist/lineage/lineage-graph.d.ts.map +1 -1
- package/dist/lineage/query.d.ts +1 -42
- package/dist/lineage/query.d.ts.map +1 -1
- package/dist/lineage/query.js +95 -190
- package/dist/lineage/query.js.map +1 -1
- package/dist/manifest/builder.d.ts.map +1 -1
- package/dist/manifest/builder.js +72 -82
- package/dist/manifest/builder.js.map +1 -1
- package/dist/manifest/types.d.ts +6 -5
- package/dist/manifest/types.d.ts.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +3 -1
- package/dist/parser/parser.js.map +1 -1
- package/package.json +1 -1
|
@@ -32,17 +32,17 @@ export interface LineageDimensionInput {
|
|
|
32
32
|
name: string;
|
|
33
33
|
table: string;
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
export interface LineageBuilderOptions {
|
|
36
|
+
/** Known block names for implicit dependency resolution */
|
|
37
|
+
blockNames?: Set<string>;
|
|
38
|
+
dbtModels?: LineageDbtModelInput[];
|
|
39
|
+
dashboards?: LineageDashboardInput[];
|
|
40
|
+
}
|
|
36
41
|
export interface LineageDbtModelInput {
|
|
37
|
-
/** Table name (alias or model name) */
|
|
38
42
|
name: string;
|
|
39
|
-
/** dbt unique ID */
|
|
40
43
|
uniqueId: string;
|
|
41
|
-
/** Whether this is a dbt model (transformed) or source (raw) */
|
|
42
44
|
type: 'model' | 'source';
|
|
43
|
-
/** Names of upstream dbt models/sources this depends on */
|
|
44
45
|
dependsOn: string[];
|
|
45
|
-
/** Column metadata from dbt manifest */
|
|
46
46
|
columns?: Array<{
|
|
47
47
|
name: string;
|
|
48
48
|
type?: string;
|
|
@@ -53,22 +53,11 @@ export interface LineageDbtModelInput {
|
|
|
53
53
|
materialized?: string;
|
|
54
54
|
description?: string;
|
|
55
55
|
}
|
|
56
|
-
/** Dashboard/notebook input for lineage graph construction */
|
|
57
56
|
export interface LineageDashboardInput {
|
|
58
57
|
name: string;
|
|
59
|
-
/** Block names contained in this dashboard */
|
|
60
58
|
blocks: string[];
|
|
61
|
-
/** Chart names contained in this dashboard */
|
|
62
59
|
charts: string[];
|
|
63
60
|
}
|
|
64
|
-
export interface LineageBuilderOptions {
|
|
65
|
-
/** Known block names for implicit dependency resolution */
|
|
66
|
-
blockNames?: Set<string>;
|
|
67
|
-
/** dbt models/sources for DAG integration */
|
|
68
|
-
dbtModels?: LineageDbtModelInput[];
|
|
69
|
-
/** Dashboards/notebooks as container nodes */
|
|
70
|
-
dashboards?: LineageDashboardInput[];
|
|
71
|
-
}
|
|
72
61
|
/**
|
|
73
62
|
* Build a complete lineage graph from blocks and semantic definitions.
|
|
74
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/lineage/builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,yBAAyB,CAAC;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/lineage/builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,yBAAyB,CAAC;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,iBAAiB,EAAE,EAC3B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,GAAE,qBAA0B,GAClC,YAAY,CAqOd"}
|
package/dist/lineage/builder.js
CHANGED
|
@@ -14,47 +14,45 @@ export function buildLineageGraph(blocks, metrics, dimensions, options = {}) {
|
|
|
14
14
|
const graph = new LineageGraph();
|
|
15
15
|
const blockNames = options.blockNames ?? new Set(blocks.map((b) => b.name));
|
|
16
16
|
const materializedMap = new Map();
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
// Build dbt model lookup: table name → dbt node ID
|
|
20
|
-
const dbtModelMap = new Map();
|
|
21
|
-
for (const dbt of dbtModels) {
|
|
22
|
-
const nodeId = dbt.type === 'source' ? `dbt_source:${dbt.name}` : `dbt_model:${dbt.name}`;
|
|
23
|
-
dbtModelMap.set(dbt.name.toLowerCase(), nodeId);
|
|
24
|
-
}
|
|
17
|
+
const dbtNodeMap = new Map();
|
|
18
|
+
const dbtUniqueIdMap = new Map();
|
|
25
19
|
for (const block of blocks) {
|
|
26
20
|
materializedMap.set((block.materializedAs ?? block.name).toLowerCase(), block.name);
|
|
27
21
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
for (const dbtModel of options.dbtModels ?? []) {
|
|
23
|
+
const nodeId = `${dbtModel.type === 'model' ? 'dbt_model' : 'dbt_source'}:${dbtModel.name}`;
|
|
24
|
+
dbtNodeMap.set(dbtModel.name.toLowerCase(), nodeId);
|
|
25
|
+
dbtUniqueIdMap.set(dbtModel.uniqueId, nodeId);
|
|
31
26
|
graph.addNode({
|
|
32
27
|
id: nodeId,
|
|
33
|
-
type:
|
|
34
|
-
name:
|
|
35
|
-
columns: dbt.columns,
|
|
28
|
+
type: dbtModel.type === 'model' ? 'dbt_model' : 'dbt_source',
|
|
29
|
+
name: dbtModel.name,
|
|
36
30
|
metadata: {
|
|
37
|
-
uniqueId:
|
|
38
|
-
schema:
|
|
39
|
-
database:
|
|
40
|
-
materialized:
|
|
41
|
-
description:
|
|
31
|
+
uniqueId: dbtModel.uniqueId,
|
|
32
|
+
schema: dbtModel.schema,
|
|
33
|
+
database: dbtModel.database,
|
|
34
|
+
materialized: dbtModel.materialized,
|
|
35
|
+
description: dbtModel.description,
|
|
42
36
|
},
|
|
37
|
+
columns: dbtModel.columns,
|
|
43
38
|
});
|
|
44
39
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
if (
|
|
40
|
+
for (const dbtModel of options.dbtModels ?? []) {
|
|
41
|
+
const targetId = dbtUniqueIdMap.get(dbtModel.uniqueId);
|
|
42
|
+
if (!targetId)
|
|
48
43
|
continue;
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
for (const dependency of dbtModel.dependsOn) {
|
|
45
|
+
const sourceId = dbtUniqueIdMap.get(dependency);
|
|
46
|
+
if (!sourceId)
|
|
47
|
+
continue;
|
|
48
|
+
graph.addEdge({
|
|
49
|
+
source: sourceId,
|
|
50
|
+
target: targetId,
|
|
51
|
+
type: 'depends_on',
|
|
52
|
+
});
|
|
55
53
|
}
|
|
56
54
|
}
|
|
57
|
-
//
|
|
55
|
+
// 1. Add block nodes
|
|
58
56
|
for (const block of blocks) {
|
|
59
57
|
graph.addNode({
|
|
60
58
|
id: `block:${block.name}`,
|
|
@@ -69,7 +67,7 @@ export function buildLineageGraph(blocks, metrics, dimensions, options = {}) {
|
|
|
69
67
|
},
|
|
70
68
|
});
|
|
71
69
|
}
|
|
72
|
-
//
|
|
70
|
+
// 2. Add metric nodes
|
|
73
71
|
for (const metric of metrics) {
|
|
74
72
|
graph.addNode({
|
|
75
73
|
id: `metric:${metric.name}`,
|
|
@@ -78,29 +76,29 @@ export function buildLineageGraph(blocks, metrics, dimensions, options = {}) {
|
|
|
78
76
|
domain: metric.domain,
|
|
79
77
|
metadata: { type: metric.type },
|
|
80
78
|
});
|
|
81
|
-
// Metric → source table edge
|
|
82
|
-
const tableNodeId =
|
|
79
|
+
// Metric → source table edge
|
|
80
|
+
const tableNodeId = ensureTableNode(graph, metric.table, dbtNodeMap);
|
|
83
81
|
graph.addEdge({
|
|
84
82
|
source: tableNodeId,
|
|
85
83
|
target: `metric:${metric.name}`,
|
|
86
84
|
type: 'aggregates',
|
|
87
85
|
});
|
|
88
86
|
}
|
|
89
|
-
//
|
|
87
|
+
// 3. Add dimension nodes
|
|
90
88
|
for (const dim of dimensions) {
|
|
91
89
|
graph.addNode({
|
|
92
90
|
id: `dimension:${dim.name}`,
|
|
93
91
|
type: 'dimension',
|
|
94
92
|
name: dim.name,
|
|
95
93
|
});
|
|
96
|
-
const tableNodeId =
|
|
94
|
+
const tableNodeId = ensureTableNode(graph, dim.table, dbtNodeMap);
|
|
97
95
|
graph.addEdge({
|
|
98
96
|
source: tableNodeId,
|
|
99
97
|
target: `dimension:${dim.name}`,
|
|
100
98
|
type: 'reads_from',
|
|
101
99
|
});
|
|
102
100
|
}
|
|
103
|
-
//
|
|
101
|
+
// 4. Process each block's SQL for dependencies
|
|
104
102
|
for (const block of blocks) {
|
|
105
103
|
const blockNodeId = `block:${block.name}`;
|
|
106
104
|
const parseResult = extractTablesFromSql(block.sql);
|
|
@@ -115,22 +113,19 @@ export function buildLineageGraph(blocks, metrics, dimensions, options = {}) {
|
|
|
115
113
|
addCrossDomainEdgeIfNeeded(graph, `block:${ref}`, blockNodeId);
|
|
116
114
|
}
|
|
117
115
|
}
|
|
118
|
-
// SQL table references
|
|
116
|
+
// SQL table references
|
|
119
117
|
for (const table of parseResult.tables) {
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (dbtNodeId) {
|
|
118
|
+
const resolved = materializedMap.get(table.toLowerCase());
|
|
119
|
+
const dbtResolved = dbtNodeMap.get(normalizeTableName(table).toLowerCase());
|
|
120
|
+
if (dbtResolved) {
|
|
124
121
|
graph.addEdge({
|
|
125
|
-
source:
|
|
122
|
+
source: dbtResolved,
|
|
126
123
|
target: blockNodeId,
|
|
127
124
|
type: 'reads_from',
|
|
128
125
|
});
|
|
129
|
-
continue;
|
|
130
126
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (resolved && resolved !== block.name) {
|
|
127
|
+
else if (resolved && resolved !== block.name) {
|
|
128
|
+
// Table matches another block's materialized name
|
|
134
129
|
graph.addEdge({
|
|
135
130
|
source: `block:${resolved}`,
|
|
136
131
|
target: blockNodeId,
|
|
@@ -140,7 +135,7 @@ export function buildLineageGraph(blocks, metrics, dimensions, options = {}) {
|
|
|
140
135
|
}
|
|
141
136
|
else if (!resolved) {
|
|
142
137
|
// External table dependency
|
|
143
|
-
const tableNodeId = ensureTableNode(graph, table);
|
|
138
|
+
const tableNodeId = ensureTableNode(graph, table, dbtNodeMap);
|
|
144
139
|
graph.addEdge({
|
|
145
140
|
source: tableNodeId,
|
|
146
141
|
target: blockNodeId,
|
|
@@ -199,55 +194,45 @@ export function buildLineageGraph(blocks, metrics, dimensions, options = {}) {
|
|
|
199
194
|
type: 'visualizes',
|
|
200
195
|
});
|
|
201
196
|
}
|
|
197
|
+
// Certification is stored as node metadata (status + certifiedBy), not as an edge.
|
|
198
|
+
// Self-loops would confuse graph traversal without adding lineage value.
|
|
202
199
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
const dashNodeId = `dashboard:${dash.name}`;
|
|
200
|
+
for (const dashboard of options.dashboards ?? []) {
|
|
201
|
+
const dashboardId = `dashboard:${dashboard.name}`;
|
|
206
202
|
graph.addNode({
|
|
207
|
-
id:
|
|
203
|
+
id: dashboardId,
|
|
208
204
|
type: 'dashboard',
|
|
209
|
-
name:
|
|
205
|
+
name: dashboard.name,
|
|
210
206
|
});
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
207
|
+
for (const blockName of dashboard.blocks) {
|
|
208
|
+
if (!graph.getNode(`block:${blockName}`))
|
|
209
|
+
continue;
|
|
210
|
+
graph.addEdge({
|
|
211
|
+
source: dashboardId,
|
|
212
|
+
target: `block:${blockName}`,
|
|
213
|
+
type: 'contains',
|
|
214
|
+
});
|
|
220
215
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
}
|
|
216
|
+
for (const chartName of dashboard.charts) {
|
|
217
|
+
if (!graph.getNode(`chart:${chartName}`))
|
|
218
|
+
continue;
|
|
219
|
+
graph.addEdge({
|
|
220
|
+
source: dashboardId,
|
|
221
|
+
target: `chart:${chartName}`,
|
|
222
|
+
type: 'contains',
|
|
223
|
+
});
|
|
230
224
|
}
|
|
231
225
|
}
|
|
232
|
-
//
|
|
226
|
+
// 5. Add domain nodes and connect
|
|
233
227
|
addDomainNodes(graph);
|
|
234
228
|
return graph;
|
|
235
229
|
}
|
|
236
|
-
/**
|
|
237
|
-
* Check if a table name matches a dbt model/source; if so return that node ID.
|
|
238
|
-
* Otherwise fall back to creating a source_table node.
|
|
239
|
-
*/
|
|
240
|
-
function ensureTableOrDbtNode(graph, rawTableName, dbtModelMap) {
|
|
241
|
-
const normalized = normalizeTableName(rawTableName);
|
|
242
|
-
const dbtNodeId = dbtModelMap.get(normalized.toLowerCase());
|
|
243
|
-
if (dbtNodeId && graph.getNode(dbtNodeId)) {
|
|
244
|
-
return dbtNodeId;
|
|
245
|
-
}
|
|
246
|
-
return ensureTableNode(graph, rawTableName);
|
|
247
|
-
}
|
|
248
230
|
/** Ensure a source_table node exists and return its ID. */
|
|
249
|
-
function ensureTableNode(graph, rawTableName) {
|
|
231
|
+
function ensureTableNode(graph, rawTableName, dbtNodeMap) {
|
|
250
232
|
const tableName = normalizeTableName(rawTableName);
|
|
233
|
+
const dbtNodeId = dbtNodeMap?.get(tableName.toLowerCase());
|
|
234
|
+
if (dbtNodeId)
|
|
235
|
+
return dbtNodeId;
|
|
251
236
|
const nodeId = `table:${tableName}`;
|
|
252
237
|
if (!graph.getNode(nodeId)) {
|
|
253
238
|
graph.addNode({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/lineage/builder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/lineage/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/lineage/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export { extractTablesFromSql, type SqlParseResult, } from './sql-parser.js';
|
|
|
2
2
|
export { resolveDependencies, getUpstream, getDownstream, type BlockDependencyInfo, type DependencyResolutionResult, } from './dependency-resolver.js';
|
|
3
3
|
export { LineageGraph, type LineageNode, type LineageEdge, type LineageNodeType, type LineageEdgeType, type LineageGraphJSON, } from './lineage-graph.js';
|
|
4
4
|
export { buildLineageGraph, type LineageBlockInput, type LineageMetricInput, type LineageDimensionInput, type LineageDbtModelInput, type LineageDashboardInput, type LineageBuilderOptions, } from './builder.js';
|
|
5
|
-
export { queryLineage,
|
|
5
|
+
export { queryLineage, type LineageQuery, type LineageQueryResult, } from './query.js';
|
|
6
6
|
export { buildTrustChain, analyzeImpact, detectDomainFlows, getDomainTrustOverview, type TrustChain, type TrustChainNode, type ImpactAnalysis, type DomainImpact, type DomainFlow, } from './domain-lineage.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lineage/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lineage/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC"}
|
package/dist/lineage/index.js
CHANGED
|
@@ -3,6 +3,6 @@ export { extractTablesFromSql, } from './sql-parser.js';
|
|
|
3
3
|
export { resolveDependencies, getUpstream, getDownstream, } from './dependency-resolver.js';
|
|
4
4
|
export { LineageGraph, } from './lineage-graph.js';
|
|
5
5
|
export { buildLineageGraph, } from './builder.js';
|
|
6
|
-
export { queryLineage,
|
|
6
|
+
export { queryLineage, } from './query.js';
|
|
7
7
|
export { buildTrustChain, analyzeImpact, detectDomainFlows, getDomainTrustOverview, } from './domain-lineage.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lineage/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAE5F,OAAO,EACL,oBAAoB,GAErB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,GAMb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,GAOlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lineage/index.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAE5F,OAAO,EACL,oBAAoB,GAErB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,GAMb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,GAOlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,GAGb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GAMvB,MAAM,qBAAqB,CAAC"}
|
|
@@ -18,14 +18,14 @@ export interface LineageNode {
|
|
|
18
18
|
owner?: string;
|
|
19
19
|
/** Additional metadata */
|
|
20
20
|
metadata?: Record<string, unknown>;
|
|
21
|
-
/**
|
|
21
|
+
/** Optional table-level column metadata */
|
|
22
22
|
columns?: Array<{
|
|
23
23
|
name: string;
|
|
24
24
|
type?: string;
|
|
25
25
|
description?: string;
|
|
26
26
|
}>;
|
|
27
27
|
}
|
|
28
|
-
export type LineageEdgeType = 'reads_from' | 'feeds_into' | 'aggregates' | 'visualizes' | '
|
|
28
|
+
export type LineageEdgeType = 'reads_from' | 'feeds_into' | 'aggregates' | 'visualizes' | 'depends_on' | 'contains' | 'crosses_domain' | 'certified_by';
|
|
29
29
|
export interface LineageEdge {
|
|
30
30
|
source: string;
|
|
31
31
|
target: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineage-graph.d.ts","sourceRoot":"","sources":["../../src/lineage/lineage-graph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,WAAW,GACX,YAAY,GACZ,OAAO,GACP,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,WAAW,CAAC;AAEhB,MAAM,WAAW,WAAW;IAC1B,mFAAmF;IACnF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,yBAAyB,CAAC;IACrF,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"lineage-graph.d.ts","sourceRoot":"","sources":["../../src/lineage/lineage-graph.ts"],"names":[],"mappings":"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"}
|
package/dist/lineage/query.d.ts
CHANGED
|
@@ -1,60 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
* Lineage Query Engine — focused, searchable lineage views.
|
|
3
|
-
*
|
|
4
|
-
* Replaces the "show everything" approach with targeted subgraph queries:
|
|
5
|
-
* - Focus on a specific node and get its upstream/downstream chain
|
|
6
|
-
* - Search nodes by name across all types
|
|
7
|
-
* - Filter by type, domain, depth
|
|
8
|
-
*/
|
|
9
|
-
import { LineageGraph, type LineageNode, type LineageNodeType, type LineageGraphJSON } from './lineage-graph.js';
|
|
1
|
+
import { LineageGraph, type LineageGraphJSON, type LineageNode, type LineageNodeType } from './lineage-graph.js';
|
|
10
2
|
export interface LineageQuery {
|
|
11
|
-
/** Node name or ID to center the query on */
|
|
12
3
|
focus?: string;
|
|
13
|
-
/** Search by name (case-insensitive substring match) */
|
|
14
4
|
search?: string;
|
|
15
|
-
/** Filter by node types */
|
|
16
5
|
types?: LineageNodeType[];
|
|
17
|
-
/** Filter by domain */
|
|
18
6
|
domain?: string;
|
|
19
|
-
/** Max hops upstream from focal node (default: Infinity) */
|
|
20
7
|
upstreamDepth?: number;
|
|
21
|
-
/** Max hops downstream from focal node (default: Infinity) */
|
|
22
8
|
downstreamDepth?: number;
|
|
23
9
|
}
|
|
24
10
|
export interface LineageQueryResult {
|
|
25
|
-
/** Focused subgraph containing only relevant nodes and edges */
|
|
26
11
|
graph: LineageGraphJSON;
|
|
27
|
-
/** The focal node (if focus was specified and resolved) */
|
|
28
12
|
focalNode?: LineageNode;
|
|
29
|
-
/** Search matches with relevance scores (if search was specified) */
|
|
30
13
|
matches?: Array<{
|
|
31
14
|
node: LineageNode;
|
|
32
15
|
score: number;
|
|
33
16
|
}>;
|
|
34
17
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Execute a lineage query against the graph.
|
|
37
|
-
*
|
|
38
|
-
* Examples:
|
|
39
|
-
* queryLineage(graph, { focus: 'total_revenue' })
|
|
40
|
-
* → subgraph centered on metric:total_revenue with full upstream/downstream
|
|
41
|
-
*
|
|
42
|
-
* queryLineage(graph, { search: 'revenue' })
|
|
43
|
-
* → all nodes matching "revenue" with relevance scores
|
|
44
|
-
*
|
|
45
|
-
* queryLineage(graph, { focus: 'fct_orders', upstreamDepth: 2, downstreamDepth: 1 })
|
|
46
|
-
* → 2 hops upstream, 1 hop downstream from dbt_model:fct_orders
|
|
47
|
-
*
|
|
48
|
-
* queryLineage(graph, { domain: 'finance', types: ['metric', 'block'] })
|
|
49
|
-
* → all finance metrics and blocks with their immediate connections
|
|
50
|
-
*/
|
|
51
18
|
export declare function queryLineage(graph: LineageGraph, query: LineageQuery): LineageQueryResult;
|
|
52
|
-
/**
|
|
53
|
-
* Lightweight search — returns matching nodes without building a subgraph.
|
|
54
|
-
* Suitable for autocomplete / search-as-you-type.
|
|
55
|
-
*/
|
|
56
|
-
export declare function searchNodes(graph: LineageGraph, searchTerm: string, limit?: number): Array<{
|
|
57
|
-
node: LineageNode;
|
|
58
|
-
score: number;
|
|
59
|
-
}>;
|
|
60
19
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/lineage/query.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/lineage/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD;AAcD,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAoCzF"}
|