@sdd-method/sdd-cli 0.24.0 → 0.25.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/dist/lib/catalogue/advisory-container-type.d.ts +13 -0
- package/dist/lib/catalogue/advisory-container-type.d.ts.map +1 -0
- package/dist/lib/catalogue/advisory-container-type.js +56 -0
- package/dist/lib/catalogue/advisory-container-type.js.map +1 -0
- package/dist/lib/catalogue/aggregate.d.ts.map +1 -1
- package/dist/lib/catalogue/aggregate.js +34 -0
- 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 +30 -1
- package/dist/lib/catalogue/build.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-containers.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/c4-containers.js +12 -8
- package/dist/lib/catalogue/builders/c4-containers.js.map +1 -1
- package/dist/lib/catalogue/builders/c4-external-systems.d.ts +15 -0
- package/dist/lib/catalogue/builders/c4-external-systems.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/c4-external-systems.js +150 -0
- package/dist/lib/catalogue/builders/c4-external-systems.js.map +1 -0
- package/dist/lib/catalogue/builders/index.d.ts +6 -0
- package/dist/lib/catalogue/builders/index.d.ts.map +1 -1
- package/dist/lib/catalogue/builders/index.js +3 -0
- package/dist/lib/catalogue/builders/index.js.map +1 -1
- package/dist/lib/catalogue/builders/persona-c4system.d.ts +13 -0
- package/dist/lib/catalogue/builders/persona-c4system.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/persona-c4system.js +104 -0
- package/dist/lib/catalogue/builders/persona-c4system.js.map +1 -0
- package/dist/lib/catalogue/builders/system-external-dependency.d.ts +14 -0
- package/dist/lib/catalogue/builders/system-external-dependency.d.ts.map +1 -0
- package/dist/lib/catalogue/builders/system-external-dependency.js +111 -0
- package/dist/lib/catalogue/builders/system-external-dependency.js.map +1 -0
- package/dist/lib/catalogue/canonical-schema.yaml +69 -2
- package/dist/lib/catalogue/validate.d.ts.map +1 -1
- package/dist/lib/catalogue/validate.js +4 -0
- package/dist/lib/catalogue/validate.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CatalogueRow } from "./csv-writer.js";
|
|
2
|
+
import type { FindingsLog } from "./findings.js";
|
|
3
|
+
import type { CanonicalSchema } from "./schema-loader.js";
|
|
4
|
+
/**
|
|
5
|
+
* Emit a `convention` finding for every `c4_containers` row whose `type` is
|
|
6
|
+
* outside the canonical `c4_container_type` set. Advisory only — never fails
|
|
7
|
+
* the build/validate (except under `--strict`, which fails on any finding).
|
|
8
|
+
*
|
|
9
|
+
* Self-disabling: returns early if the enum is missing (3.0.0+ removed it) or
|
|
10
|
+
* already bound via `column_enums` (the FAIL path then owns enforcement).
|
|
11
|
+
*/
|
|
12
|
+
export declare function checkContainerTypeAdvisory(schema: CanonicalSchema, rowsByCatalogue: ReadonlyMap<string, readonly CatalogueRow[]>, findings: FindingsLog): void;
|
|
13
|
+
//# sourceMappingURL=advisory-container-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advisory-container-type.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/advisory-container-type.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,EAC7D,QAAQ,EAAE,WAAW,GACpB,IAAI,CAwBN"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// ADR 0155 transitional advisory check (2.x schema line only).
|
|
2
|
+
//
|
|
3
|
+
// The `c4_container_type` enum (Application | Data Store) is deliberately NOT
|
|
4
|
+
// bound via `c4_containers.column_enums` during 2.x — binding it would hard-
|
|
5
|
+
// fail FK/enum validation. Instead, a non-canonical `c4_containers.type`
|
|
6
|
+
// (the deprecated `Infrastructure` / `External System`) is recognised-but-
|
|
7
|
+
// WARNed, prompting migration before the 3.0.0 breaking removal binds the enum.
|
|
8
|
+
//
|
|
9
|
+
// The canonical builder cannot itself emit a legacy type (it derives `type`
|
|
10
|
+
// fresh from the C4 macro: Container→Application, ContainerDb/ContainerQueue→
|
|
11
|
+
// Data Store, and Container_Ext is routed to c4_external_systems). So this
|
|
12
|
+
// check is near-inert at `build` time and exists there to satisfy the spec's
|
|
13
|
+
// "a conforming builder MUST emit [finding] convention" literally and to catch
|
|
14
|
+
// any non-canonical row a future/alternative builder produces. It has real
|
|
15
|
+
// teeth at `validate` time, where it reads an existing catalogues/ directory —
|
|
16
|
+
// e.g. an adopter who upgraded sdd-cli but has not yet rebuilt a catalogue that
|
|
17
|
+
// still carries Infrastructure rows from the old builder.
|
|
18
|
+
//
|
|
19
|
+
// DELETE this module at the 3.0.0 major bump: enforcement moves to the
|
|
20
|
+
// column_enums FAIL path once the enum is bound. The guard below makes that
|
|
21
|
+
// safe — once `c4_container_type` is bound (or removed), this check disables
|
|
22
|
+
// itself to avoid double-reporting.
|
|
23
|
+
const CATALOGUE = "c4_containers";
|
|
24
|
+
const COLUMN = "type";
|
|
25
|
+
const ENUM = "c4_container_type";
|
|
26
|
+
/**
|
|
27
|
+
* Emit a `convention` finding for every `c4_containers` row whose `type` is
|
|
28
|
+
* outside the canonical `c4_container_type` set. Advisory only — never fails
|
|
29
|
+
* the build/validate (except under `--strict`, which fails on any finding).
|
|
30
|
+
*
|
|
31
|
+
* Self-disabling: returns early if the enum is missing (3.0.0+ removed it) or
|
|
32
|
+
* already bound via `column_enums` (the FAIL path then owns enforcement).
|
|
33
|
+
*/
|
|
34
|
+
export function checkContainerTypeAdvisory(schema, rowsByCatalogue, findings) {
|
|
35
|
+
const enumDef = schema.enums[ENUM];
|
|
36
|
+
if (!enumDef)
|
|
37
|
+
return;
|
|
38
|
+
const cat = schema.catalogues.find((c) => c.name === CATALOGUE);
|
|
39
|
+
if (cat && cat.columnEnums[COLUMN])
|
|
40
|
+
return;
|
|
41
|
+
const allowed = new Set(enumDef.values.map((v) => v.value));
|
|
42
|
+
const canonical = enumDef.values.map((v) => v.value).join(" | ");
|
|
43
|
+
const rows = rowsByCatalogue.get(CATALOGUE) ?? [];
|
|
44
|
+
for (const row of rows) {
|
|
45
|
+
const value = String(row[COLUMN] ?? "").trim();
|
|
46
|
+
if (value === "" || allowed.has(value))
|
|
47
|
+
continue;
|
|
48
|
+
const id = String(row["id"] ?? "<no-id>");
|
|
49
|
+
findings.add("convention", `${CATALOGUE} row ${id} has non-canonical ${COLUMN} "${value}" ` +
|
|
50
|
+
`(per ADR 0155 the canonical c4_container_type is ${canonical}; ` +
|
|
51
|
+
`"External System" belongs in c4_external_systems, ` +
|
|
52
|
+
`"Infrastructure" retypes to Application/Data Store). ` +
|
|
53
|
+
`Recognised-but-deprecated during 2.x; removed at schema 3.0.0.`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=advisory-container-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"advisory-container-type.js","sourceRoot":"","sources":["../../../src/lib/catalogue/advisory-container-type.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,yEAAyE;AACzE,2EAA2E;AAC3E,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAC3E,+EAA+E;AAC/E,gFAAgF;AAChF,0DAA0D;AAC1D,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,6EAA6E;AAC7E,oCAAoC;AAMpC,MAAM,SAAS,GAAG,eAAe,CAAC;AAClC,MAAM,MAAM,GAAG,MAAM,CAAC;AACtB,MAAM,IAAI,GAAG,mBAAmB,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAuB,EACvB,eAA6D,EAC7D,QAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAChE,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO;IAE3C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAElD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACjD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;QAC1C,QAAQ,CAAC,GAAG,CACV,YAAY,EACZ,GAAG,SAAS,QAAQ,EAAE,sBAAsB,MAAM,KAAK,KAAK,IAAI;YAC9D,oDAAoD,SAAS,IAAI;YACjE,oDAAoD;YACpD,uDAAuD;YACvD,gEAAgE,CACnE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/aggregate.ts"],"names":[],"mappings":"AA+BA,OAAO,EAA6C,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,mEAAmE;IACnE,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/aggregate.ts"],"names":[],"mappings":"AA+BA,OAAO,EAA6C,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,mEAAmE;IACnE,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,CAAC,CA0L1B;AAkHD,iBAAS,gBAAgB,CACvB,SAAS,EAAE,YAAY,EACvB,IAAI,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACvC,WAAW,EAAE,MAAM,GAClB,YAAY,EAAE,CAUhB;AA0LD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gCAAgC,CAC9C,mBAAmB,EAAE,SAAS,YAAY,EAAE,EAC5C,kBAAkB,EAAE,SAAS,YAAY,EAAE,EAC3C,QAAQ,EAAE,WAAW,GACpB,YAAY,EAAE,CA6DhB;AAID,eAAO,MAAM,aAAa;;;CAA0C,CAAC"}
|
|
@@ -81,6 +81,12 @@ export async function runCatalogueAggregate(inputs, write) {
|
|
|
81
81
|
// §"Cross-SDD platform-capability-edge" + ADR 0134.
|
|
82
82
|
const crossSddRows = deriveCrossSddPlatformCapability(rowsByCatalogue.get("product_platform_dependencies") ?? [], rowsByCatalogue.get("capability_service") ?? [], findings);
|
|
83
83
|
rowsByCatalogue.set("cross_sdd_platform_capability", crossSddRows);
|
|
84
|
+
// 5b. Dedup c4_external_systems by id (ADR 0155). External systems are
|
|
85
|
+
// inherently shared references — the same external (e.g. ext-google-maps)
|
|
86
|
+
// may be declared by multiple SDDs. This is the one narrowly-scoped
|
|
87
|
+
// exception to the duplicate-PK rule: identical rows merge (first-seen
|
|
88
|
+
// wins); conflicting attributes on the same id surface as a finding.
|
|
89
|
+
dedupExternalSystems(rowsByCatalogue, findings);
|
|
84
90
|
// 6. Duplicate primary key check.
|
|
85
91
|
const duplicates = findDuplicatePrimaryKeys(schema, rowsByCatalogue);
|
|
86
92
|
if (duplicates.length > 0) {
|
|
@@ -161,6 +167,34 @@ export async function runCatalogueAggregate(inputs, write) {
|
|
|
161
167
|
outDir,
|
|
162
168
|
};
|
|
163
169
|
}
|
|
170
|
+
// ADR 0155: c4_external_systems rows dedup by id across SDDs rather than
|
|
171
|
+
// failing the duplicate-PK check. First-seen row wins; a `source_sdd_id`
|
|
172
|
+
// already stamped is preserved. Conflicting name/technology/description on
|
|
173
|
+
// the same id emits a `convention` finding so authors can reconcile.
|
|
174
|
+
function dedupExternalSystems(rowsByCatalogue, findings) {
|
|
175
|
+
const rows = rowsByCatalogue.get("c4_external_systems");
|
|
176
|
+
if (rows === undefined || rows.length === 0)
|
|
177
|
+
return;
|
|
178
|
+
const byId = new Map();
|
|
179
|
+
for (const row of rows) {
|
|
180
|
+
const id = String(row["id"] ?? "");
|
|
181
|
+
if (id === "")
|
|
182
|
+
continue;
|
|
183
|
+
const existing = byId.get(id);
|
|
184
|
+
if (existing === undefined) {
|
|
185
|
+
byId.set(id, row);
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
for (const attr of ["name", "technology", "description"]) {
|
|
189
|
+
const a = String(existing[attr] ?? "");
|
|
190
|
+
const b = String(row[attr] ?? "");
|
|
191
|
+
if (a !== "" && b !== "" && a !== b) {
|
|
192
|
+
findings.add("convention", `c4_external_systems: id "${id}" has conflicting ${attr} across SDDs [${String(existing["source_sdd_id"] ?? "?")}, ${String(row["source_sdd_id"] ?? "?")}] — first-seen kept`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
rowsByCatalogue.set("c4_external_systems", [...byId.values()]);
|
|
197
|
+
}
|
|
164
198
|
function findDuplicatePrimaryKeys(schema, rowsByCatalogue) {
|
|
165
199
|
const out = [];
|
|
166
200
|
for (const cat of schema.catalogues) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/lib/catalogue/aggregate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/lib/catalogue/aggregate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA2DH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,CAAC,CA4EtB"}
|
|
@@ -18,13 +18,14 @@
|
|
|
18
18
|
* infrastructure works end-to-end on any SDD repo.
|
|
19
19
|
*/
|
|
20
20
|
import { join, resolve } from "node:path";
|
|
21
|
+
import { checkContainerTypeAdvisory } from "./advisory-container-type.js";
|
|
21
22
|
import { CLI_VERSION } from "./cli-version.js";
|
|
22
23
|
import { loadCanonicalSchema } from "./schema-loader.js";
|
|
23
24
|
import { loadSddManifest } from "./manifest-loader.js";
|
|
24
25
|
import { writeCatalogue } from "./csv-writer.js";
|
|
25
26
|
import { validateForeignKeys } from "./fk-validator.js";
|
|
26
27
|
import { FindingsLog } from "./findings.js";
|
|
27
|
-
import { buildDomains, buildProducts, buildRepositories, buildServices, buildCapabilities, buildCapabilityService, buildCapabilityAdr, buildCapabilityFeature, buildCapabilityContract, buildAdrs, buildAdrSupersedes, buildFeatures, buildFeatureGroups, buildFeatureGrounding, buildCapabilitySpec, buildContracts, buildRepoEdges, buildEvents, buildServiceEvent, buildCapabilityEvent, buildServiceContract, buildServiceContractConsumes, buildFeatureContract, buildDomainModels, buildCapabilityDomainModel, buildFeatureDomainModel, buildFeatureSubscriptionChannels, buildProductPlatformDependencies, buildGlossaryItems, buildGlossaryXref, buildC4Systems, buildC4Containers, buildPersonas, buildUserJourneys, buildPersonaJourney, buildPersonaFeature, buildJourneyFeature, buildProductEdges, buildIntegrations, } from "./builders/index.js";
|
|
28
|
+
import { buildDomains, buildProducts, buildRepositories, buildServices, buildCapabilities, buildCapabilityService, buildCapabilityAdr, buildCapabilityFeature, buildCapabilityContract, buildAdrs, buildAdrSupersedes, buildFeatures, buildFeatureGroups, buildFeatureGrounding, buildCapabilitySpec, buildContracts, buildRepoEdges, buildEvents, buildServiceEvent, buildCapabilityEvent, buildServiceContract, buildServiceContractConsumes, buildFeatureContract, buildDomainModels, buildCapabilityDomainModel, buildFeatureDomainModel, buildFeatureSubscriptionChannels, buildProductPlatformDependencies, buildGlossaryItems, buildGlossaryXref, buildC4Systems, buildC4Containers, buildC4ExternalSystems, buildSystemExternalDependency, buildPersonaC4System, buildPersonas, buildUserJourneys, buildPersonaJourney, buildPersonaFeature, buildJourneyFeature, buildProductEdges, buildIntegrations, } from "./builders/index.js";
|
|
28
29
|
import { loadTraceabilityManifests } from "./traceability-loader.js";
|
|
29
30
|
import { loadRunwayVocabulary } from "./runway-vocabulary-loader.js";
|
|
30
31
|
import { loadFeatureGroundingAliases } from "./feature-grounding-aliases-loader.js";
|
|
@@ -50,6 +51,10 @@ export async function runCatalogueBuild(inputs, write) {
|
|
|
50
51
|
}
|
|
51
52
|
// 5. Internal FK validation (external FKs logged as findings).
|
|
52
53
|
const fk = validateForeignKeys(schema, rowsByCatalogue, findings);
|
|
54
|
+
// ADR 0155 advisory: WARN on any non-canonical c4_containers.type. The
|
|
55
|
+
// canonical builder cannot emit one (type is derived from the macro), so
|
|
56
|
+
// this is a defensive guard satisfying the builder-spec MUST literally.
|
|
57
|
+
checkContainerTypeAdvisory(schema, rowsByCatalogue, findings);
|
|
53
58
|
// 6. Report.
|
|
54
59
|
write("\nRow counts:\n");
|
|
55
60
|
for (const [name, count] of rowCounts) {
|
|
@@ -507,6 +512,30 @@ async function collectRows(schema, manifest, findings, sddPath) {
|
|
|
507
512
|
knownDomainIds,
|
|
508
513
|
});
|
|
509
514
|
out.set("c4_containers", c4Containers);
|
|
515
|
+
// 15b. C4 L1 context elements (ADR 0155): external systems + the
|
|
516
|
+
// persona→system and system→external edges, extracted from System_Ext /
|
|
517
|
+
// Person / Rel macros on the L1/L2 diagrams.
|
|
518
|
+
const c4External = await buildC4ExternalSystems({
|
|
519
|
+
sddPath,
|
|
520
|
+
manifest,
|
|
521
|
+
findings,
|
|
522
|
+
});
|
|
523
|
+
out.set("c4_external_systems", c4External.rows);
|
|
524
|
+
out.set("system_external_dependency", await buildSystemExternalDependency({
|
|
525
|
+
sddPath,
|
|
526
|
+
manifest,
|
|
527
|
+
findings,
|
|
528
|
+
knownSystemIds,
|
|
529
|
+
externalIdByEntryId: c4External.idByEntryId,
|
|
530
|
+
}));
|
|
531
|
+
out.set("persona_c4system", await buildPersonaC4System({
|
|
532
|
+
sddPath,
|
|
533
|
+
manifest,
|
|
534
|
+
findings,
|
|
535
|
+
knownSystemIds,
|
|
536
|
+
personaIdByName: personasResult.idByName,
|
|
537
|
+
personaIdBySlug: personasResult.idBySlug,
|
|
538
|
+
}));
|
|
510
539
|
// 16. Glossary items + cross-references.
|
|
511
540
|
const glossaryResult = await buildGlossaryItems({
|
|
512
541
|
sddPath,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/lib/catalogue/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c4-containers.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/c4-containers.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,iEAAiE;IACjE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9C;
|
|
1
|
+
{"version":3,"file":"c4-containers.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/c4-containers.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,iEAAiE;IACjE,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9C,mEAAmE;IACnE,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC9C;AAmCD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,YAAY,EAAE,CAAC,CAsDzB"}
|
|
@@ -24,17 +24,21 @@ import { join, sep } from "node:path";
|
|
|
24
24
|
const L2_BASENAME = "c4-l2-container.mermaid.md";
|
|
25
25
|
// Boundary opener: `System_Boundary(id, "name") {` or `Container_Boundary(...)`.
|
|
26
26
|
const BOUNDARY_OPEN_RE = /^(System_Boundary|Container_Boundary)\s*\(\s*\w+/;
|
|
27
|
-
// C4-PlantUML container entries inside boundaries.
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
//
|
|
32
|
-
|
|
27
|
+
// C4-PlantUML container entries inside boundaries. Per ADR 0155 the
|
|
28
|
+
// canonical c4_container_type is Application | Data Store only:
|
|
29
|
+
// Container(id, "name", "tech", "desc") → Application
|
|
30
|
+
// ContainerDb(id, "name", "tech", "desc") → Data Store
|
|
31
|
+
// ContainerQueue(id, "name", "tech", "desc") → Data Store (a running
|
|
32
|
+
// broker/queue is a
|
|
33
|
+
// container, not "infra")
|
|
34
|
+
// `Container_Ext` is intentionally NOT matched here — external containers
|
|
35
|
+
// are catalogued as `c4_external_systems` rows by the c4-external-systems
|
|
36
|
+
// builder, never as internal container rows.
|
|
37
|
+
const ENTRY_RE = /(Container|ContainerDb|ContainerQueue)\s*\(\s*(\w+)\s*,\s*"([^"]+)"\s*(?:,\s*"([^"]*)")?\s*(?:,\s*"([^"]*)")?\s*\)/;
|
|
33
38
|
const TYPE_BY_KIND = {
|
|
34
39
|
Container: "Application",
|
|
35
40
|
ContainerDb: "Data Store",
|
|
36
|
-
ContainerQueue: "
|
|
37
|
-
Container_Ext: "External System",
|
|
41
|
+
ContainerQueue: "Data Store",
|
|
38
42
|
};
|
|
39
43
|
export async function buildC4Containers(inputs) {
|
|
40
44
|
const systemId = `${inputs.manifest.sddId}-system`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c4-containers.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/c4-containers.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,gCAAgC;AAChC,2EAA2E;AAC3E,wDAAwD;AACxD,kFAAkF;AAClF,EAAE;AACF,oBAAoB;AACpB,mEAAmE;AACnE,wEAAwE;AACxE,0DAA0D;AAC1D,wEAAwE;AACxE,kEAAkE;AAClE,uEAAuE;AACvE,2DAA2D;AAC3D,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,0CAA0C;AAC1C,EAAE;AACF,iEAAiE;AACjE,sCAAsC;AAEtC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAiBtC,MAAM,WAAW,GAAG,4BAA4B,CAAC;AAEjD,iFAAiF;AACjF,MAAM,gBAAgB,GACpB,kDAAkD,CAAC;AAErD,
|
|
1
|
+
{"version":3,"file":"c4-containers.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/c4-containers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CatalogueRow } from "../csv-writer.js";
|
|
2
|
+
import type { FindingsLog } from "../findings.js";
|
|
3
|
+
import type { SddManifest } from "../manifest-loader.js";
|
|
4
|
+
export interface C4ExternalSystemsBuildInputs {
|
|
5
|
+
readonly sddPath: string;
|
|
6
|
+
readonly manifest: SddManifest;
|
|
7
|
+
readonly findings: FindingsLog;
|
|
8
|
+
}
|
|
9
|
+
export interface C4ExternalSystemsResult {
|
|
10
|
+
readonly rows: CatalogueRow[];
|
|
11
|
+
/** diagram entry-id (e.g. `telematics_cloud`) → row id (`ext-...`). */
|
|
12
|
+
readonly idByEntryId: ReadonlyMap<string, string>;
|
|
13
|
+
}
|
|
14
|
+
export declare function buildC4ExternalSystems(inputs: C4ExternalSystemsBuildInputs): Promise<C4ExternalSystemsResult>;
|
|
15
|
+
//# sourceMappingURL=c4-external-systems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c4-external-systems.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/c4-external-systems.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD;AAwBD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,uBAAuB,CAAC,CAgDlC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// C4 external software systems discoverer — emits `c4_external_systems.csv`
|
|
2
|
+
// rows (per ADR 0155). External systems are C4 L1 peers the ecosystem
|
|
3
|
+
// integrates with but does not own; they are rendered `System_Ext(...)` on
|
|
4
|
+
// L1/L2 diagrams (and occasionally `Container_Ext(...)` for an external
|
|
5
|
+
// system's container). They are NOT c4_containers (not inside your system)
|
|
6
|
+
// and NOT c4_systems (no owning Product).
|
|
7
|
+
//
|
|
8
|
+
// We scan the same L1 + L2 files the c4-systems / c4-containers builders
|
|
9
|
+
// read, and pull every `System_Ext(id, "name", "desc")` and
|
|
10
|
+
// `Container_Ext(id, "name", "tech", "desc")` declaration. The row id is a
|
|
11
|
+
// stable slug `ext-{slug(name)}` so the same external system declared by
|
|
12
|
+
// multiple SDDs collapses to one row at aggregation (the dedup-by-PK
|
|
13
|
+
// exception to ADR 0134, applied by the aggregator).
|
|
14
|
+
//
|
|
15
|
+
// The returned `idByEntryId` map (diagram entry-id → row id) lets the
|
|
16
|
+
// system_external_dependency builder resolve `Rel(...)` endpoints.
|
|
17
|
+
import { readdir, readFile, stat } from "node:fs/promises";
|
|
18
|
+
import { join, sep } from "node:path";
|
|
19
|
+
// `System_Ext(id, "name", "desc")` — no technology argument.
|
|
20
|
+
const SYSTEM_EXT_RE = /System_Ext\s*\(\s*(\w+)\s*,\s*"([^"]+)"\s*(?:,\s*"([^"]*)")?\s*\)/;
|
|
21
|
+
// `Container_Ext(id, "name", "tech", "desc")` — external container.
|
|
22
|
+
const CONTAINER_EXT_RE = /Container_Ext\s*\(\s*(\w+)\s*,\s*"([^"]+)"\s*(?:,\s*"([^"]*)")?\s*(?:,\s*"([^"]*)")?\s*\)/;
|
|
23
|
+
const L1_CANDIDATES = [
|
|
24
|
+
"docs/platform/diagrams/c4-l1-context.mermaid.md",
|
|
25
|
+
"docs/diagrams/c4-l1-context.mermaid.md",
|
|
26
|
+
"docs/application/c4-l1.md",
|
|
27
|
+
"docs/c4-l1.md",
|
|
28
|
+
];
|
|
29
|
+
const L2_BASENAME = "c4-l2-container.mermaid.md";
|
|
30
|
+
export async function buildC4ExternalSystems(inputs) {
|
|
31
|
+
const files = await collectDiagramFiles(inputs.sddPath);
|
|
32
|
+
const rows = [];
|
|
33
|
+
const idByEntryId = new Map();
|
|
34
|
+
const seen = new Map();
|
|
35
|
+
for (const abs of files) {
|
|
36
|
+
const content = await readFile(abs, "utf-8");
|
|
37
|
+
for (const ext of parseExternals(content)) {
|
|
38
|
+
const slug = slugify(ext.name);
|
|
39
|
+
if (slug === "")
|
|
40
|
+
continue;
|
|
41
|
+
const id = `ext-${slug}`;
|
|
42
|
+
idByEntryId.set(ext.entryId, id);
|
|
43
|
+
const existing = seen.get(id);
|
|
44
|
+
if (existing) {
|
|
45
|
+
// Same external referenced again — first row wins; flag attribute
|
|
46
|
+
// conflicts so authors can reconcile.
|
|
47
|
+
if ((ext.technology !== "" &&
|
|
48
|
+
existing["technology"] !== "" &&
|
|
49
|
+
existing["technology"] !== ext.technology) ||
|
|
50
|
+
(ext.description !== "" &&
|
|
51
|
+
existing["description"] !== "" &&
|
|
52
|
+
existing["description"] !== ext.description)) {
|
|
53
|
+
inputs.findings.add("convention", `c4_external_systems: id "${id}" declared with conflicting attributes within ${inputs.manifest.sddId} — first-seen kept`);
|
|
54
|
+
}
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const row = {
|
|
58
|
+
id,
|
|
59
|
+
name: ext.name,
|
|
60
|
+
technology: ext.technology,
|
|
61
|
+
description: ext.description,
|
|
62
|
+
source_sdd_id: "",
|
|
63
|
+
};
|
|
64
|
+
seen.set(id, row);
|
|
65
|
+
rows.push(row);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
rows.sort((a, b) => String(a["id"]).localeCompare(String(b["id"])));
|
|
69
|
+
return { rows, idByEntryId };
|
|
70
|
+
}
|
|
71
|
+
function parseExternals(content) {
|
|
72
|
+
const out = [];
|
|
73
|
+
for (const raw of content.split(/\r?\n/)) {
|
|
74
|
+
const line = raw.trim();
|
|
75
|
+
const se = SYSTEM_EXT_RE.exec(line);
|
|
76
|
+
if (se) {
|
|
77
|
+
out.push({
|
|
78
|
+
entryId: se[1] ?? "",
|
|
79
|
+
name: se[2] ?? "",
|
|
80
|
+
technology: "",
|
|
81
|
+
description: se[3] ?? "",
|
|
82
|
+
});
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const ce = CONTAINER_EXT_RE.exec(line);
|
|
86
|
+
if (ce) {
|
|
87
|
+
out.push({
|
|
88
|
+
entryId: ce[1] ?? "",
|
|
89
|
+
name: ce[2] ?? "",
|
|
90
|
+
technology: ce[3] ?? "",
|
|
91
|
+
description: ce[4] ?? "",
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return out;
|
|
96
|
+
}
|
|
97
|
+
async function collectDiagramFiles(sddPath) {
|
|
98
|
+
const out = [];
|
|
99
|
+
for (const rel of L1_CANDIDATES) {
|
|
100
|
+
const abs = join(sddPath, rel);
|
|
101
|
+
if (await isFile(abs))
|
|
102
|
+
out.push(abs);
|
|
103
|
+
}
|
|
104
|
+
// Per-domain L2 files.
|
|
105
|
+
const domainsDir = join(sddPath, "docs", "domains");
|
|
106
|
+
try {
|
|
107
|
+
const entries = (await readdir(domainsDir, { withFileTypes: true }))
|
|
108
|
+
.filter((e) => e.isDirectory())
|
|
109
|
+
.map((e) => e.name)
|
|
110
|
+
.sort((a, b) => a.localeCompare(b));
|
|
111
|
+
for (const name of entries) {
|
|
112
|
+
const abs = join(sddPath, "docs", "domains", name, "architecture", "diagrams", L2_BASENAME);
|
|
113
|
+
if (await isFile(abs))
|
|
114
|
+
out.push(abs);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
if (err.code !== "ENOENT")
|
|
119
|
+
throw err;
|
|
120
|
+
}
|
|
121
|
+
// Platform-wide + per-product L2.
|
|
122
|
+
for (const rel of [
|
|
123
|
+
join("docs", "platform", "diagrams", L2_BASENAME),
|
|
124
|
+
join("docs", L2_BASENAME),
|
|
125
|
+
]) {
|
|
126
|
+
const abs = join(sddPath, rel);
|
|
127
|
+
if (await isFile(abs))
|
|
128
|
+
out.push(abs);
|
|
129
|
+
}
|
|
130
|
+
void sep;
|
|
131
|
+
return out;
|
|
132
|
+
}
|
|
133
|
+
async function isFile(path) {
|
|
134
|
+
try {
|
|
135
|
+
return (await stat(path)).isFile();
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
if (err.code === "ENOENT")
|
|
139
|
+
return false;
|
|
140
|
+
throw err;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function slugify(s) {
|
|
144
|
+
return s
|
|
145
|
+
.toLowerCase()
|
|
146
|
+
.replace(/\s*\([^)]+\)/g, "")
|
|
147
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
148
|
+
.replace(/^-+|-+$/g, "");
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=c4-external-systems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c4-external-systems.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/c4-external-systems.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,4 +72,10 @@ export { buildFeatureSubscriptionChannels } from "./feature-subscription-channel
|
|
|
72
72
|
export type { FeatureSubscriptionChannelsBuildInputs } from "./feature-subscription-channels.js";
|
|
73
73
|
export { buildProductPlatformDependencies } from "./product-platform-dependencies.js";
|
|
74
74
|
export type { ProductPlatformDependenciesBuildInputs } from "./product-platform-dependencies.js";
|
|
75
|
+
export { buildC4ExternalSystems } from "./c4-external-systems.js";
|
|
76
|
+
export type { C4ExternalSystemsBuildInputs, C4ExternalSystemsResult, } from "./c4-external-systems.js";
|
|
77
|
+
export { buildSystemExternalDependency } from "./system-external-dependency.js";
|
|
78
|
+
export type { SystemExternalDependencyInputs } from "./system-external-dependency.js";
|
|
79
|
+
export { buildPersonaC4System } from "./persona-c4system.js";
|
|
80
|
+
export type { PersonaC4SystemInputs } from "./persona-c4system.js";
|
|
75
81
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,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,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,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,YAAY,EACV,kBAAkB,EAClB,qBAAqB,GACtB,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,MAAM,eAAe,CAAC;AACnD,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,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,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"}
|
|
@@ -39,4 +39,7 @@ export { buildCapabilityDomainModel } from "./capability-domain-model.js";
|
|
|
39
39
|
export { buildFeatureDomainModel } from "./feature-domain-model.js";
|
|
40
40
|
export { buildFeatureSubscriptionChannels } from "./feature-subscription-channels.js";
|
|
41
41
|
export { buildProductPlatformDependencies } from "./product-platform-dependencies.js";
|
|
42
|
+
export { buildC4ExternalSystems } from "./c4-external-systems.js";
|
|
43
|
+
export { buildSystemExternalDependency } from "./system-external-dependency.js";
|
|
44
|
+
export { buildPersonaC4System } from "./persona-c4system.js";
|
|
42
45
|
//# sourceMappingURL=index.js.map
|
|
@@ -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;AAKjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKnD,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,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,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"}
|
|
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;AAKjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM1C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAK3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKnD,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,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CatalogueRow } from "../csv-writer.js";
|
|
2
|
+
import type { FindingsLog } from "../findings.js";
|
|
3
|
+
import type { SddManifest } from "../manifest-loader.js";
|
|
4
|
+
export interface PersonaC4SystemInputs {
|
|
5
|
+
readonly sddPath: string;
|
|
6
|
+
readonly manifest: SddManifest;
|
|
7
|
+
readonly findings: FindingsLog;
|
|
8
|
+
readonly knownSystemIds: ReadonlySet<string>;
|
|
9
|
+
readonly personaIdByName: ReadonlyMap<string, string>;
|
|
10
|
+
readonly personaIdBySlug: ReadonlyMap<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export declare function buildPersonaC4System(inputs: PersonaC4SystemInputs): Promise<CatalogueRow[]>;
|
|
13
|
+
//# sourceMappingURL=persona-c4system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona-c4system.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/persona-c4system.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvD;AAoBD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAsCzB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// persona_c4system edge builder — emits one row per `Person(...)` actor on
|
|
2
|
+
// the L1 context diagram that maps to a known persona (per ADR 0155). This
|
|
3
|
+
// captures the C4 "Person uses System" relationship; the C4 Person
|
|
4
|
+
// abstraction reuses the existing Persona entity rather than a parallel one.
|
|
5
|
+
//
|
|
6
|
+
// Resolution: `Person(id, "name", "desc")` actors are matched to personas
|
|
7
|
+
// rows by name (case-insensitive) then by name-slug, using the maps the
|
|
8
|
+
// personas builder produces. Unmatched actors log a `coverage` finding and
|
|
9
|
+
// are skipped (no dangling FK). The optional interaction label comes from a
|
|
10
|
+
// `Rel(person, system, "label")` line.
|
|
11
|
+
import { readFile, stat } from "node:fs/promises";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
// `Person(id, "name", "desc")` / `Person_Ext(id, "name", "desc")`.
|
|
14
|
+
const PERSON_RE = /Person(?:_Ext)?\s*\(\s*(\w+)\s*,\s*"([^"]+)"\s*(?:,\s*"([^"]*)")?\s*\)/;
|
|
15
|
+
const REL_RE = /^(?:Bi)?Rel(?:_[A-Za-z]+)?\s*\(\s*(\w+)\s*,\s*(\w+)\s*(?:,\s*"([^"]*)")?/;
|
|
16
|
+
const L1_CANDIDATES = [
|
|
17
|
+
"docs/platform/diagrams/c4-l1-context.mermaid.md",
|
|
18
|
+
"docs/diagrams/c4-l1-context.mermaid.md",
|
|
19
|
+
"docs/application/c4-l1.md",
|
|
20
|
+
"docs/c4-l1.md",
|
|
21
|
+
];
|
|
22
|
+
export async function buildPersonaC4System(inputs) {
|
|
23
|
+
const systemId = `${inputs.manifest.sddId}-system`;
|
|
24
|
+
if (!inputs.knownSystemIds.has(systemId))
|
|
25
|
+
return [];
|
|
26
|
+
const content = await readL1(inputs.sddPath);
|
|
27
|
+
if (content === "")
|
|
28
|
+
return [];
|
|
29
|
+
const persons = parsePersons(content);
|
|
30
|
+
if (persons.length === 0)
|
|
31
|
+
return [];
|
|
32
|
+
const interactionByEntryId = relInteractionsTo(content, systemId);
|
|
33
|
+
const rows = [];
|
|
34
|
+
const seen = new Set();
|
|
35
|
+
for (const person of persons) {
|
|
36
|
+
const personaId = inputs.personaIdByName.get(person.name.toLowerCase()) ??
|
|
37
|
+
inputs.personaIdBySlug.get(slugify(person.name));
|
|
38
|
+
if (personaId === undefined) {
|
|
39
|
+
inputs.findings.add("coverage", `persona_c4system: Person "${person.name}" on the L1 diagram has no matching persona row — edge skipped`);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const id = `${personaId}__${systemId}`;
|
|
43
|
+
if (seen.has(id))
|
|
44
|
+
continue;
|
|
45
|
+
seen.add(id);
|
|
46
|
+
rows.push({
|
|
47
|
+
id,
|
|
48
|
+
persona_id: personaId,
|
|
49
|
+
c4_system_id: systemId,
|
|
50
|
+
interaction: interactionByEntryId.get(person.entryId) ?? "",
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
rows.sort((a, b) => String(a["id"]).localeCompare(String(b["id"])));
|
|
54
|
+
return rows;
|
|
55
|
+
}
|
|
56
|
+
function parsePersons(content) {
|
|
57
|
+
const out = [];
|
|
58
|
+
for (const raw of content.split(/\r?\n/)) {
|
|
59
|
+
const m = PERSON_RE.exec(raw.trim());
|
|
60
|
+
if (m)
|
|
61
|
+
out.push({ entryId: m[1] ?? "", name: m[2] ?? "" });
|
|
62
|
+
}
|
|
63
|
+
return out;
|
|
64
|
+
}
|
|
65
|
+
// Map a person entry-id → the label of a Rel connecting it to the system.
|
|
66
|
+
function relInteractionsTo(content, systemId) {
|
|
67
|
+
const out = new Map();
|
|
68
|
+
// The system's diagram entry-id is unknown here, so we accept any Rel
|
|
69
|
+
// whose `from` is a person and keep its label; the common L1 shape is
|
|
70
|
+
// `Rel(personEntryId, appSystem, "Uses", ...)`.
|
|
71
|
+
void systemId;
|
|
72
|
+
for (const raw of content.split(/\r?\n/)) {
|
|
73
|
+
const m = REL_RE.exec(raw.trim());
|
|
74
|
+
if (m && m[3]) {
|
|
75
|
+
const from = m[1] ?? "";
|
|
76
|
+
if (!out.has(from))
|
|
77
|
+
out.set(from, m[3]);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return out;
|
|
81
|
+
}
|
|
82
|
+
async function readL1(sddPath) {
|
|
83
|
+
for (const rel of L1_CANDIDATES) {
|
|
84
|
+
const abs = join(sddPath, rel);
|
|
85
|
+
try {
|
|
86
|
+
const s = await stat(abs);
|
|
87
|
+
if (s.isFile())
|
|
88
|
+
return await readFile(abs, "utf-8");
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (err.code !== "ENOENT")
|
|
92
|
+
throw err;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return "";
|
|
96
|
+
}
|
|
97
|
+
function slugify(s) {
|
|
98
|
+
return s
|
|
99
|
+
.toLowerCase()
|
|
100
|
+
.replace(/\s*\([^)]+\)/g, "")
|
|
101
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
102
|
+
.replace(/^-+|-+$/g, "");
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=persona-c4system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persona-c4system.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/persona-c4system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CatalogueRow } from "../csv-writer.js";
|
|
2
|
+
import type { FindingsLog } from "../findings.js";
|
|
3
|
+
import type { SddManifest } from "../manifest-loader.js";
|
|
4
|
+
export interface SystemExternalDependencyInputs {
|
|
5
|
+
readonly sddPath: string;
|
|
6
|
+
readonly manifest: SddManifest;
|
|
7
|
+
readonly findings: FindingsLog;
|
|
8
|
+
/** known c4_systems ids — for single-system ecosystems, a one-element set. */
|
|
9
|
+
readonly knownSystemIds: ReadonlySet<string>;
|
|
10
|
+
/** diagram entry-id → c4_external_systems row id (from buildC4ExternalSystems). */
|
|
11
|
+
readonly externalIdByEntryId: ReadonlyMap<string, string>;
|
|
12
|
+
}
|
|
13
|
+
export declare function buildSystemExternalDependency(inputs: SystemExternalDependencyInputs): Promise<CatalogueRow[]>;
|
|
14
|
+
//# sourceMappingURL=system-external-dependency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-external-dependency.d.ts","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/system-external-dependency.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,mFAAmF;IACnF,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3D;AAeD,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,YAAY,EAAE,CAAC,CAmCzB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// system_external_dependency edge builder — emits one row per
|
|
2
|
+
// `Rel(...)` line on an L1/L2 diagram that connects the SDD's own system
|
|
3
|
+
// (or one of its containers) to an external system (per ADR 0155).
|
|
4
|
+
//
|
|
5
|
+
// Resolution: the c4-external-systems builder supplies `externalIdByEntryId`
|
|
6
|
+
// (diagram entry-id → ext-... row id). For each `Rel(a, b, "label")` where
|
|
7
|
+
// exactly one endpoint is a known external entry-id, we emit an edge from
|
|
8
|
+
// the SDD's c4_systems row to that external system. Container-level external
|
|
9
|
+
// dependencies are intentionally collapsed to the system level — ADR 0155
|
|
10
|
+
// §4.2 keeps the edge system-scoped.
|
|
11
|
+
import { readdir, readFile, stat } from "node:fs/promises";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
// Any C4-PlantUML relationship macro: Rel, Rel_U/D/L/R, BiRel, Rel_Back, etc.
|
|
14
|
+
// Capture the first two positional args (from, to) and an optional label.
|
|
15
|
+
const REL_RE = /^(?:Bi)?Rel(?:_[A-Za-z]+)?\s*\(\s*(\w+)\s*,\s*(\w+)\s*(?:,\s*"([^"]*)")?/;
|
|
16
|
+
const L1_CANDIDATES = [
|
|
17
|
+
"docs/platform/diagrams/c4-l1-context.mermaid.md",
|
|
18
|
+
"docs/diagrams/c4-l1-context.mermaid.md",
|
|
19
|
+
"docs/application/c4-l1.md",
|
|
20
|
+
"docs/c4-l1.md",
|
|
21
|
+
];
|
|
22
|
+
const L2_BASENAME = "c4-l2-container.mermaid.md";
|
|
23
|
+
export async function buildSystemExternalDependency(inputs) {
|
|
24
|
+
const systemId = `${inputs.manifest.sddId}-system`;
|
|
25
|
+
if (!inputs.knownSystemIds.has(systemId)) {
|
|
26
|
+
// Non-architectural SDD — no c4_systems FK target. Skip silently.
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
if (inputs.externalIdByEntryId.size === 0)
|
|
30
|
+
return [];
|
|
31
|
+
const files = await collectDiagramFiles(inputs.sddPath);
|
|
32
|
+
const rows = [];
|
|
33
|
+
const seen = new Set();
|
|
34
|
+
for (const abs of files) {
|
|
35
|
+
const content = await readFile(abs, "utf-8");
|
|
36
|
+
for (const rel of parseRels(content)) {
|
|
37
|
+
const fromExt = inputs.externalIdByEntryId.get(rel.from);
|
|
38
|
+
const toExt = inputs.externalIdByEntryId.get(rel.to);
|
|
39
|
+
// Exactly one endpoint external — otherwise it's internal↔internal or
|
|
40
|
+
// external↔external (neither is a system→external dependency).
|
|
41
|
+
if ((fromExt === undefined) === (toExt === undefined))
|
|
42
|
+
continue;
|
|
43
|
+
const externalSystemId = (fromExt ?? toExt);
|
|
44
|
+
const id = `${systemId}__${externalSystemId}`;
|
|
45
|
+
if (seen.has(id))
|
|
46
|
+
continue;
|
|
47
|
+
seen.add(id);
|
|
48
|
+
rows.push({
|
|
49
|
+
id,
|
|
50
|
+
c4_system_id: systemId,
|
|
51
|
+
external_system_id: externalSystemId,
|
|
52
|
+
interaction: rel.label,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
rows.sort((a, b) => String(a["id"]).localeCompare(String(b["id"])));
|
|
57
|
+
return rows;
|
|
58
|
+
}
|
|
59
|
+
function parseRels(content) {
|
|
60
|
+
const out = [];
|
|
61
|
+
for (const raw of content.split(/\r?\n/)) {
|
|
62
|
+
const m = REL_RE.exec(raw.trim());
|
|
63
|
+
if (m)
|
|
64
|
+
out.push({ from: m[1] ?? "", to: m[2] ?? "", label: m[3] ?? "" });
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
async function collectDiagramFiles(sddPath) {
|
|
69
|
+
const out = [];
|
|
70
|
+
for (const rel of L1_CANDIDATES) {
|
|
71
|
+
const abs = join(sddPath, rel);
|
|
72
|
+
if (await isFile(abs))
|
|
73
|
+
out.push(abs);
|
|
74
|
+
}
|
|
75
|
+
const domainsDir = join(sddPath, "docs", "domains");
|
|
76
|
+
try {
|
|
77
|
+
const entries = (await readdir(domainsDir, { withFileTypes: true }))
|
|
78
|
+
.filter((e) => e.isDirectory())
|
|
79
|
+
.map((e) => e.name)
|
|
80
|
+
.sort((a, b) => a.localeCompare(b));
|
|
81
|
+
for (const name of entries) {
|
|
82
|
+
const abs = join(sddPath, "docs", "domains", name, "architecture", "diagrams", L2_BASENAME);
|
|
83
|
+
if (await isFile(abs))
|
|
84
|
+
out.push(abs);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
if (err.code !== "ENOENT")
|
|
89
|
+
throw err;
|
|
90
|
+
}
|
|
91
|
+
for (const rel of [
|
|
92
|
+
join("docs", "platform", "diagrams", L2_BASENAME),
|
|
93
|
+
join("docs", L2_BASENAME),
|
|
94
|
+
]) {
|
|
95
|
+
const abs = join(sddPath, rel);
|
|
96
|
+
if (await isFile(abs))
|
|
97
|
+
out.push(abs);
|
|
98
|
+
}
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
async function isFile(path) {
|
|
102
|
+
try {
|
|
103
|
+
return (await stat(path)).isFile();
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
if (err.code === "ENOENT")
|
|
107
|
+
return false;
|
|
108
|
+
throw err;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=system-external-dependency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-external-dependency.js","sourceRoot":"","sources":["../../../../src/lib/catalogue/builders/system-external-dependency.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.10.0"
|
|
49
49
|
schema_owner: "sdd-method"
|
|
50
50
|
schema_status: "canonical"
|
|
51
51
|
# Bump rationale (2.9.0 — additive minor): adds the Track 2 cohort-sweep
|
|
@@ -87,6 +87,29 @@ enums:
|
|
|
87
87
|
- { value: application, description: "An application-product system, consumes platform services and contracts." }
|
|
88
88
|
- { value: integration, description: "An integration-provider system, bridges an external provider into the platform." }
|
|
89
89
|
|
|
90
|
+
c4_container_type:
|
|
91
|
+
description: >
|
|
92
|
+
Canonical C4 container kind for `c4_containers.type`, aligned with
|
|
93
|
+
c4model.com/abstractions (per ADR 0155). A C4 container is something
|
|
94
|
+
that must be running for the system to work — an application or a
|
|
95
|
+
data store.
|
|
96
|
+
|
|
97
|
+
Staged enforcement: this enum is ADVISORY during the 2.x schema line.
|
|
98
|
+
It is intentionally NOT bound via `c4_containers.column_enums` yet, so
|
|
99
|
+
a non-canonical value does not fail the build. The legacy values
|
|
100
|
+
`Infrastructure` and `External System` are recognised-but-deprecated:
|
|
101
|
+
builders accept them and emit a `convention` finding (WARN) prompting
|
|
102
|
+
migration. `External System` boxes belong in `c4_external_systems`
|
|
103
|
+
(they are C4 L1 peer systems, not L2 containers); running
|
|
104
|
+
infrastructure (broker, gateway, cache) retypes to Application or
|
|
105
|
+
Data Store; pure deployment infrastructure (load balancer, DNS) leaves
|
|
106
|
+
the container catalogue (it belongs in a C4 deployment diagram, which
|
|
107
|
+
is not catalogued). The breaking removal of the legacy values and the
|
|
108
|
+
column-enum binding land at the 3.0.0 major bump.
|
|
109
|
+
values:
|
|
110
|
+
- { value: Application, description: "A separately deployable/runnable application — a service, BFF, UI, consumer, worker, etc." }
|
|
111
|
+
- { value: "Data Store", description: "A database or persistence layer (also covers running stores like a message broker when modelled as a container)." }
|
|
112
|
+
|
|
90
113
|
service_type:
|
|
91
114
|
description: >
|
|
92
115
|
Type of repository, declared in `orchestration/repo-config/*.yaml` as
|
|
@@ -387,7 +410,7 @@ catalogues:
|
|
|
387
410
|
- { name: system_id, type: string, nullable: false, description: "Owning C4 system (every container is in exactly one system)." }
|
|
388
411
|
- { name: domain_id, type: string, nullable: true, description: "Optional organisational domain tag (denormalised; not C4-structural)." }
|
|
389
412
|
- { name: service_id, type: string, nullable: true, description: "Matched by container name ↔ service name/repo where possible." }
|
|
390
|
-
- { name: type, type: string, nullable: true, description: "Application | Data Store
|
|
413
|
+
- { name: type, type: string, nullable: true, description: "Canonical C4 container kind — see enums.c4_container_type (Application | Data Store). Legacy values Infrastructure | External System are recognised-but-deprecated during 2.x (WARN); External System boxes belong in c4_external_systems. Per ADR 0155. Enum binding is advisory until 3.0.0." }
|
|
391
414
|
- { name: technology, type: string, nullable: true }
|
|
392
415
|
- { name: description, type: string, nullable: true }
|
|
393
416
|
- { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
|
|
@@ -411,6 +434,26 @@ catalogues:
|
|
|
411
434
|
- { name: responsibility, type: string, nullable: true }
|
|
412
435
|
- { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
|
|
413
436
|
|
|
437
|
+
c4_external_systems:
|
|
438
|
+
primary_key: id
|
|
439
|
+
description: >
|
|
440
|
+
C4 external software systems — peer systems at the L1 context level
|
|
441
|
+
that the ecosystem integrates with but does not own (per ADR 0155).
|
|
442
|
+
Rendered `System_Ext(...)` on L1/L2 diagrams. NOT a c4_container
|
|
443
|
+
(external systems are not inside your system) and NOT a c4_system
|
|
444
|
+
(they have no owning Product). External systems are inherently shared
|
|
445
|
+
references: the same external system may be declared by multiple SDDs,
|
|
446
|
+
so the aggregator dedups identical rows by PK rather than failing on
|
|
447
|
+
duplicate (the one narrowly-scoped exception to ADR 0134's
|
|
448
|
+
duplicate-PK rule); conflicting attributes on the same id surface as a
|
|
449
|
+
`convention` finding.
|
|
450
|
+
columns:
|
|
451
|
+
- { name: id, type: string, nullable: false, description: "Bare slug, e.g. ext-google-maps." }
|
|
452
|
+
- { name: name, type: string, nullable: false, description: "Display name from the System_Ext label." }
|
|
453
|
+
- { name: technology, type: string, nullable: true, description: "Optional stack/protocol hint." }
|
|
454
|
+
- { name: description, type: string, nullable: true, description: "What the external system provides." }
|
|
455
|
+
- { name: source_sdd_id, type: string, nullable: true, description: "Originating SDD slug. Populated by the aggregator per ADR 0134." }
|
|
456
|
+
|
|
414
457
|
repositories:
|
|
415
458
|
primary_key: id
|
|
416
459
|
foreign_keys:
|
|
@@ -679,6 +722,30 @@ catalogues:
|
|
|
679
722
|
- { name: journey_id, type: string, nullable: false }
|
|
680
723
|
- { name: role, type: string, nullable: false, description: "primary | handoff | supporting." }
|
|
681
724
|
|
|
725
|
+
persona_c4system:
|
|
726
|
+
primary_key: id
|
|
727
|
+
description: "Edge: persona (C4 Person) uses a C4 system. Captures the L1 context 'Person uses System' relationship, extracted from Person(...) macros on the L1 context diagram and matched to personas rows. Per ADR 0155. Added in schema 2.10.0."
|
|
728
|
+
foreign_keys:
|
|
729
|
+
- { column: persona_id, references: personas.id, nullable: false }
|
|
730
|
+
- { column: c4_system_id, references: c4_systems.id, nullable: false }
|
|
731
|
+
columns:
|
|
732
|
+
- { name: id, type: string, nullable: false, description: "{persona_id}__{c4_system_id}." }
|
|
733
|
+
- { name: persona_id, type: string, nullable: false }
|
|
734
|
+
- { name: c4_system_id, type: string, nullable: false }
|
|
735
|
+
- { name: interaction, type: string, nullable: true, description: "Optional interaction label from the Rel(...) line, e.g. 'Web browser' / 'Mobile app'." }
|
|
736
|
+
|
|
737
|
+
system_external_dependency:
|
|
738
|
+
primary_key: id
|
|
739
|
+
description: "Edge: a C4 system integrates with an external software system. Captures the L1 context 'System integrates with External System' relationship, extracted from System_Ext(...) + Rel(...) on L1/L2 diagrams. Per ADR 0155. Container-level external dependencies are out of scope (system-level only). Added in schema 2.10.0."
|
|
740
|
+
foreign_keys:
|
|
741
|
+
- { column: c4_system_id, references: c4_systems.id, nullable: false }
|
|
742
|
+
- { column: external_system_id, references: c4_external_systems.id, nullable: false }
|
|
743
|
+
columns:
|
|
744
|
+
- { name: id, type: string, nullable: false, description: "{c4_system_id}__{external_system_id}." }
|
|
745
|
+
- { name: c4_system_id, type: string, nullable: false }
|
|
746
|
+
- { name: external_system_id, type: string, nullable: false }
|
|
747
|
+
- { name: interaction, type: string, nullable: true, description: "Optional integration label/protocol from the Rel(...) line." }
|
|
748
|
+
|
|
682
749
|
capability_adr:
|
|
683
750
|
primary_key: id
|
|
684
751
|
description: "Edge: ADR informs capability. Forward: declared in capability spec Architecture Decisions. Reverse: same plus heuristic match supplements with confidence."
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/lib/catalogue/validate.ts"],"names":[],"mappings":"AAwBA,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAgHzB"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
// drift OR internal-FK FAIL.
|
|
14
14
|
import { stat } from "node:fs/promises";
|
|
15
15
|
import { join, resolve } from "node:path";
|
|
16
|
+
import { checkContainerTypeAdvisory } from "./advisory-container-type.js";
|
|
16
17
|
import { CLI_VERSION } from "./cli-version.js";
|
|
17
18
|
import { readCatalogueCsv } from "./csv-reader.js";
|
|
18
19
|
import { writeCatalogue } from "./csv-writer.js";
|
|
@@ -67,6 +68,9 @@ export async function runCatalogueValidate(inputs, write) {
|
|
|
67
68
|
rowsByCatalogue.set(cat.name, parsed.rows);
|
|
68
69
|
}
|
|
69
70
|
const fk = validateForeignKeys(schema, rowsByCatalogue, findings);
|
|
71
|
+
// ADR 0155 advisory: WARN on non-canonical c4_containers.type in the
|
|
72
|
+
// existing catalogue (e.g. legacy Infrastructure rows not yet migrated).
|
|
73
|
+
checkContainerTypeAdvisory(schema, rowsByCatalogue, findings);
|
|
70
74
|
// Report.
|
|
71
75
|
const findingsText = findings.render();
|
|
72
76
|
if (findingsText)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/lib/catalogue/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/lib/catalogue/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdd-method/sdd-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Method-layer CLI for SDD repository lifecycle — init, sync, validate, list, plan, generate-briefing, mcp serve, catalogue {build,aggregate,validate,version}, pack {build,validate}. v0.24.0 ships sdd-mcp Phase 8 — catalogue resources + tools on the read-only MCP server (sdd-method ADR 0128 + ADR 0150). New resources: sdd://catalogue/schema (vendored canonical schema as JSON), sdd://catalogue/metamodel, sdd://catalogue/category-taxonomy, sdd://catalogue (list of built catalogues), and sdd://catalogue/{name} (rows from catalogues/{name}.csv, validated against the schema, distinguishing not-declared from not-built). New tools: query_catalogue_coverage (row count + internal-FK pass), find_products_by_category, find_orphan_rows (broken internal FK targets), and query_edges_for_entity (every edge row referencing an entity). All reuse the existing src/lib/catalogue schema-loader + csv-reader rather than re-parsing; FK checks consider internal FKs only per ADR 0134 (external FKs are validated at aggregation). Markdown resources try the post-IA path (guides/, standards/) then fall back, returning a structured 'run sdd-cli sync' error when absent. v0.23.1 patches v0.23.0: `sdd-cli pack build` now populates source_commit + source_branch in the rendered BUNDLE_MANIFEST.yaml from `git rev-parse HEAD` / `git rev-parse --abbrev-ref HEAD` against the producer-repo working tree, matching sdd-method's build-method-baseline-bundle.sh provenance behaviour. Non-git producer dirs (CI artefact directories etc.) get the sentinel \"uncommitted\" so consumer-side parseManifest (which rejects empty source_commit) still accepts the bundle. Pre-v0.23.1 packs wrote empty strings and were unsyncable — discovered during the contextua-platform Phase 7 first-adopter pilot (ADR 0151) when operations-console refused the first build of contextua-app-context-pack@v0.1.0. v0.23.0 ships the adopter pack producer + consumer surface per sdd-method ADR 0151 (companion plan adopter-bundle-producer-model.md Phases 3a + 3b + 3c). New `pack` verb with build and validate subcommands lets platform-profile adopters (contextua-platform, CXS Connect) produce additive-layer bundles from a context-pack-seed.yaml declaration. The builder validates the seed against the canonical schema, resolves include: directives across files, expands managed_paths (literal + glob against the producer working tree), runs a producer-side leakage check (disjointness with the declared forward base + disjointness with declared forbidden_paths globs), stages the payload tree, emits SHA-256 checksums per managed file, renders BUNDLE_MANIFEST.yaml mirroring the .hbs template shape, and produces <pack-name>-v<semver>.tar.gz + sidecar .sha256. Consumer-side enforcement extends `sdd-cli sync` for the multi-bundle lock chain: requires_forward_base resolution verifies the consumer's lock carries a compatible forward base; requires_pack resolution enforces vertical-extension dependencies with full semver-range support (caret with pre-1.0 narrow per npm convention, tilde, exact pin, >=); the existing cross-bundle path-ownership check now functions for adopter pack names too (consumer-side leakage assertion); produced_by_adopter / scope / requires_forward_base / requires_pack carry from the manifest into the lock entry as additive optional fields preserving lock_version: 2. New `sdd-cli sync --config <path>` reads a multi-bundle method-baseline.config.yaml (ordered bundles[].source list) and iterates each through the single-bundle sync engine — mutually exclusive with --bundle. `sdd-cli list` surfaces adopter pack provenance: forward-base version in the repo line plus indented `+ <pack-name> <version> from <adopter-repo> [requires <base-pack>]` lines beneath; --verbose adds per-bundle managed_path counts; JSON format adds a per-repo bundles[] array carrying full provenance. Type relaxation: BundleManifest.bundleName and BundleEntry.name widened from the closed BundleName enum to string (adopter pack names are arbitrary per ADR 0151); the closed enum still applies to sdd-method forward bases, validated at parse time only when is_forward_base: true. BundleManifest parser migrated from line-by-line scalar regex to the existing yaml library dependency for nested requires_forward_base / requires_pack object parsing. v0.22.0 bundles three landed scopes. (a) ADR 0141 Phase 5 — `--agent-harness` flag on init/sync now accepts `github-copilot-cli` as the second reference implementation alongside the `claude-code` default; Copilot CLI sync writes `.github/hooks/{pre-tool-use,session-start}.json` with the same sentinel-based ownership pattern as the Claude Code `.claude/settings.json` block. Default changes from \"unset\" to `claude-code`; existing adopters on v0.12.2+ get sentinel-tagged-in-place via the dedupe pre-pass. Unknown harness values fail loudly instead of warning. (b) ADR 0148 Phase 4 — init and sync now emit `agent-instructions.md` at the SDD root (harness-neutral, fully method-managed, unconditional overwrite) plus a thin harness wrapper (`CLAUDE.md` under claude-code, `AGENTS.md` under github-copilot-cli) with `<!-- method-managed: begin/end -->` markers; adopter content around the marker block survives sync via the existing `writeMarkedBlockFile` machinery. The v0.3–v0.21 `generate-claude-md` verb + native rich-content renderer retire; the new `generate-briefing` verb regenerates both files from the on-disk templates for the no-bundle-sync case. Older bundles pre-dating ADR 0148 templates sync gracefully with a \"Skipped\" log line. Existing repos carrying a hand-rolled CLAUDE.md without markers will see the wrapper rewrite refused on first sync; pass --allow-overwrite after rehoming any custom content (covered in the upstream agent-instructions-migration-guide). (c) Catalogue schema 2.9.0 (lockstep with sdd-method v0.10.0 reverse-extension-baseline v0.9.0) carrying the Track 2 cohort-sweep field additions per content/plans/v0-9-0-cohort-sweep-derived-bundle.md: capabilities now carries data_subset (foundational/synthesis-tier keying axis) + slice_scope (multi-app-group capability slicing — same capability_id may appear with distinct slice_scope values, row identity becomes (id, slice_scope)); new per-feature edge catalogue feature_subscription_channels built from reverse-evidence/feature-grounding-evidence.yaml subscription_channels: entries (AppSync WebSocket / Pekko WS / MQTT / SSE channel layer, peer of graphql_operations: per resolved §1, kebab name + transport + evidence + optional payload_ref); new per-SDD edge catalogue product_platform_dependencies built from the product-scoped platform_dependencies: block in the same evidence file; new federated edge catalogue cross_sdd_platform_capability derived by the aggregator joining product_platform_dependencies × capability_service on target_service_id == service_id, emitting one row per resolved (consuming-product, platform-capability) pair with orphan findings for unresolved references. SCHEMA_COMPAT unchanged (still ^2.0.0); additive minor across both new catalogues and capability column additions. v0.21.0 ships catalogue schema 2.8.0 closing the long-tail contract-consumer mapping gap (K-03a). The contracts builder now also walks the platform-profile layout `docs/domains/<dom>/contracts/{openapi,proto,avro}/<file>.<ext>` documented in reverse/workflows/contract.md, in addition to the canonical `contracts/<subdir>/<dom>/<file>.<ext>` layout — backward-compatible additive change for federated SDDs that don't carry per-domain contracts. Adds a new buildServiceContractConsumes builder that parses each service's `repos/<service>/docs/service-architecture.md` External Interfaces table, reads Outbound rows, and emits `service_contract` rows with role=consumes via an adopter-supplied `.sdd/service-contract-aliases.yaml` (case-insensitive interface_aliases + interface_contains substring tier + same_product_inference templates with `{prefix}` substitution). Schema 2.8.0 marks service_contract.contract_id as external:true so federated SDDs can emit consumes rows pointing to platform-root contracts; aggregator validates the merged catalogue. Resolution failures become convention findings, not FK-invalid rows. Pattern documented in sdd-method ADR 0147. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.19.0 ships catalogue schema 2.6.0 (lockstep with sdd-method): adds optional `sub_integrations:` array on integration-manifest.yaml per ADR 0144. Multi-provider integration monoliths (modernisation-in-flight or intentional permanent gateways brokering N providers) can declare each provider; the integrations.ts builder emits one integrations.csv row per sub_integration with parent_product_id = umbrella SDD's integrationId. Uses the existing parent_product_id column — no new schema columns. Backward compatible (optional field); SDDs without sub_integrations emit identical output to pre-2.6.0. Originating motivation: connect's sdd-camera-platform-legacy covering Surfsight v2 + VisionTrack v1/v2 + SureCam in one Spring-Boot codebase. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.18.0 ships catalogue schema 2.5.0 (lockstep with sdd-method): adds feature-grounding source per ADR 0143. Canonical builder walks `docs/domains/<dom>/design/<capability>/feature-grounding.md` (platform-profile) and `docs/design/integration/feature-grounding.md` (integration-product), parses the markdown table form, and emits features.csv rows (source: feature-grounding, capability-owned) plus capability_feature / feature_repo / feature_service edges derived from the table columns. Optional per-SDD `.sdd/feature-grounding-aliases.yaml` translates display names (class names, file basenames) to canonical service / repo ids. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.17.0 enables multi-level federation: organisation-level SDDs can now aggregate from organisation-level children (e.g. CXS aggregating sdd-mining, sdd-latam) via optional level: organisation field on siblings, skipping manifest requirements for pure orchestration repos. v0.16.0 adds organisation-profile support for system-of-systems aggregators (e.g. CXS aggregating sdd-connect, sdd-mining, sdd-latam), closing the gap for organisation-level SDD manifests. v0.15.0 ships catalogue schema 2.4.0 (lockstep with sdd-method): adds feature_contract derived edge (forward: capability_feature ⋈ capability_contract; reverse: feature_service ⋈ service_contract) closing the Capability → Feature → Contract chain pre-implementation, plus the new DomainModel entity per ADR 0142 with domain_models / capability_domain_model / feature_domain_model catalogues sourced from a new traceability.domain_model manifest field (forward) or docs/domains/*/architecture/data-model.mermaid.md file-system scan (reverse). Platform-profile only for domain_models; the metamodel now also documents non-catalogued method artefacts (work orders, discovery stories, execution stories, traceability manifests) so it's a complete reference for the forward SDD method's artefact set. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.14.1 patches v0.14.0's domains-builder fix: products-builder now also clears domain_id for non-platform-profile rows even when manifest.domainId is declared. v0.14.0 stopped emitting umbrella domain rows but products.domain_id (and the applications.csv filtered view) still pointed at them, dangling at FK validation. Per ADR 0136 + schema description for products.domain_id, app/integration/support products do not have a primary domain — the builder now honours that statement regardless of manifest declaration, and emits an inferred finding when a manifest-declared value is overridden. v0.14.0 ships two post-v0.9.0-release fixes surfaced by the connect-cohort sync: (1) sync now enforces minimum_sdd_cli_version declared by bundle manifests — previously the orchestration check existed only in the shell sync script and was a no-op when adopters used `sdd-cli sync`, leaving the safety net for stale-CLI scenarios silently absent; (2) per ADR 0136 (App and Integration Products Do Not Belong to a Primary Domain), the domains.ts catalogue builder now skips row emission for non-platform-profile SDDs — application-product and integration-product SDDs that have a docs/domains/<umbrella>/ subdirectory as a structural-organisation convention no longer emit a member-declaration row that collides on PK at aggregation against the canonical platform-profile contribution. v0.13.2 fixed the aggregator's sibling-vendored-schema cross-check to use semver range satisfaction against SCHEMA_COMPAT.catalogue_schema (^2.0.0) instead of strict equality — siblings vendored at lower minor versions inside the same major are now accepted, unblocking aggregation across federated cohorts where the canonical schema is ahead of the bundled schema. v0.13.0 ships the feature-tree.md bullet parser per sdd-method schema 2.2.0 + plan extract-feature-tree-bullets.md: application-product builders now emit features.csv rows with source: \"feature-tree\" from per-app feature-tree.md bullets, populating the previously-empty edge catalogues (persona_feature, journey_feature) for portfolio monoliths whose feature inventory lives in the bullet form. Adds the optional runway column on features.csv with adopter-owned controlled-vocabulary validation via feature-runway-vocabulary.yaml at the SDD root. v0.12.2 dedupes equivalent unmarked adopter PreToolUse entries on settings.json upsert. v0.12.0 extends the integration profileType enum to 11 values (per sdd-method ADR 0137) and fixes the init→sync conflict. v0.11.0 shipped the canonical catalogue surface per ADR 0134 + schema 2.1.0.",
|
|
3
|
+
"version": "0.25.1",
|
|
4
|
+
"description": "Method-layer CLI for SDD repository lifecycle — init, sync, validate, list, plan, generate-briefing, mcp serve, catalogue {build,aggregate,validate,version}, pack {build,validate}. v0.25.1 is a conformance patch: v0.25.0's notes advertised that the legacy c4_containers types Infrastructure / External System \"remain recognised-but-WARNed during the 2.x line\", but no code emitted that finding (the builder-spec's \"a conforming builder MUST emit [finding] convention\" was unimplemented). v0.25.1 adds checkContainerTypeAdvisory, wired into both `catalogue build` and `catalogue validate`, emitting a `convention` finding for any c4_containers.type outside the canonical c4_container_type set {Application, Data Store}. It reads the allowed values from the schema enum (no hardcoded list) and self-disables once the enum is bound via column_enums (the 3.0.0 hard-fail path) or removed — handing off cleanly at the major bump with no double-reporting. The validate path has teeth (it fires over an existing catalogues/ dir — e.g. an adopter who upgraded sdd-cli but has not yet rebuilt a catalogue still carrying Infrastructure rows from the old builder, which is the warn-then-enforce migration window ADR 0155 §4.3 relies on before 3.0.0); the build path is defensive (the canonical builder derives type from the C4 macro and cannot emit a legacy value). No schema change; SCHEMA_COMPAT unchanged (^2.0.0); patch release. v0.25.0 ships catalogue schema 2.10.0 (lockstep with sdd-method ADR 0155 — Align C4 Catalogue Capture with Strict C4 Abstractions), bringing the catalogue's C4 layer into line with c4model.com/abstractions. New node catalogue c4_external_systems (C4 L1 external software systems extracted from System_Ext(...) / Container_Ext(...) on L1+L2 mermaid; id = ext-{slug}); new edges persona_c4system (the C4 Person-uses-System relationship, mapping Person(...) actors to personas rows — the C4 Person abstraction reuses Persona) and system_external_dependency (system integrates-with external, from Rel(...) lines, collapsed to system level per ADR 0155 §4.2). New advisory enum c4_container_type = {Application, Data Store}: the c4-containers builder now types ContainerQueue as Data Store (was the non-canonical \"Infrastructure\") and no longer emits Container_Ext as an internal container row (external containers are catalogued as c4_external_systems); the legacy types Infrastructure / External System remain recognised-but-WARNed during the 2.x line and are removed at the 3.0.0 major bump (the enum is intentionally not bound in column_enums until then). The aggregator dedups c4_external_systems by id across SDDs rather than failing the duplicate-PK check — the one narrowly-scoped exception per ADR 0134, since the same external system (e.g. ext-google-maps) is legitimately declared by multiple SDDs; attribute conflicts on a shared id surface as a convention finding. SCHEMA_COMPAT unchanged (still ^2.0.0); additive minor. v0.24.0 ships sdd-mcp Phase 8 — catalogue resources + tools on the read-only MCP server (sdd-method ADR 0128 + ADR 0150). New resources: sdd://catalogue/schema (vendored canonical schema as JSON), sdd://catalogue/metamodel, sdd://catalogue/category-taxonomy, sdd://catalogue (list of built catalogues), and sdd://catalogue/{name} (rows from catalogues/{name}.csv, validated against the schema, distinguishing not-declared from not-built). New tools: query_catalogue_coverage (row count + internal-FK pass), find_products_by_category, find_orphan_rows (broken internal FK targets), and query_edges_for_entity (every edge row referencing an entity). All reuse the existing src/lib/catalogue schema-loader + csv-reader rather than re-parsing; FK checks consider internal FKs only per ADR 0134 (external FKs are validated at aggregation). Markdown resources try the post-IA path (guides/, standards/) then fall back, returning a structured 'run sdd-cli sync' error when absent. v0.23.1 patches v0.23.0: `sdd-cli pack build` now populates source_commit + source_branch in the rendered BUNDLE_MANIFEST.yaml from `git rev-parse HEAD` / `git rev-parse --abbrev-ref HEAD` against the producer-repo working tree, matching sdd-method's build-method-baseline-bundle.sh provenance behaviour. Non-git producer dirs (CI artefact directories etc.) get the sentinel \"uncommitted\" so consumer-side parseManifest (which rejects empty source_commit) still accepts the bundle. Pre-v0.23.1 packs wrote empty strings and were unsyncable — discovered during the contextua-platform Phase 7 first-adopter pilot (ADR 0151) when operations-console refused the first build of contextua-app-context-pack@v0.1.0. v0.23.0 ships the adopter pack producer + consumer surface per sdd-method ADR 0151 (companion plan adopter-bundle-producer-model.md Phases 3a + 3b + 3c). New `pack` verb with build and validate subcommands lets platform-profile adopters (contextua-platform, CXS Connect) produce additive-layer bundles from a context-pack-seed.yaml declaration. The builder validates the seed against the canonical schema, resolves include: directives across files, expands managed_paths (literal + glob against the producer working tree), runs a producer-side leakage check (disjointness with the declared forward base + disjointness with declared forbidden_paths globs), stages the payload tree, emits SHA-256 checksums per managed file, renders BUNDLE_MANIFEST.yaml mirroring the .hbs template shape, and produces <pack-name>-v<semver>.tar.gz + sidecar .sha256. Consumer-side enforcement extends `sdd-cli sync` for the multi-bundle lock chain: requires_forward_base resolution verifies the consumer's lock carries a compatible forward base; requires_pack resolution enforces vertical-extension dependencies with full semver-range support (caret with pre-1.0 narrow per npm convention, tilde, exact pin, >=); the existing cross-bundle path-ownership check now functions for adopter pack names too (consumer-side leakage assertion); produced_by_adopter / scope / requires_forward_base / requires_pack carry from the manifest into the lock entry as additive optional fields preserving lock_version: 2. New `sdd-cli sync --config <path>` reads a multi-bundle method-baseline.config.yaml (ordered bundles[].source list) and iterates each through the single-bundle sync engine — mutually exclusive with --bundle. `sdd-cli list` surfaces adopter pack provenance: forward-base version in the repo line plus indented `+ <pack-name> <version> from <adopter-repo> [requires <base-pack>]` lines beneath; --verbose adds per-bundle managed_path counts; JSON format adds a per-repo bundles[] array carrying full provenance. Type relaxation: BundleManifest.bundleName and BundleEntry.name widened from the closed BundleName enum to string (adopter pack names are arbitrary per ADR 0151); the closed enum still applies to sdd-method forward bases, validated at parse time only when is_forward_base: true. BundleManifest parser migrated from line-by-line scalar regex to the existing yaml library dependency for nested requires_forward_base / requires_pack object parsing. v0.22.0 bundles three landed scopes. (a) ADR 0141 Phase 5 — `--agent-harness` flag on init/sync now accepts `github-copilot-cli` as the second reference implementation alongside the `claude-code` default; Copilot CLI sync writes `.github/hooks/{pre-tool-use,session-start}.json` with the same sentinel-based ownership pattern as the Claude Code `.claude/settings.json` block. Default changes from \"unset\" to `claude-code`; existing adopters on v0.12.2+ get sentinel-tagged-in-place via the dedupe pre-pass. Unknown harness values fail loudly instead of warning. (b) ADR 0148 Phase 4 — init and sync now emit `agent-instructions.md` at the SDD root (harness-neutral, fully method-managed, unconditional overwrite) plus a thin harness wrapper (`CLAUDE.md` under claude-code, `AGENTS.md` under github-copilot-cli) with `<!-- method-managed: begin/end -->` markers; adopter content around the marker block survives sync via the existing `writeMarkedBlockFile` machinery. The v0.3–v0.21 `generate-claude-md` verb + native rich-content renderer retire; the new `generate-briefing` verb regenerates both files from the on-disk templates for the no-bundle-sync case. Older bundles pre-dating ADR 0148 templates sync gracefully with a \"Skipped\" log line. Existing repos carrying a hand-rolled CLAUDE.md without markers will see the wrapper rewrite refused on first sync; pass --allow-overwrite after rehoming any custom content (covered in the upstream agent-instructions-migration-guide). (c) Catalogue schema 2.9.0 (lockstep with sdd-method v0.10.0 reverse-extension-baseline v0.9.0) carrying the Track 2 cohort-sweep field additions per content/plans/v0-9-0-cohort-sweep-derived-bundle.md: capabilities now carries data_subset (foundational/synthesis-tier keying axis) + slice_scope (multi-app-group capability slicing — same capability_id may appear with distinct slice_scope values, row identity becomes (id, slice_scope)); new per-feature edge catalogue feature_subscription_channels built from reverse-evidence/feature-grounding-evidence.yaml subscription_channels: entries (AppSync WebSocket / Pekko WS / MQTT / SSE channel layer, peer of graphql_operations: per resolved §1, kebab name + transport + evidence + optional payload_ref); new per-SDD edge catalogue product_platform_dependencies built from the product-scoped platform_dependencies: block in the same evidence file; new federated edge catalogue cross_sdd_platform_capability derived by the aggregator joining product_platform_dependencies × capability_service on target_service_id == service_id, emitting one row per resolved (consuming-product, platform-capability) pair with orphan findings for unresolved references. SCHEMA_COMPAT unchanged (still ^2.0.0); additive minor across both new catalogues and capability column additions. v0.21.0 ships catalogue schema 2.8.0 closing the long-tail contract-consumer mapping gap (K-03a). The contracts builder now also walks the platform-profile layout `docs/domains/<dom>/contracts/{openapi,proto,avro}/<file>.<ext>` documented in reverse/workflows/contract.md, in addition to the canonical `contracts/<subdir>/<dom>/<file>.<ext>` layout — backward-compatible additive change for federated SDDs that don't carry per-domain contracts. Adds a new buildServiceContractConsumes builder that parses each service's `repos/<service>/docs/service-architecture.md` External Interfaces table, reads Outbound rows, and emits `service_contract` rows with role=consumes via an adopter-supplied `.sdd/service-contract-aliases.yaml` (case-insensitive interface_aliases + interface_contains substring tier + same_product_inference templates with `{prefix}` substitution). Schema 2.8.0 marks service_contract.contract_id as external:true so federated SDDs can emit consumes rows pointing to platform-root contracts; aggregator validates the merged catalogue. Resolution failures become convention findings, not FK-invalid rows. Pattern documented in sdd-method ADR 0147. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.19.0 ships catalogue schema 2.6.0 (lockstep with sdd-method): adds optional `sub_integrations:` array on integration-manifest.yaml per ADR 0144. Multi-provider integration monoliths (modernisation-in-flight or intentional permanent gateways brokering N providers) can declare each provider; the integrations.ts builder emits one integrations.csv row per sub_integration with parent_product_id = umbrella SDD's integrationId. Uses the existing parent_product_id column — no new schema columns. Backward compatible (optional field); SDDs without sub_integrations emit identical output to pre-2.6.0. Originating motivation: connect's sdd-camera-platform-legacy covering Surfsight v2 + VisionTrack v1/v2 + SureCam in one Spring-Boot codebase. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.18.0 ships catalogue schema 2.5.0 (lockstep with sdd-method): adds feature-grounding source per ADR 0143. Canonical builder walks `docs/domains/<dom>/design/<capability>/feature-grounding.md` (platform-profile) and `docs/design/integration/feature-grounding.md` (integration-product), parses the markdown table form, and emits features.csv rows (source: feature-grounding, capability-owned) plus capability_feature / feature_repo / feature_service edges derived from the table columns. Optional per-SDD `.sdd/feature-grounding-aliases.yaml` translates display names (class names, file basenames) to canonical service / repo ids. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.17.0 enables multi-level federation: organisation-level SDDs can now aggregate from organisation-level children (e.g. CXS aggregating sdd-mining, sdd-latam) via optional level: organisation field on siblings, skipping manifest requirements for pure orchestration repos. v0.16.0 adds organisation-profile support for system-of-systems aggregators (e.g. CXS aggregating sdd-connect, sdd-mining, sdd-latam), closing the gap for organisation-level SDD manifests. v0.15.0 ships catalogue schema 2.4.0 (lockstep with sdd-method): adds feature_contract derived edge (forward: capability_feature ⋈ capability_contract; reverse: feature_service ⋈ service_contract) closing the Capability → Feature → Contract chain pre-implementation, plus the new DomainModel entity per ADR 0142 with domain_models / capability_domain_model / feature_domain_model catalogues sourced from a new traceability.domain_model manifest field (forward) or docs/domains/*/architecture/data-model.mermaid.md file-system scan (reverse). Platform-profile only for domain_models; the metamodel now also documents non-catalogued method artefacts (work orders, discovery stories, execution stories, traceability manifests) so it's a complete reference for the forward SDD method's artefact set. SCHEMA_COMPAT unchanged (still ^2.0.0). v0.14.1 patches v0.14.0's domains-builder fix: products-builder now also clears domain_id for non-platform-profile rows even when manifest.domainId is declared. v0.14.0 stopped emitting umbrella domain rows but products.domain_id (and the applications.csv filtered view) still pointed at them, dangling at FK validation. Per ADR 0136 + schema description for products.domain_id, app/integration/support products do not have a primary domain — the builder now honours that statement regardless of manifest declaration, and emits an inferred finding when a manifest-declared value is overridden. v0.14.0 ships two post-v0.9.0-release fixes surfaced by the connect-cohort sync: (1) sync now enforces minimum_sdd_cli_version declared by bundle manifests — previously the orchestration check existed only in the shell sync script and was a no-op when adopters used `sdd-cli sync`, leaving the safety net for stale-CLI scenarios silently absent; (2) per ADR 0136 (App and Integration Products Do Not Belong to a Primary Domain), the domains.ts catalogue builder now skips row emission for non-platform-profile SDDs — application-product and integration-product SDDs that have a docs/domains/<umbrella>/ subdirectory as a structural-organisation convention no longer emit a member-declaration row that collides on PK at aggregation against the canonical platform-profile contribution. v0.13.2 fixed the aggregator's sibling-vendored-schema cross-check to use semver range satisfaction against SCHEMA_COMPAT.catalogue_schema (^2.0.0) instead of strict equality — siblings vendored at lower minor versions inside the same major are now accepted, unblocking aggregation across federated cohorts where the canonical schema is ahead of the bundled schema. v0.13.0 ships the feature-tree.md bullet parser per sdd-method schema 2.2.0 + plan extract-feature-tree-bullets.md: application-product builders now emit features.csv rows with source: \"feature-tree\" from per-app feature-tree.md bullets, populating the previously-empty edge catalogues (persona_feature, journey_feature) for portfolio monoliths whose feature inventory lives in the bullet form. Adds the optional runway column on features.csv with adopter-owned controlled-vocabulary validation via feature-runway-vocabulary.yaml at the SDD root. v0.12.2 dedupes equivalent unmarked adopter PreToolUse entries on settings.json upsert. v0.12.0 extends the integration profileType enum to 11 values (per sdd-method ADR 0137) and fixes the init→sync conflict. v0.11.0 shipped the canonical catalogue surface per ADR 0134 + schema 2.1.0.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sdd-method",
|
|
7
7
|
"sdd",
|