@duckcodeailabs/dql-openlineage 1.5.2 → 1.6.2

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/README.md CHANGED
@@ -55,3 +55,76 @@ surface to end users. Wrap-mode re-throws *handler* errors after emitting
55
55
 
56
56
  Marquez · DataHub · Atlan · Monte Carlo — anything that speaks the OL spec.
57
57
  See [docs/architecture/openlineage.md](../../docs/architecture/openlineage.md).
58
+
59
+ ## Project snapshot from a compiled manifest
60
+
61
+ Phase 3.2 of the OSS plan: hydrate a Marquez (or any OL receiver) with the
62
+ full lineage graph of a DQL project in one pass — dbt sources → dbt models →
63
+ DataLex contracts → DQL blocks → apps.
64
+
65
+ ```ts
66
+ import { buildManifest } from '@duckcodeailabs/dql-core';
67
+ import { createEmitter, emitProjectSnapshot } from '@duckcodeailabs/dql-openlineage';
68
+
69
+ const manifest = buildManifest({ projectRoot: '.' });
70
+
71
+ const emitter = createEmitter({
72
+ url: process.env.OPENLINEAGE_URL, // http://marquez.local:5000/api/v1/lineage
73
+ namespace: 'jaffle-shop',
74
+ });
75
+
76
+ const { emitted } = await emitProjectSnapshot(emitter, manifest);
77
+ console.log(`Emitted ${emitted} OpenLineage events.`);
78
+ ```
79
+
80
+ What `emitProjectSnapshot` does:
81
+
82
+ - Walks every certified block in the manifest (filter via `blockStatuses`).
83
+ - Emits a `START` then `COMPLETE` event per block, sharing one run id.
84
+ - Marks the block's table dependencies, ref dependencies, and any
85
+ `datalex_contract` reference as `inputs`.
86
+ - Marks the block itself as the `output`, attaching:
87
+ - a **schema** facet (one entry per output column from the v2.4
88
+ column-lineage pipeline)
89
+ - a **columnLineage** facet that points each output column at the
90
+ upstream `dbt.<model>` field it derives from
91
+ - **documentation** + **ownership** job facets when the block has them
92
+
93
+ Dataset names use a stable convention so receivers can join graphs across
94
+ runs:
95
+
96
+ | artifact | dataset name |
97
+ |---|---|
98
+ | dbt model | `dbt.<model_name>` |
99
+ | DataLex contract | `datalex.<domain>.<Entity>.<contract_name>` (version stripped — Marquez/DataHub diff version on the lineage facets) |
100
+ | DQL block | `dql.block.<snake_case_name>` |
101
+
102
+ Use `buildEventsFromManifest(manifest, options)` if you need the events as
103
+ an array (tests, audit logs, custom transports).
104
+
105
+ ### Marquez quickstart
106
+
107
+ ```bash
108
+ git clone https://github.com/MarquezProject/marquez.git
109
+ cd marquez && ./docker/up.sh
110
+ ```
111
+
112
+ Then in your DQL project:
113
+
114
+ ```bash
115
+ export OPENLINEAGE_URL=http://localhost:5000/api/v1/lineage
116
+ export OPENLINEAGE_NAMESPACE=jaffle-shop
117
+ node -e "
118
+ import('@duckcodeailabs/dql-core').then(async ({ buildManifest }) => {
119
+ const { createEmitter, emitProjectSnapshot } = await import('@duckcodeailabs/dql-openlineage');
120
+ const manifest = buildManifest({ projectRoot: '.' });
121
+ const emitter = createEmitter(); // picks up OPENLINEAGE_URL from env
122
+ const { emitted } = await emitProjectSnapshot(emitter, manifest);
123
+ console.log('Emitted', emitted, 'events.');
124
+ });
125
+ "
126
+ ```
127
+
128
+ Open `http://localhost:3000` (Marquez UI) and you should see your DQL blocks
129
+ with lineage edges into the dbt models they read from and the DataLex
130
+ contracts they implement.
package/dist/index.d.ts CHANGED
@@ -52,4 +52,5 @@ export declare class OpenLineageEmitter {
52
52
  }, handler: () => Promise<T> | T): Promise<T>;
53
53
  }
54
54
  export declare function createEmitter(cfg?: EmitterConfig): OpenLineageEmitter;
55
+ export { buildEventsFromManifest, datasetNames, emitProjectSnapshot, jobNames, type BuildEventsOptions, type ManifestBlockProjection, type ManifestDataLexContractProjection, type ManifestDbtModelProjection, type ManifestProjection, } from './manifest-events.js';
55
56
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAErB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,QAAQ,CAClE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC,CACrD,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC,CAW3C;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC;IAE5D,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B9E;;;;OAIG;IACG,IAAI,CAAC,CAAC,EACV,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,MAAM,EACb,EAAE,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;KAAE,EAC7D,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC;CAYd;AAED,wBAAgB,aAAa,CAAC,GAAG,GAAE,aAAkB,GAAG,kBAAkB,CAEzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAErB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,QAAQ,CAClE,IAAI,CAAC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,WAAW,CAAC,CACrD,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,SAAS,CAAC,CAW3C;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC;IAE5D,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B9E;;;;OAIG;IACG,IAAI,CAAC,CAAC,EACV,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,MAAM,EACb,EAAE,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;KAAE,EAC7D,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC;CAYd;AAED,wBAAgB,aAAa,CAAC,GAAG,GAAE,aAAkB,GAAG,kBAAkB,CAEzE;AAED,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iCAAiC,EACtC,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -82,4 +82,5 @@ export class OpenLineageEmitter {
82
82
  export function createEmitter(cfg = {}) {
83
83
  return new OpenLineageEmitter(resolveConfig(cfg));
84
84
  }
85
+ export { buildEventsFromManifest, datasetNames, emitProjectSnapshot, jobNames, } from './manifest-events.js';
85
86
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Build OpenLineage events from a compiled DQL manifest.
3
+ *
4
+ * Turns a `dql compile` artifact into a START/COMPLETE event series that
5
+ * hydrates a Marquez / DataHub / Atlan / Monte Carlo backend with the
6
+ * project's lineage graph: dbt sources → dbt models → DataLex contracts →
7
+ * DQL blocks → apps.
8
+ *
9
+ * Use {@link buildEventsFromManifest} for tests / inspection (returns a
10
+ * pure array of events) and {@link emitProjectSnapshot} to actually POST
11
+ * to the configured backend.
12
+ */
13
+ import type { LineageEvent, OpenLineageEmitter } from './index.js';
14
+ /**
15
+ * Subset of `@duckcodeailabs/dql-core` `DQLManifest` consumed here. Kept
16
+ * structural to avoid a circular package dep — dql-openlineage stays
17
+ * dependency-free.
18
+ */
19
+ export interface ManifestProjection {
20
+ blocks?: Record<string, ManifestBlockProjection>;
21
+ /** Optional dbt model index, when the manifest exposes one. */
22
+ dbtModels?: Record<string, ManifestDbtModelProjection>;
23
+ /** Optional DataLex contracts surface (forwarded by the manifest builder). */
24
+ datalexContracts?: ManifestDataLexContractProjection[];
25
+ }
26
+ export interface ManifestBlockProjection {
27
+ name: string;
28
+ status?: string;
29
+ filePath?: string;
30
+ domain?: string;
31
+ owner?: string;
32
+ blockType?: string;
33
+ description?: string;
34
+ /** Tables the block reads from (output of the lineage table extractor). */
35
+ tableDependencies?: string[];
36
+ /** Block-to-block ref() edges. */
37
+ refDependencies?: string[];
38
+ /** Optional reference to a DataLex contract id. */
39
+ datalexContract?: string;
40
+ /** Column-level outputs from the v2.4 column-lineage pipeline. */
41
+ outputs?: Array<{
42
+ name: string;
43
+ isAggregate?: boolean;
44
+ aggregateFn?: string;
45
+ sources: Array<{
46
+ table: string;
47
+ column: string;
48
+ }>;
49
+ unresolved?: boolean;
50
+ }>;
51
+ }
52
+ export interface ManifestDbtModelProjection {
53
+ name: string;
54
+ schema?: string;
55
+ database?: string;
56
+ }
57
+ export interface ManifestDataLexContractProjection {
58
+ id: string;
59
+ domain?: string;
60
+ entity?: string;
61
+ version?: number;
62
+ }
63
+ export interface BuildEventsOptions {
64
+ /** OpenLineage namespace; defaults to `dql`. Producer-side default. */
65
+ namespace?: string;
66
+ /** ISO-8601 timestamp; defaults to `new Date().toISOString()`. */
67
+ eventTime?: string;
68
+ /**
69
+ * Run id supplier. Defaults to a per-event UUID. Tests pass a counter
70
+ * so output is deterministic.
71
+ */
72
+ newRunId?: () => string;
73
+ /** Filter blocks by status; defaults to ['certified']. */
74
+ blockStatuses?: string[];
75
+ }
76
+ /** OpenLineage dataset name conventions for DQL artifacts. */
77
+ export declare const datasetNames: {
78
+ dbtModel(modelName: string): string;
79
+ dataLexContract(contractId: string): string;
80
+ dqlBlock(blockName: string): string;
81
+ };
82
+ /** OpenLineage job name conventions. */
83
+ export declare const jobNames: {
84
+ blockRun(blockName: string): string;
85
+ };
86
+ export declare function buildEventsFromManifest(manifest: ManifestProjection, options?: BuildEventsOptions): LineageEvent[];
87
+ /**
88
+ * Emit a complete project snapshot through the supplied emitter. Each
89
+ * certified block produces a START / COMPLETE pair so a backend like
90
+ * Marquez can reconstruct the full lineage graph in one pass.
91
+ */
92
+ export declare function emitProjectSnapshot(emitter: OpenLineageEmitter, manifest: ManifestProjection, options?: BuildEventsOptions): Promise<{
93
+ emitted: number;
94
+ }>;
95
+ //# sourceMappingURL=manifest-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-events.d.ts","sourceRoot":"","sources":["../src/manifest-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAkB,YAAY,EAAc,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE/F;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACjD,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACvD,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,iCAAiC,EAAE,CAAC;CACxD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClD,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,8DAA8D;AAC9D,eAAO,MAAM,YAAY;wBACH,MAAM,GAAG,MAAM;gCAGP,MAAM,GAAG,MAAM;wBAGvB,MAAM,GAAG,MAAM;CAGpC,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,QAAQ;wBACC,MAAM,GAAG,MAAM;CAGpC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,GAAE,kBAAuB,GAC/B,YAAY,EAAE,CAyBhB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAa9B"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Build OpenLineage events from a compiled DQL manifest.
3
+ *
4
+ * Turns a `dql compile` artifact into a START/COMPLETE event series that
5
+ * hydrates a Marquez / DataHub / Atlan / Monte Carlo backend with the
6
+ * project's lineage graph: dbt sources → dbt models → DataLex contracts →
7
+ * DQL blocks → apps.
8
+ *
9
+ * Use {@link buildEventsFromManifest} for tests / inspection (returns a
10
+ * pure array of events) and {@link emitProjectSnapshot} to actually POST
11
+ * to the configured backend.
12
+ */
13
+ import { randomUUID } from 'node:crypto';
14
+ /** OpenLineage dataset name conventions for DQL artifacts. */
15
+ export const datasetNames = {
16
+ dbtModel(modelName) {
17
+ return `dbt.${modelName}`;
18
+ },
19
+ dataLexContract(contractId) {
20
+ return `datalex.${contractId}`;
21
+ },
22
+ dqlBlock(blockName) {
23
+ return `dql.block.${blockName.replace(/\s+/g, '_').toLowerCase()}`;
24
+ },
25
+ };
26
+ /** OpenLineage job name conventions. */
27
+ export const jobNames = {
28
+ blockRun(blockName) {
29
+ return `dql.block_run.${blockName.replace(/\s+/g, '_').toLowerCase()}`;
30
+ },
31
+ };
32
+ export function buildEventsFromManifest(manifest, options = {}) {
33
+ const namespace = options.namespace ?? 'dql';
34
+ const eventTime = options.eventTime ?? new Date().toISOString();
35
+ const allowedStatuses = new Set(options.blockStatuses ?? ['certified']);
36
+ const newRunId = options.newRunId ?? randomUUID;
37
+ const events = [];
38
+ const blocks = manifest.blocks ? Object.values(manifest.blocks) : [];
39
+ for (const block of blocks) {
40
+ if (block.status && !allowedStatuses.has(block.status))
41
+ continue;
42
+ const job = {
43
+ namespace,
44
+ name: jobNames.blockRun(block.name),
45
+ facets: blockJobFacets(block),
46
+ };
47
+ const inputs = blockInputs(block, namespace);
48
+ const outputs = blockOutputs(block, namespace);
49
+ const runId = newRunId();
50
+ events.push(makeEvent('START', namespace, eventTime, job, runId, inputs, outputs));
51
+ events.push(makeEvent('COMPLETE', namespace, eventTime, job, runId, inputs, outputs));
52
+ }
53
+ return events;
54
+ }
55
+ /**
56
+ * Emit a complete project snapshot through the supplied emitter. Each
57
+ * certified block produces a START / COMPLETE pair so a backend like
58
+ * Marquez can reconstruct the full lineage graph in one pass.
59
+ */
60
+ export async function emitProjectSnapshot(emitter, manifest, options = {}) {
61
+ const events = buildEventsFromManifest(manifest, options);
62
+ for (const event of events) {
63
+ await emitter.emit({
64
+ eventType: event.eventType,
65
+ eventTime: event.eventTime,
66
+ job: event.job,
67
+ run: event.run,
68
+ inputs: event.inputs,
69
+ outputs: event.outputs,
70
+ });
71
+ }
72
+ return { emitted: events.length };
73
+ }
74
+ function blockJobFacets(block) {
75
+ const facets = {};
76
+ if (block.description) {
77
+ facets.documentation = {
78
+ _producer: 'https://github.com/duckcode-ai/dql',
79
+ _schemaURL: 'https://openlineage.io/spec/facets/1-0-0/DocumentationJobFacet.json',
80
+ description: block.description,
81
+ };
82
+ }
83
+ if (block.owner) {
84
+ facets.ownership = {
85
+ _producer: 'https://github.com/duckcode-ai/dql',
86
+ _schemaURL: 'https://openlineage.io/spec/facets/1-0-0/OwnershipJobFacet.json',
87
+ owners: [{ name: block.owner }],
88
+ };
89
+ }
90
+ return Object.keys(facets).length > 0 ? facets : undefined;
91
+ }
92
+ function blockInputs(block, namespace) {
93
+ const datasets = [];
94
+ const seen = new Set();
95
+ for (const tbl of block.tableDependencies ?? []) {
96
+ if (!tbl)
97
+ continue;
98
+ const name = datasetNames.dbtModel(tbl);
99
+ if (seen.has(name))
100
+ continue;
101
+ seen.add(name);
102
+ datasets.push({ namespace, name });
103
+ }
104
+ for (const ref of block.refDependencies ?? []) {
105
+ if (!ref)
106
+ continue;
107
+ const name = datasetNames.dqlBlock(ref);
108
+ if (seen.has(name))
109
+ continue;
110
+ seen.add(name);
111
+ datasets.push({ namespace, name });
112
+ }
113
+ if (block.datalexContract) {
114
+ const name = datasetNames.dataLexContract(stripContractVersion(block.datalexContract));
115
+ if (!seen.has(name)) {
116
+ seen.add(name);
117
+ datasets.push({ namespace, name });
118
+ }
119
+ }
120
+ return datasets;
121
+ }
122
+ function blockOutputs(block, namespace) {
123
+ const datasetName = datasetNames.dqlBlock(block.name);
124
+ const facets = {};
125
+ if (block.outputs && block.outputs.length > 0) {
126
+ facets.schema = {
127
+ _producer: 'https://github.com/duckcode-ai/dql',
128
+ _schemaURL: 'https://openlineage.io/spec/facets/1-0-0/SchemaDatasetFacet.json',
129
+ fields: block.outputs.map((c) => ({ name: c.name })),
130
+ };
131
+ const columnLineage = {};
132
+ for (const col of block.outputs) {
133
+ if (!col.sources || col.sources.length === 0)
134
+ continue;
135
+ columnLineage[col.name] = {
136
+ inputFields: col.sources.map((src) => ({
137
+ namespace,
138
+ name: datasetNames.dbtModel(src.table),
139
+ field: src.column,
140
+ })),
141
+ };
142
+ }
143
+ if (Object.keys(columnLineage).length > 0) {
144
+ facets.columnLineage = {
145
+ _producer: 'https://github.com/duckcode-ai/dql',
146
+ _schemaURL: 'https://openlineage.io/spec/facets/1-0-0/ColumnLineageDatasetFacet.json',
147
+ fields: columnLineage,
148
+ };
149
+ }
150
+ }
151
+ return [
152
+ {
153
+ namespace,
154
+ name: datasetName,
155
+ facets: Object.keys(facets).length > 0 ? facets : undefined,
156
+ },
157
+ ];
158
+ }
159
+ function stripContractVersion(ref) {
160
+ const at = ref.indexOf('@');
161
+ return at === -1 ? ref : ref.slice(0, at);
162
+ }
163
+ function makeEvent(eventType, namespace, eventTime, job, runId, inputs, outputs) {
164
+ return {
165
+ eventType,
166
+ eventTime,
167
+ producer: 'https://github.com/duckcode-ai/dql',
168
+ schemaURL: 'https://openlineage.io/spec/2-0-0/OpenLineage.json#/definitions/RunEvent',
169
+ job,
170
+ run: { runId },
171
+ inputs,
172
+ outputs,
173
+ };
174
+ }
175
+ //# sourceMappingURL=manifest-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-events.js","sourceRoot":"","sources":["../src/manifest-events.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duckcodeailabs/dql-openlineage",
3
- "version": "1.5.2",
3
+ "version": "1.6.2",
4
4
  "description": "OpenLineage event emitter for DQL block and notebook runs.",
5
5
  "license": "MIT",
6
6
  "type": "module",