@apexops/contracts 0.10.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 (101) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/artifacts.d.ts +60 -0
  3. package/dist/artifacts.d.ts.map +1 -0
  4. package/dist/artifacts.js +46 -0
  5. package/dist/artifacts.js.map +1 -0
  6. package/dist/common.d.ts +22 -0
  7. package/dist/common.d.ts.map +1 -0
  8. package/dist/common.js +23 -0
  9. package/dist/common.js.map +1 -0
  10. package/dist/deployment.d.ts +100 -0
  11. package/dist/deployment.d.ts.map +1 -0
  12. package/dist/deployment.js +108 -0
  13. package/dist/deployment.js.map +1 -0
  14. package/dist/evidence.d.ts +256 -0
  15. package/dist/evidence.d.ts.map +1 -0
  16. package/dist/evidence.js +382 -0
  17. package/dist/evidence.js.map +1 -0
  18. package/dist/export-schemas.d.ts +2 -0
  19. package/dist/export-schemas.d.ts.map +1 -0
  20. package/dist/export-schemas.js +53 -0
  21. package/dist/export-schemas.js.map +1 -0
  22. package/dist/improvement.d.ts +92 -0
  23. package/dist/improvement.d.ts.map +1 -0
  24. package/dist/improvement.js +119 -0
  25. package/dist/improvement.js.map +1 -0
  26. package/dist/index.d.ts +983 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +128 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/onboarding.d.ts +15 -0
  31. package/dist/onboarding.d.ts.map +1 -0
  32. package/dist/onboarding.js +17 -0
  33. package/dist/onboarding.js.map +1 -0
  34. package/dist/pricing.d.ts +130 -0
  35. package/dist/pricing.d.ts.map +1 -0
  36. package/dist/pricing.js +355 -0
  37. package/dist/pricing.js.map +1 -0
  38. package/dist/runtime.d.ts +284 -0
  39. package/dist/runtime.d.ts.map +1 -0
  40. package/dist/runtime.js +196 -0
  41. package/dist/runtime.js.map +1 -0
  42. package/dist/schema-export.d.ts +15 -0
  43. package/dist/schema-export.d.ts.map +1 -0
  44. package/dist/schema-export.js +49 -0
  45. package/dist/schema-export.js.map +1 -0
  46. package/dist/targets.d.ts +359 -0
  47. package/dist/targets.d.ts.map +1 -0
  48. package/dist/targets.js +394 -0
  49. package/dist/targets.js.map +1 -0
  50. package/dist/test/contracts.test.d.ts +2 -0
  51. package/dist/test/contracts.test.d.ts.map +1 -0
  52. package/dist/test/contracts.test.js +867 -0
  53. package/dist/test/contracts.test.js.map +1 -0
  54. package/package.json +45 -0
  55. package/schemas/approval-evidence-v1.schema.json +172 -0
  56. package/schemas/architecture-availability-v1.schema.json +155 -0
  57. package/schemas/architecture-v1.schema.json +107 -0
  58. package/schemas/capability-pack-manifest-v1.schema.json +59 -0
  59. package/schemas/client-outcome-comparison-v1.schema.json +195 -0
  60. package/schemas/client-outcome-qualification-v1.schema.json +190 -0
  61. package/schemas/client-outcome-v1.schema.json +513 -0
  62. package/schemas/contract-metadata.json +232 -0
  63. package/schemas/cost-estimate-v1.schema.json +165 -0
  64. package/schemas/customization-lock-v1.schema.json +63 -0
  65. package/schemas/deployment-preview-v1.schema.json +180 -0
  66. package/schemas/diagnosis-v1.schema.json +111 -0
  67. package/schemas/environment-inputs-v1.schema.json +106 -0
  68. package/schemas/event-v1.schema.json +74 -0
  69. package/schemas/evidence-manifest-v1.schema.json +111 -0
  70. package/schemas/execution-plan-attestation-v1.schema.json +145 -0
  71. package/schemas/governance-constraints-v1.schema.json +103 -0
  72. package/schemas/iac-binding-v1.schema.json +74 -0
  73. package/schemas/iac-handoff-v1.schema.json +83 -0
  74. package/schemas/implementation-intent-v1.schema.json +89 -0
  75. package/schemas/improvement-decision-v1.schema.json +62 -0
  76. package/schemas/improvement-observation-v1.schema.json +166 -0
  77. package/schemas/improvement-policy-v1.schema.json +204 -0
  78. package/schemas/improvement-proposal-v1.schema.json +144 -0
  79. package/schemas/improvement-recurrence-v1.schema.json +130 -0
  80. package/schemas/input-request-v1.schema.json +242 -0
  81. package/schemas/input-submission-v1.schema.json +205 -0
  82. package/schemas/live-qualification-v1.schema.json +295 -0
  83. package/schemas/logical-resource-manifest-v1.schema.json +123 -0
  84. package/schemas/onboarding-config-v1.schema.json +59 -0
  85. package/schemas/operation-record-v1.schema.json +112 -0
  86. package/schemas/policy-property-map-v1.schema.json +108 -0
  87. package/schemas/pricing-evidence-v1.schema.json +628 -0
  88. package/schemas/pricing-request-v1.schema.json +424 -0
  89. package/schemas/project-config-v1.schema.json +43 -0
  90. package/schemas/quality-measurements-v1.schema.json +54 -0
  91. package/schemas/quality-report-v1.schema.json +114 -0
  92. package/schemas/quality-scorecard-v1.schema.json +109 -0
  93. package/schemas/requirements-v1.schema.json +108 -0
  94. package/schemas/resource-inventory-v1.schema.json +74 -0
  95. package/schemas/review-findings-v1.schema.json +126 -0
  96. package/schemas/run-config-v1.schema.json +133 -0
  97. package/schemas/runtime-bundle-lock-v1.schema.json +59 -0
  98. package/schemas/scenario-v1.schema.json +55 -0
  99. package/schemas/task-envelope-v1.schema.json +122 -0
  100. package/schemas/telemetry-v1.schema.json +117 -0
  101. package/schemas/workload-decision-manifest-v1.schema.json +320 -0
@@ -0,0 +1,205 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/input-submission-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "answers": {
7
+ "items": {
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "questionId": {
11
+ "minLength": 1,
12
+ "type": "string"
13
+ },
14
+ "value": {
15
+ "anyOf": [
16
+ {
17
+ "minLength": 1,
18
+ "type": "string"
19
+ },
20
+ {
21
+ "items": {
22
+ "minLength": 1,
23
+ "type": "string"
24
+ },
25
+ "minItems": 1,
26
+ "type": "array",
27
+ "uniqueItems": true
28
+ },
29
+ {
30
+ "additionalProperties": false,
31
+ "properties": {
32
+ "kind": {
33
+ "const": "deferred",
34
+ "type": "string"
35
+ },
36
+ "owner": {
37
+ "minLength": 1,
38
+ "type": "string"
39
+ }
40
+ },
41
+ "required": [
42
+ "kind",
43
+ "owner"
44
+ ],
45
+ "type": "object"
46
+ },
47
+ {
48
+ "additionalProperties": false,
49
+ "properties": {
50
+ "kind": {
51
+ "const": "unknown",
52
+ "type": "string"
53
+ }
54
+ },
55
+ "required": [
56
+ "kind"
57
+ ],
58
+ "type": "object"
59
+ },
60
+ {
61
+ "additionalProperties": false,
62
+ "properties": {
63
+ "amount": {
64
+ "minimum": 0,
65
+ "type": "number"
66
+ },
67
+ "cadence": {
68
+ "const": "monthly",
69
+ "type": "string"
70
+ },
71
+ "currency": {
72
+ "pattern": "^[A-Z]{3}$",
73
+ "type": "string"
74
+ },
75
+ "kind": {
76
+ "const": "budget",
77
+ "type": "string"
78
+ }
79
+ },
80
+ "required": [
81
+ "kind",
82
+ "amount",
83
+ "currency",
84
+ "cadence"
85
+ ],
86
+ "type": "object"
87
+ },
88
+ {
89
+ "additionalProperties": false,
90
+ "properties": {
91
+ "kind": {
92
+ "const": "recovery",
93
+ "type": "string"
94
+ },
95
+ "rpoMinutes": {
96
+ "minimum": 0,
97
+ "type": "integer"
98
+ },
99
+ "rtoMinutes": {
100
+ "minimum": 0,
101
+ "type": "integer"
102
+ }
103
+ },
104
+ "required": [
105
+ "kind",
106
+ "rtoMinutes",
107
+ "rpoMinutes"
108
+ ],
109
+ "type": "object"
110
+ },
111
+ {
112
+ "additionalProperties": false,
113
+ "properties": {
114
+ "classification": {
115
+ "anyOf": [
116
+ {
117
+ "const": "public",
118
+ "type": "string"
119
+ },
120
+ {
121
+ "const": "internal",
122
+ "type": "string"
123
+ },
124
+ {
125
+ "const": "confidential",
126
+ "type": "string"
127
+ },
128
+ {
129
+ "const": "restricted",
130
+ "type": "string"
131
+ }
132
+ ]
133
+ },
134
+ "kind": {
135
+ "const": "data-classification",
136
+ "type": "string"
137
+ }
138
+ },
139
+ "required": [
140
+ "kind",
141
+ "classification"
142
+ ],
143
+ "type": "object"
144
+ },
145
+ {
146
+ "additionalProperties": false,
147
+ "properties": {
148
+ "kind": {
149
+ "const": "compliance",
150
+ "type": "string"
151
+ },
152
+ "scopes": {
153
+ "items": {
154
+ "minLength": 1,
155
+ "type": "string"
156
+ },
157
+ "minItems": 1,
158
+ "type": "array",
159
+ "uniqueItems": true
160
+ }
161
+ },
162
+ "required": [
163
+ "kind",
164
+ "scopes"
165
+ ],
166
+ "type": "object"
167
+ }
168
+ ]
169
+ }
170
+ },
171
+ "required": [
172
+ "questionId",
173
+ "value"
174
+ ],
175
+ "type": "object"
176
+ },
177
+ "minItems": 1,
178
+ "type": "array"
179
+ },
180
+ "expectedHead": {
181
+ "pattern": "^[0-9a-f]{64}$",
182
+ "type": "string"
183
+ },
184
+ "ownerEpoch": {
185
+ "minimum": 1,
186
+ "type": "integer"
187
+ },
188
+ "requestId": {
189
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$",
190
+ "type": "string"
191
+ },
192
+ "schemaVersion": {
193
+ "const": "1.0.0",
194
+ "type": "string"
195
+ }
196
+ },
197
+ "required": [
198
+ "schemaVersion",
199
+ "requestId",
200
+ "expectedHead",
201
+ "ownerEpoch",
202
+ "answers"
203
+ ],
204
+ "type": "object"
205
+ }
@@ -0,0 +1,295 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/live-qualification-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "candidate": {
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "branch": {
10
+ "minLength": 1,
11
+ "type": "string"
12
+ },
13
+ "commit": {
14
+ "pattern": "^[0-9a-f]{40}$",
15
+ "type": "string"
16
+ },
17
+ "customizationBundleHash": {
18
+ "pattern": "^[0-9a-f]{64}$",
19
+ "type": "string"
20
+ },
21
+ "packageLockHash": {
22
+ "pattern": "^[0-9a-f]{64}$",
23
+ "type": "string"
24
+ },
25
+ "releaseManifestHash": {
26
+ "pattern": "^[0-9a-f]{64}$",
27
+ "type": "string"
28
+ },
29
+ "repository": {
30
+ "minLength": 1,
31
+ "type": "string"
32
+ },
33
+ "runtimeBundleHash": {
34
+ "pattern": "^[0-9a-f]{64}$",
35
+ "type": "string"
36
+ }
37
+ },
38
+ "required": [
39
+ "repository",
40
+ "branch",
41
+ "commit",
42
+ "packageLockHash",
43
+ "releaseManifestHash",
44
+ "runtimeBundleHash",
45
+ "customizationBundleHash"
46
+ ],
47
+ "type": "object"
48
+ },
49
+ "createdAt": {
50
+ "format": "date-time",
51
+ "type": "string"
52
+ },
53
+ "evidenceManifestHash": {
54
+ "pattern": "^[0-9a-f]{64}$",
55
+ "type": "string"
56
+ },
57
+ "projectId": {
58
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
59
+ "type": "string"
60
+ },
61
+ "runId": {
62
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$",
63
+ "type": "string"
64
+ },
65
+ "scenarios": {
66
+ "items": {
67
+ "anyOf": [
68
+ {
69
+ "additionalProperties": false,
70
+ "properties": {
71
+ "actor": {
72
+ "minLength": 1,
73
+ "type": "string"
74
+ },
75
+ "completedAt": {
76
+ "format": "date-time",
77
+ "type": "string"
78
+ },
79
+ "environment": {
80
+ "minLength": 1,
81
+ "type": "string"
82
+ },
83
+ "evidenceRefs": {
84
+ "items": {
85
+ "pattern": "^[0-9a-f]{64}$",
86
+ "type": "string"
87
+ },
88
+ "minItems": 1,
89
+ "type": "array",
90
+ "uniqueItems": true
91
+ },
92
+ "id": {
93
+ "anyOf": [
94
+ {
95
+ "const": "vscode-experience",
96
+ "type": "string"
97
+ },
98
+ {
99
+ "const": "restart-cross-device",
100
+ "type": "string"
101
+ },
102
+ {
103
+ "const": "github-oidc-writer-transfer",
104
+ "type": "string"
105
+ },
106
+ {
107
+ "const": "bicep-lifecycle",
108
+ "type": "string"
109
+ },
110
+ {
111
+ "const": "terraform-lifecycle",
112
+ "type": "string"
113
+ },
114
+ {
115
+ "const": "promotion",
116
+ "type": "string"
117
+ }
118
+ ]
119
+ },
120
+ "outcome": {
121
+ "anyOf": [
122
+ {
123
+ "const": "pass",
124
+ "type": "string"
125
+ },
126
+ {
127
+ "const": "fail",
128
+ "type": "string"
129
+ }
130
+ ]
131
+ },
132
+ "startedAt": {
133
+ "format": "date-time",
134
+ "type": "string"
135
+ },
136
+ "targetScope": {
137
+ "minLength": 1,
138
+ "type": "string"
139
+ },
140
+ "toolVersions": {
141
+ "minProperties": 1,
142
+ "patternProperties": {
143
+ "^[a-z][a-z0-9.-]*$": {
144
+ "minLength": 1,
145
+ "type": "string"
146
+ }
147
+ },
148
+ "type": "object"
149
+ }
150
+ },
151
+ "required": [
152
+ "id",
153
+ "environment",
154
+ "targetScope",
155
+ "actor",
156
+ "startedAt",
157
+ "completedAt",
158
+ "toolVersions",
159
+ "outcome",
160
+ "evidenceRefs"
161
+ ],
162
+ "type": "object"
163
+ },
164
+ {
165
+ "additionalProperties": false,
166
+ "properties": {
167
+ "actor": {
168
+ "minLength": 1,
169
+ "type": "string"
170
+ },
171
+ "completedAt": {
172
+ "format": "date-time",
173
+ "type": "string"
174
+ },
175
+ "disposition": {
176
+ "additionalProperties": false,
177
+ "properties": {
178
+ "nextAction": {
179
+ "minLength": 1,
180
+ "type": "string"
181
+ },
182
+ "owner": {
183
+ "minLength": 1,
184
+ "type": "string"
185
+ },
186
+ "reason": {
187
+ "minLength": 1,
188
+ "type": "string"
189
+ }
190
+ },
191
+ "required": [
192
+ "reason",
193
+ "owner",
194
+ "nextAction"
195
+ ],
196
+ "type": "object"
197
+ },
198
+ "environment": {
199
+ "minLength": 1,
200
+ "type": "string"
201
+ },
202
+ "evidenceRefs": {
203
+ "items": {
204
+ "pattern": "^[0-9a-f]{64}$",
205
+ "type": "string"
206
+ },
207
+ "type": "array",
208
+ "uniqueItems": true
209
+ },
210
+ "id": {
211
+ "anyOf": [
212
+ {
213
+ "const": "vscode-experience",
214
+ "type": "string"
215
+ },
216
+ {
217
+ "const": "restart-cross-device",
218
+ "type": "string"
219
+ },
220
+ {
221
+ "const": "github-oidc-writer-transfer",
222
+ "type": "string"
223
+ },
224
+ {
225
+ "const": "bicep-lifecycle",
226
+ "type": "string"
227
+ },
228
+ {
229
+ "const": "terraform-lifecycle",
230
+ "type": "string"
231
+ },
232
+ {
233
+ "const": "promotion",
234
+ "type": "string"
235
+ }
236
+ ]
237
+ },
238
+ "outcome": {
239
+ "const": "unavailable",
240
+ "type": "string"
241
+ },
242
+ "startedAt": {
243
+ "format": "date-time",
244
+ "type": "string"
245
+ },
246
+ "targetScope": {
247
+ "minLength": 1,
248
+ "type": "string"
249
+ },
250
+ "toolVersions": {
251
+ "minProperties": 1,
252
+ "patternProperties": {
253
+ "^[a-z][a-z0-9.-]*$": {
254
+ "minLength": 1,
255
+ "type": "string"
256
+ }
257
+ },
258
+ "type": "object"
259
+ }
260
+ },
261
+ "required": [
262
+ "id",
263
+ "environment",
264
+ "targetScope",
265
+ "actor",
266
+ "startedAt",
267
+ "completedAt",
268
+ "toolVersions",
269
+ "outcome",
270
+ "evidenceRefs",
271
+ "disposition"
272
+ ],
273
+ "type": "object"
274
+ }
275
+ ]
276
+ },
277
+ "minItems": 1,
278
+ "type": "array"
279
+ },
280
+ "schemaVersion": {
281
+ "const": "1.0.0",
282
+ "type": "string"
283
+ }
284
+ },
285
+ "required": [
286
+ "schemaVersion",
287
+ "projectId",
288
+ "runId",
289
+ "candidate",
290
+ "createdAt",
291
+ "evidenceManifestHash",
292
+ "scenarios"
293
+ ],
294
+ "type": "object"
295
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/logical-resource-manifest-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "projectId": {
7
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
8
+ "type": "string"
9
+ },
10
+ "resources": {
11
+ "items": {
12
+ "additionalProperties": false,
13
+ "properties": {
14
+ "dependsOn": {
15
+ "items": {
16
+ "minLength": 1,
17
+ "type": "string"
18
+ },
19
+ "type": "array",
20
+ "uniqueItems": true
21
+ },
22
+ "generatedDependencies": {
23
+ "items": {
24
+ "minLength": 1,
25
+ "type": "string"
26
+ },
27
+ "type": "array",
28
+ "uniqueItems": true
29
+ },
30
+ "implementationAddress": {
31
+ "minLength": 1,
32
+ "type": "string"
33
+ },
34
+ "implementationKind": {
35
+ "anyOf": [
36
+ {
37
+ "const": "resource",
38
+ "type": "string"
39
+ },
40
+ {
41
+ "const": "module",
42
+ "type": "string"
43
+ },
44
+ {
45
+ "const": "data",
46
+ "type": "string"
47
+ },
48
+ {
49
+ "const": "existing",
50
+ "type": "string"
51
+ }
52
+ ]
53
+ },
54
+ "logicalId": {
55
+ "minLength": 1,
56
+ "type": "string"
57
+ },
58
+ "ownership": {
59
+ "anyOf": [
60
+ {
61
+ "const": "existing",
62
+ "type": "string"
63
+ },
64
+ {
65
+ "const": "managed",
66
+ "type": "string"
67
+ }
68
+ ]
69
+ },
70
+ "sourcePath": {
71
+ "minLength": 1,
72
+ "type": "string"
73
+ },
74
+ "type": {
75
+ "minLength": 1,
76
+ "type": "string"
77
+ }
78
+ },
79
+ "required": [
80
+ "logicalId",
81
+ "type",
82
+ "implementationAddress",
83
+ "implementationKind",
84
+ "ownership",
85
+ "dependsOn",
86
+ "generatedDependencies",
87
+ "sourcePath"
88
+ ],
89
+ "type": "object"
90
+ },
91
+ "minItems": 1,
92
+ "type": "array"
93
+ },
94
+ "runId": {
95
+ "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$",
96
+ "type": "string"
97
+ },
98
+ "schemaVersion": {
99
+ "const": "1.0.0",
100
+ "type": "string"
101
+ },
102
+ "track": {
103
+ "anyOf": [
104
+ {
105
+ "const": "bicep",
106
+ "type": "string"
107
+ },
108
+ {
109
+ "const": "terraform",
110
+ "type": "string"
111
+ }
112
+ ]
113
+ }
114
+ },
115
+ "required": [
116
+ "schemaVersion",
117
+ "projectId",
118
+ "runId",
119
+ "track",
120
+ "resources"
121
+ ],
122
+ "type": "object"
123
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "$id": "https://schemas.apexops.dev/onboarding-config-v1.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "additionalProperties": false,
5
+ "properties": {
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
+ ]
17
+ },
18
+ "createRepository": {
19
+ "type": "boolean"
20
+ },
21
+ "displayName": {
22
+ "minLength": 1,
23
+ "type": "string"
24
+ },
25
+ "environment": {
26
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
27
+ "type": "string"
28
+ },
29
+ "iacTool": {
30
+ "anyOf": [
31
+ {
32
+ "const": "bicep",
33
+ "type": "string"
34
+ },
35
+ {
36
+ "const": "terraform",
37
+ "type": "string"
38
+ }
39
+ ]
40
+ },
41
+ "projectId": {
42
+ "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
43
+ "type": "string"
44
+ },
45
+ "schemaVersion": {
46
+ "const": "1.0.0",
47
+ "type": "string"
48
+ },
49
+ "targetScope": {
50
+ "minLength": 1,
51
+ "type": "string"
52
+ }
53
+ },
54
+ "required": [
55
+ "schemaVersion",
56
+ "projectId"
57
+ ],
58
+ "type": "object"
59
+ }