@apexops/contracts 0.10.0-next.4 → 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 (77) hide show
  1. package/README.md +28 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/archetype-source.d.ts +70 -0
  4. package/dist/archetype-source.d.ts.map +1 -0
  5. package/dist/archetype-source.js +58 -0
  6. package/dist/archetype-source.js.map +1 -0
  7. package/dist/artifacts.d.ts +64 -0
  8. package/dist/artifacts.d.ts.map +1 -1
  9. package/dist/artifacts.js +69 -0
  10. package/dist/artifacts.js.map +1 -1
  11. package/dist/common.d.ts +2 -0
  12. package/dist/common.d.ts.map +1 -1
  13. package/dist/common.js +1 -0
  14. package/dist/common.js.map +1 -1
  15. package/dist/evidence.d.ts.map +1 -1
  16. package/dist/evidence.js +2 -0
  17. package/dist/evidence.js.map +1 -1
  18. package/dist/governance-observation.d.ts +15 -0
  19. package/dist/governance-observation.d.ts.map +1 -0
  20. package/dist/governance-observation.js +15 -0
  21. package/dist/governance-observation.js.map +1 -0
  22. package/dist/index.d.ts +627 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +47 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/native-validation.d.ts +136 -0
  27. package/dist/native-validation.d.ts.map +1 -0
  28. package/dist/native-validation.js +276 -0
  29. package/dist/native-validation.js.map +1 -0
  30. package/dist/onboarding.d.ts +184 -3
  31. package/dist/onboarding.d.ts.map +1 -1
  32. package/dist/onboarding.js +122 -6
  33. package/dist/onboarding.js.map +1 -1
  34. package/dist/policy-validation.d.ts +45 -0
  35. package/dist/policy-validation.d.ts.map +1 -0
  36. package/dist/policy-validation.js +194 -0
  37. package/dist/policy-validation.js.map +1 -0
  38. package/dist/runtime.d.ts +94 -2
  39. package/dist/runtime.d.ts.map +1 -1
  40. package/dist/runtime.js +53 -4
  41. package/dist/runtime.js.map +1 -1
  42. package/dist/targets.d.ts +158 -1
  43. package/dist/targets.d.ts.map +1 -1
  44. package/dist/targets.js +168 -2
  45. package/dist/targets.js.map +1 -1
  46. package/dist/test/contracts.test.js +769 -4
  47. package/dist/test/contracts.test.js.map +1 -1
  48. package/package.json +2 -2
  49. package/schemas/archetype-batch-config-v1.schema.json +51 -0
  50. package/schemas/archetype-batch-plan-v1.schema.json +227 -0
  51. package/schemas/archetype-source-proposal-v1.schema.json +113 -0
  52. package/schemas/architecture-v1.schema.json +278 -0
  53. package/schemas/bootstrap-plan-v1.schema.json +206 -0
  54. package/schemas/contract-metadata.json +85 -0
  55. package/schemas/cost-estimate-v1.schema.json +54 -1
  56. package/schemas/diagnosis-v1.schema.json +323 -0
  57. package/schemas/governance-constraints-v1.schema.json +13 -0
  58. package/schemas/governance-observation-receipt-v1.schema.json +60 -0
  59. package/schemas/governance-provision-plan-v1.schema.json +307 -0
  60. package/schemas/governance-setup-config-v1.schema.json +80 -0
  61. package/schemas/governance-setup-plan-v1.schema.json +217 -0
  62. package/schemas/iac-binding-v1.schema.json +60 -0
  63. package/schemas/input-request-v1.schema.json +296 -2
  64. package/schemas/logical-resource-manifest-v1.schema.json +4 -0
  65. package/schemas/native-validation-receipt-v1.schema.json +862 -0
  66. package/schemas/onboarding-config-v1.schema.json +15 -12
  67. package/schemas/policy-property-map-v1.schema.json +17 -0
  68. package/schemas/policy-validation-v1.schema.json +278 -0
  69. package/schemas/project-config-v1.schema.json +14 -1
  70. package/schemas/repeat-guard-records-v1.schema.json +76 -0
  71. package/schemas/repository-publish-config-v1.schema.json +52 -0
  72. package/schemas/repository-publish-plan-v1.schema.json +265 -0
  73. package/schemas/requirements-amendment-v1.schema.json +213 -0
  74. package/schemas/requirements-change-proposal-v1.schema.json +196 -0
  75. package/schemas/review-capture-v1.schema.json +67 -0
  76. package/schemas/review-findings-v1.schema.json +103 -0
  77. package/schemas/review-request-v1.schema.json +111 -0
@@ -4,16 +4,8 @@
4
4
  "additionalProperties": false,
5
5
  "properties": {
6
6
  "client": {
7
- "anyOf": [
8
- {
9
- "const": "github-copilot-vscode",
10
- "type": "string"
11
- },
12
- {
13
- "const": "github-copilot-cli",
14
- "type": "string"
15
- }
16
- ]
7
+ "const": "github-copilot-cli",
8
+ "type": "string"
17
9
  },
18
10
  "createRepository": {
19
11
  "type": "boolean"
@@ -42,6 +34,18 @@
42
34
  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
43
35
  "type": "string"
44
36
  },
37
+ "riskOwner": {
38
+ "anyOf": [
39
+ {
40
+ "const": "partner",
41
+ "type": "string"
42
+ },
43
+ {
44
+ "const": "customer",
45
+ "type": "string"
46
+ }
47
+ ]
48
+ },
45
49
  "schemaVersion": {
46
50
  "const": "1.0.0",
47
51
  "type": "string"
@@ -52,8 +56,7 @@
52
56
  }
53
57
  },
54
58
  "required": [
55
- "schemaVersion",
56
- "projectId"
59
+ "schemaVersion"
57
60
  ],
58
61
  "type": "object"
59
62
  }
@@ -28,6 +28,10 @@
28
28
  {
29
29
  "const": "blocked",
30
30
  "type": "string"
31
+ },
32
+ {
33
+ "const": "not-applicable",
34
+ "type": "string"
31
35
  }
32
36
  ]
33
37
  },
@@ -68,9 +72,22 @@
68
72
  "minLength": 1,
69
73
  "type": "string"
70
74
  },
75
+ "policyDefinitionId": {
76
+ "minLength": 1,
77
+ "type": "string"
78
+ },
79
+ "policyDefinitionReferenceId": {
80
+ "minLength": 1,
81
+ "type": "string"
82
+ },
71
83
  "propertyPath": {
72
84
  "minLength": 1,
73
85
  "type": "string"
86
+ },
87
+ "reason": {
88
+ "maxLength": 1024,
89
+ "minLength": 1,
90
+ "type": "string"
74
91
  }
75
92
  },
76
93
  "required": [
@@ -0,0 +1,278 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/policy-validation-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "inputHash": {
7
+ "pattern": "^[0-9a-f]{64}$",
8
+ "type": "string"
9
+ },
10
+ "logicalResourceManifestHash": {
11
+ "pattern": "^[0-9a-f]{64}$",
12
+ "type": "string"
13
+ },
14
+ "outcome": {
15
+ "anyOf": [
16
+ {
17
+ "const": "pass",
18
+ "type": "string"
19
+ },
20
+ {
21
+ "const": "fail",
22
+ "type": "string"
23
+ },
24
+ {
25
+ "const": "unsupported",
26
+ "type": "string"
27
+ }
28
+ ]
29
+ },
30
+ "policyMapContentHash": {
31
+ "pattern": "^[0-9a-f]{64}$",
32
+ "type": "string"
33
+ },
34
+ "policyMapHash": {
35
+ "pattern": "^[0-9a-f]{64}$",
36
+ "type": "string"
37
+ },
38
+ "projectId": {
39
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
40
+ "type": "string"
41
+ },
42
+ "receiptHash": {
43
+ "pattern": "^[0-9a-f]{64}$",
44
+ "type": "string"
45
+ },
46
+ "results": {
47
+ "items": {
48
+ "additionalProperties": false,
49
+ "properties": {
50
+ "disposition": {
51
+ "anyOf": [
52
+ {
53
+ "const": "satisfied",
54
+ "type": "string"
55
+ },
56
+ {
57
+ "const": "planned",
58
+ "type": "string"
59
+ },
60
+ {
61
+ "const": "exempt",
62
+ "type": "string"
63
+ },
64
+ {
65
+ "const": "blocked",
66
+ "type": "string"
67
+ },
68
+ {
69
+ "const": "not-applicable",
70
+ "type": "string"
71
+ }
72
+ ]
73
+ },
74
+ "effect": {
75
+ "anyOf": [
76
+ {
77
+ "const": "deny",
78
+ "type": "string"
79
+ },
80
+ {
81
+ "const": "modify",
82
+ "type": "string"
83
+ },
84
+ {
85
+ "const": "append",
86
+ "type": "string"
87
+ },
88
+ {
89
+ "const": "audit",
90
+ "type": "string"
91
+ },
92
+ {
93
+ "const": "deployIfNotExists",
94
+ "type": "string"
95
+ },
96
+ {
97
+ "const": "disabled",
98
+ "type": "string"
99
+ }
100
+ ]
101
+ },
102
+ "expectedValueDigest": {
103
+ "pattern": "^[0-9a-f]{64}$",
104
+ "type": "string"
105
+ },
106
+ "logicalResourceId": {
107
+ "minLength": 1,
108
+ "type": "string"
109
+ },
110
+ "mappingHash": {
111
+ "pattern": "^[0-9a-f]{64}$",
112
+ "type": "string"
113
+ },
114
+ "mappingIndex": {
115
+ "minimum": 0,
116
+ "type": "integer"
117
+ },
118
+ "observedValueDigest": {
119
+ "pattern": "^[0-9a-f]{64}$",
120
+ "type": "string"
121
+ },
122
+ "outcome": {
123
+ "anyOf": [
124
+ {
125
+ "const": "pass",
126
+ "type": "string"
127
+ },
128
+ {
129
+ "const": "fail",
130
+ "type": "string"
131
+ },
132
+ {
133
+ "const": "unsupported",
134
+ "type": "string"
135
+ }
136
+ ]
137
+ },
138
+ "policyAssignmentId": {
139
+ "minLength": 1,
140
+ "type": "string"
141
+ },
142
+ "policyDefinitionId": {
143
+ "minLength": 1,
144
+ "type": "string"
145
+ },
146
+ "policyDefinitionReferenceId": {
147
+ "minLength": 1,
148
+ "type": "string"
149
+ },
150
+ "propertyPath": {
151
+ "minLength": 1,
152
+ "type": "string"
153
+ },
154
+ "reason": {
155
+ "anyOf": [
156
+ {
157
+ "const": "matched",
158
+ "type": "string"
159
+ },
160
+ {
161
+ "const": "value-mismatch",
162
+ "type": "string"
163
+ },
164
+ {
165
+ "const": "missing-property",
166
+ "type": "string"
167
+ },
168
+ {
169
+ "const": "blocked",
170
+ "type": "string"
171
+ },
172
+ {
173
+ "const": "missing-expected-value",
174
+ "type": "string"
175
+ },
176
+ {
177
+ "const": "unverified-exemption",
178
+ "type": "string"
179
+ },
180
+ {
181
+ "const": "unsupported-effect",
182
+ "type": "string"
183
+ },
184
+ {
185
+ "const": "unsupported-path",
186
+ "type": "string"
187
+ },
188
+ {
189
+ "const": "unsupported-expression",
190
+ "type": "string"
191
+ },
192
+ {
193
+ "const": "resource-not-bound",
194
+ "type": "string"
195
+ },
196
+ {
197
+ "const": "resource-not-found",
198
+ "type": "string"
199
+ },
200
+ {
201
+ "const": "ambiguous-resource",
202
+ "type": "string"
203
+ },
204
+ {
205
+ "const": "unsupported-resource",
206
+ "type": "string"
207
+ },
208
+ {
209
+ "const": "invalid-source",
210
+ "type": "string"
211
+ },
212
+ {
213
+ "const": "not-applicable",
214
+ "type": "string"
215
+ },
216
+ {
217
+ "const": "platform-remediated",
218
+ "type": "string"
219
+ }
220
+ ]
221
+ }
222
+ },
223
+ "required": [
224
+ "mappingIndex",
225
+ "mappingHash",
226
+ "policyAssignmentId",
227
+ "effect",
228
+ "disposition",
229
+ "logicalResourceId",
230
+ "propertyPath",
231
+ "outcome",
232
+ "reason"
233
+ ],
234
+ "type": "object"
235
+ },
236
+ "type": "array"
237
+ },
238
+ "runId": {
239
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$",
240
+ "type": "string"
241
+ },
242
+ "schemaVersion": {
243
+ "const": "1.0.0",
244
+ "type": "string"
245
+ },
246
+ "sourceHash": {
247
+ "pattern": "^[0-9a-f]{64}$",
248
+ "type": "string"
249
+ },
250
+ "track": {
251
+ "anyOf": [
252
+ {
253
+ "const": "bicep",
254
+ "type": "string"
255
+ },
256
+ {
257
+ "const": "terraform",
258
+ "type": "string"
259
+ }
260
+ ]
261
+ }
262
+ },
263
+ "required": [
264
+ "schemaVersion",
265
+ "projectId",
266
+ "runId",
267
+ "track",
268
+ "sourceHash",
269
+ "policyMapHash",
270
+ "policyMapContentHash",
271
+ "logicalResourceManifestHash",
272
+ "inputHash",
273
+ "outcome",
274
+ "results",
275
+ "receiptHash"
276
+ ],
277
+ "type": "object"
278
+ }
@@ -27,6 +27,18 @@
27
27
  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
28
28
  "type": "string"
29
29
  },
30
+ "riskOwner": {
31
+ "anyOf": [
32
+ {
33
+ "const": "partner",
34
+ "type": "string"
35
+ },
36
+ {
37
+ "const": "customer",
38
+ "type": "string"
39
+ }
40
+ ]
41
+ },
30
42
  "schemaVersion": {
31
43
  "const": "1.0.0",
32
44
  "type": "string"
@@ -37,7 +49,8 @@
37
49
  "projectId",
38
50
  "displayName",
39
51
  "createdAt",
40
- "defaultIacTool"
52
+ "defaultIacTool",
53
+ "riskOwner"
41
54
  ],
42
55
  "type": "object"
43
56
  }
@@ -0,0 +1,76 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/repeat-guard-records-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "records": {
7
+ "items": {
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "callHash": {
11
+ "pattern": "^[0-9a-f]{64}$",
12
+ "type": "string"
13
+ },
14
+ "expiresAt": {
15
+ "format": "date-time",
16
+ "type": "string"
17
+ },
18
+ "fingerprint": {
19
+ "pattern": "^[0-9a-f]{64}$",
20
+ "type": "string"
21
+ },
22
+ "operation": {
23
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,63}$",
24
+ "type": "string"
25
+ },
26
+ "recordedAt": {
27
+ "format": "date-time",
28
+ "type": "string"
29
+ },
30
+ "result": {
31
+ "maxLength": 65536,
32
+ "minLength": 2,
33
+ "type": "string"
34
+ },
35
+ "stateAfter": {
36
+ "pattern": "^[0-9a-f]{64}$",
37
+ "type": "string"
38
+ },
39
+ "stateBefore": {
40
+ "anyOf": [
41
+ {
42
+ "pattern": "^[0-9a-f]{64}$",
43
+ "type": "string"
44
+ },
45
+ {
46
+ "type": "null"
47
+ }
48
+ ]
49
+ }
50
+ },
51
+ "required": [
52
+ "fingerprint",
53
+ "callHash",
54
+ "operation",
55
+ "stateBefore",
56
+ "stateAfter",
57
+ "recordedAt",
58
+ "expiresAt",
59
+ "result"
60
+ ],
61
+ "type": "object"
62
+ },
63
+ "maxItems": 16,
64
+ "type": "array"
65
+ },
66
+ "schemaVersion": {
67
+ "const": "1.0.0",
68
+ "type": "string"
69
+ }
70
+ },
71
+ "required": [
72
+ "schemaVersion",
73
+ "records"
74
+ ],
75
+ "type": "object"
76
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/repository-publish-config-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "branch": {
7
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,254}$(?![\\s\\S])",
8
+ "type": "string"
9
+ },
10
+ "name": {
11
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,99}$(?![\\s\\S])",
12
+ "type": "string"
13
+ },
14
+ "owner": {
15
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9-]{0,38}$(?![\\s\\S])",
16
+ "type": "string"
17
+ },
18
+ "remote": {
19
+ "const": "origin",
20
+ "type": "string"
21
+ },
22
+ "schemaVersion": {
23
+ "const": "1.0.0",
24
+ "type": "string"
25
+ },
26
+ "visibility": {
27
+ "anyOf": [
28
+ {
29
+ "const": "private",
30
+ "type": "string"
31
+ },
32
+ {
33
+ "const": "internal",
34
+ "type": "string"
35
+ },
36
+ {
37
+ "const": "public",
38
+ "type": "string"
39
+ }
40
+ ]
41
+ }
42
+ },
43
+ "required": [
44
+ "schemaVersion",
45
+ "owner",
46
+ "name",
47
+ "visibility",
48
+ "branch",
49
+ "remote"
50
+ ],
51
+ "type": "object"
52
+ }