@sequenceholdings/pipeline-spec 0.1.0 → 0.2.1
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 +75 -3
- package/dist/bodies/serving.d.ts +28 -0
- package/dist/bodies/serving.d.ts.map +1 -1
- package/dist/bodies/serving.js +35 -5
- package/dist/bodies/serving.js.map +1 -1
- package/dist/bodies/transformation.d.ts +92 -0
- package/dist/bodies/transformation.d.ts.map +1 -1
- package/dist/bodies/transformation.js +13 -1
- package/dist/bodies/transformation.js.map +1 -1
- package/dist/constants.d.ts +4 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -4
- package/dist/constants.js.map +1 -1
- package/dist/diff.d.ts +1 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +8 -1
- package/dist/diff.js.map +1 -1
- package/dist/envelope.d.ts +124 -0
- package/dist/envelope.d.ts.map +1 -1
- package/dist/envelope.js +10 -0
- package/dist/envelope.js.map +1 -1
- package/dist/graph.js +1 -1
- package/dist/graph.js.map +1 -1
- package/dist/hash.d.ts +1 -1
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +2 -1
- package/dist/hash.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +12 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +158 -13
- package/dist/loader.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -27,9 +27,28 @@ Run validation from the repository root:
|
|
|
27
27
|
pnpm exec seq-studio pipeline validate .
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
By default, validation discovers `*.stage.yml` and `*.stage.yaml` files only in
|
|
31
|
+
the package root. A package can opt into specific stage directories with an
|
|
32
|
+
optional `pipeline.config.yml`:
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
schema_version: 1
|
|
36
|
+
stage_directories:
|
|
37
|
+
- config/stages
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The paths are relative to the package root. The loader rejects absolute paths,
|
|
41
|
+
traversal, duplicate paths, and paths or stage files whose symlinks escape the
|
|
42
|
+
package. It scans only the listed directories, in stable path order. Schema,
|
|
43
|
+
documentation, and migration files remain at their existing package locations.
|
|
44
|
+
Stage `entrypoint` paths and `src/` resources also remain relative to the
|
|
45
|
+
package root, even when a stage spec is stored in a subdirectory. Local
|
|
46
|
+
validation, planning, deployment, migrations, and ORM repinning use the same
|
|
47
|
+
discovery rules. `seq-studio pipeline init` writes into the first configured
|
|
48
|
+
stage directory; without config it keeps writing to the package root.
|
|
49
|
+
|
|
50
|
+
A stage specification describes one deployable unit and its inputs, outputs,
|
|
51
|
+
runtime, ownership, and environment policy. For example:
|
|
33
52
|
|
|
34
53
|
```yaml
|
|
35
54
|
schema_version: 1
|
|
@@ -104,11 +123,64 @@ Offline validation checks:
|
|
|
104
123
|
Validation reports all discoverable issues in one pass so repository authors
|
|
105
124
|
can correct the complete graph before deployment.
|
|
106
125
|
|
|
126
|
+
Transformation stages may optionally declare `source_contracts`, keyed by a
|
|
127
|
+
logical identifier. Each entry names a catalog binding, schema, table, and
|
|
128
|
+
inline map of selected column names to native pipeline types. Source column
|
|
129
|
+
entries accept only `type`; output constraints such as nullability and keys
|
|
130
|
+
are not inferred or checked in this metadata-only increment. Target-aware catalog bindings
|
|
131
|
+
must map every non-default environment; a static catalog string declares an
|
|
132
|
+
intentionally shared catalog. These declarations support metadata checks only:
|
|
133
|
+
they do not inject or select a transformation read, verify row uniqueness, or
|
|
134
|
+
prove that the caller can access the source. No runtime or compiler behavior is
|
|
135
|
+
implied by this metadata.
|
|
136
|
+
|
|
137
|
+
The draft generic installation-backed serving contract is
|
|
138
|
+
`serving: { installation, exposure, refresh }`. `installation` is a symbolic
|
|
139
|
+
registered key, not a destination or authorization claim; the serving runtime
|
|
140
|
+
must resolve it from its server-side enrollment and fail closed when that
|
|
141
|
+
enrollment is unavailable. `exposure` is `orm_only`, `dataset_only`, or `both`.
|
|
142
|
+
ORM and both modes require `orm_binding` and `satisfies`; dataset-only forbids
|
|
143
|
+
them. Dataset-only and both modes also require an explicit
|
|
144
|
+
`expose.public_view_access` policy; ORM-only cannot declare one. Provisioning,
|
|
145
|
+
activation, and manual refresh recheck the registered destination and source
|
|
146
|
+
pins. Before a binding is published, checks cover backing access, declared-view
|
|
147
|
+
grants and captured dependencies, and ORM view ownership/runtime membership.
|
|
148
|
+
For a captured physical target, generic serving also performs a read-only
|
|
149
|
+
PostgreSQL catalog audit of the enrolled projection: projected column names,
|
|
150
|
+
the source-native PostgreSQL types, required `NOT NULL` columns, and the
|
|
151
|
+
primary-key set must match; undeclared backing columns fail closed because the
|
|
152
|
+
public compatibility and ORM views currently use `SELECT *`. This is stricter
|
|
153
|
+
than the producer's row-contract assertion: the physical target must actually
|
|
154
|
+
carry the promised non-null constraint. The projection materialized view is a
|
|
155
|
+
plain `SELECT` without casts, so a widened logical projection does not change
|
|
156
|
+
the native source column type. No physical DDL is repaired by this check.
|
|
157
|
+
The existing native-create pending path remains pending until the target is
|
|
158
|
+
materialized; activation and manual refresh must pass the physical audit before
|
|
159
|
+
writing. These paths have local unit/PGlite coverage, not a live deployment
|
|
160
|
+
receipt.
|
|
161
|
+
Transformation outputs and generic serving references use a safe lowercase
|
|
162
|
+
`schema.table` identifier (each part is at most 63 characters). This grammar
|
|
163
|
+
does not imply that a schema/table exists or is authorized. Enrollment
|
|
164
|
+
currently supports only an active transformation producer in the same repo;
|
|
165
|
+
the server checks the exact declared output and resolved physical source.
|
|
166
|
+
External snapshots and cross-repo producers are not supported. Legacy serving
|
|
167
|
+
declarations retain their existing gold-only ORM source rule, and existing
|
|
168
|
+
installations are not migrated.
|
|
169
|
+
The schema accepts `after_source`
|
|
170
|
+
for contract identity, but plan, compile, and run-now reject it until Atlas can
|
|
171
|
+
independently verify producer events. Scheduled serving refresh is not
|
|
172
|
+
modeled. The legacy `expose.public_view_access: orm_only` path
|
|
173
|
+
and its private catalog/schema declarations remain separate.
|
|
174
|
+
|
|
107
175
|
## Compatibility
|
|
108
176
|
|
|
109
177
|
- Node.js 20 or newer
|
|
110
178
|
- package versioning follows the release consumed by `seq-studio`
|
|
111
179
|
- the root JavaScript export may change without a standalone public SDK
|
|
112
180
|
deprecation cycle
|
|
181
|
+
- `checkServingProjectionCompatibility` is the shared projection/source
|
|
182
|
+
compatibility check used by validation and the physical serving audit; it
|
|
183
|
+
allows native array/map/struct to json only when the projection explicitly
|
|
184
|
+
declares `json`.
|
|
113
185
|
|
|
114
186
|
This package is distributed under the license declared in `package.json`.
|
package/dist/bodies/serving.d.ts
CHANGED
|
@@ -119,6 +119,20 @@ export declare const satisfiesSchema: z.ZodObject<{
|
|
|
119
119
|
content_hash: z.ZodString;
|
|
120
120
|
}, z.core.$strict>;
|
|
121
121
|
export type SatisfiesBinding = z.infer<typeof satisfiesSchema>;
|
|
122
|
+
/** Opt-in reference to an installation authorized by the serving runtime. */
|
|
123
|
+
export declare const genericServingSchema: z.ZodObject<{
|
|
124
|
+
installation: z.ZodString;
|
|
125
|
+
exposure: z.ZodEnum<{
|
|
126
|
+
orm_only: "orm_only";
|
|
127
|
+
dataset_only: "dataset_only";
|
|
128
|
+
both: "both";
|
|
129
|
+
}>;
|
|
130
|
+
refresh: z.ZodEnum<{
|
|
131
|
+
manual: "manual";
|
|
132
|
+
after_source: "after_source";
|
|
133
|
+
}>;
|
|
134
|
+
}, z.core.$strict>;
|
|
135
|
+
export type GenericServing = z.infer<typeof genericServingSchema>;
|
|
122
136
|
export declare const servingBodyShape: {
|
|
123
137
|
transport: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
124
138
|
kind: z.ZodLiteral<"native_lakebase_sync_v1">;
|
|
@@ -281,6 +295,19 @@ export declare const servingBodyShape: {
|
|
|
281
295
|
table: z.ZodString;
|
|
282
296
|
content_hash: z.ZodString;
|
|
283
297
|
}, z.core.$strict>>;
|
|
298
|
+
/** Generic, opt-in serving declaration; destination authority is server-side. */
|
|
299
|
+
serving: z.ZodOptional<z.ZodObject<{
|
|
300
|
+
installation: z.ZodString;
|
|
301
|
+
exposure: z.ZodEnum<{
|
|
302
|
+
orm_only: "orm_only";
|
|
303
|
+
dataset_only: "dataset_only";
|
|
304
|
+
both: "both";
|
|
305
|
+
}>;
|
|
306
|
+
refresh: z.ZodEnum<{
|
|
307
|
+
manual: "manual";
|
|
308
|
+
after_source: "after_source";
|
|
309
|
+
}>;
|
|
310
|
+
}, z.core.$strict>>;
|
|
284
311
|
};
|
|
285
312
|
/** Structural slice of a stage spec the serving refinement needs. */
|
|
286
313
|
export interface ServingBody {
|
|
@@ -310,6 +337,7 @@ export interface ServingBody {
|
|
|
310
337
|
};
|
|
311
338
|
readonly orm_binding?: OrmBinding;
|
|
312
339
|
readonly satisfies?: SatisfiesBinding;
|
|
340
|
+
readonly serving?: GenericServing;
|
|
313
341
|
}
|
|
314
342
|
/** Cross-field validation for `type: serving` bodies (invoked from the envelope refinement). */
|
|
315
343
|
export declare function refineServingBody(body: ServingBody, ctx: z.RefinementCtx): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serving.d.ts","sourceRoot":"","sources":["../../src/bodies/serving.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AACxF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAOjF,OAAO,EAML,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,eAAe,CAAA;AAItB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,eAAO,MAAM,UAAU,kDAAmD,CAAA;AAC1E,eAAO,MAAM,cAAc;;;;EAAqB,CAAA;AAChD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAErD,eAAO,MAAM,kBAAkB,8DAA+D,CAAA;AAC9F,eAAO,MAAM,sBAAsB;;;;;EAA6B,CAAA;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAIrE,uFAAuF;AACvF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAM3B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;;;;;kBAM3B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;kBAQ1B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE3B,4FAA4F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe5F,iFAAiF;;;;IAMjF,iFAAiF;;;;;;;;;;;;;;;;;;;;;IAyBjF;;;;OAIG;;;;;;
|
|
1
|
+
{"version":3,"file":"serving.d.ts","sourceRoot":"","sources":["../../src/bodies/serving.ts"],"names":[],"mappings":"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"}
|
package/dist/bodies/serving.js
CHANGED
|
@@ -84,6 +84,13 @@ export const satisfiesSchema = z.strictObject({
|
|
|
84
84
|
.string()
|
|
85
85
|
.regex(/^[a-f0-9]{64}$/, 'must be a sha256 hex digest (64 hex chars)'),
|
|
86
86
|
});
|
|
87
|
+
/** Opt-in reference to an installation authorized by the serving runtime. */
|
|
88
|
+
export const genericServingSchema = z.strictObject({
|
|
89
|
+
installation: z.string().regex(/^[a-z][a-z0-9_-]*$/, 'must be a registered installation key'),
|
|
90
|
+
exposure: z.enum(['orm_only', 'dataset_only', 'both']),
|
|
91
|
+
/** `manual` is currently operational; `after_source` is schema-valid but fail-closed at plan/compile/run until source-event authorization is available. */
|
|
92
|
+
refresh: z.enum(['manual', 'after_source']),
|
|
93
|
+
});
|
|
87
94
|
export const servingBodyShape = {
|
|
88
95
|
transport: servingTransportSchema.optional(),
|
|
89
96
|
/** The transformation output this stage serves (resolution happens in graph validation). */
|
|
@@ -138,11 +145,35 @@ export const servingBodyShape = {
|
|
|
138
145
|
* contract; when present, graph/provision validation fail closed on drift.
|
|
139
146
|
*/
|
|
140
147
|
satisfies: satisfiesSchema.optional(),
|
|
148
|
+
/** Generic, opt-in serving declaration; destination authority is server-side. */
|
|
149
|
+
serving: genericServingSchema.optional(),
|
|
141
150
|
};
|
|
142
151
|
/** Cross-field validation for `type: serving` bodies (invoked from the envelope refinement). */
|
|
143
152
|
export function refineServingBody(body, ctx) {
|
|
153
|
+
const genericServing = body.serving !== undefined;
|
|
144
154
|
refineServingExposure({ expose: body.expose, ctx });
|
|
145
155
|
refineServingTransport({ body, ctx });
|
|
156
|
+
if (genericServing) {
|
|
157
|
+
if (body.expose.public_view_access === 'orm_only' || body.expose.orm_only_catalog || body.expose.orm_only_schema) {
|
|
158
|
+
ctx.addIssue({ code: 'custom', path: ['expose'], message: 'generic serving cannot mix with legacy ORM-only catalog/schema fields or public_view_access: orm_only' });
|
|
159
|
+
}
|
|
160
|
+
if (body.serving?.exposure === 'orm_only' && (body.expose.public_view_access !== undefined || body.expose.reporting_table)) {
|
|
161
|
+
ctx.addIssue({ code: 'custom', path: ['expose'], message: 'orm_only serving cannot declare dataset-view access or reporting exposure' });
|
|
162
|
+
}
|
|
163
|
+
if (body.serving && body.serving.exposure !== 'orm_only' && body.expose.public_view_access === undefined) {
|
|
164
|
+
ctx.addIssue({ code: 'custom', path: ['expose', 'public_view_access'], message: 'dataset_only and both exposure require an explicit dataset-view access policy' });
|
|
165
|
+
}
|
|
166
|
+
if (body.serving && ['orm_only', 'both'].includes(body.serving.exposure) && (!body.orm_binding || !body.satisfies)) {
|
|
167
|
+
ctx.addIssue({ code: 'custom', path: ['serving'], message: 'ORM and both exposure require orm_binding and satisfies contract pins' });
|
|
168
|
+
}
|
|
169
|
+
if (body.serving?.exposure === 'dataset_only' && (body.orm_binding || body.satisfies)) {
|
|
170
|
+
ctx.addIssue({ code: 'custom', path: ['serving'], message: 'dataset_only exposure cannot declare ORM bindings or satisfies pins' });
|
|
171
|
+
}
|
|
172
|
+
if ((body.serving?.refresh === 'manual' && body.trigger) ||
|
|
173
|
+
(body.serving?.refresh === 'after_source' && (!body.trigger || body.source.external))) {
|
|
174
|
+
ctx.addIssue({ code: 'custom', path: ['serving', 'refresh'], message: 'refresh must match the existing lifecycle: manual has no trigger; after_source requires an in-repo producer trigger' });
|
|
175
|
+
}
|
|
176
|
+
}
|
|
146
177
|
if (body.expose.public_view_access === 'orm_only') {
|
|
147
178
|
const namespace = body.orm_binding?.namespace;
|
|
148
179
|
const privateSchema = namespace === 'banksouth_fis' ? /^fis_orm_[a-z][a-z0-9_]*$/ : /^rel_orm_[a-z][a-z0-9_]*$/;
|
|
@@ -203,14 +234,13 @@ export function refineServingBody(body, ctx) {
|
|
|
203
234
|
message: "orm_binding mode 'managed' is reserved, not yet supported — ORM-managed serving lifecycle has not shipped (use 'referenced')",
|
|
204
235
|
});
|
|
205
236
|
}
|
|
206
|
-
if (!GOLD_ASSET_PATTERN.test(body.source.output)) {
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
// ORM-owner decision — no non-gold binding ships before that decision.
|
|
237
|
+
if (!genericServing && !GOLD_ASSET_PATTERN.test(body.source.output)) {
|
|
238
|
+
// Legacy serving declarations retain the established gold-only binding.
|
|
239
|
+
// Generic serving relies on registered installation admission instead.
|
|
210
240
|
ctx.addIssue({
|
|
211
241
|
code: 'custom',
|
|
212
242
|
path: ['source', 'output'],
|
|
213
|
-
message: `orm_binding requires the source output to be 'gold.*'
|
|
243
|
+
message: `legacy orm_binding requires the source output to be 'gold.*'; generic serving must use an enrolled producer output — got '${body.source.output}'`,
|
|
214
244
|
});
|
|
215
245
|
}
|
|
216
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serving.js","sourceRoot":"","sources":["../../src/bodies/serving.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serving.js","sourceRoot":"","sources":["../../src/bodies/serving.ts"],"names":[],"mappings":"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"}
|
|
@@ -235,6 +235,67 @@ export declare const transformationOutputSchema: z.ZodObject<{
|
|
|
235
235
|
}, z.core.$strict>>;
|
|
236
236
|
}, z.core.$strict>;
|
|
237
237
|
export type TransformationOutput = z.infer<typeof transformationOutputSchema>;
|
|
238
|
+
/** Declaration-only source metadata for a transformation's selected native columns. */
|
|
239
|
+
export declare const transformationSourceContractSchema: z.ZodObject<{
|
|
240
|
+
catalog: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
241
|
+
default: z.ZodString;
|
|
242
|
+
by_target: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
243
|
+
}, z.core.$strict>]>;
|
|
244
|
+
schema: z.ZodString;
|
|
245
|
+
table: z.ZodString;
|
|
246
|
+
columns: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
247
|
+
type: z.ZodUnion<readonly [z.ZodEnum<{
|
|
248
|
+
string: "string";
|
|
249
|
+
boolean: "boolean";
|
|
250
|
+
uuid: "uuid";
|
|
251
|
+
int: "int";
|
|
252
|
+
long: "long";
|
|
253
|
+
numeric: "numeric";
|
|
254
|
+
double: "double";
|
|
255
|
+
timestamp: "timestamp";
|
|
256
|
+
date: "date";
|
|
257
|
+
json: "json";
|
|
258
|
+
}>, z.ZodEnum<{
|
|
259
|
+
float: "float";
|
|
260
|
+
timestamp_ntz: "timestamp_ntz";
|
|
261
|
+
array: "array";
|
|
262
|
+
map: "map";
|
|
263
|
+
struct: "struct";
|
|
264
|
+
binary: "binary";
|
|
265
|
+
}>, z.ZodString]>;
|
|
266
|
+
}, z.core.$strict>>;
|
|
267
|
+
}, z.core.$strict>;
|
|
268
|
+
export declare const transformationSourceContractsSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
269
|
+
catalog: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
270
|
+
default: z.ZodString;
|
|
271
|
+
by_target: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
272
|
+
}, z.core.$strict>]>;
|
|
273
|
+
schema: z.ZodString;
|
|
274
|
+
table: z.ZodString;
|
|
275
|
+
columns: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
276
|
+
type: z.ZodUnion<readonly [z.ZodEnum<{
|
|
277
|
+
string: "string";
|
|
278
|
+
boolean: "boolean";
|
|
279
|
+
uuid: "uuid";
|
|
280
|
+
int: "int";
|
|
281
|
+
long: "long";
|
|
282
|
+
numeric: "numeric";
|
|
283
|
+
double: "double";
|
|
284
|
+
timestamp: "timestamp";
|
|
285
|
+
date: "date";
|
|
286
|
+
json: "json";
|
|
287
|
+
}>, z.ZodEnum<{
|
|
288
|
+
float: "float";
|
|
289
|
+
timestamp_ntz: "timestamp_ntz";
|
|
290
|
+
array: "array";
|
|
291
|
+
map: "map";
|
|
292
|
+
struct: "struct";
|
|
293
|
+
binary: "binary";
|
|
294
|
+
}>, z.ZodString]>;
|
|
295
|
+
}, z.core.$strict>>;
|
|
296
|
+
}, z.core.$strict>>;
|
|
297
|
+
export type TransformationSourceContract = z.infer<typeof transformationSourceContractSchema>;
|
|
298
|
+
export type TransformationSourceContracts = z.infer<typeof transformationSourceContractsSchema>;
|
|
238
299
|
/** Manual-only, or cron / after (both allowed for cron floor + dependency chaining). */
|
|
239
300
|
export declare const transformationTriggerSchema: z.ZodObject<{
|
|
240
301
|
manual: z.ZodOptional<z.ZodLiteral<true>>;
|
|
@@ -360,6 +421,36 @@ export declare const transformationBodyShape: {
|
|
|
360
421
|
value: z.ZodString;
|
|
361
422
|
}, z.core.$strict>>;
|
|
362
423
|
}, z.core.$strict>>;
|
|
424
|
+
/** Optional source declarations used for deployment preflight metadata checks. */
|
|
425
|
+
source_contracts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
426
|
+
catalog: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
427
|
+
default: z.ZodString;
|
|
428
|
+
by_target: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
429
|
+
}, z.core.$strict>]>;
|
|
430
|
+
schema: z.ZodString;
|
|
431
|
+
table: z.ZodString;
|
|
432
|
+
columns: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
433
|
+
type: z.ZodUnion<readonly [z.ZodEnum<{
|
|
434
|
+
string: "string";
|
|
435
|
+
boolean: "boolean";
|
|
436
|
+
uuid: "uuid";
|
|
437
|
+
int: "int";
|
|
438
|
+
long: "long";
|
|
439
|
+
numeric: "numeric";
|
|
440
|
+
double: "double";
|
|
441
|
+
timestamp: "timestamp";
|
|
442
|
+
date: "date";
|
|
443
|
+
json: "json";
|
|
444
|
+
}>, z.ZodEnum<{
|
|
445
|
+
float: "float";
|
|
446
|
+
timestamp_ntz: "timestamp_ntz";
|
|
447
|
+
array: "array";
|
|
448
|
+
map: "map";
|
|
449
|
+
struct: "struct";
|
|
450
|
+
binary: "binary";
|
|
451
|
+
}>, z.ZodString]>;
|
|
452
|
+
}, z.core.$strict>>;
|
|
453
|
+
}, z.core.$strict>>>;
|
|
363
454
|
entrypoint: z.ZodString;
|
|
364
455
|
config: z.ZodOptional<z.ZodObject<{
|
|
365
456
|
catalog: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
@@ -389,6 +480,7 @@ export interface TransformationBody {
|
|
|
389
480
|
columns: ColumnsOrRef;
|
|
390
481
|
write_scope?: z.infer<typeof writeScopeSchema>;
|
|
391
482
|
}>;
|
|
483
|
+
readonly source_contracts?: Record<string, TransformationSourceContract>;
|
|
392
484
|
readonly config?: Readonly<Record<string, string | number | boolean | CatalogBinding>>;
|
|
393
485
|
}
|
|
394
486
|
/** Cross-field validation for `type: transformation` bodies (invoked from the envelope refinement). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../src/bodies/transformation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AASjF,OAAO,
|
|
1
|
+
{"version":3,"file":"transformation.d.ts","sourceRoot":"","sources":["../../src/bodies/transformation.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
import { catalogBindingSchema } from '../catalog-binding.js';
|
|
3
3
|
import { CRON_PATTERN, OUTPUT_ASSET_PATTERN, QUALIFIED_TABLE_PATTERN, REPORT_ASSET_PATTERN, QUARANTINE_SUFFIX, STAGE_ID_PATTERN, } from '../constants.js';
|
|
4
4
|
import { columnIdentifierSchema, columnsOrRefSchema, identifierSchema, isSchemaRef, nullableKeyColumns, } from '../columns.js';
|
|
5
|
+
import { pipelineTypeSchema } from '../types.js';
|
|
5
6
|
import { isoDurationSchema, repoRelativePathSchema } from './ingestion.js';
|
|
6
7
|
/**
|
|
7
8
|
* Transformation stages are where typing begins: inputs by logical asset
|
|
@@ -23,7 +24,7 @@ const stageRefSchema = z
|
|
|
23
24
|
.regex(STAGE_ID_PATTERN, 'must be a stage id (kebab-case slug)');
|
|
24
25
|
export const outputAssetNameSchema = z
|
|
25
26
|
.string()
|
|
26
|
-
.regex(OUTPUT_ASSET_PATTERN, "output assets must
|
|
27
|
+
.regex(OUTPUT_ASSET_PATTERN, "output assets must be a qualified lowercase schema.table identifier");
|
|
27
28
|
/**
|
|
28
29
|
* Reference to another stage's asset: an ingestion feed (`feed`) or a
|
|
29
30
|
* transformation output (`output`) — exactly one. `columns` narrows the input
|
|
@@ -122,6 +123,15 @@ export const transformationOutputSchema = z.strictObject({
|
|
|
122
123
|
/** Every write, including snapshot deletions, must stay inside this scope. */
|
|
123
124
|
write_scope: writeScopeSchema.optional(),
|
|
124
125
|
});
|
|
126
|
+
/** Declaration-only source metadata for a transformation's selected native columns. */
|
|
127
|
+
export const transformationSourceContractSchema = z.strictObject({
|
|
128
|
+
catalog: catalogBindingSchema,
|
|
129
|
+
schema: identifierSchema,
|
|
130
|
+
table: identifierSchema,
|
|
131
|
+
columns: z.record(columnIdentifierSchema, z.strictObject({ type: pipelineTypeSchema }))
|
|
132
|
+
.refine((columns) => Object.keys(columns).length > 0, 'must declare at least one column'),
|
|
133
|
+
});
|
|
134
|
+
export const transformationSourceContractsSchema = z.record(identifierSchema, transformationSourceContractSchema);
|
|
125
135
|
/** Manual-only, or cron / after (both allowed for cron floor + dependency chaining). */
|
|
126
136
|
export const transformationTriggerSchema = z.strictObject({
|
|
127
137
|
/** Explicit opt-in to run-now only; useful for isolated parity and backfill jobs. */
|
|
@@ -158,6 +168,8 @@ export const transformationBodyShape = {
|
|
|
158
168
|
inputs: z.array(transformationInputSchema),
|
|
159
169
|
trigger: transformationTriggerSchema,
|
|
160
170
|
outputs: z.record(outputAssetNameSchema, transformationOutputSchema),
|
|
171
|
+
/** Optional source declarations used for deployment preflight metadata checks. */
|
|
172
|
+
source_contracts: transformationSourceContractsSchema.optional(),
|
|
161
173
|
entrypoint: repoRelativePathSchema,
|
|
162
174
|
config: engineConfigSchema.optional(),
|
|
163
175
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformation.js","sourceRoot":"","sources":["../../src/bodies/transformation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,oBAAoB,EAAuB,MAAM,uBAAuB,CAAA;AACjF,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transformation.js","sourceRoot":"","sources":["../../src/bodies/transformation.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -9,11 +9,11 @@ export declare const IDENTIFIER_PATTERN: RegExp;
|
|
|
9
9
|
/** Physical column names may preserve source-system leading underscores. */
|
|
10
10
|
export declare const COLUMN_IDENTIFIER_PATTERN: RegExp;
|
|
11
11
|
export declare const MAX_IDENTIFIER_LENGTH = 63;
|
|
12
|
-
/**
|
|
12
|
+
/** Qualified transformation output asset: `<schema>.<table>`. */
|
|
13
13
|
export declare const OUTPUT_ASSET_PATTERN: RegExp;
|
|
14
14
|
/** Raw report passthrough assets are isolated from ontology silver/gold assets. */
|
|
15
15
|
export declare const REPORT_ASSET_PATTERN: RegExp;
|
|
16
|
-
/** ORM-bound serving sources
|
|
16
|
+
/** Legacy ORM-bound serving sources remain restricted to the gold layer. */
|
|
17
17
|
export declare const GOLD_ASSET_PATTERN: RegExp;
|
|
18
18
|
/** Serving views are exposed in the Lakebase `public` schema. */
|
|
19
19
|
export declare const PUBLIC_VIEW_PATTERN: RegExp;
|
|
@@ -38,6 +38,8 @@ export declare const CRON_PATTERN: RegExp;
|
|
|
38
38
|
export declare const TIMEZONE_PATTERN: RegExp;
|
|
39
39
|
/** Stage spec files: `<stage>.stage.yml` in the Pipeline repo root. */
|
|
40
40
|
export declare const STAGE_FILE_SUFFIXES: readonly [".stage.yml", ".stage.yaml"];
|
|
41
|
+
/** Optional Pipeline package configuration at the package root. */
|
|
42
|
+
export declare const PIPELINE_CONFIG_FILE = "pipeline.config.yml";
|
|
41
43
|
/** Named schema artifacts: `schemas/<name>.schema.yml` in the Pipeline repo. */
|
|
42
44
|
export declare const SCHEMA_FILE_SUFFIXES: readonly [".schema.yml", ".schema.yaml"];
|
|
43
45
|
/** Directory (relative to the Pipeline root) holding named schema artifacts. */
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAkC,CAAA;AAE/D,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,QAAsB,CAAA;AAErD,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,QAAwB,CAAA;AAE9D,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAkC,CAAA;AAE/D,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,QAAsB,CAAA;AAErD,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,QAAwB,CAAA;AAE9D,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAEvC,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,QAAiD,CAAA;AAElF,mFAAmF;AACnF,eAAO,MAAM,oBAAoB,QAA8B,CAAA;AAE/D,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,QAA4B,CAAA;AAE3D,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,QAA8B,CAAA;AAE9D,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,QAAmC,CAAA;AAEvE,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,QAAiD,CAAA;AAErF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAuB,CAAA;AAExD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,QAAuB,CAAA;AAEzD,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,QACsC,CAAA;AAEvE,0FAA0F;AAC1F,eAAO,MAAM,YAAY,QAAuB,CAAA;AAEhD,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,QAA4C,CAAA;AAEzE,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,wCAAyC,CAAA;AAEzE,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AAEzD,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,0CAA2C,CAAA;AAE5E,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,YAAY,CAAA;AAE1C,kFAAkF;AAClF,eAAO,MAAM,2BAA2B,wDAAyD,CAAA;AACjG,eAAO,MAAM,uBAAuB,kBAAkB,CAAA;AAEtD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAKvD,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAKxD,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAE/C,eAAO,MAAM,mBAAmB,GAAI,aAAa,MAAM,KAAG,MAA8C,CAAA;AAExG,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,6BAA6B,CAAA;AAC1D,eAAO,MAAM,oBAAoB,iCAAiC,CAAA;AAElE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAc,CAAA;AAE9C,0FAA0F;AAC1F,eAAO,MAAM,yBAAyB,QAAkB,CAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -9,18 +9,18 @@ export const IDENTIFIER_PATTERN = /^[a-z][a-z0-9_]*$/;
|
|
|
9
9
|
/** Physical column names may preserve source-system leading underscores. */
|
|
10
10
|
export const COLUMN_IDENTIFIER_PATTERN = /^_?[a-z][a-z0-9_]*$/;
|
|
11
11
|
export const MAX_IDENTIFIER_LENGTH = 63;
|
|
12
|
-
/**
|
|
13
|
-
export const OUTPUT_ASSET_PATTERN = /^
|
|
12
|
+
/** Qualified transformation output asset: `<schema>.<table>`. */
|
|
13
|
+
export const OUTPUT_ASSET_PATTERN = /^[a-z][a-z0-9_]{0,62}\.[a-z][a-z0-9_]{0,62}$/;
|
|
14
14
|
/** Raw report passthrough assets are isolated from ontology silver/gold assets. */
|
|
15
15
|
export const REPORT_ASSET_PATTERN = /^report\.[a-z][a-z0-9_]*$/;
|
|
16
|
-
/** ORM-bound serving sources
|
|
16
|
+
/** Legacy ORM-bound serving sources remain restricted to the gold layer. */
|
|
17
17
|
export const GOLD_ASSET_PATTERN = /^gold\.[a-z][a-z0-9_]*$/;
|
|
18
18
|
/** Serving views are exposed in the Lakebase `public` schema. */
|
|
19
19
|
export const PUBLIC_VIEW_PATTERN = /^public\.[a-z][a-z0-9_]*$/;
|
|
20
20
|
/** FIS compatibility relations are isolated to the dedicated reporting schema. */
|
|
21
21
|
export const REPORTING_TABLE_PATTERN = /^fis_reports\.[a-z][a-z0-9_]*$/;
|
|
22
22
|
/** `<schema>.<table>` reference for Lakebase CDF source tables (e.g. `manual.retail_customers`). */
|
|
23
|
-
export const QUALIFIED_TABLE_PATTERN = /^[a-z][a-z0-9_]
|
|
23
|
+
export const QUALIFIED_TABLE_PATTERN = /^[a-z][a-z0-9_]{0,62}\.[a-z][a-z0-9_]{0,62}$/;
|
|
24
24
|
/**
|
|
25
25
|
* Symbolic registry references (credential families, alert channels, worker
|
|
26
26
|
* machines, source systems). Names only — the tight slug grammar is one of the
|
|
@@ -38,6 +38,8 @@ export const CRON_PATTERN = /^\S+(\s+\S+){4,6}$/;
|
|
|
38
38
|
export const TIMEZONE_PATTERN = /^(UTC|[A-Za-z]+(?:\/[A-Za-z0-9_+-]+)+)$/;
|
|
39
39
|
/** Stage spec files: `<stage>.stage.yml` in the Pipeline repo root. */
|
|
40
40
|
export const STAGE_FILE_SUFFIXES = ['.stage.yml', '.stage.yaml'];
|
|
41
|
+
/** Optional Pipeline package configuration at the package root. */
|
|
42
|
+
export const PIPELINE_CONFIG_FILE = 'pipeline.config.yml';
|
|
41
43
|
/** Named schema artifacts: `schemas/<name>.schema.yml` in the Pipeline repo. */
|
|
42
44
|
export const SCHEMA_FILE_SUFFIXES = ['.schema.yml', '.schema.yaml'];
|
|
43
45
|
/** Directory (relative to the Pipeline root) holding named schema artifacts. */
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,+BAA+B,CAAA;AAE/D,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAErD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAA;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,+BAA+B,CAAA;AAE/D,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAErD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAA;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAEvC,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,8CAA8C,CAAA;AAElF,mFAAmF;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAA;AAE/D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE3D,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAG,2BAA2B,CAAA;AAE9D,kFAAkF;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAA;AAEvE,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAG,8CAA8C,CAAA;AAErF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAA;AAExD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAA;AAEzD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAC/B,qEAAqE,CAAA;AAEvE,0FAA0F;AAC1F,MAAM,CAAC,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAEhD,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,yCAAyC,CAAA;AAEzE,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,YAAY,EAAE,aAAa,CAAU,CAAA;AAEzE,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAA;AAEzD,gFAAgF;AAChF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAAa,EAAE,cAAc,CAAU,CAAA;AAE5E,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAA;AAE1C,kFAAkF;AAClF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,oBAAoB,EAAE,qBAAqB,CAAU,CAAA;AACjG,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAA;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IACnE,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,iBAAiB;CAClB,CAAC,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAwB,IAAI,GAAG,CAAC;IACpE,UAAU;IACV,aAAa;IACb,eAAe;IACf,cAAc;CACf,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAA;AAE/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAmB,EAAU,EAAE,CAAC,GAAG,WAAW,GAAG,iBAAiB,EAAE,CAAA;AAExG,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAA;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,8BAA8B,CAAA;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAA;AAE9C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
package/dist/diff.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { StageSpec } from './envelope.js';
|
|
|
7
7
|
* description, owners, runbook) are outside the contract surface entirely.
|
|
8
8
|
*/
|
|
9
9
|
export type ContractClassification = 'breaking' | 'additive' | 'none';
|
|
10
|
-
export declare const CONTRACT_CHANGE_CODES: readonly ["stage_type_changed", "output_added", "output_removed", "column_added", "column_removed", "type_changed", "nullability_loosened", "nullability_tightened", "domain_shrunk", "domain_expanded", "domain_constraint_added", "domain_constraint_removed", "key_changed", "write_pattern_changed", "write_scope_added", "write_scope_changed", "source_changed", "sync_mode_changed", "orm_binding_changed", "satisfies_changed", "primary_key_changed", "feed_added", "feed_removed", "feed_semantics_changed", "violation_posture_changed", "compatibility_mode_changed"];
|
|
10
|
+
export declare const CONTRACT_CHANGE_CODES: readonly ["stage_type_changed", "output_added", "output_removed", "column_added", "column_removed", "type_changed", "nullability_loosened", "nullability_tightened", "domain_shrunk", "domain_expanded", "domain_constraint_added", "domain_constraint_removed", "key_changed", "write_pattern_changed", "write_scope_added", "write_scope_changed", "source_changed", "sync_mode_changed", "orm_binding_changed", "satisfies_changed", "serving_changed", "primary_key_changed", "feed_added", "feed_removed", "feed_semantics_changed", "violation_posture_changed", "compatibility_mode_changed"];
|
|
11
11
|
export type ContractChangeCode = (typeof CONTRACT_CHANGE_CODES)[number];
|
|
12
12
|
export interface ContractChange {
|
|
13
13
|
readonly code: ContractChangeCode;
|
package/dist/diff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;;;;;GAMG;AAEH,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;AAErE,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C;;;;;;GAMG;AAEH,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;AAErE,eAAO,MAAM,qBAAqB,skBA4BxB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAUvE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAA;IAC/C,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAA;IAC/C,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAA;CAC/D;AA4MD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,GAAG,YAAY,CA8ElF"}
|
package/dist/diff.js
CHANGED
|
@@ -23,6 +23,7 @@ export const CONTRACT_CHANGE_CODES = [
|
|
|
23
23
|
'sync_mode_changed',
|
|
24
24
|
'orm_binding_changed',
|
|
25
25
|
'satisfies_changed',
|
|
26
|
+
'serving_changed',
|
|
26
27
|
'primary_key_changed',
|
|
27
28
|
'feed_added',
|
|
28
29
|
'feed_removed',
|
|
@@ -149,7 +150,7 @@ function contractsOf(spec) {
|
|
|
149
150
|
* Non-column contract fields — everything `contractSurface` covers beyond
|
|
150
151
|
* output/projection columns must be diffable here, or additive-only
|
|
151
152
|
* enforcement would miss breaking changes that DO churn `contract_hash`:
|
|
152
|
-
* serving source/sync_mode/orm_binding/primary_key, and ingestion source
|
|
153
|
+
* serving source/sync_mode/orm_binding/satisfies/serving/primary_key, and ingestion source
|
|
153
154
|
* identity + feed batch semantics.
|
|
154
155
|
*/
|
|
155
156
|
function specLevelChanges(oldSpec, newSpec) {
|
|
@@ -179,6 +180,12 @@ function specLevelChanges(oldSpec, newSpec) {
|
|
|
179
180
|
message: 'satisfies changed — the ORM contract pin (namespace.table@hash) is contract identity',
|
|
180
181
|
});
|
|
181
182
|
}
|
|
183
|
+
if (canonicalJson(oldSpec.serving ?? null) !== canonicalJson(newSpec.serving ?? null)) {
|
|
184
|
+
changes.push({
|
|
185
|
+
code: 'serving_changed',
|
|
186
|
+
message: 'serving installation, exposure, or refresh policy changed',
|
|
187
|
+
});
|
|
188
|
+
}
|
|
182
189
|
if (canonicalJson(oldSpec.projection.primary_key) !== canonicalJson(newSpec.projection.primary_key)) {
|
|
183
190
|
changes.push({
|
|
184
191
|
code: 'primary_key_changed',
|