@scoutflo/topology-contracts 0.7.27 → 0.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,9 @@ const src_1 = require("../src");
54
54
  });
55
55
  strict_1.default.equal(parsed.version, 'topology.gateway-context.v1');
56
56
  strict_1.default.equal(parsed.initialization.primaryAnchor?.id, 'svc-checkout');
57
+ strict_1.default.equal(parsed.compatibility.canonicalAuthority, 'topologySlice_when_present');
58
+ strict_1.default.equal(parsed.compatibility.fallbackAuthority, 'legacy_projection_when_topologySlice_absent');
59
+ strict_1.default.equal(parsed.compatibility.legacyProjection.status, 'deprecated');
57
60
  strict_1.default.equal(Object.prototype.hasOwnProperty.call(parsed.investigationContext, 'recommendedSpecialists'), false);
58
61
  strict_1.default.equal(Object.prototype.hasOwnProperty.call(parsed.investigationContext, 'eligibleSpecialists'), false);
59
62
  });
@@ -153,4 +156,185 @@ const src_1 = require("../src");
153
156
  strict_1.default.equal(parsed.topology.children[0]?.relationship.evidence?.[0]?.provider, 'kubernetes');
154
157
  strict_1.default.equal(parsed.truncation?.truncated, false);
155
158
  });
159
+ (0, node_test_1.default)('accepts bounded candidate evidence and truthful diagnostics', () => {
160
+ const parsed = src_1.gatewayTopologyContextSchema.safeParse({
161
+ version: src_1.GATEWAY_TOPOLOGY_CONTEXT_VERSION,
162
+ initialization: {
163
+ correlationState: 'ambiguous_match',
164
+ resolvedVia: 'alert_correlation',
165
+ confidence: 0.7,
166
+ reasonCodes: ['multiple_candidates'],
167
+ candidateTargets: [{
168
+ entityType: 'service',
169
+ id: 'svc-checkout',
170
+ confidence: 0.7,
171
+ evidence: [{ type: 'alert_fact', ref: 'evidence:ev-1', summary: 'service=checkout' }],
172
+ reasonCodes: ['service_label_match'],
173
+ }],
174
+ primaryAnchor: null,
175
+ topologyScope: 'shared',
176
+ userMessage: 'Multiple services matched the bounded alert evidence.',
177
+ topologyAvailable: true,
178
+ },
179
+ investigationContext: {
180
+ topologyAvailable: true,
181
+ targetService: null,
182
+ investigationResources: [],
183
+ relatedServices: { upstream: [], downstream: [] },
184
+ naturalLanguageSummary: 'Legacy projections are derived from the canonical topology slice.',
185
+ },
186
+ bindingHints: { candidateBindings: [] },
187
+ diagnostics: {
188
+ providerDetail: { fetched: true, truncated: true, omittedBytes: 128 },
189
+ storedEvidencePreview: { available: true, truncated: true, omittedBytes: 64 },
190
+ topologySlice: {
191
+ status: 'available',
192
+ requested: true,
193
+ available: true,
194
+ truncated: true,
195
+ reasons: ['max_nodes'],
196
+ },
197
+ },
198
+ });
199
+ strict_1.default.equal(parsed.success, true);
200
+ if (parsed.success) {
201
+ strict_1.default.equal(parsed.data.initialization.candidateTargets[0]?.reasonCodes?.[0], 'service_label_match');
202
+ strict_1.default.equal(parsed.data.initialization.candidateTargets[0]?.evidence?.[0]?.ref, 'evidence:ev-1');
203
+ }
204
+ const unknownProviderTruncation = src_1.gatewayTopologyDiagnosticsSchema.parse({
205
+ providerDetail: { fetched: true, truncated: null },
206
+ storedEvidencePreview: { available: true, truncated: false },
207
+ });
208
+ strict_1.default.equal(unknownProviderTruncation.providerDetail?.truncated, null);
209
+ });
210
+ (0, node_test_1.default)('parses truthful Gateway diagnostics when truncation byte counts are unknown', () => {
211
+ const diagnostics = src_1.gatewayTopologyDiagnosticsSchema.parse({
212
+ providerDetail: { fetched: false, truncated: null },
213
+ storedEvidencePreview: { available: true, truncated: true },
214
+ topologySlice: {
215
+ status: 'unavailable',
216
+ requested: true,
217
+ available: false,
218
+ truncated: false,
219
+ reasons: [],
220
+ },
221
+ });
222
+ strict_1.default.equal(diagnostics.providerDetail?.truncated, null);
223
+ strict_1.default.equal(diagnostics.storedEvidencePreview?.truncated, true);
224
+ strict_1.default.equal(diagnostics.storedEvidencePreview?.omittedBytes, undefined);
225
+ strict_1.default.equal(diagnostics.topologySlice?.status, 'unavailable');
226
+ });
227
+ (0, node_test_1.default)('rejects oversized topology context collections and dishonest diagnostics', () => {
228
+ const common = {
229
+ version: src_1.GATEWAY_TOPOLOGY_CONTEXT_VERSION,
230
+ initialization: {
231
+ correlationState: 'unresolved',
232
+ resolvedVia: 'alert_correlation',
233
+ confidence: 0,
234
+ reasonCodes: [],
235
+ candidateTargets: [],
236
+ primaryAnchor: null,
237
+ topologyScope: 'alert_only',
238
+ userMessage: 'No deterministic target.',
239
+ topologyAvailable: false,
240
+ },
241
+ investigationContext: {
242
+ topologyAvailable: false,
243
+ targetService: null,
244
+ investigationResources: [],
245
+ relatedServices: { upstream: [], downstream: [] },
246
+ naturalLanguageSummary: 'No topology available.',
247
+ },
248
+ bindingHints: { candidateBindings: [] },
249
+ };
250
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
251
+ ...common,
252
+ initialization: {
253
+ ...common.initialization,
254
+ candidateTargets: Array.from({ length: 26 }, (_, index) => ({
255
+ entityType: 'service', id: `svc-${index}`,
256
+ })),
257
+ },
258
+ }).success, false);
259
+ const cyclic = {};
260
+ cyclic.self = cyclic;
261
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
262
+ ...common,
263
+ investigationContext: { ...common.investigationContext, inferenceMetadata: cyclic },
264
+ }).success, false);
265
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
266
+ ...common,
267
+ investigationContext: {
268
+ ...common.investigationContext,
269
+ inferenceMetadata: { payload: 'é'.repeat(600000) },
270
+ },
271
+ }).success, false);
272
+ strict_1.default.equal(src_1.topologyCandidateTargetSchema.safeParse({
273
+ entityType: 'service', id: 'x'.repeat(2049),
274
+ }).success, false);
275
+ strict_1.default.equal(src_1.topologyCandidateTargetSchema.safeParse({
276
+ entityType: 'service', id: 'svc-1',
277
+ evidence: [{ type: 'alert_fact', ref: 'x'.repeat(2049) }],
278
+ }).success, false);
279
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
280
+ ...common,
281
+ initialization: {
282
+ ...common.initialization,
283
+ candidateTargets: [{
284
+ entityType: 'service',
285
+ id: 'svc-1',
286
+ reasonCodes: ['x'.repeat(2049)],
287
+ }],
288
+ },
289
+ }).success, false);
290
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
291
+ ...common,
292
+ diagnostics: {
293
+ topologySlice: {
294
+ status: 'unavailable', requested: false, available: false, truncated: false, reasons: [],
295
+ },
296
+ },
297
+ }).success, false);
298
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
299
+ ...common,
300
+ diagnostics: {
301
+ topologySlice: {
302
+ status: 'available', requested: true, available: true, truncated: true, reasons: [],
303
+ },
304
+ },
305
+ }).success, false);
306
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
307
+ ...common,
308
+ bindingHints: {
309
+ candidateBindings: [],
310
+ preferredBindingsBySpecialist: Object.fromEntries(Array.from({ length: 26 }, (_, index) => [`specialist-${index}`, []])),
311
+ },
312
+ }).success, false);
313
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
314
+ ...common,
315
+ investigationContext: {
316
+ ...common.investigationContext,
317
+ inferenceMetadata: { payload: 'x'.repeat(1048577) },
318
+ },
319
+ }).success, false);
320
+ let deeplyNested = {};
321
+ for (let depth = 0; depth < 14; depth += 1)
322
+ deeplyNested = { child: deeplyNested };
323
+ strict_1.default.equal(src_1.gatewayTopologyContextSchema.safeParse({
324
+ ...common,
325
+ investigationContext: {
326
+ ...common.investigationContext,
327
+ inferenceMetadata: deeplyNested,
328
+ },
329
+ }).success, false);
330
+ });
331
+ (0, node_test_1.default)('retains legacy decile confidence while bounding explicitly normalized confidence', () => {
332
+ const legacyCandidate = src_1.topologyCandidateTargetSchema.parse({
333
+ entityType: 'service', id: 'svc-checkout', displayName: 'checkout', confidence: 9,
334
+ });
335
+ strict_1.default.equal(legacyCandidate.confidence, 9);
336
+ strict_1.default.equal(src_1.topologyCandidateTargetSchema.safeParse({
337
+ entityType: 'service', id: 'svc-checkout', normalizedConfidence: 1.01,
338
+ }).success, false);
339
+ });
156
340
  //# sourceMappingURL=investigation-context.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"investigation-context.test.js","sourceRoot":"","sources":["../../test/investigation-context.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"investigation-context.test.js","sourceRoot":"","sources":["../../test/investigation-context.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const strict_1 = __importDefault(require("node:assert/strict"));
7
+ const node_test_1 = __importDefault(require("node:test"));
8
+ const src_1 = require("../src");
9
+ (0, node_test_1.default)('accepts only credential-free HTTPS source repositories with a path', () => {
10
+ strict_1.default.equal(src_1.safeSourceRepositorySchema.safeParse('https://github.com/example/checkout').success, true);
11
+ for (const repository of [
12
+ 'github.com/example/checkout',
13
+ 'git@github.com:example/checkout.git',
14
+ 'http://github.com/example/checkout',
15
+ 'https://user:token@github.com/example/checkout',
16
+ 'https://github.com/example/checkout?ref=main',
17
+ 'https://github.com/example/checkout#readme',
18
+ 'https://github.com/',
19
+ ]) {
20
+ strict_1.default.equal(src_1.safeSourceRepositorySchema.safeParse(repository).success, false, repository);
21
+ }
22
+ });
23
+ (0, node_test_1.default)('parses immutable observed-vs-claimed provenance for Gateway consumption', () => {
24
+ const parsed = src_1.runtimeWorkloadProvenanceSchema.parse({
25
+ version: src_1.RUNTIME_CONTAINER_PROVENANCE_VERSION,
26
+ containers: [{
27
+ name: 'checkout',
28
+ kind: 'regular',
29
+ scope: { namespace: 'prod', workload_kind: 'Deployment', workload_name: 'checkout' },
30
+ requested_image: 'registry.example/checkout:v2',
31
+ observed_image: 'registry.example/checkout@sha256:abc',
32
+ observed_image_id: 'containerd://sha256:abc',
33
+ digest: `sha256:${'a'.repeat(64)}`,
34
+ runtime_identity_status: 'verified',
35
+ consistency_status: 'consistent',
36
+ claimed_source: {
37
+ repository: 'https://github.com/example/checkout',
38
+ commit_sha: '0123456789abcdef0123456789abcdef01234567',
39
+ scope: 'pod_metadata',
40
+ status: 'unverified',
41
+ reason: 'Pod metadata is a claim and is not runtime verification.',
42
+ },
43
+ }],
44
+ truncated: false,
45
+ });
46
+ strict_1.default.equal(parsed.containers[0]?.digest, `sha256:${'a'.repeat(64)}`);
47
+ strict_1.default.equal(parsed.containers[0]?.claimed_source?.status, 'unverified');
48
+ });
49
+ (0, node_test_1.default)('allows duplicate names across kinds but enforces deterministic ordering', () => {
50
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
51
+ version: src_1.RUNTIME_CONTAINER_PROVENANCE_VERSION,
52
+ containers: [
53
+ { name: 'agent', kind: 'regular', runtime_identity_status: 'unavailable', runtime_identity_reason: 'not observed', consistency_status: 'unknown', consistency_reason: 'not compared' },
54
+ { name: 'agent', kind: 'init', runtime_identity_status: 'unavailable', runtime_identity_reason: 'not observed', consistency_status: 'unknown', consistency_reason: 'not compared' },
55
+ ],
56
+ truncated: false,
57
+ }).success, true);
58
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
59
+ version: src_1.RUNTIME_CONTAINER_PROVENANCE_VERSION,
60
+ containers: [
61
+ { name: 'agent', kind: 'init', runtime_identity_status: 'unavailable', runtime_identity_reason: 'not observed', consistency_status: 'unknown', consistency_reason: 'not compared' },
62
+ { name: 'agent', kind: 'regular', runtime_identity_status: 'unavailable', runtime_identity_reason: 'not observed', consistency_status: 'unknown', consistency_reason: 'not compared' },
63
+ ],
64
+ truncated: false,
65
+ }).success, false);
66
+ });
67
+ (0, node_test_1.default)('rejects oversized containers and untruthful truncation metadata', () => {
68
+ const container = {
69
+ name: 'agent', kind: 'regular',
70
+ runtime_identity_status: 'unavailable', runtime_identity_reason: 'not observed',
71
+ consistency_status: 'unknown', consistency_reason: 'not compared',
72
+ };
73
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
74
+ version: src_1.RUNTIME_CONTAINER_PROVENANCE_VERSION,
75
+ containers: Array.from({ length: 129 }, (_, index) => ({ ...container, name: `agent-${index}` })),
76
+ truncated: true,
77
+ reason: 'container_limit_exceeded',
78
+ containers_omitted: 1,
79
+ }).success, false);
80
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
81
+ containers: [],
82
+ truncated: true,
83
+ reason: 'container_limit_exceeded',
84
+ }).success, true);
85
+ const compatibleRawK8sOutput = src_1.runtimeWorkloadProvenanceSchema.parse({
86
+ containers: [],
87
+ truncated: true,
88
+ reason: 'container_limit_exceeded',
89
+ });
90
+ strict_1.default.equal(compatibleRawK8sOutput.version, src_1.RUNTIME_CONTAINER_PROVENANCE_VERSION);
91
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
92
+ version: src_1.RUNTIME_CONTAINER_PROVENANCE_VERSION,
93
+ containers: [{
94
+ ...container,
95
+ claimed_source: {
96
+ repository: 'https://github.com/example/checkout',
97
+ commit_sha: 'v2.1.0',
98
+ scope: 'pod_metadata',
99
+ status: 'unverified',
100
+ },
101
+ }],
102
+ truncated: false,
103
+ }).success, false);
104
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
105
+ containers: [{
106
+ ...container,
107
+ runtime_identity_status: 'verified',
108
+ digest: 'sha256:not-a-digest',
109
+ }],
110
+ truncated: false,
111
+ }).success, false);
112
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
113
+ containers: [{
114
+ ...container,
115
+ claimed_source: {
116
+ repository: 'https://github.com/example/checkout',
117
+ scope: 'pod_metadata',
118
+ status: 'unavailable',
119
+ reason: 'metadata unavailable',
120
+ },
121
+ }],
122
+ truncated: false,
123
+ }).success, false);
124
+ strict_1.default.equal(src_1.runtimeWorkloadProvenanceSchema.safeParse({
125
+ containers: [{
126
+ ...container,
127
+ runtime_identity_status: 'verified',
128
+ runtime_identity_reason: undefined,
129
+ digest: `sha256:${'A'.repeat(64)}`,
130
+ }],
131
+ truncated: false,
132
+ }).success, false);
133
+ });
134
+ //# sourceMappingURL=runtime-provenance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-provenance.test.js","sourceRoot":"","sources":["../../test/runtime-provenance.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scoutflo/topology-contracts",
3
- "version": "0.7.27",
3
+ "version": "0.8.1",
4
4
  "description": "Pure shared topology vocabulary and Zod schemas for Scoutflo topology workflows.",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -9,7 +9,8 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "build": "tsc -p tsconfig.json",
12
- "test": "npm run build && node --test dist/test/*.test.js"
12
+ "test": "npm run build && node --test dist/test/*.test.js && node scripts/verify-packed-exports.cjs",
13
+ "prepack": "npm run build"
13
14
  },
14
15
  "keywords": [
15
16
  "scoutflo",