@apexops/contracts 0.10.0-next.5 → 0.11.0-next.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.
Files changed (76) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/archetype-source.d.ts +70 -0
  3. package/dist/archetype-source.d.ts.map +1 -0
  4. package/dist/archetype-source.js +58 -0
  5. package/dist/archetype-source.js.map +1 -0
  6. package/dist/artifacts.d.ts +64 -0
  7. package/dist/artifacts.d.ts.map +1 -1
  8. package/dist/artifacts.js +69 -0
  9. package/dist/artifacts.js.map +1 -1
  10. package/dist/common.d.ts +2 -0
  11. package/dist/common.d.ts.map +1 -1
  12. package/dist/common.js +1 -0
  13. package/dist/common.js.map +1 -1
  14. package/dist/evidence.d.ts.map +1 -1
  15. package/dist/evidence.js +2 -0
  16. package/dist/evidence.js.map +1 -1
  17. package/dist/governance-observation.d.ts +15 -0
  18. package/dist/governance-observation.d.ts.map +1 -0
  19. package/dist/governance-observation.js +15 -0
  20. package/dist/governance-observation.js.map +1 -0
  21. package/dist/index.d.ts +616 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +47 -4
  24. package/dist/index.js.map +1 -1
  25. package/dist/native-validation.d.ts +136 -0
  26. package/dist/native-validation.d.ts.map +1 -0
  27. package/dist/native-validation.js +276 -0
  28. package/dist/native-validation.js.map +1 -0
  29. package/dist/onboarding.d.ts +184 -3
  30. package/dist/onboarding.d.ts.map +1 -1
  31. package/dist/onboarding.js +122 -6
  32. package/dist/onboarding.js.map +1 -1
  33. package/dist/policy-validation.d.ts +45 -0
  34. package/dist/policy-validation.d.ts.map +1 -0
  35. package/dist/policy-validation.js +194 -0
  36. package/dist/policy-validation.js.map +1 -0
  37. package/dist/runtime.d.ts +72 -0
  38. package/dist/runtime.d.ts.map +1 -1
  39. package/dist/runtime.js +34 -1
  40. package/dist/runtime.js.map +1 -1
  41. package/dist/targets.d.ts +158 -1
  42. package/dist/targets.d.ts.map +1 -1
  43. package/dist/targets.js +168 -2
  44. package/dist/targets.js.map +1 -1
  45. package/dist/test/contracts.test.js +751 -3
  46. package/dist/test/contracts.test.js.map +1 -1
  47. package/package.json +2 -2
  48. package/schemas/archetype-batch-config-v1.schema.json +51 -0
  49. package/schemas/archetype-batch-plan-v1.schema.json +227 -0
  50. package/schemas/archetype-source-proposal-v1.schema.json +113 -0
  51. package/schemas/architecture-v1.schema.json +278 -0
  52. package/schemas/bootstrap-plan-v1.schema.json +206 -0
  53. package/schemas/contract-metadata.json +85 -0
  54. package/schemas/cost-estimate-v1.schema.json +54 -1
  55. package/schemas/diagnosis-v1.schema.json +323 -0
  56. package/schemas/governance-constraints-v1.schema.json +13 -0
  57. package/schemas/governance-observation-receipt-v1.schema.json +60 -0
  58. package/schemas/governance-provision-plan-v1.schema.json +307 -0
  59. package/schemas/governance-setup-config-v1.schema.json +80 -0
  60. package/schemas/governance-setup-plan-v1.schema.json +217 -0
  61. package/schemas/iac-binding-v1.schema.json +60 -0
  62. package/schemas/input-request-v1.schema.json +190 -0
  63. package/schemas/logical-resource-manifest-v1.schema.json +4 -0
  64. package/schemas/native-validation-receipt-v1.schema.json +862 -0
  65. package/schemas/onboarding-config-v1.schema.json +15 -12
  66. package/schemas/policy-property-map-v1.schema.json +17 -0
  67. package/schemas/policy-validation-v1.schema.json +278 -0
  68. package/schemas/project-config-v1.schema.json +14 -1
  69. package/schemas/repeat-guard-records-v1.schema.json +76 -0
  70. package/schemas/repository-publish-config-v1.schema.json +52 -0
  71. package/schemas/repository-publish-plan-v1.schema.json +265 -0
  72. package/schemas/requirements-amendment-v1.schema.json +213 -0
  73. package/schemas/requirements-change-proposal-v1.schema.json +196 -0
  74. package/schemas/review-capture-v1.schema.json +67 -0
  75. package/schemas/review-findings-v1.schema.json +103 -0
  76. package/schemas/review-request-v1.schema.json +111 -0
@@ -31,6 +31,15 @@
31
31
  "type": "array",
32
32
  "uniqueItems": true
33
33
  },
34
+ "resourceTypes": {
35
+ "items": {
36
+ "pattern": "^[A-Za-z][A-Za-z0-9]*\\.[A-Za-z][A-Za-z0-9.]*(?:/[A-Za-z][A-Za-z0-9]*)+$",
37
+ "type": "string"
38
+ },
39
+ "minItems": 1,
40
+ "type": "array",
41
+ "uniqueItems": true
42
+ },
34
43
  "service": {
35
44
  "minLength": 1,
36
45
  "type": "string"
@@ -39,6 +48,7 @@
39
48
  "required": [
40
49
  "id",
41
50
  "service",
51
+ "resourceTypes",
42
52
  "purpose",
43
53
  "requirementIds",
44
54
  "dependsOn"
@@ -48,6 +58,155 @@
48
58
  "minItems": 1,
49
59
  "type": "array"
50
60
  },
61
+ "decisionRecords": {
62
+ "items": {
63
+ "additionalProperties": false,
64
+ "properties": {
65
+ "alternatives": {
66
+ "items": {
67
+ "additionalProperties": false,
68
+ "properties": {
69
+ "benefits": {
70
+ "maxLength": 2048,
71
+ "minLength": 1,
72
+ "type": "string"
73
+ },
74
+ "drawbacks": {
75
+ "maxLength": 2048,
76
+ "minLength": 1,
77
+ "type": "string"
78
+ },
79
+ "option": {
80
+ "maxLength": 256,
81
+ "minLength": 1,
82
+ "type": "string"
83
+ },
84
+ "rejectionReason": {
85
+ "maxLength": 2048,
86
+ "minLength": 1,
87
+ "type": "string"
88
+ }
89
+ },
90
+ "required": [
91
+ "option",
92
+ "benefits",
93
+ "drawbacks",
94
+ "rejectionReason"
95
+ ],
96
+ "type": "object"
97
+ },
98
+ "maxItems": 10,
99
+ "minItems": 2,
100
+ "type": "array"
101
+ },
102
+ "complianceConsiderations": {
103
+ "minLength": 1,
104
+ "type": "string"
105
+ },
106
+ "context": {
107
+ "maxLength": 4096,
108
+ "minLength": 1,
109
+ "type": "string"
110
+ },
111
+ "decision": {
112
+ "maxLength": 4096,
113
+ "minLength": 1,
114
+ "type": "string"
115
+ },
116
+ "id": {
117
+ "pattern": "^ADR-[0-9]{4}$",
118
+ "type": "string"
119
+ },
120
+ "implementationNotes": {
121
+ "minLength": 1,
122
+ "type": "string"
123
+ },
124
+ "negativeConsequences": {
125
+ "items": {
126
+ "minLength": 1,
127
+ "type": "string"
128
+ },
129
+ "maxItems": 32,
130
+ "minItems": 1,
131
+ "type": "array"
132
+ },
133
+ "positiveConsequences": {
134
+ "items": {
135
+ "minLength": 1,
136
+ "type": "string"
137
+ },
138
+ "maxItems": 32,
139
+ "minItems": 1,
140
+ "type": "array"
141
+ },
142
+ "requirementIds": {
143
+ "items": {
144
+ "minLength": 1,
145
+ "type": "string"
146
+ },
147
+ "maxItems": 256,
148
+ "minItems": 1,
149
+ "type": "array",
150
+ "uniqueItems": true
151
+ },
152
+ "title": {
153
+ "maxLength": 256,
154
+ "minLength": 1,
155
+ "type": "string"
156
+ },
157
+ "wafImpacts": {
158
+ "additionalProperties": false,
159
+ "properties": {
160
+ "cost-optimization": {
161
+ "minLength": 1,
162
+ "type": "string"
163
+ },
164
+ "operational-excellence": {
165
+ "minLength": 1,
166
+ "type": "string"
167
+ },
168
+ "performance-efficiency": {
169
+ "minLength": 1,
170
+ "type": "string"
171
+ },
172
+ "reliability": {
173
+ "minLength": 1,
174
+ "type": "string"
175
+ },
176
+ "security": {
177
+ "minLength": 1,
178
+ "type": "string"
179
+ }
180
+ },
181
+ "required": [
182
+ "security",
183
+ "reliability",
184
+ "performance-efficiency",
185
+ "cost-optimization",
186
+ "operational-excellence"
187
+ ],
188
+ "type": "object"
189
+ }
190
+ },
191
+ "required": [
192
+ "id",
193
+ "title",
194
+ "context",
195
+ "decision",
196
+ "requirementIds",
197
+ "alternatives",
198
+ "positiveConsequences",
199
+ "negativeConsequences",
200
+ "wafImpacts",
201
+ "complianceConsiderations",
202
+ "implementationNotes"
203
+ ],
204
+ "type": "object"
205
+ },
206
+ "maxItems": 64,
207
+ "minItems": 1,
208
+ "type": "array"
209
+ },
51
210
  "decisions": {
52
211
  "items": {
53
212
  "minLength": 1,
@@ -90,6 +249,125 @@
90
249
  "title": {
91
250
  "minLength": 1,
92
251
  "type": "string"
252
+ },
253
+ "wellArchitectedAssessment": {
254
+ "additionalProperties": false,
255
+ "properties": {
256
+ "assessmentType": {
257
+ "const": "qualitative",
258
+ "type": "string"
259
+ },
260
+ "framework": {
261
+ "const": "azure-well-architected-framework",
262
+ "type": "string"
263
+ },
264
+ "pillars": {
265
+ "items": {
266
+ "additionalProperties": false,
267
+ "properties": {
268
+ "assessment": {
269
+ "minLength": 1,
270
+ "type": "string"
271
+ },
272
+ "evidenceRefs": {
273
+ "items": {
274
+ "pattern": "^[0-9a-f]{64}$",
275
+ "type": "string"
276
+ },
277
+ "type": "array",
278
+ "uniqueItems": true
279
+ },
280
+ "pillar": {
281
+ "anyOf": [
282
+ {
283
+ "const": "security",
284
+ "type": "string"
285
+ },
286
+ {
287
+ "const": "reliability",
288
+ "type": "string"
289
+ },
290
+ {
291
+ "const": "performance-efficiency",
292
+ "type": "string"
293
+ },
294
+ {
295
+ "const": "cost-optimization",
296
+ "type": "string"
297
+ },
298
+ {
299
+ "const": "operational-excellence",
300
+ "type": "string"
301
+ }
302
+ ]
303
+ },
304
+ "recommendations": {
305
+ "items": {
306
+ "minLength": 1,
307
+ "type": "string"
308
+ },
309
+ "type": "array",
310
+ "uniqueItems": true
311
+ },
312
+ "requirementIds": {
313
+ "items": {
314
+ "minLength": 1,
315
+ "type": "string"
316
+ },
317
+ "type": "array",
318
+ "uniqueItems": true
319
+ },
320
+ "status": {
321
+ "anyOf": [
322
+ {
323
+ "const": "aligned",
324
+ "type": "string"
325
+ },
326
+ {
327
+ "const": "concern",
328
+ "type": "string"
329
+ },
330
+ {
331
+ "const": "blocker",
332
+ "type": "string"
333
+ },
334
+ {
335
+ "const": "not-applicable",
336
+ "type": "string"
337
+ }
338
+ ]
339
+ },
340
+ "tradeoffs": {
341
+ "items": {
342
+ "minLength": 1,
343
+ "type": "string"
344
+ },
345
+ "type": "array",
346
+ "uniqueItems": true
347
+ }
348
+ },
349
+ "required": [
350
+ "pillar",
351
+ "status",
352
+ "assessment",
353
+ "requirementIds",
354
+ "evidenceRefs",
355
+ "recommendations",
356
+ "tradeoffs"
357
+ ],
358
+ "type": "object"
359
+ },
360
+ "maxItems": 5,
361
+ "minItems": 5,
362
+ "type": "array"
363
+ }
364
+ },
365
+ "required": [
366
+ "framework",
367
+ "assessmentType",
368
+ "pillars"
369
+ ],
370
+ "type": "object"
93
371
  }
94
372
  },
95
373
  "required": [
@@ -0,0 +1,206 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/bootstrap-plan-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "checks": {
7
+ "items": {
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "id": {
11
+ "anyOf": [
12
+ {
13
+ "const": "repository",
14
+ "type": "string"
15
+ },
16
+ {
17
+ "const": "workspace-runtime",
18
+ "type": "string"
19
+ },
20
+ {
21
+ "const": "apex-state",
22
+ "type": "string"
23
+ }
24
+ ]
25
+ },
26
+ "reason": {
27
+ "maxLength": 1024,
28
+ "minLength": 1,
29
+ "type": "string"
30
+ },
31
+ "status": {
32
+ "anyOf": [
33
+ {
34
+ "const": "ready",
35
+ "type": "string"
36
+ },
37
+ {
38
+ "const": "pending",
39
+ "type": "string"
40
+ },
41
+ {
42
+ "const": "blocked",
43
+ "type": "string"
44
+ }
45
+ ]
46
+ }
47
+ },
48
+ "required": [
49
+ "id",
50
+ "status",
51
+ "reason"
52
+ ],
53
+ "type": "object"
54
+ },
55
+ "maxItems": 3,
56
+ "minItems": 3,
57
+ "type": "array"
58
+ },
59
+ "config": {
60
+ "$id": "https://schemas.apexops.dev/onboarding-config-v1.json",
61
+ "additionalProperties": false,
62
+ "properties": {
63
+ "client": {
64
+ "const": "github-copilot-cli",
65
+ "type": "string"
66
+ },
67
+ "createRepository": {
68
+ "type": "boolean"
69
+ },
70
+ "displayName": {
71
+ "minLength": 1,
72
+ "type": "string"
73
+ },
74
+ "environment": {
75
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
76
+ "type": "string"
77
+ },
78
+ "iacTool": {
79
+ "anyOf": [
80
+ {
81
+ "const": "bicep",
82
+ "type": "string"
83
+ },
84
+ {
85
+ "const": "terraform",
86
+ "type": "string"
87
+ }
88
+ ]
89
+ },
90
+ "projectId": {
91
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
92
+ "type": "string"
93
+ },
94
+ "riskOwner": {
95
+ "anyOf": [
96
+ {
97
+ "const": "partner",
98
+ "type": "string"
99
+ },
100
+ {
101
+ "const": "customer",
102
+ "type": "string"
103
+ }
104
+ ]
105
+ },
106
+ "schemaVersion": {
107
+ "const": "1.0.0",
108
+ "type": "string"
109
+ },
110
+ "targetScope": {
111
+ "minLength": 1,
112
+ "type": "string"
113
+ }
114
+ },
115
+ "required": [
116
+ "schemaVersion"
117
+ ],
118
+ "type": "object"
119
+ },
120
+ "configHash": {
121
+ "pattern": "^[0-9a-f]{64}$",
122
+ "type": "string"
123
+ },
124
+ "executionAuthorized": {
125
+ "const": false,
126
+ "type": "boolean"
127
+ },
128
+ "filesModified": {
129
+ "const": false,
130
+ "type": "boolean"
131
+ },
132
+ "runtimeVersion": {
133
+ "minLength": 1,
134
+ "type": "string"
135
+ },
136
+ "schemaVersion": {
137
+ "const": "1.0.0",
138
+ "type": "string"
139
+ },
140
+ "scope": {
141
+ "const": "local-bootstrap-preflight-v1",
142
+ "type": "string"
143
+ },
144
+ "status": {
145
+ "anyOf": [
146
+ {
147
+ "const": "ready",
148
+ "type": "string"
149
+ },
150
+ {
151
+ "const": "pending",
152
+ "type": "string"
153
+ },
154
+ {
155
+ "const": "blocked",
156
+ "type": "string"
157
+ }
158
+ ]
159
+ },
160
+ "unassessed": {
161
+ "additionalItems": false,
162
+ "items": [
163
+ {
164
+ "const": "machine-prerequisites",
165
+ "type": "string"
166
+ },
167
+ {
168
+ "const": "client-health",
169
+ "type": "string"
170
+ },
171
+ {
172
+ "const": "remote-coe",
173
+ "type": "string"
174
+ },
175
+ {
176
+ "const": "github-repository",
177
+ "type": "string"
178
+ },
179
+ {
180
+ "const": "governance-oidc",
181
+ "type": "string"
182
+ },
183
+ {
184
+ "const": "reviewed-baseline",
185
+ "type": "string"
186
+ }
187
+ ],
188
+ "maxItems": 6,
189
+ "minItems": 6,
190
+ "type": "array"
191
+ }
192
+ },
193
+ "required": [
194
+ "schemaVersion",
195
+ "config",
196
+ "configHash",
197
+ "runtimeVersion",
198
+ "scope",
199
+ "status",
200
+ "checks",
201
+ "unassessed",
202
+ "filesModified",
203
+ "executionAuthorized"
204
+ ],
205
+ "type": "object"
206
+ }
@@ -4,6 +4,21 @@
4
4
  "maxBytes": 32768,
5
5
  "sensitivity": "confidential"
6
6
  },
7
+ "https://schemas.apexops.dev/archetype-batch-config-v1.json": {
8
+ "compatibility": "strict-v1",
9
+ "maxBytes": 16384,
10
+ "sensitivity": "confidential"
11
+ },
12
+ "https://schemas.apexops.dev/archetype-batch-plan-v1.json": {
13
+ "compatibility": "strict-v1",
14
+ "maxBytes": 2097152,
15
+ "sensitivity": "confidential"
16
+ },
17
+ "https://schemas.apexops.dev/archetype-source-proposal-v1.json": {
18
+ "compatibility": "strict-v1",
19
+ "maxBytes": 524288,
20
+ "sensitivity": "confidential"
21
+ },
7
22
  "https://schemas.apexops.dev/architecture-availability-v1.json": {
8
23
  "compatibility": "strict-v1",
9
24
  "maxBytes": 131072,
@@ -14,6 +29,11 @@
14
29
  "maxBytes": 1048576,
15
30
  "sensitivity": "internal"
16
31
  },
32
+ "https://schemas.apexops.dev/bootstrap-plan-v1.json": {
33
+ "compatibility": "strict-v1",
34
+ "maxBytes": 65536,
35
+ "sensitivity": "confidential"
36
+ },
17
37
  "https://schemas.apexops.dev/capability-pack-manifest-v1.json": {
18
38
  "compatibility": "strict-v1",
19
39
  "maxBytes": 262144,
@@ -79,6 +99,26 @@
79
99
  "maxBytes": 131072,
80
100
  "sensitivity": "confidential"
81
101
  },
102
+ "https://schemas.apexops.dev/governance-observation-receipt-v1.json": {
103
+ "compatibility": "strict-v1",
104
+ "maxBytes": 16384,
105
+ "sensitivity": "confidential"
106
+ },
107
+ "https://schemas.apexops.dev/governance-provision-plan-v1.json": {
108
+ "compatibility": "strict-v1",
109
+ "maxBytes": 65536,
110
+ "sensitivity": "confidential"
111
+ },
112
+ "https://schemas.apexops.dev/governance-setup-config-v1.json": {
113
+ "compatibility": "strict-v1",
114
+ "maxBytes": 16384,
115
+ "sensitivity": "confidential"
116
+ },
117
+ "https://schemas.apexops.dev/governance-setup-plan-v1.json": {
118
+ "compatibility": "strict-v1",
119
+ "maxBytes": 32768,
120
+ "sensitivity": "confidential"
121
+ },
82
122
  "https://schemas.apexops.dev/iac-binding-v1.json": {
83
123
  "compatibility": "strict-v1",
84
124
  "maxBytes": 524288,
@@ -139,6 +179,11 @@
139
179
  "maxBytes": 2097152,
140
180
  "sensitivity": "internal"
141
181
  },
182
+ "https://schemas.apexops.dev/native-validation-receipt-v1.json": {
183
+ "compatibility": "strict-v1",
184
+ "maxBytes": 8404992,
185
+ "sensitivity": "confidential"
186
+ },
142
187
  "https://schemas.apexops.dev/onboarding-config-v1.json": {
143
188
  "compatibility": "strict-v1",
144
189
  "maxBytes": 16384,
@@ -154,6 +199,11 @@
154
199
  "maxBytes": 2097152,
155
200
  "sensitivity": "confidential"
156
201
  },
202
+ "https://schemas.apexops.dev/policy-validation-v1.json": {
203
+ "compatibility": "strict-v1",
204
+ "maxBytes": 4194304,
205
+ "sensitivity": "confidential"
206
+ },
157
207
  "https://schemas.apexops.dev/pricing-evidence-v1.json": {
158
208
  "compatibility": "strict-v1",
159
209
  "maxBytes": 524288,
@@ -184,6 +234,31 @@
184
234
  "maxBytes": 262144,
185
235
  "sensitivity": "public"
186
236
  },
237
+ "https://schemas.apexops.dev/repeat-guard-records-v1.json": {
238
+ "compatibility": "strict-v1",
239
+ "maxBytes": 6356992,
240
+ "sensitivity": "confidential"
241
+ },
242
+ "https://schemas.apexops.dev/repository-publish-config-v1.json": {
243
+ "compatibility": "strict-v1",
244
+ "maxBytes": 16384,
245
+ "sensitivity": "confidential"
246
+ },
247
+ "https://schemas.apexops.dev/repository-publish-plan-v1.json": {
248
+ "compatibility": "strict-v1",
249
+ "maxBytes": 262144,
250
+ "sensitivity": "confidential"
251
+ },
252
+ "https://schemas.apexops.dev/requirements-amendment-v1.json": {
253
+ "compatibility": "strict-v1",
254
+ "maxBytes": 262144,
255
+ "sensitivity": "confidential"
256
+ },
257
+ "https://schemas.apexops.dev/requirements-change-proposal-v1.json": {
258
+ "compatibility": "strict-v1",
259
+ "maxBytes": 524288,
260
+ "sensitivity": "confidential"
261
+ },
187
262
  "https://schemas.apexops.dev/requirements-v1.json": {
188
263
  "compatibility": "strict-v1",
189
264
  "maxBytes": 524288,
@@ -194,11 +269,21 @@
194
269
  "maxBytes": 4194304,
195
270
  "sensitivity": "confidential"
196
271
  },
272
+ "https://schemas.apexops.dev/review-capture-v1.json": {
273
+ "compatibility": "strict-v1",
274
+ "maxBytes": 1048576,
275
+ "sensitivity": "confidential"
276
+ },
197
277
  "https://schemas.apexops.dev/review-findings-v1.json": {
198
278
  "compatibility": "strict-v1",
199
279
  "maxBytes": 1048576,
200
280
  "sensitivity": "confidential"
201
281
  },
282
+ "https://schemas.apexops.dev/review-request-v1.json": {
283
+ "compatibility": "strict-v1",
284
+ "maxBytes": 65536,
285
+ "sensitivity": "confidential"
286
+ },
202
287
  "https://schemas.apexops.dev/run-config-v1.json": {
203
288
  "compatibility": "strict-v1",
204
289
  "maxBytes": 65536,