@scoutflo/topology-contracts 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sourceSyncBatchUnitsResponseSchema = exports.sourceSyncBatchResponseSchema = exports.sourceSyncApplyResponseSchema = exports.sourceSyncApplyRequestSchema = exports.sourceSyncApplySelectionSchema = exports.sourceSyncDryRunResponseSchema = exports.sourceSyncDuplicateSchema = exports.sourceSyncErrorSchema = exports.sourceSyncDryRunSourceResultSchema = exports.sourceSyncSourceSummarySchema = exports.sourceSyncJobSchema = exports.sourceSyncRecordSchema = exports.sourceSyncCapabilitiesResponseSchema = exports.sourceSyncUnitStatusSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const capability_1 = require("./capability");
6
+ const completeness_1 = require("./completeness");
7
+ const common_1 = require("./common");
8
+ const warning_1 = require("./warning");
9
+ exports.sourceSyncUnitStatusSchema = common_1.nonEmptyStringSchema;
10
+ exports.sourceSyncCapabilitiesResponseSchema = zod_1.z.object({
11
+ status: zod_1.z.number().int().optional(),
12
+ providers: zod_1.z.array(capability_1.sourceSyncCapabilitySchema),
13
+ }).passthrough();
14
+ exports.sourceSyncRecordSchema = zod_1.z.object({
15
+ sync_batch_id: common_1.nonEmptyStringSchema.optional(),
16
+ source_run_id: common_1.nonEmptyStringSchema.optional(),
17
+ scan_unit_id: common_1.nonEmptyStringSchema.optional(),
18
+ fetch_group_id: common_1.nonEmptyStringSchema.optional(),
19
+ plan_unit_id: common_1.nonEmptyStringSchema.optional(),
20
+ apply_unit_id: common_1.nonEmptyStringSchema.optional(),
21
+ correlation_run_id: common_1.nonEmptyStringSchema.optional(),
22
+ correlation_unit_id: common_1.nonEmptyStringSchema.optional(),
23
+ unit_kind: common_1.nonEmptyStringSchema.optional(),
24
+ provider: common_1.nonEmptyStringSchema.optional(),
25
+ unit_key: common_1.nonEmptyStringSchema.optional(),
26
+ family: common_1.nonEmptyStringSchema.optional(),
27
+ status: exports.sourceSyncUnitStatusSchema.optional(),
28
+ apply_eligible: zod_1.z.boolean().optional(),
29
+ apply_mode: common_1.nonEmptyStringSchema.optional(),
30
+ allowed_apply_modes: zod_1.z.array(common_1.nonEmptyStringSchema).optional(),
31
+ apply_blocked_code: common_1.nonEmptyStringSchema.optional(),
32
+ apply_blocked_reason: common_1.nonEmptyStringSchema.optional(),
33
+ diff_hash: common_1.nonEmptyStringSchema.optional(),
34
+ diff_summary: zod_1.z.record(zod_1.z.number()).optional(),
35
+ candidate_counts: zod_1.z.record(zod_1.z.number()).optional(),
36
+ conflict_counts: zod_1.z.record(zod_1.z.number()).optional(),
37
+ lifecycle_authority_scope_key: common_1.nonEmptyStringSchema.optional(),
38
+ requested_scope: common_1.recordSchema.optional(),
39
+ effective_scope: common_1.recordSchema.optional(),
40
+ warnings: zod_1.z.array(warning_1.topologySyncWarningSchema).optional(),
41
+ expires_at: common_1.nonEmptyStringSchema.optional(),
42
+ created_at: common_1.nonEmptyStringSchema.optional(),
43
+ updated_at: common_1.nonEmptyStringSchema.optional(),
44
+ }).passthrough();
45
+ exports.sourceSyncJobSchema = zod_1.z.object({
46
+ job_id: common_1.nonEmptyStringSchema,
47
+ status: exports.sourceSyncUnitStatusSchema,
48
+ operation_type: common_1.nonEmptyStringSchema.optional(),
49
+ mode: common_1.nonEmptyStringSchema.optional(),
50
+ counters: zod_1.z.record(zod_1.z.number()).optional(),
51
+ errors: zod_1.z.array(common_1.recordSchema).optional(),
52
+ dry_run: zod_1.z.boolean().optional(),
53
+ started_at: common_1.nonEmptyStringSchema.optional(),
54
+ finished_at: common_1.nonEmptyStringSchema.optional(),
55
+ }).passthrough();
56
+ exports.sourceSyncSourceSummarySchema = zod_1.z.object({
57
+ provider: common_1.nonEmptyStringSchema,
58
+ provider_account_id: common_1.nonEmptyStringSchema.optional(),
59
+ requested_scope: common_1.recordSchema.optional(),
60
+ effective_scope: common_1.recordSchema.optional(),
61
+ completeness: completeness_1.topologySyncCompletenessSchema.optional(),
62
+ candidates: zod_1.z.object({
63
+ nodes: zod_1.z.number().int().min(0).optional(),
64
+ relationships: zod_1.z.number().int().min(0).optional(),
65
+ }).passthrough().optional(),
66
+ diff_summary: zod_1.z.record(zod_1.z.number()).optional(),
67
+ diff_hash: common_1.nonEmptyStringSchema.optional(),
68
+ }).passthrough();
69
+ exports.sourceSyncDryRunSourceResultSchema = zod_1.z.object({
70
+ provider: common_1.nonEmptyStringSchema,
71
+ job: exports.sourceSyncJobSchema.optional(),
72
+ dry_run_job_id: common_1.nonEmptyStringSchema.optional(),
73
+ sync_batch: exports.sourceSyncRecordSchema.optional(),
74
+ source_runs: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
75
+ scan_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
76
+ fetch_groups: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
77
+ plan_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
78
+ apply_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
79
+ source: exports.sourceSyncSourceSummarySchema.optional(),
80
+ summary: zod_1.z.record(zod_1.z.number()).optional(),
81
+ diff_hash: common_1.nonEmptyStringSchema,
82
+ links: zod_1.z.record(common_1.nonEmptyStringSchema).optional(),
83
+ }).passthrough();
84
+ exports.sourceSyncErrorSchema = zod_1.z.object({
85
+ index: zod_1.z.number().int().min(0).optional(),
86
+ provider: common_1.nonEmptyStringSchema.optional(),
87
+ source_ref: common_1.recordSchema.optional(),
88
+ include: common_1.recordSchema.optional(),
89
+ exclude: common_1.recordSchema.optional(),
90
+ dry_run_job_id: common_1.nonEmptyStringSchema.optional(),
91
+ sync_batch_id: common_1.nonEmptyStringSchema.optional(),
92
+ status: common_1.nonEmptyStringSchema.optional(),
93
+ code: common_1.nonEmptyStringSchema,
94
+ status_code: zod_1.z.number().int().optional(),
95
+ message: common_1.nonEmptyStringSchema,
96
+ }).passthrough();
97
+ exports.sourceSyncDuplicateSchema = zod_1.z.object({
98
+ index: zod_1.z.number().int().min(0),
99
+ provider: common_1.nonEmptyStringSchema,
100
+ provider_account_id: common_1.nonEmptyStringSchema.optional(),
101
+ dry_run_job_id: common_1.nonEmptyStringSchema,
102
+ duplicate_of_dry_run_job_id: common_1.nonEmptyStringSchema,
103
+ completed_scope_keys: zod_1.z.array(common_1.nonEmptyStringSchema),
104
+ }).passthrough();
105
+ exports.sourceSyncDryRunResponseSchema = zod_1.z.object({
106
+ status: zod_1.z.union([zod_1.z.number().int(), common_1.nonEmptyStringSchema]).optional(),
107
+ http_status: zod_1.z.number().int().optional(),
108
+ sync_batch_id: common_1.nonEmptyStringSchema.optional(),
109
+ sync_batch: exports.sourceSyncRecordSchema.optional(),
110
+ jobs: zod_1.z.array(exports.sourceSyncJobSchema).optional(),
111
+ providers: zod_1.z.array(common_1.nonEmptyStringSchema).optional(),
112
+ source_results: zod_1.z.array(exports.sourceSyncDryRunSourceResultSchema).optional(),
113
+ source_errors: zod_1.z.array(exports.sourceSyncErrorSchema).optional(),
114
+ source_duplicates: zod_1.z.array(exports.sourceSyncDuplicateSchema).optional(),
115
+ sync_batches: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
116
+ source_runs: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
117
+ scan_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
118
+ fetch_groups: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
119
+ plan_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
120
+ apply_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
121
+ sources: zod_1.z.array(exports.sourceSyncSourceSummarySchema).optional(),
122
+ summary: zod_1.z.record(zod_1.z.number()).optional(),
123
+ diff_hashes: zod_1.z.record(common_1.nonEmptyStringSchema).optional(),
124
+ links: common_1.recordSchema.optional(),
125
+ }).passthrough();
126
+ exports.sourceSyncApplySelectionSchema = zod_1.z.object({
127
+ apply_all_ready: zod_1.z.boolean().optional(),
128
+ sync_batch_id: common_1.nonEmptyStringSchema.optional(),
129
+ source_run_ids: zod_1.z.array(common_1.nonEmptyStringSchema).optional(),
130
+ scan_unit_ids: zod_1.z.array(common_1.nonEmptyStringSchema).optional(),
131
+ plan_unit_ids: zod_1.z.array(common_1.nonEmptyStringSchema).optional(),
132
+ plan_units: zod_1.z.array(zod_1.z.object({
133
+ plan_unit_id: common_1.nonEmptyStringSchema,
134
+ confirm_diff_hash: common_1.nonEmptyStringSchema,
135
+ }).passthrough()).optional(),
136
+ }).passthrough();
137
+ exports.sourceSyncApplyRequestSchema = zod_1.z.object({
138
+ dry_run_job_id: common_1.nonEmptyStringSchema,
139
+ sync_batch_id: common_1.nonEmptyStringSchema.optional(),
140
+ confirm_diff_hash: common_1.nonEmptyStringSchema,
141
+ selection: exports.sourceSyncApplySelectionSchema.optional(),
142
+ }).passthrough();
143
+ exports.sourceSyncApplyResponseSchema = zod_1.z.object({
144
+ status: zod_1.z.number().int(),
145
+ job: exports.sourceSyncJobSchema.optional(),
146
+ sync_batch: exports.sourceSyncRecordSchema.optional(),
147
+ source_runs: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
148
+ scan_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
149
+ fetch_groups: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
150
+ plan_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
151
+ apply_units: zod_1.z.array(exports.sourceSyncRecordSchema).optional(),
152
+ source: exports.sourceSyncSourceSummarySchema.optional(),
153
+ diff_hash: common_1.nonEmptyStringSchema.optional(),
154
+ apply_selection: common_1.recordSchema.optional(),
155
+ apply: zod_1.z.object({
156
+ summary: zod_1.z.record(zod_1.z.number()).optional(),
157
+ }).passthrough().optional(),
158
+ links: zod_1.z.record(common_1.nonEmptyStringSchema).optional(),
159
+ }).passthrough();
160
+ exports.sourceSyncBatchResponseSchema = zod_1.z.object({
161
+ status: zod_1.z.number().int(),
162
+ sync_batch: exports.sourceSyncRecordSchema,
163
+ }).passthrough();
164
+ exports.sourceSyncBatchUnitsResponseSchema = zod_1.z.object({
165
+ status: zod_1.z.number().int(),
166
+ source_runs: zod_1.z.array(exports.sourceSyncRecordSchema),
167
+ scan_units: zod_1.z.array(exports.sourceSyncRecordSchema),
168
+ fetch_groups: zod_1.z.array(exports.sourceSyncRecordSchema),
169
+ plan_units: zod_1.z.array(exports.sourceSyncRecordSchema),
170
+ apply_units: zod_1.z.array(exports.sourceSyncRecordSchema),
171
+ }).passthrough();
172
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/source-sync/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,206 @@
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
+ const warning = {
10
+ code: 'partial_scope',
11
+ message: 'Namespace filter limited the dry run',
12
+ scope_key: 'namespace:payments',
13
+ details: { namespace: 'payments' },
14
+ };
15
+ const candidate = {
16
+ candidate_key: 'candidate_123',
17
+ correlation_rule_key: 'k8s-workload-owned-by-service',
18
+ correlation_rule_version: '2026-06-17',
19
+ correlation_unit_key: 'unit:k8s:payments',
20
+ relationship_lane: 'service-resource',
21
+ relationship_kind: 'ownership',
22
+ relation: 'OWNS',
23
+ from: {
24
+ entity_type: 'service',
25
+ id: 'service:payments-api',
26
+ },
27
+ to: {
28
+ entity_type: 'resource',
29
+ id: 'resource:k8s:deployment:payments-api',
30
+ resource_type: 'kubernetes_deployment',
31
+ },
32
+ canonical_key: 'service:payments-api:owns:resource:k8s:deployment:payments-api',
33
+ semantic_key: 'payments-api owns deployment/payments-api',
34
+ confidence: 0.92,
35
+ confidence_source: 'rule',
36
+ assertion_type: 'inferred',
37
+ attributes: { namespace: 'payments' },
38
+ source_attributes: { provider: 'k8s', cluster: 'prod' },
39
+ evidence: [
40
+ {
41
+ type: 'source_ref',
42
+ ref: 'scan_unit_123',
43
+ summary: 'Service and deployment share namespace and labels',
44
+ },
45
+ ],
46
+ decision: 'ready',
47
+ warnings: [warning],
48
+ gateway_extension: 'allowed',
49
+ };
50
+ const diff = {
51
+ relationships_to_create: [candidate],
52
+ relationships_to_refresh: [
53
+ {
54
+ existing_id: 'relationship_123',
55
+ existing_document_id: 'mongo_doc_123',
56
+ candidate,
57
+ },
58
+ ],
59
+ relationship_support_to_mark_stale: [],
60
+ relationship_support_to_retire: [],
61
+ conflicts: [
62
+ {
63
+ correlation_rule_key: 'k8s-workload-owned-by-service',
64
+ correlation_unit_key: 'unit:k8s:payments',
65
+ reason: 'existing_relationship_conflict',
66
+ details: { existing_id: 'relationship_456' },
67
+ },
68
+ ],
69
+ ambiguous_matches: [
70
+ {
71
+ correlation_rule_key: 'k8s-workload-owned-by-service',
72
+ correlation_unit_key: 'unit:k8s:payments',
73
+ candidate_keys: ['candidate_ambiguous_a', 'candidate_ambiguous_b'],
74
+ reason: 'multiple_services_match',
75
+ details: { label: 'app=payments' },
76
+ },
77
+ ],
78
+ warnings: [warning],
79
+ summary: {
80
+ relationships_to_create: 1,
81
+ relationships_to_refresh: 1,
82
+ relationship_support_to_mark_stale: 0,
83
+ relationship_support_to_retire: 0,
84
+ conflicts: 1,
85
+ ambiguous_matches: 1,
86
+ warnings: 1,
87
+ },
88
+ };
89
+ const unit = {
90
+ correlation_unit_id: 'correlation_unit_123',
91
+ plan_unit_id: 'plan_unit_123',
92
+ unit: {
93
+ correlation_unit_key: 'unit:k8s:payments',
94
+ correlation_rule_key: 'k8s-workload-owned-by-service',
95
+ correlation_rule_version: '2026-06-17',
96
+ relationship_lane: 'service-resource',
97
+ input_scope: {
98
+ providers: ['k8s'],
99
+ scan_unit_ids: ['scan_unit_123'],
100
+ source_ref_scope_keys: ['namespace:payments'],
101
+ canonical_entity_filters: [{ entity_type: 'service', id: 'service:payments-api' }],
102
+ },
103
+ lifecycle_authority_scope_key: 'k8s:cluster:prod',
104
+ },
105
+ result: {
106
+ candidates: [candidate],
107
+ warnings: [warning],
108
+ ambiguous_matches: diff.ambiguous_matches,
109
+ conflicts: diff.conflicts,
110
+ },
111
+ diff,
112
+ diff_hash: 'diff_hash_123',
113
+ warnings: [warning],
114
+ };
115
+ (0, node_test_1.default)('parses source-neutral topology correlation dry-run request used by Client', () => {
116
+ const parsed = src_1.topologyCorrelationDryRunRequestSchema.parse({
117
+ version: src_1.TOPOLOGY_CORRELATION_SYNC_VERSION,
118
+ sync_batch_id: 'sync_batch_123',
119
+ profile_key: 'default',
120
+ providers: ['k8s'],
121
+ service_ids: ['service:payments-api'],
122
+ input_source_run_ids: ['source_run_123'],
123
+ input_scan_unit_ids: ['scan_unit_123'],
124
+ rules: [{ correlation_rule_key: 'k8s-workload-owned-by-service' }],
125
+ options: {
126
+ min_confidence: 0.8,
127
+ include_warning_only: true,
128
+ include_partial_live: true,
129
+ max_proposals: 25,
130
+ },
131
+ });
132
+ strict_1.default.equal(parsed.version, src_1.TOPOLOGY_CORRELATION_SYNC_VERSION);
133
+ strict_1.default.equal(parsed.sync_batch_id, 'sync_batch_123');
134
+ strict_1.default.equal(parsed.options?.include_warning_only, true);
135
+ });
136
+ (0, node_test_1.default)('requires sync_batch_id for the shared source-neutral correlation dry-run request', () => {
137
+ const parsed = src_1.topologyCorrelationDryRunRequestSchema.safeParse({
138
+ version: src_1.TOPOLOGY_CORRELATION_SYNC_VERSION,
139
+ providers: ['k8s'],
140
+ });
141
+ strict_1.default.equal(parsed.success, false);
142
+ });
143
+ (0, node_test_1.default)('parses topology correlation dry-run response envelope used by Gateway and Client', () => {
144
+ const parsed = src_1.topologyCorrelationDryRunResponseSchema.parse({
145
+ status: 200,
146
+ mode: 'dry_run',
147
+ correlation_run_id: 'correlation_run_123',
148
+ sync_batch_id: 'sync_batch_123',
149
+ profile_key: 'default',
150
+ profile_version: '2026-06-17',
151
+ units: [unit],
152
+ summary: {
153
+ correlation_units: 1,
154
+ plan_units: 1,
155
+ ready_candidates: 1,
156
+ warning_only_candidates: 0,
157
+ ambiguous_candidates: 1,
158
+ blocked_candidates: 0,
159
+ warnings: 1,
160
+ },
161
+ });
162
+ strict_1.default.equal(parsed.mode, 'dry_run');
163
+ strict_1.default.equal(parsed.units[0]?.diff.summary.relationships_to_create, 1);
164
+ strict_1.default.equal(parsed.units[0]?.result.candidates[0]?.correlation_rule_key, 'k8s-workload-owned-by-service');
165
+ });
166
+ (0, node_test_1.default)('keeps lifecycle API candidate wire shape separate from lower-level rule metadata shape', () => {
167
+ const parsed = src_1.topologyCorrelationApiCandidateSchema.parse(candidate);
168
+ strict_1.default.equal(parsed.correlation_rule_key, 'k8s-workload-owned-by-service');
169
+ const { correlation_rule_key, correlation_rule_version, ...rest } = candidate;
170
+ const lowLevelRuleNamedCandidate = {
171
+ ...rest,
172
+ rule_key: correlation_rule_key,
173
+ rule_version: correlation_rule_version,
174
+ };
175
+ strict_1.default.equal(src_1.topologyCorrelationApiCandidateSchema.safeParse(lowLevelRuleNamedCandidate).success, false);
176
+ });
177
+ (0, node_test_1.default)('parses topology correlation apply request and response envelopes used by Client', () => {
178
+ const request = src_1.topologyCorrelationApplyRequestSchema.parse({
179
+ version: src_1.TOPOLOGY_CORRELATION_SYNC_VERSION,
180
+ correlation_run_id: 'correlation_run_123',
181
+ confirm_diff_hash: 'diff_hash_123',
182
+ selected_plan_unit_ids: ['plan_unit_123'],
183
+ });
184
+ const response = src_1.topologyCorrelationApplyResponseSchema.parse({
185
+ status: 200,
186
+ mode: 'apply',
187
+ correlation_run_id: 'correlation_run_123',
188
+ apply_units: [
189
+ {
190
+ apply_unit_id: 'apply_unit_123',
191
+ plan_unit_id: 'plan_unit_123',
192
+ status: 'applied',
193
+ },
194
+ ],
195
+ summary: {
196
+ plan_units: 1,
197
+ relationships_created: 1,
198
+ relationships_refreshed: 0,
199
+ audit_events: 1,
200
+ },
201
+ });
202
+ strict_1.default.equal(request.selected_plan_unit_ids[0], 'plan_unit_123');
203
+ strict_1.default.equal(response.apply_units[0]?.status, 'applied');
204
+ strict_1.default.equal(response.summary.relationships_created, 1);
205
+ });
206
+ //# sourceMappingURL=correlation-lifecycle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correlation-lifecycle.test.js","sourceRoot":"","sources":["../../test/correlation-lifecycle.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,223 @@
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
+ const sourceSyncRecord = {
10
+ sync_batch_id: 'sync_batch_123',
11
+ source_run_id: 'source_run_123',
12
+ scan_unit_id: 'scan_unit_123',
13
+ fetch_group_id: 'fetch_group_123',
14
+ plan_unit_id: 'plan_unit_123',
15
+ apply_unit_id: 'apply_unit_123',
16
+ correlation_run_id: 'correlation_run_123',
17
+ correlation_unit_id: 'correlation_unit_123',
18
+ unit_kind: 'plan_unit',
19
+ provider: 'k8s',
20
+ unit_key: 'plan:k8s:cluster-prod',
21
+ family: 'kubernetes_workload',
22
+ status: 'ready_for_apply',
23
+ apply_eligible: true,
24
+ apply_mode: 'selected_apply',
25
+ allowed_apply_modes: ['selected_apply'],
26
+ diff_hash: 'diff_hash_123',
27
+ diff_summary: { create: 2, refresh: 1 },
28
+ candidate_counts: { nodes: 2, relationships: 1 },
29
+ conflict_counts: { ambiguous: 0 },
30
+ lifecycle_authority_scope_key: 'k8s:cluster:prod',
31
+ requested_scope: { cluster_id: 'cluster-prod' },
32
+ effective_scope: { dimensions: { region: 'us-east-1' } },
33
+ warnings: [
34
+ {
35
+ code: 'partial_scope',
36
+ message: 'Namespace filter limited the dry run',
37
+ severity: 'warning',
38
+ },
39
+ ],
40
+ expires_at: '2026-06-17T12:00:00.000Z',
41
+ created_at: '2026-06-17T10:00:00.000Z',
42
+ updated_at: '2026-06-17T10:05:00.000Z',
43
+ gateway_extension: 'allowed',
44
+ };
45
+ const sourceSyncJob = {
46
+ job_id: 'job_123',
47
+ status: 'completed',
48
+ operation_type: 'topology_source_sync',
49
+ mode: 'dry_run',
50
+ counters: { candidates: 3 },
51
+ errors: [],
52
+ dry_run: true,
53
+ started_at: '2026-06-17T10:00:00.000Z',
54
+ finished_at: '2026-06-17T10:05:00.000Z',
55
+ };
56
+ const sourceSummary = {
57
+ provider: 'k8s',
58
+ provider_account_id: 'acct_123',
59
+ requested_scope: { cluster_id: 'cluster-prod' },
60
+ effective_scope: { dimensions: { region: 'us-east-1' } },
61
+ completeness: {
62
+ overall: 'partial',
63
+ completed_scope_keys: ['namespace:payments'],
64
+ failed_scope_keys: [],
65
+ },
66
+ candidates: {
67
+ nodes: 2,
68
+ relationships: 1,
69
+ },
70
+ diff_summary: { create: 2, refresh: 1 },
71
+ diff_hash: 'diff_hash_123',
72
+ };
73
+ (0, node_test_1.default)('parses source-sync capabilities response used by Client', () => {
74
+ const parsed = src_1.sourceSyncCapabilitiesResponseSchema.parse({
75
+ status: 200,
76
+ providers: [
77
+ {
78
+ provider: 'k8s',
79
+ status: 'available',
80
+ source_sync_version: 'topology.scoutflo.dev/v1',
81
+ supports_dry_run: true,
82
+ supports_apply: true,
83
+ supports_selected_apply: true,
84
+ supports_correlation: false,
85
+ selected_apply_modes: ['selected_apply'],
86
+ partial_scope_apply: {
87
+ supported: true,
88
+ mode: 'selected_apply',
89
+ families: ['kubernetes_workload'],
90
+ lifecycle_writes: true,
91
+ },
92
+ families: ['kubernetes_workload'],
93
+ locality_options: [{ kind: 'cluster', id: 'cluster-prod' }],
94
+ non_goals: ['credentials'],
95
+ },
96
+ ],
97
+ });
98
+ strict_1.default.equal(parsed.status, 200);
99
+ strict_1.default.equal(parsed.providers[0]?.provider, 'k8s');
100
+ strict_1.default.equal(parsed.providers[0]?.partial_scope_apply?.supported, true);
101
+ });
102
+ (0, node_test_1.default)('parses source-sync dry-run lifecycle response used by Client', () => {
103
+ const parsed = src_1.sourceSyncDryRunResponseSchema.parse({
104
+ status: 'partial',
105
+ http_status: 200,
106
+ sync_batch_id: 'sync_batch_123',
107
+ sync_batch: sourceSyncRecord,
108
+ jobs: [sourceSyncJob],
109
+ providers: ['k8s'],
110
+ source_results: [
111
+ {
112
+ provider: 'k8s',
113
+ job: sourceSyncJob,
114
+ dry_run_job_id: 'job_123',
115
+ sync_batch: sourceSyncRecord,
116
+ source_runs: [sourceSyncRecord],
117
+ scan_units: [sourceSyncRecord],
118
+ fetch_groups: [sourceSyncRecord],
119
+ plan_units: [sourceSyncRecord],
120
+ apply_units: [],
121
+ source: sourceSummary,
122
+ summary: { create: 2 },
123
+ diff_hash: 'diff_hash_123',
124
+ links: {
125
+ units: '/v1/topology/source-sync/batches/sync_batch_123/units',
126
+ },
127
+ },
128
+ ],
129
+ source_errors: [
130
+ {
131
+ index: 1,
132
+ provider: 'aws',
133
+ status: 'failed',
134
+ code: 'source_dry_run_failed',
135
+ message: 'AWS credentials missing',
136
+ },
137
+ ],
138
+ source_duplicates: [
139
+ {
140
+ index: 2,
141
+ provider: 'k8s',
142
+ dry_run_job_id: 'job_duplicate',
143
+ duplicate_of_dry_run_job_id: 'job_123',
144
+ completed_scope_keys: ['namespace:payments'],
145
+ },
146
+ ],
147
+ sync_batches: [sourceSyncRecord],
148
+ source_runs: [sourceSyncRecord],
149
+ scan_units: [sourceSyncRecord],
150
+ fetch_groups: [sourceSyncRecord],
151
+ plan_units: [sourceSyncRecord],
152
+ apply_units: [],
153
+ sources: [sourceSummary],
154
+ summary: { create: 2, refresh: 1 },
155
+ diff_hashes: { k8s: 'diff_hash_123' },
156
+ links: { jobs: ['/v1/topology/jobs/job_123'] },
157
+ });
158
+ strict_1.default.equal(parsed.status, 'partial');
159
+ strict_1.default.equal(parsed.source_results?.[0]?.provider, 'k8s');
160
+ strict_1.default.equal(parsed.source_errors?.[0]?.code, 'source_dry_run_failed');
161
+ });
162
+ (0, node_test_1.default)('parses source-sync apply request and response used by Client', () => {
163
+ const request = src_1.sourceSyncApplyRequestSchema.parse({
164
+ dry_run_job_id: 'job_123',
165
+ sync_batch_id: 'sync_batch_123',
166
+ confirm_diff_hash: 'diff_hash_123',
167
+ selection: {
168
+ apply_all_ready: false,
169
+ sync_batch_id: 'sync_batch_123',
170
+ source_run_ids: ['source_run_123'],
171
+ scan_unit_ids: ['scan_unit_123'],
172
+ plan_unit_ids: ['plan_unit_123'],
173
+ plan_units: [
174
+ {
175
+ plan_unit_id: 'plan_unit_123',
176
+ confirm_diff_hash: 'diff_hash_123',
177
+ },
178
+ ],
179
+ },
180
+ });
181
+ const response = src_1.sourceSyncApplyResponseSchema.parse({
182
+ status: 200,
183
+ job: { ...sourceSyncJob, mode: 'apply', dry_run: false },
184
+ sync_batch: sourceSyncRecord,
185
+ source_runs: [sourceSyncRecord],
186
+ scan_units: [sourceSyncRecord],
187
+ fetch_groups: [sourceSyncRecord],
188
+ plan_units: [sourceSyncRecord],
189
+ apply_units: [{ ...sourceSyncRecord, status: 'applied' }],
190
+ source: sourceSummary,
191
+ diff_hash: 'diff_hash_123',
192
+ apply_selection: {
193
+ source_run_ids: ['source_run_123'],
194
+ },
195
+ apply: {
196
+ summary: { applied: 1 },
197
+ relationships_created: 1,
198
+ },
199
+ links: {
200
+ job: '/v1/topology/jobs/job_456',
201
+ audit: '/v1/topology/audit/events?apply_job_id=job_456',
202
+ },
203
+ });
204
+ strict_1.default.equal(request.selection?.plan_units?.[0]?.plan_unit_id, 'plan_unit_123');
205
+ strict_1.default.equal(response.apply_units?.[0]?.status, 'applied');
206
+ });
207
+ (0, node_test_1.default)('parses source-sync batch and batch-units responses used by Client', () => {
208
+ const batch = src_1.sourceSyncBatchResponseSchema.parse({
209
+ status: 200,
210
+ sync_batch: sourceSyncRecord,
211
+ });
212
+ const units = src_1.sourceSyncBatchUnitsResponseSchema.parse({
213
+ status: 200,
214
+ source_runs: [sourceSyncRecord],
215
+ scan_units: [sourceSyncRecord],
216
+ fetch_groups: [sourceSyncRecord],
217
+ plan_units: [sourceSyncRecord],
218
+ apply_units: [{ ...sourceSyncRecord, status: 'applied' }],
219
+ });
220
+ strict_1.default.equal(batch.sync_batch.sync_batch_id, 'sync_batch_123');
221
+ strict_1.default.equal(units.plan_units[0]?.apply_eligible, true);
222
+ });
223
+ //# sourceMappingURL=source-sync-lifecycle.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-sync-lifecycle.test.js","sourceRoot":"","sources":["../../test/source-sync-lifecycle.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.3.0",
3
+ "version": "0.5.0",
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",