@sdd-method/sdd-cli 0.92.1 → 0.94.0
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/lib/catalogue/aggregate.d.ts +9 -0
- package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
- package/dist/lib/catalogue/aggregate.js +65 -5
- package/dist/lib/catalogue/aggregate.js.map +1 -1
- package/dist/lib/catalogue/build.d.ts.map +1 -1
- package/dist/lib/catalogue/build.js +5 -1
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/application-data-plane-bindings.d.ts +9 -0
- package/dist/lib/catalogue/builders/application-data-plane-bindings.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/application-data-plane-bindings.js +73 -0
- package/dist/lib/catalogue/builders/application-data-plane-bindings.js.map +1 -0
- package/dist/lib/catalogue/builders/index.d.ts +2 -0
- package/dist/lib/catalogue/builders/index.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/index.js +1 -0
- package/dist/lib/catalogue/builders/index.js.map +1 -1
- package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts +10 -0
- package/dist/lib/catalogue/builders/product-platform-dependencies.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/product-platform-dependencies.js +78 -21
- package/dist/lib/catalogue/builders/product-platform-dependencies.js.map +1 -1
- package/dist/lib/catalogue/canonical-schema.yaml +34 -5
- package/dist/lib/catalogue/manifest-loader.d.ts +33 -0
- package/dist/lib/catalogue/manifest-loader.d.ts.map +1 -1
- package/dist/lib/catalogue/manifest-loader.js +47 -0
- package/dist/lib/catalogue/manifest-loader.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// application_data_plane_bindings builder — emits one row per declared
|
|
2
|
+
// data-plane binding (M-ADR 0193).
|
|
3
|
+
//
|
|
4
|
+
// The data-plane axis models an application-product as a COMPOSITION of typed
|
|
5
|
+
// data bindings, orthogonal to `application_archetype` (0191). Each binding is
|
|
6
|
+
// one `{pattern, locality, transport, runtime, target, notes}` tuple declared
|
|
7
|
+
// in the manifest's `data_plane.bindings` block. The manifest loader has
|
|
8
|
+
// already validated the closed enums and the runtime/locality rules (malformed
|
|
9
|
+
// bindings FAIL at load), so this builder only shapes valid bindings into rows.
|
|
10
|
+
//
|
|
11
|
+
// A binding whose target is a platform capability/service reconciles with
|
|
12
|
+
// `product_platform_dependencies` (a retrieve@internal binding is a synchronous
|
|
13
|
+
// platform dependency; a stream-ingest@internal binding is the M-ADR 0192
|
|
14
|
+
// contract_type:event async dependency). That reconciliation — deriving/sharing
|
|
15
|
+
// the platform-targeting bindings rather than double-authoring — and the
|
|
16
|
+
// archetype-default-vs-declared WARN are fast-follows that land with the 0191
|
|
17
|
+
// §4.3 overlay. This builder ships the axis itself.
|
|
18
|
+
// Recommended transport values (open string per the schema; a value outside the
|
|
19
|
+
// set is a convention finding, never a hard fail — the M-ADR 0156/0192 pattern).
|
|
20
|
+
const RECOMMENDED_TRANSPORTS = new Set([
|
|
21
|
+
"rest",
|
|
22
|
+
"graphql",
|
|
23
|
+
"grpc",
|
|
24
|
+
"appsync",
|
|
25
|
+
"kinesis",
|
|
26
|
+
"kafka",
|
|
27
|
+
"eventhub",
|
|
28
|
+
"cdc",
|
|
29
|
+
]);
|
|
30
|
+
export function buildApplicationDataPlaneBindings(inputs) {
|
|
31
|
+
const { manifest, findings } = inputs;
|
|
32
|
+
const rows = [];
|
|
33
|
+
const bindings = manifest.dataPlane?.bindings;
|
|
34
|
+
if (bindings === undefined || bindings.length === 0)
|
|
35
|
+
return rows;
|
|
36
|
+
// data_plane is an application-product-only axis. A binding block on another
|
|
37
|
+
// profile is a manifest smell — report it and emit nothing.
|
|
38
|
+
if (manifest.profile !== "application-product") {
|
|
39
|
+
findings.add("convention", `application_data_plane_bindings: data_plane declared on non-application-product SDD "${manifest.sddId}" (profile=${manifest.profile}) — ignored (M-ADR 0193 is application-product only)`);
|
|
40
|
+
return rows;
|
|
41
|
+
}
|
|
42
|
+
const seen = new Set();
|
|
43
|
+
for (const b of bindings) {
|
|
44
|
+
const pattern = b.pattern;
|
|
45
|
+
const locality = b.locality ?? "";
|
|
46
|
+
const transport = b.transport ?? "";
|
|
47
|
+
const runtime = b.runtime ?? "";
|
|
48
|
+
const target = b.target ?? "";
|
|
49
|
+
const notes = b.notes ?? "";
|
|
50
|
+
const id = `${manifest.sddId}__${pattern}__${locality}__${target}`;
|
|
51
|
+
if (seen.has(id)) {
|
|
52
|
+
findings.add("divergence", `application_data_plane_bindings: duplicate binding id="${id}" — same (product_id, pattern, locality, target) already emitted; second dropped`);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
seen.add(id);
|
|
56
|
+
if (transport !== "" && !RECOMMENDED_TRANSPORTS.has(transport.toLowerCase())) {
|
|
57
|
+
findings.add("convention", `application_data_plane_bindings: binding "${id}" declares transport="${transport}" outside the recommended set (${[...RECOMMENDED_TRANSPORTS].join(", ")})`);
|
|
58
|
+
}
|
|
59
|
+
rows.push({
|
|
60
|
+
id,
|
|
61
|
+
product_id: manifest.sddId,
|
|
62
|
+
pattern,
|
|
63
|
+
locality,
|
|
64
|
+
transport,
|
|
65
|
+
runtime,
|
|
66
|
+
target,
|
|
67
|
+
notes,
|
|
68
|
+
source_sdd_id: "",
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return rows;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=application-data-plane-bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-data-plane-bindings.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/application-data-plane-bindings.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,mCAAmC;AACnC,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,yEAAyE;AACzE,+EAA+E;AAC/E,gFAAgF;AAChF,EAAE;AACF,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,yEAAyE;AACzE,8EAA8E;AAC9E,oDAAoD;AAWpD,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,MAAM;IACN,SAAS;IACT,MAAM;IACN,SAAS;IACT,SAAS;IACT,OAAO;IACP,UAAU;IACV,KAAK;CACN,CAAC,CAAC;AAEH,MAAM,UAAU,iCAAiC,CAC/C,MAA+C;IAE/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACtC,MAAM,IAAI,GAAmB,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC9C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjE,6EAA6E;IAC7E,4DAA4D;IAC5D,IAAI,QAAQ,CAAC,OAAO,KAAK,qBAAqB,EAAE,CAAC;QAC/C,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,wFAAwF,QAAQ,CAAC,KAAK,cAAc,QAAQ,CAAC,OAAO,sDAAsD,CAC3L,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAC1B,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAE5B,MAAM,EAAE,GAAG,GAAG,QAAQ,CAAC,KAAK,KAAK,OAAO,KAAK,QAAQ,KAAK,MAAM,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACjB,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,0DAA0D,EAAE,kFAAkF,CAC/I,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEb,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC7E,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,6CAA6C,EAAE,yBAAyB,SAAS,kCAAkC,CAAC,GAAG,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7J,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC;YACR,EAAE;YACF,UAAU,EAAE,QAAQ,CAAC,KAAK;YAC1B,OAAO;YACP,QAAQ;YACR,SAAS;YACT,OAAO;YACP,MAAM;YACN,KAAK;YACL,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -10,6 +10,8 @@ export { buildDomains } from "./domains.js";
|
|
|
10
10
|
export type { DomainsBuildInputs } from "./domains.js";
|
|
11
11
|
export { buildProducts } from "./products.js";
|
|
12
12
|
export type { ProductsBuildInputs } from "./products.js";
|
|
13
|
+
export { buildApplicationDataPlaneBindings } from "./application-data-plane-bindings.js";
|
|
14
|
+
export type { ApplicationDataPlaneBindingsBuildInputs } from "./application-data-plane-bindings.js";
|
|
13
15
|
export { buildRepositories } from "./repositories.js";
|
|
14
16
|
export type { RepositoriesBuildInputs, RepositoriesBuildResult, ParsedRepoConfig, } from "./repositories.js";
|
|
15
17
|
export { buildServices } from "./services.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AACzF,YAAY,EAAE,uCAAuC,EAAE,MAAM,sCAAsC,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EACV,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACpF,YAAY,EACV,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,YAAY,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EACV,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EACV,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,YAAY,EAAE,sCAAsC,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,YAAY,EAAE,sCAAsC,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EACV,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EACV,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export { buildDomains } from "./domains.js";
|
|
10
10
|
export { buildProducts } from "./products.js";
|
|
11
|
+
export { buildApplicationDataPlaneBindings } from "./application-data-plane-bindings.js";
|
|
11
12
|
export { buildRepositories } from "./repositories.js";
|
|
12
13
|
export { buildServices } from "./services.js";
|
|
13
14
|
export { buildAdrs } from "./adrs.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAK9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAK5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKlE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,15 @@ export interface ProductPlatformDependenciesBuildInputs {
|
|
|
6
6
|
/** SDD's product id (the consuming product). */
|
|
7
7
|
readonly productId: string;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Contract types that denote an ASYNC shared-stream dependency (M-ADR 0192).
|
|
11
|
+
* A dependency of one of these kinds binds to a stream contract published by a
|
|
12
|
+
* capability, not to a synchronous realiser service — so it characteristically
|
|
13
|
+
* has no `service_id`, and the F18 realiser-join does not apply to it at
|
|
14
|
+
* aggregation. Kept lowercase; callers normalise before testing.
|
|
15
|
+
*/
|
|
16
|
+
export declare const ASYNC_CONTRACT_TYPES: ReadonlySet<string>;
|
|
17
|
+
/** True when `contractType` denotes an async shared-stream dependency (M-ADR 0192). */
|
|
18
|
+
export declare function isAsyncContractType(contractType: string): boolean;
|
|
9
19
|
export declare function buildProductPlatformDependencies(inputs: ProductPlatformDependenciesBuildInputs): Promise<CatalogueRow[]>;
|
|
10
20
|
//# sourceMappingURL=product-platform-dependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-platform-dependencies.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"product-platform-dependencies.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAInD,CAAC;AAEH,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEjE;AAgCD,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,sCAAsC,GAC7C,OAAO,CAAC,YAAY,EAAE,CAAC,CA6GzB"}
|
|
@@ -27,9 +27,12 @@
|
|
|
27
27
|
// - <service-name-within-this-product>
|
|
28
28
|
//
|
|
29
29
|
// Each entry emits one row keyed by `(product_id, target_capability_id,
|
|
30
|
-
// target_service_id)
|
|
31
|
-
//
|
|
32
|
-
//
|
|
30
|
+
// target_service_id)` — or, for an ASYNC shared-stream entry with no realiser
|
|
31
|
+
// service (M-ADR 0192), `(product_id, target_capability_id, contract_path)`.
|
|
32
|
+
// The aggregator subsequently joins synchronous rows against platform-side
|
|
33
|
+
// `capability_service` to derive `cross_sdd_platform_capability` edges (per
|
|
34
|
+
// ADR 0134, federation); async rows resolve via the capability leg (no
|
|
35
|
+
// realiser service to join on) and skip the F18 realiser-join.
|
|
33
36
|
//
|
|
34
37
|
// Cross-SDD references (target_capability_id, target_service_id) are
|
|
35
38
|
// declared `external: true` in the schema — per-SDD FK validation
|
|
@@ -41,16 +44,46 @@
|
|
|
41
44
|
// PK was already claimed by forward emits `divergence` and is dropped.
|
|
42
45
|
// - Within a single source, a duplicate PK emits `divergence` and keeps
|
|
43
46
|
// the first.
|
|
44
|
-
// - Reverse: missing capability_id
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
47
|
+
// - Reverse: missing capability_id → skip, log `convention`. A synchronous
|
|
48
|
+
// entry missing service_id → skip, log `convention`. An async entry
|
|
49
|
+
// (contract_type in the M-ADR 0192 set) may omit service_id but must carry
|
|
50
|
+
// contract_path to key on, else `convention`. Forward: a synchronous entry
|
|
51
|
+
// with only the capability is a valid product_capability / product_service
|
|
52
|
+
// row but cannot form this edge — skipped silently; an async entry missing
|
|
53
|
+
// its contract_path logs `convention`.
|
|
48
54
|
//
|
|
49
|
-
//
|
|
55
|
+
// Schema 2.36.0: target_service_id is conditionally nullable — empty for async
|
|
56
|
+
// shared-stream rows, which key on contract_path (M-ADR 0192).
|
|
50
57
|
import { readFile, readdir, stat } from "node:fs/promises";
|
|
51
58
|
import { join, relative, sep } from "node:path";
|
|
52
59
|
import { parse as parseYaml } from "yaml";
|
|
53
60
|
const FORWARD_REL_PATH = "app-platform-dependencies.yaml";
|
|
61
|
+
/**
|
|
62
|
+
* Contract types that denote an ASYNC shared-stream dependency (M-ADR 0192).
|
|
63
|
+
* A dependency of one of these kinds binds to a stream contract published by a
|
|
64
|
+
* capability, not to a synchronous realiser service — so it characteristically
|
|
65
|
+
* has no `service_id`, and the F18 realiser-join does not apply to it at
|
|
66
|
+
* aggregation. Kept lowercase; callers normalise before testing.
|
|
67
|
+
*/
|
|
68
|
+
export const ASYNC_CONTRACT_TYPES = new Set([
|
|
69
|
+
"event",
|
|
70
|
+
"event-stream",
|
|
71
|
+
"stream",
|
|
72
|
+
]);
|
|
73
|
+
/** True when `contractType` denotes an async shared-stream dependency (M-ADR 0192). */
|
|
74
|
+
export function isAsyncContractType(contractType) {
|
|
75
|
+
return ASYNC_CONTRACT_TYPES.has(contractType.trim().toLowerCase());
|
|
76
|
+
}
|
|
77
|
+
function resolveKeyLeg(serviceId, contractType, contractPath) {
|
|
78
|
+
if (serviceId !== "")
|
|
79
|
+
return { ok: true, keyLeg: serviceId };
|
|
80
|
+
if (!isAsyncContractType(contractType)) {
|
|
81
|
+
return { ok: false, reason: "sync-single-sided" };
|
|
82
|
+
}
|
|
83
|
+
if (contractPath === "")
|
|
84
|
+
return { ok: false, reason: "async-no-contract-path" };
|
|
85
|
+
return { ok: true, keyLeg: contractPath };
|
|
86
|
+
}
|
|
54
87
|
export async function buildProductPlatformDependencies(inputs) {
|
|
55
88
|
const rows = [];
|
|
56
89
|
// Tracks which source claimed each PK, so divergence messages are accurate.
|
|
@@ -95,11 +128,22 @@ export async function buildProductPlatformDependencies(inputs) {
|
|
|
95
128
|
const dep = d;
|
|
96
129
|
const capabilityId = String(dep["capability_id"] ?? "").trim();
|
|
97
130
|
const serviceId = String(dep["service_id"] ?? "").trim();
|
|
98
|
-
|
|
99
|
-
|
|
131
|
+
const contractType = optString(dep["contract_type"]);
|
|
132
|
+
const contractPath = optString(dep["contract_path"]);
|
|
133
|
+
if (capabilityId === "") {
|
|
134
|
+
inputs.findings.add("convention", `${relPath}: platform_dependencies entry missing required capability_id (service_id="${serviceId}")`);
|
|
100
135
|
continue;
|
|
101
136
|
}
|
|
102
|
-
|
|
137
|
+
// M-ADR 0192: an async shared-stream entry legitimately has no service_id
|
|
138
|
+
// (no single realiser) and keys on its stream contract_path instead.
|
|
139
|
+
const keyRes = resolveKeyLeg(serviceId, contractType, contractPath);
|
|
140
|
+
if (!keyRes.ok) {
|
|
141
|
+
inputs.findings.add("convention", keyRes.reason === "async-no-contract-path"
|
|
142
|
+
? `${relPath}: async platform_dependencies entry for capability "${capabilityId}" (contract_type="${contractType}") has neither service_id nor contract_path — cannot key the stream dependency`
|
|
143
|
+
: `${relPath}: platform_dependencies entry for capability "${capabilityId}" missing required service_id (a synchronous dependency must name its realiser service)`);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
const rowId = `${inputs.productId}__${capabilityId}__${keyRes.keyLeg}`;
|
|
103
147
|
const claimedBy = seen.get(rowId);
|
|
104
148
|
if (claimedBy === "forward") {
|
|
105
149
|
inputs.findings.add("divergence", `${relPath}: platform_dependencies id="${rowId}" also declared forward in ${FORWARD_REL_PATH} — forward wins; reverse entry dropped`);
|
|
@@ -125,9 +169,9 @@ export async function buildProductPlatformDependencies(inputs) {
|
|
|
125
169
|
target_capability_id: capabilityId,
|
|
126
170
|
target_service_id: serviceId,
|
|
127
171
|
target_domain: optString(dep["domain"]),
|
|
128
|
-
contract_type:
|
|
172
|
+
contract_type: contractType,
|
|
129
173
|
required_stability: optString(dep["required_stability"]),
|
|
130
|
-
contract_path:
|
|
174
|
+
contract_path: contractPath,
|
|
131
175
|
consumed_by_services: consumedByJoined,
|
|
132
176
|
source_sdd_id: "",
|
|
133
177
|
});
|
|
@@ -176,14 +220,27 @@ async function readForwardSource(inputs, rows, seen) {
|
|
|
176
220
|
const dep = d;
|
|
177
221
|
const capabilityId = String(dep["capability_id"] ?? "").trim();
|
|
178
222
|
const serviceId = String(dep["service_id"] ?? "").trim();
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
//
|
|
182
|
-
|
|
223
|
+
const contractType = optString(dep["contract_type"]);
|
|
224
|
+
const contractPath = optString(dep["contract_path"]);
|
|
225
|
+
// Entry needs a capability plus a key leg to form this edge. A synchronous
|
|
226
|
+
// entry keys on service_id; a single-sided synchronous entry is a valid
|
|
227
|
+
// product_capability / product_service row (emitted by product-edges.ts)
|
|
228
|
+
// and is skipped silently here. An async shared-stream entry (M-ADR 0192)
|
|
229
|
+
// keys on its stream contract_path instead of a realiser service.
|
|
230
|
+
if (capabilityId === "")
|
|
183
231
|
continue;
|
|
184
|
-
const
|
|
232
|
+
const keyRes = resolveKeyLeg(serviceId, contractType, contractPath);
|
|
233
|
+
if (!keyRes.ok) {
|
|
234
|
+
if (keyRes.reason === "async-no-contract-path") {
|
|
235
|
+
inputs.findings.add("convention", `${FORWARD_REL_PATH}: async platform_dependencies entry for capability "${capabilityId}" (contract_type="${contractType}") has neither service_id nor contract_path — cannot key the stream dependency`);
|
|
236
|
+
}
|
|
237
|
+
// sync-single-sided → skip silently (legitimate product_capability /
|
|
238
|
+
// product_service row, not an error).
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
const rowId = `${inputs.productId}__${capabilityId}__${keyRes.keyLeg}`;
|
|
185
242
|
if (seen.has(rowId)) {
|
|
186
|
-
inputs.findings.add("divergence", `${FORWARD_REL_PATH}: duplicate platform_dependencies row id="${rowId}" — same (product_id, target_capability_id, target_service_id) already emitted`);
|
|
243
|
+
inputs.findings.add("divergence", `${FORWARD_REL_PATH}: duplicate platform_dependencies row id="${rowId}" — same (product_id, target_capability_id, target_service_id/contract_path) already emitted`);
|
|
187
244
|
continue;
|
|
188
245
|
}
|
|
189
246
|
seen.set(rowId, "forward");
|
|
@@ -193,9 +250,9 @@ async function readForwardSource(inputs, rows, seen) {
|
|
|
193
250
|
target_capability_id: capabilityId,
|
|
194
251
|
target_service_id: serviceId,
|
|
195
252
|
target_domain: optString(dep["domain"]),
|
|
196
|
-
contract_type:
|
|
253
|
+
contract_type: contractType,
|
|
197
254
|
required_stability: optString(dep["required_stability"]),
|
|
198
|
-
contract_path:
|
|
255
|
+
contract_path: contractPath,
|
|
199
256
|
consumed_by_services: "",
|
|
200
257
|
source_sdd_id: "",
|
|
201
258
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-platform-dependencies.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,sEAAsE;AACtE,mEAAmE;AACnE,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,0EAA0E;AAC1E,+EAA+E;AAC/E,EAAE;AACF,2BAA2B;AAC3B,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,uEAAuE;AACvE,2DAA2D;AAC3D,6EAA6E;AAC7E,8EAA8E;AAC9E,+CAA+C;AAC/C,EAAE;AACF,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"product-platform-dependencies.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/product-platform-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
# Builder contract: see docs/method/methods/catalogue-builder-specification.md.
|
|
46
46
|
# Category taxonomy: see docs/method/methods/product-category-taxonomy.md.
|
|
47
47
|
|
|
48
|
-
schema_version: "2.
|
|
48
|
+
schema_version: "2.37.0"
|
|
49
49
|
schema_owner: "sdd-method"
|
|
50
50
|
schema_status: "canonical"
|
|
51
51
|
# Bump rationale (2.34.0 — additive minor, per M-ADR 0189 F26 §3, ratified
|
|
@@ -1251,14 +1251,14 @@ catalogues:
|
|
|
1251
1251
|
foreign_keys:
|
|
1252
1252
|
- { column: product_id, references: products.id, nullable: false }
|
|
1253
1253
|
- { column: target_capability_id, references: capabilities.id, nullable: false, external: true }
|
|
1254
|
-
- { column: target_service_id, references: services.id, nullable:
|
|
1254
|
+
- { column: target_service_id, references: services.id, nullable: true, external: true }
|
|
1255
1255
|
columns:
|
|
1256
|
-
- { name: id, type: string, nullable: false, description: "{product_id}__{target_capability_id}__{target_service_id}." }
|
|
1256
|
+
- { name: id, type: string, nullable: false, description: "{product_id}__{target_capability_id}__{target_service_id}, EXCEPT for async shared-stream rows (M-ADR 0192) where there is no realiser service: the third component falls back to the stream contract_path, i.e. {product_id}__{target_capability_id}__{contract_path}. This keeps the PK stable and collision-free when a product depends on the same capability via two distinct streams." }
|
|
1257
1257
|
- { name: product_id, type: string, nullable: false, description: "Consuming product (this SDD's product id)." }
|
|
1258
1258
|
- { name: target_capability_id, type: string, nullable: false, description: "Capability the consuming product depends on. Resolves at aggregation against a sibling SDD's capabilities.id; external by definition." }
|
|
1259
|
-
- { name: target_service_id, type: string, nullable:
|
|
1259
|
+
- { name: target_service_id, type: string, nullable: true, description: "Service identifier the consuming product depends on. Resolves at aggregation against a sibling SDD's services.id; external by definition. The join key the aggregator uses to derive cross_sdd_platform_capability for SYNCHRONOUS dependencies. Conditionally nullable (M-ADR 0192): for an async shared-stream dependency (contract_type in the async set — `event`/`event-stream`/`stream`) there is no single realiser service, so this is empty and the dependency binds to the stream contract_path + target_capability_id instead. A synchronous contract_type still requires it. Made nullable in schema 2.36.0." }
|
|
1260
1260
|
- { name: target_domain, type: string, nullable: true, description: "Domain hint as declared in the consuming SDD's evidence (free-form; reviewer-facing annotation). May be a comma-separated list when the target spans multiple domains." }
|
|
1261
|
-
- { name: contract_type, type: string, nullable: true, description: "rest | graphql | openapi | grpc | event | other. Optional; reflects what the consuming SDD declares." }
|
|
1261
|
+
- { name: contract_type, type: string, nullable: true, description: "rest | graphql | openapi | grpc | event | event-stream | stream | other. Optional; reflects what the consuming SDD declares. The async set (`event`/`event-stream`/`stream`) marks a shared-stream subscription that binds to a stream contract rather than a realiser service (M-ADR 0192) — such rows skip the F18 synchronous realiser-join at aggregation." }
|
|
1262
1262
|
- { name: required_stability, type: string, nullable: true, description: "locked | provisional | unknown. Optional; the consuming SDD's expectation of contract stability." }
|
|
1263
1263
|
- { name: contract_path, type: string, nullable: true, description: "Path to the contract file the dependency is against, as declared in the consuming SDD's evidence. External — resolution happens at aggregation if it happens at all." }
|
|
1264
1264
|
- { name: consumed_by_services, type: string, nullable: true, description: "Comma-separated list of service names within the consuming product that consume the dependency. Free-text; not FK-validated (services are within-product and resolution is owner-side concern)." }
|
|
@@ -1296,6 +1296,35 @@ catalogues:
|
|
|
1296
1296
|
- { name: platform_capability_id, type: string, nullable: false, description: "Capability in the platform SDD whose capability_service includes the resolved service." }
|
|
1297
1297
|
- { name: service_id, type: string, nullable: false, description: "Service identifier the consuming SDD references and the platform SDD owns. The join key." }
|
|
1298
1298
|
|
|
1299
|
+
application_data_plane_bindings:
|
|
1300
|
+
primary_key: id
|
|
1301
|
+
description: >
|
|
1302
|
+
Application-product edge (M-ADR 0193): one row per declared data-plane
|
|
1303
|
+
binding — a typed way the service sources or holds data. The data-plane is
|
|
1304
|
+
a COMPOSITION of these bindings, a second axis orthogonal to
|
|
1305
|
+
`application_archetype` (0191). Built per-SDD from the manifest's
|
|
1306
|
+
`data_plane.bindings` block (application-product only; other profiles emit
|
|
1307
|
+
headers-only). A binding whose `target` is a platform capability/service
|
|
1308
|
+
reconciles with `product_platform_dependencies` — a `retrieve@internal`
|
|
1309
|
+
binding is a synchronous platform dependency and a `stream-ingest@internal`
|
|
1310
|
+
binding is the M-ADR 0192 `contract_type: event` async dependency; the
|
|
1311
|
+
genuinely new rows are `own-store` (a self-binding) and any
|
|
1312
|
+
`external-vendor` binding. The archetype-default-vs-declared WARN is a
|
|
1313
|
+
fast-follow that lands with the M-ADR 0191 §4.3 expectations overlay.
|
|
1314
|
+
Added in schema 2.37.0.
|
|
1315
|
+
foreign_keys:
|
|
1316
|
+
- { column: product_id, references: products.id, nullable: false }
|
|
1317
|
+
columns:
|
|
1318
|
+
- { name: id, type: string, nullable: false, description: "{product_id}__{pattern}__{locality}__{target} (empty components collapse to blanks). A duplicate emits a divergence finding and is dropped." }
|
|
1319
|
+
- { name: product_id, type: string, nullable: false, description: "The application-product declaring this binding (this SDD's product id)." }
|
|
1320
|
+
- { name: pattern, type: string, nullable: false, description: "Closed method-tier enum: retrieve | own-store | stream-ingest | project. How the data relates to the service (M-ADR 0193 §4.1)." }
|
|
1321
|
+
- { name: locality, type: string, nullable: true, description: "Closed enum: internal-platform | internal-domain | external-vendor. Where the other end sits. Empty for own-store (a self-binding with no other end)." }
|
|
1322
|
+
- { name: transport, type: string, nullable: true, description: "Open string — the wire (rest | graphql | grpc | appsync | kinesis | kafka | eventhub | cdc | ...). Values outside the recommended set emit a convention finding." }
|
|
1323
|
+
- { name: runtime, type: string, nullable: true, description: "Free adopter-tier field — backend-compute runtime (e.g. java | node). Only on compute-bearing patterns (stream-ingest/project); empty otherwise." }
|
|
1324
|
+
- { name: target, type: string, nullable: true, description: "Free adopter-tier field — the specific counterpart (a platform service id, an upstream domain service, a named vendor). Instance identity; keeps locality a small class enum." }
|
|
1325
|
+
- { name: notes, type: string, nullable: true, description: "Optional free-text annotation." }
|
|
1326
|
+
- { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
|
|
1327
|
+
|
|
1299
1328
|
# ---- UI screens family (schema 2.16.0, per ADR 0166) ----
|
|
1300
1329
|
# Application-product profile. Builder reads authored screen-spec artefacts
|
|
1301
1330
|
# (`screens/*.md`: frontmatter + a normative ```openui-lang fenced block).
|
|
@@ -5,13 +5,38 @@
|
|
|
5
5
|
* Validates schema_version against SCHEMA_COMPAT and the
|
|
6
6
|
* profile↔category invariant from product-category-taxonomy.md.
|
|
7
7
|
*/
|
|
8
|
+
import { z } from "zod";
|
|
8
9
|
export declare const MANIFEST_REL_PATH = ".sdd/sdd-manifest.yaml";
|
|
9
10
|
export declare const PROFILES: readonly ["platform-profile", "application-product", "integration-product", "support-repo", "organisation-profile"];
|
|
10
11
|
export type Profile = (typeof PROFILES)[number];
|
|
11
12
|
export declare const CATEGORIES: readonly ["platform-root", "platform-subsystem", "application-product", "integration-provider", "integration-umbrella", "support-repo", "organisation-root"];
|
|
12
13
|
export type Category = (typeof CATEGORIES)[number];
|
|
14
|
+
export declare const DATA_PLANE_PATTERNS: readonly ["retrieve", "own-store", "stream-ingest", "project"];
|
|
15
|
+
export type DataPlanePattern = (typeof DATA_PLANE_PATTERNS)[number];
|
|
16
|
+
export declare const DATA_PLANE_LOCALITIES: readonly ["internal-platform", "internal-domain", "external-vendor"];
|
|
17
|
+
export type DataPlaneLocality = (typeof DATA_PLANE_LOCALITIES)[number];
|
|
18
|
+
declare const DataPlaneBindingSchema: z.ZodObject<{
|
|
19
|
+
pattern: z.ZodEnum<{
|
|
20
|
+
retrieve: "retrieve";
|
|
21
|
+
"own-store": "own-store";
|
|
22
|
+
"stream-ingest": "stream-ingest";
|
|
23
|
+
project: "project";
|
|
24
|
+
}>;
|
|
25
|
+
locality: z.ZodOptional<z.ZodEnum<{
|
|
26
|
+
"internal-platform": "internal-platform";
|
|
27
|
+
"internal-domain": "internal-domain";
|
|
28
|
+
"external-vendor": "external-vendor";
|
|
29
|
+
}>>;
|
|
30
|
+
transport: z.ZodOptional<z.ZodString>;
|
|
31
|
+
runtime: z.ZodOptional<z.ZodString>;
|
|
32
|
+
target: z.ZodOptional<z.ZodString>;
|
|
33
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, z.core.$strip>;
|
|
13
35
|
export type Lifecycle = "active" | "deprecated";
|
|
14
36
|
export type Surface = "ui" | "api";
|
|
37
|
+
/** One data-plane binding (M-ADR 0193). Inferred from the Zod schema so the
|
|
38
|
+
* validated shape and the exported type never drift. */
|
|
39
|
+
export type DataPlaneBinding = z.infer<typeof DataPlaneBindingSchema>;
|
|
15
40
|
export interface SddManifest {
|
|
16
41
|
readonly schemaVersion: string;
|
|
17
42
|
readonly sddId: string;
|
|
@@ -37,6 +62,13 @@ export interface SddManifest {
|
|
|
37
62
|
readonly deprecatedDate?: string;
|
|
38
63
|
/** sdd_id of the superseding SDD; meaningful only when lifecycle=deprecated. */
|
|
39
64
|
readonly successorSddId?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Application-product data-plane axis (M-ADR 0193, 1.3.0) — a composition of
|
|
67
|
+
* typed bindings. Absent means no declared data-plane.
|
|
68
|
+
*/
|
|
69
|
+
readonly dataPlane?: {
|
|
70
|
+
readonly bindings: readonly DataPlaneBinding[];
|
|
71
|
+
};
|
|
40
72
|
/** Absolute path the manifest was read from (for error messages). */
|
|
41
73
|
readonly sourcePath: string;
|
|
42
74
|
}
|
|
@@ -62,4 +94,5 @@ export declare function loadSddManifest(sddPath: string, options: LoadManifestOp
|
|
|
62
94
|
* Restricted to the `^X.Y.Z` shape — that's the only form SCHEMA_COMPAT uses.
|
|
63
95
|
*/
|
|
64
96
|
export declare function isInRange(version: string, range: string): boolean;
|
|
97
|
+
export {};
|
|
65
98
|
//# sourceMappingURL=manifest-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"manifest-loader.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D,eAAO,MAAM,QAAQ,qHAMX,CAAC;AACX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,eAAO,MAAM,UAAU,8JAQb,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAcnD,eAAO,MAAM,mBAAmB,gEAKtB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,eAAO,MAAM,qBAAqB,sEAIxB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAUvE,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;iBAkBxB,CAAC;AAuEL,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;AAChD,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC;AAEnC;yDACyD;AACzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,gFAAgF;IAChF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;KAAE,CAAC;IACxE,qEAAqE;IACrE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAwFtB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAejE"}
|
|
@@ -34,6 +34,45 @@ const PROFILE_CATEGORY_INVARIANT = {
|
|
|
34
34
|
"support-repo": ["support-repo"],
|
|
35
35
|
"organisation-profile": ["organisation-root"],
|
|
36
36
|
};
|
|
37
|
+
// M-ADR 0193 — the data-plane axis. `pattern` and `locality` are CLOSED
|
|
38
|
+
// method-tier enums; `transport`/`target`/`runtime`/`notes` are free
|
|
39
|
+
// (adopter-tier). Malformed bindings FAIL at load, consistent with every other
|
|
40
|
+
// fixed manifest enum.
|
|
41
|
+
export const DATA_PLANE_PATTERNS = [
|
|
42
|
+
"retrieve",
|
|
43
|
+
"own-store",
|
|
44
|
+
"stream-ingest",
|
|
45
|
+
"project",
|
|
46
|
+
];
|
|
47
|
+
export const DATA_PLANE_LOCALITIES = [
|
|
48
|
+
"internal-platform",
|
|
49
|
+
"internal-domain",
|
|
50
|
+
"external-vendor",
|
|
51
|
+
];
|
|
52
|
+
// Patterns that carry a backend-compute role and therefore a runtime choice
|
|
53
|
+
// (M-ADR 0193 §4.1). `retrieve` (BFF/client) and `own-store` (private-api) are
|
|
54
|
+
// always TypeScript, so a `runtime` on them is malformed.
|
|
55
|
+
const COMPUTE_BEARING_PATTERNS = new Set([
|
|
56
|
+
"stream-ingest",
|
|
57
|
+
"project",
|
|
58
|
+
]);
|
|
59
|
+
const DataPlaneBindingSchema = z
|
|
60
|
+
.object({
|
|
61
|
+
pattern: z.enum(DATA_PLANE_PATTERNS),
|
|
62
|
+
locality: z.enum(DATA_PLANE_LOCALITIES).optional(),
|
|
63
|
+
transport: z.string().optional(),
|
|
64
|
+
runtime: z.string().optional(),
|
|
65
|
+
target: z.string().optional(),
|
|
66
|
+
notes: z.string().optional(),
|
|
67
|
+
})
|
|
68
|
+
.refine((b) => b.pattern === "own-store" || b.locality !== undefined, {
|
|
69
|
+
message: "locality is required for a data-sourcing binding (retrieve/stream-ingest/project); only own-store may omit it",
|
|
70
|
+
path: ["locality"],
|
|
71
|
+
})
|
|
72
|
+
.refine((b) => b.runtime === undefined || COMPUTE_BEARING_PATTERNS.has(b.pattern), {
|
|
73
|
+
message: "runtime is only valid on a compute-bearing binding (stream-ingest/project); retrieve/own-store carry no runtime choice",
|
|
74
|
+
path: ["runtime"],
|
|
75
|
+
});
|
|
37
76
|
const ManifestSchema = z.object({
|
|
38
77
|
schema_version: z.string(),
|
|
39
78
|
sdd_id: z.string().regex(/^[a-z][a-z0-9-]*$/, {
|
|
@@ -94,6 +133,13 @@ const ManifestSchema = z.object({
|
|
|
94
133
|
message: "successor_sdd_id must match /^[a-z][a-z0-9-]*$/ (sdd_id vocabulary)",
|
|
95
134
|
})
|
|
96
135
|
.optional(),
|
|
136
|
+
// Application-product data-plane axis (M-ADR 0193, sdd-manifest-schema 1.3.0).
|
|
137
|
+
// A composition of typed bindings; malformed bindings FAIL at load.
|
|
138
|
+
data_plane: z
|
|
139
|
+
.object({
|
|
140
|
+
bindings: z.array(DataPlaneBindingSchema),
|
|
141
|
+
})
|
|
142
|
+
.optional(),
|
|
97
143
|
});
|
|
98
144
|
/**
|
|
99
145
|
* Read and validate the `.sdd/sdd-manifest.yaml` at the given SDD repo root.
|
|
@@ -177,6 +223,7 @@ export async function loadSddManifest(sddPath, options) {
|
|
|
177
223
|
...(parsed.data.successor_sdd_id !== undefined
|
|
178
224
|
? { successorSddId: parsed.data.successor_sdd_id }
|
|
179
225
|
: {}),
|
|
226
|
+
...(parsed.data.data_plane !== undefined ? { dataPlane: parsed.data.data_plane } : {}),
|
|
180
227
|
sourcePath,
|
|
181
228
|
};
|
|
182
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-loader.js","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manifest-loader.js","sourceRoot":"","sources":["../../../src/lib/catalogue/manifest-loader.ts"],"names":[],"mappings":"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"}
|