@ship.zone/ci-spec 2.0.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 (116) hide show
  1. package/.smartconfig.json +46 -0
  2. package/changelog.md +190 -0
  3. package/conformance/archive-cases.json +446 -0
  4. package/conformance/ci-actions/compile-invalid/build-arg-secret-collision.yml +31 -0
  5. package/conformance/ci-actions/compile-invalid/candidate-without-needs.yml +36 -0
  6. package/conformance/ci-actions/compile-invalid/needs-wider-triggers.yml +42 -0
  7. package/conformance/ci-actions/compile-invalid/npm-read-registry-not-allowlisted.yml +34 -0
  8. package/conformance/ci-actions/compile-invalid/publish-job-excludes-tag.yml +57 -0
  9. package/conformance/ci-actions/compile-invalid/shared-memory-above-memory.yml +28 -0
  10. package/conformance/ci-actions/compile-invalid/trigger-kind-without-job.yml +30 -0
  11. package/conformance/ci-actions/invalid/alias-affix-invalid.yml +33 -0
  12. package/conformance/ci-actions/invalid/alias.yml +32 -0
  13. package/conformance/ci-actions/invalid/bridge-network.yml +27 -0
  14. package/conformance/ci-actions/invalid/build-darwin-platform.yml +24 -0
  15. package/conformance/ci-actions/invalid/build-with-steps.yml +27 -0
  16. package/conformance/ci-actions/invalid/concurrency-empty-group.yml +28 -0
  17. package/conformance/ci-actions/invalid/concurrency-without-cancel-in-progress.yml +27 -0
  18. package/conformance/ci-actions/invalid/container-job-build-profile.yml +25 -0
  19. package/conformance/ci-actions/invalid/custom-tag.txt +23 -0
  20. package/conformance/ci-actions/invalid/duplicate-key.txt +24 -0
  21. package/conformance/ci-actions/invalid/egress-bare-wildcard.yml +29 -0
  22. package/conformance/ci-actions/invalid/egress-empty-allowlist.yml +28 -0
  23. package/conformance/ci-actions/invalid/egress-ip-literal.yml +29 -0
  24. package/conformance/ci-actions/invalid/egress-single-label-wildcard.yml +29 -0
  25. package/conformance/ci-actions/invalid/job-publish-permission.yml +28 -0
  26. package/conformance/ci-actions/invalid/job-trigger-undeclared-kind.yml +27 -0
  27. package/conformance/ci-actions/invalid/literal-alias-affix.yml +33 -0
  28. package/conformance/ci-actions/invalid/missing-spec.yml +24 -0
  29. package/conformance/ci-actions/invalid/multiple-documents.yml +25 -0
  30. package/conformance/ci-actions/invalid/npm-read-invalid-scope.yml +33 -0
  31. package/conformance/ci-actions/invalid/oci-darwin-platform.yml +25 -0
  32. package/conformance/ci-actions/invalid/permission-without-publication.yml +31 -0
  33. package/conformance/ci-actions/invalid/publish-order-duplicate.yml +50 -0
  34. package/conformance/ci-actions/invalid/publish-order-missing-kind.yml +48 -0
  35. package/conformance/ci-actions/invalid/publish-order-undeclared-kind.yml +45 -0
  36. package/conformance/ci-actions/invalid/publish-without-permission.yml +31 -0
  37. package/conformance/ci-actions/invalid/publish-without-tag-trigger.yml +31 -0
  38. package/conformance/ci-actions/invalid/release-notes-without-assets.yml +46 -0
  39. package/conformance/ci-actions/invalid/reserved-label-prefix.yml +25 -0
  40. package/conformance/ci-actions/invalid/reserved-label.yml +25 -0
  41. package/conformance/ci-actions/invalid/retention-above-maximum.yml +83 -0
  42. package/conformance/ci-actions/invalid/retention-below-minimum.yml +83 -0
  43. package/conformance/ci-actions/invalid/schema-version-field.yml +26 -0
  44. package/conformance/ci-actions/invalid/shared-memory-below-minimum.yml +28 -0
  45. package/conformance/ci-actions/invalid/shell-string.yml +21 -0
  46. package/conformance/ci-actions/invalid/spec-number.yml +25 -0
  47. package/conformance/ci-actions/invalid/spec-prerelease.yml +25 -0
  48. package/conformance/ci-actions/invalid/spec-range.yml +25 -0
  49. package/conformance/ci-actions/invalid/timeout-above-maximum.yml +26 -0
  50. package/conformance/ci-actions/invalid/timeout-below-minimum.yml +26 -0
  51. package/conformance/ci-actions/invalid/unknown-alias-kind.yml +31 -0
  52. package/conformance/ci-actions/invalid/unknown-key.yml +24 -0
  53. package/conformance/ci-actions/invalid/vm-darwin-candidate.yml +38 -0
  54. package/conformance/ci-actions/invalid/vm-darwin-shared-memory.yml +28 -0
  55. package/conformance/ci-actions/invalid/vm-oci-execution.yml +25 -0
  56. package/conformance/ci-actions/invalid/vm-unsupported-platform.yml +25 -0
  57. package/conformance/ci-actions/invalid/vm-without-platform.yml +24 -0
  58. package/conformance/ci-actions/valid/concurrency.yml +83 -0
  59. package/conformance/ci-actions/valid/egress.yml +40 -0
  60. package/conformance/ci-actions/valid/image-build.yml +80 -0
  61. package/conformance/ci-actions/valid/matrix.yml +45 -0
  62. package/conformance/ci-actions/valid/minimal.yml +25 -0
  63. package/conformance/ci-actions/valid/npm-read.yml +60 -0
  64. package/conformance/ci-actions/valid/release-assets.yml +114 -0
  65. package/conformance/ci-actions/valid/release-signing.yml +71 -0
  66. package/conformance/ci-actions/valid/release.yml +109 -0
  67. package/conformance/ci-actions/valid/resources.yml +79 -0
  68. package/conformance/ci-actions/valid/vm.yml +77 -0
  69. package/conformance/compile-cases.json +5885 -0
  70. package/conformance/compile-cases.schema.json +766 -0
  71. package/conformance/digest-cases.json +144 -0
  72. package/conformance/runner-cases.json +1238 -0
  73. package/conformance/runner-jobs/invalid/bridge-network.json +70 -0
  74. package/conformance/runner-jobs/invalid/build-darwin-platform.json +100 -0
  75. package/conformance/runner-jobs/invalid/build-with-steps.json +111 -0
  76. package/conformance/runner-jobs/invalid/build-without-microvm.json +100 -0
  77. package/conformance/runner-jobs/invalid/egress-empty-allowlist.json +71 -0
  78. package/conformance/runner-jobs/invalid/mutable-image.json +70 -0
  79. package/conformance/runner-jobs/invalid/npm-read-reserved-environment.json +82 -0
  80. package/conformance/runner-jobs/invalid/oci-darwin-platform.json +71 -0
  81. package/conformance/runner-jobs/invalid/push-permission-container.json +70 -0
  82. package/conformance/runner-jobs/invalid/shared-memory-below-minimum.json +71 -0
  83. package/conformance/runner-jobs/invalid/timeout-missing.json +69 -0
  84. package/conformance/runner-jobs/invalid/vm-without-microvm.json +82 -0
  85. package/conformance/runner-jobs/valid/candidate-test.json +72 -0
  86. package/conformance/runner-jobs/valid/egress.json +80 -0
  87. package/conformance/runner-jobs/valid/image-build.json +100 -0
  88. package/conformance/runner-jobs/valid/minimal.json +70 -0
  89. package/conformance/runner-jobs/valid/npm-read.json +81 -0
  90. package/conformance/runner-jobs/valid/resources.json +71 -0
  91. package/conformance/runner-jobs/valid/timeout-retention-defaults.json +91 -0
  92. package/conformance/runner-jobs/valid/vm-darwin.json +70 -0
  93. package/conformance/runner-jobs/valid/vm.json +82 -0
  94. package/conformance/runner-messages.json +2035 -0
  95. package/conformance/version-cases.json +125 -0
  96. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  97. package/dist_ts/00_commitinfo_data.js +9 -0
  98. package/dist_ts/constants.d.ts +199 -0
  99. package/dist_ts/constants.js +106 -0
  100. package/dist_ts/index.d.ts +1 -0
  101. package/dist_ts/index.js +2 -0
  102. package/dist_ts/plugins.d.ts +1 -0
  103. package/dist_ts/plugins.js +3 -0
  104. package/examples/ci_actions.yml +64 -0
  105. package/license.md +21 -0
  106. package/package.json +72 -0
  107. package/readme.md +146 -0
  108. package/schemas/ci_actions.schema.json +1664 -0
  109. package/schemas/runner-job.schema.json +1172 -0
  110. package/spec/ci-actions.md +433 -0
  111. package/spec/runner-protocol.md +378 -0
  112. package/spec/runner.openapi.json +2182 -0
  113. package/ts/00_commitinfo_data.ts +8 -0
  114. package/ts/constants.ts +112 -0
  115. package/ts/index.ts +1 -0
  116. package/ts/plugins.ts +1 -0
@@ -0,0 +1,2035 @@
1
+ {
2
+ "spec": "2.0.0",
3
+ "cases": [
4
+ {
5
+ "id": "registration-response-valid",
6
+ "schema": "RegisterRunnerResponse",
7
+ "valid": true,
8
+ "instance": {
9
+ "spec": "2.0.0",
10
+ "serverTime": "2026-07-30T18:00:00Z",
11
+ "registrationReplayUntil": "2026-07-30T18:10:00Z",
12
+ "credential": {
13
+ "credentialId": "credential-1",
14
+ "runnerId": "runner-1",
15
+ "token": "0123456789abcdef0123456789abcdef",
16
+ "expiresAt": "2026-07-30T19:00:00Z"
17
+ }
18
+ }
19
+ },
20
+ {
21
+ "id": "start-session-request-valid",
22
+ "schema": "StartSessionRequest",
23
+ "valid": true,
24
+ "instance": {
25
+ "sessionRequestId": "session-request-1",
26
+ "runnerId": "runner-1",
27
+ "spec": "2.0.0",
28
+ "runnerVersion": "1.0.0",
29
+ "capabilities": {
30
+ "executionProfiles": [
31
+ "oci"
32
+ ],
33
+ "isolation": [
34
+ "container",
35
+ "microvm"
36
+ ],
37
+ "platforms": [
38
+ "linux/amd64"
39
+ ],
40
+ "labels": [
41
+ "linux"
42
+ ],
43
+ "features": [
44
+ "source.tar-gz",
45
+ "artifacts",
46
+ "caches"
47
+ ],
48
+ "networks": [
49
+ "none",
50
+ "egress"
51
+ ],
52
+ "sourceFormats": [
53
+ "tar.gz"
54
+ ],
55
+ "limits": {
56
+ "maximumSourceArchiveBytes": 1048576,
57
+ "maximumSourceExtractedBytes": 4194304,
58
+ "maximumSourceEntries": 1000,
59
+ "maximumArtifactArchiveBytes": 0,
60
+ "maximumArtifactExtractedBytes": 0,
61
+ "maximumArtifactEntries": 0,
62
+ "maximumArtifacts": 0,
63
+ "maximumCacheArchiveBytes": 4294967296,
64
+ "maximumCacheExtractedBytes": 17179869184,
65
+ "maximumCacheEntries": 1000000,
66
+ "maximumCaches": 1,
67
+ "maximumLogChunkBytes": 65536,
68
+ "maximumTotalLogBytes": 10485760,
69
+ "maximumWorkspaceBytes": 21474836480,
70
+ "maximumWorkspaceEntries": 100000
71
+ }
72
+ }
73
+ }
74
+ },
75
+ {
76
+ "id": "start-session-request-range-spec-invalid",
77
+ "schema": "StartSessionRequest",
78
+ "valid": false,
79
+ "instance": {
80
+ "sessionRequestId": "session-request-1",
81
+ "runnerId": "runner-1",
82
+ "spec": "^2.0.0",
83
+ "runnerVersion": "1.0.0",
84
+ "capabilities": {
85
+ "executionProfiles": [
86
+ "oci"
87
+ ],
88
+ "isolation": [
89
+ "container",
90
+ "microvm"
91
+ ],
92
+ "platforms": [
93
+ "linux/amd64"
94
+ ],
95
+ "labels": [
96
+ "linux"
97
+ ],
98
+ "features": [
99
+ "source.tar-gz",
100
+ "artifacts",
101
+ "caches"
102
+ ],
103
+ "networks": [
104
+ "none",
105
+ "egress"
106
+ ],
107
+ "sourceFormats": [
108
+ "tar.gz"
109
+ ],
110
+ "limits": {
111
+ "maximumSourceArchiveBytes": 1048576,
112
+ "maximumSourceExtractedBytes": 4194304,
113
+ "maximumSourceEntries": 1000,
114
+ "maximumArtifactArchiveBytes": 0,
115
+ "maximumArtifactExtractedBytes": 0,
116
+ "maximumArtifactEntries": 0,
117
+ "maximumArtifacts": 0,
118
+ "maximumCacheArchiveBytes": 4294967296,
119
+ "maximumCacheExtractedBytes": 17179869184,
120
+ "maximumCacheEntries": 1000000,
121
+ "maximumCaches": 1,
122
+ "maximumLogChunkBytes": 65536,
123
+ "maximumTotalLogBytes": 10485760,
124
+ "maximumWorkspaceBytes": 21474836480,
125
+ "maximumWorkspaceEntries": 100000
126
+ }
127
+ }
128
+ }
129
+ },
130
+ {
131
+ "id": "register-request-protocol-field-invalid",
132
+ "schema": "RegisterRunnerRequest",
133
+ "valid": false,
134
+ "instance": {
135
+ "registrationRequestId": "registration-1",
136
+ "protocol": "shipzone-ci-runner",
137
+ "runnerVersion": "1.0.0",
138
+ "name": "runner-1",
139
+ "capabilities": {
140
+ "executionProfiles": [
141
+ "oci"
142
+ ],
143
+ "isolation": [
144
+ "container",
145
+ "microvm"
146
+ ],
147
+ "platforms": [
148
+ "linux/amd64"
149
+ ],
150
+ "labels": [
151
+ "linux"
152
+ ],
153
+ "features": [
154
+ "source.tar-gz",
155
+ "artifacts",
156
+ "caches"
157
+ ],
158
+ "networks": [
159
+ "none",
160
+ "egress"
161
+ ],
162
+ "sourceFormats": [
163
+ "tar.gz"
164
+ ],
165
+ "limits": {
166
+ "maximumSourceArchiveBytes": 1048576,
167
+ "maximumSourceExtractedBytes": 4194304,
168
+ "maximumSourceEntries": 1000,
169
+ "maximumArtifactArchiveBytes": 0,
170
+ "maximumArtifactExtractedBytes": 0,
171
+ "maximumArtifactEntries": 0,
172
+ "maximumArtifacts": 0,
173
+ "maximumCacheArchiveBytes": 4294967296,
174
+ "maximumCacheExtractedBytes": 17179869184,
175
+ "maximumCacheEntries": 1000000,
176
+ "maximumCaches": 1,
177
+ "maximumLogChunkBytes": 65536,
178
+ "maximumTotalLogBytes": 10485760,
179
+ "maximumWorkspaceBytes": 21474836480,
180
+ "maximumWorkspaceEntries": 100000
181
+ }
182
+ }
183
+ }
184
+ },
185
+ {
186
+ "id": "accept-request-valid",
187
+ "schema": "AcceptJobRequest",
188
+ "valid": true,
189
+ "instance": {
190
+ "acceptRequestId": "accept-1",
191
+ "identity": {
192
+ "runnerId": "runner-1",
193
+ "sessionId": "session-1",
194
+ "jobId": "job-1",
195
+ "attemptId": "attempt-1",
196
+ "leaseId": "lease-1",
197
+ "fencingToken": "0123456789abcdef"
198
+ }
199
+ }
200
+ },
201
+ {
202
+ "id": "heartbeat-request-valid",
203
+ "schema": "JobHeartbeatRequest",
204
+ "valid": true,
205
+ "instance": {
206
+ "identity": {
207
+ "runnerId": "runner-1",
208
+ "sessionId": "session-1",
209
+ "jobId": "job-1",
210
+ "attemptId": "attempt-1",
211
+ "leaseId": "lease-1",
212
+ "fencingToken": "0123456789abcdef"
213
+ },
214
+ "observedCancellationRequestId": "cancel-1"
215
+ }
216
+ },
217
+ {
218
+ "id": "log-request-valid",
219
+ "schema": "LogChunk",
220
+ "valid": true,
221
+ "instance": {
222
+ "identity": {
223
+ "runnerId": "runner-1",
224
+ "sessionId": "session-1",
225
+ "jobId": "job-1",
226
+ "attemptId": "attempt-1",
227
+ "leaseId": "lease-1",
228
+ "fencingToken": "0123456789abcdef"
229
+ },
230
+ "sequence": 0,
231
+ "stream": "stdout",
232
+ "data": "test output\n",
233
+ "timestamp": "2026-07-30T18:01:00Z"
234
+ }
235
+ },
236
+ {
237
+ "id": "canceled-completion-valid",
238
+ "schema": "CompleteJobRequest",
239
+ "valid": true,
240
+ "instance": {
241
+ "completionRequestId": "completion-1",
242
+ "identity": {
243
+ "runnerId": "runner-1",
244
+ "sessionId": "session-1",
245
+ "jobId": "job-1",
246
+ "attemptId": "attempt-1",
247
+ "leaseId": "lease-1",
248
+ "fencingToken": "0123456789abcdef"
249
+ },
250
+ "status": "canceled",
251
+ "exitCode": null,
252
+ "startedAt": "2026-07-30T18:01:00Z",
253
+ "completedAt": "2026-07-30T18:02:00Z",
254
+ "cancellationRequestId": "cancel-1"
255
+ }
256
+ },
257
+ {
258
+ "id": "abandon-request-valid",
259
+ "schema": "AbandonJobRequest",
260
+ "valid": true,
261
+ "instance": {
262
+ "abandonRequestId": "abandon-1",
263
+ "identity": {
264
+ "runnerId": "runner-1",
265
+ "sessionId": "session-1",
266
+ "jobId": "job-1",
267
+ "attemptId": "attempt-1",
268
+ "leaseId": "lease-1",
269
+ "fencingToken": "0123456789abcdef"
270
+ },
271
+ "reason": "runner_error"
272
+ }
273
+ },
274
+ {
275
+ "id": "recovery-request-valid",
276
+ "schema": "RecoverAttemptRequest",
277
+ "valid": true,
278
+ "instance": {
279
+ "recoveryRequestId": "recovery-1",
280
+ "runnerId": "runner-1",
281
+ "currentSessionId": "session-2",
282
+ "previousSessionId": "session-1",
283
+ "jobId": "job-1",
284
+ "attemptId": "attempt-1",
285
+ "reason": "runner_restarted"
286
+ }
287
+ },
288
+ {
289
+ "id": "transfer-record-valid",
290
+ "schema": "TransferRecord",
291
+ "valid": true,
292
+ "instance": {
293
+ "name": "test-results",
294
+ "format": "tar.gz",
295
+ "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
296
+ "sizeBytes": 1024,
297
+ "extractedSizeBytes": 4096,
298
+ "entryCount": 4,
299
+ "createdAt": "2026-07-30T18:02:00Z"
300
+ }
301
+ },
302
+ {
303
+ "id": "flattened-heartbeat-invalid",
304
+ "schema": "JobHeartbeatRequest",
305
+ "valid": false,
306
+ "instance": {
307
+ "runnerId": "runner-1",
308
+ "sessionId": "session-1",
309
+ "jobId": "job-1",
310
+ "attemptId": "attempt-1",
311
+ "leaseId": "lease-1",
312
+ "fencingToken": "0123456789abcdef"
313
+ }
314
+ },
315
+ {
316
+ "id": "canceled-completion-without-directive-invalid",
317
+ "schema": "CompleteJobRequest",
318
+ "valid": false,
319
+ "instance": {
320
+ "completionRequestId": "completion-2",
321
+ "identity": {
322
+ "runnerId": "runner-1",
323
+ "sessionId": "session-1",
324
+ "jobId": "job-1",
325
+ "attemptId": "attempt-1",
326
+ "leaseId": "lease-1",
327
+ "fencingToken": "0123456789abcdef"
328
+ },
329
+ "status": "canceled",
330
+ "exitCode": null,
331
+ "startedAt": "2026-07-30T18:01:00Z",
332
+ "completedAt": "2026-07-30T18:02:00Z"
333
+ }
334
+ },
335
+ {
336
+ "id": "build-lease-with-grants-valid",
337
+ "schema": "JobLease",
338
+ "valid": true,
339
+ "instance": {
340
+ "jobId": "job-1",
341
+ "attemptId": "attempt-1",
342
+ "leaseId": "lease-1",
343
+ "fencingToken": "0123456789abcdef",
344
+ "leaseExpiresAt": "2026-09-25T18:05:00Z",
345
+ "job": {
346
+ "spec": "2.0.0",
347
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
348
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
349
+ "compiledPlanDigest": "e9465908999d42aa96d23ee7965d0da732a2a4bbd99b16748cad10ef328a1abd",
350
+ "requirements": {
351
+ "executionProfile": "oci-image",
352
+ "isolation": "microvm",
353
+ "platform": "linux/arm64",
354
+ "labels": [
355
+ "builder"
356
+ ],
357
+ "features": [
358
+ "source.tar-gz",
359
+ "caches"
360
+ ],
361
+ "limits": {
362
+ "maximumSourceArchiveBytes": 1048576,
363
+ "maximumSourceExtractedBytes": 4194304,
364
+ "maximumSourceEntries": 1000,
365
+ "maximumArtifactArchiveBytes": 0,
366
+ "maximumArtifactExtractedBytes": 0,
367
+ "maximumArtifactEntries": 0,
368
+ "maximumArtifacts": 0,
369
+ "maximumCacheArchiveBytes": 4294967296,
370
+ "maximumCacheExtractedBytes": 17179869184,
371
+ "maximumCacheEntries": 1000000,
372
+ "maximumCaches": 1,
373
+ "maximumLogChunkBytes": 65536,
374
+ "maximumTotalLogBytes": 10485760,
375
+ "maximumWorkspaceBytes": 21474836480,
376
+ "maximumWorkspaceEntries": 100000
377
+ }
378
+ },
379
+ "permissions": {
380
+ "source": "read",
381
+ "artifacts": "none",
382
+ "caches": "read-write",
383
+ "images": "push"
384
+ },
385
+ "network": {
386
+ "mode": "egress",
387
+ "allow": [
388
+ {
389
+ "host": "registry.npmjs.org",
390
+ "ports": [
391
+ 443
392
+ ]
393
+ }
394
+ ]
395
+ },
396
+ "build": {
397
+ "context": ".",
398
+ "dockerfile": "Dockerfile",
399
+ "target": "production",
400
+ "buildArgs": {
401
+ "NODE_ENV": "production"
402
+ },
403
+ "secrets": [
404
+ {
405
+ "id": "npmrc",
406
+ "environment": "NPM_TOKEN"
407
+ }
408
+ ],
409
+ "labels": {
410
+ "org.opencontainers.image.revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
411
+ "org.opencontainers.image.source": "https://code.foss.global/example/app",
412
+ "org.opencontainers.image.title": "app"
413
+ },
414
+ "baseImages": [
415
+ {
416
+ "name": "base",
417
+ "image": {
418
+ "candidate": "base-image"
419
+ }
420
+ }
421
+ ]
422
+ },
423
+ "source": {
424
+ "format": "tar.gz",
425
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
426
+ "sizeBytes": 1024,
427
+ "extractedSizeBytes": 4096,
428
+ "entryCount": 4
429
+ },
430
+ "secrets": {
431
+ "NPM_TOKEN": "resolved-secret-value"
432
+ },
433
+ "timeoutMs": 3600000,
434
+ "resources": {
435
+ "memoryBytes": 8589934592,
436
+ "cpus": 4,
437
+ "pids": 4096
438
+ },
439
+ "artifacts": [],
440
+ "caches": [
441
+ {
442
+ "name": "buildkit",
443
+ "key": "buildkit-linux-arm64",
444
+ "access": "read-write",
445
+ "maximumBytes": 4294967296,
446
+ "maximumExtractedBytes": 17179869184,
447
+ "maximumEntries": 1000000,
448
+ "retentionDays": 14
449
+ }
450
+ ]
451
+ },
452
+ "grants": [
453
+ {
454
+ "grantId": "grant-push-1",
455
+ "access": "push",
456
+ "registry": "code.foss.global",
457
+ "repository": "example/app/ci-candidates-trusted",
458
+ "username": "grant-push-1",
459
+ "secret": "0123456789abcdef0123456789abcdef",
460
+ "expiresAt": "2026-09-25T19:00:00Z"
461
+ },
462
+ {
463
+ "grantId": "grant-pull-1",
464
+ "access": "pull",
465
+ "registry": "code.foss.global",
466
+ "repository": "example/app/ci-candidates-trusted",
467
+ "username": "grant-pull-1",
468
+ "secret": "0123456789abcdef0123456789abcdef",
469
+ "expiresAt": "2026-09-25T19:00:00Z"
470
+ }
471
+ ],
472
+ "bindings": [
473
+ {
474
+ "candidate": "base-image",
475
+ "image": "code.foss.global/example/app/ci-candidates-trusted@sha256:9999999999999999999999999999999999999999999999999999999999999999"
476
+ }
477
+ ]
478
+ }
479
+ },
480
+ {
481
+ "id": "candidate-lease-with-binding-valid",
482
+ "schema": "JobLease",
483
+ "valid": true,
484
+ "instance": {
485
+ "jobId": "job-2",
486
+ "attemptId": "attempt-2",
487
+ "leaseId": "lease-2",
488
+ "fencingToken": "0123456789abcdef",
489
+ "leaseExpiresAt": "2026-09-25T18:05:00Z",
490
+ "job": {
491
+ "spec": "2.0.0",
492
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
493
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
494
+ "compiledPlanDigest": "cf4576a479ed8acc3d7635cf732de643df8edd0f48320a41e869712e8f72a1f5",
495
+ "requirements": {
496
+ "executionProfile": "oci",
497
+ "isolation": "container",
498
+ "labels": [
499
+ "linux"
500
+ ],
501
+ "features": [
502
+ "source.tar-gz"
503
+ ],
504
+ "limits": {
505
+ "maximumSourceArchiveBytes": 1048576,
506
+ "maximumSourceExtractedBytes": 4194304,
507
+ "maximumSourceEntries": 1000,
508
+ "maximumArtifactArchiveBytes": 0,
509
+ "maximumArtifactExtractedBytes": 0,
510
+ "maximumArtifactEntries": 0,
511
+ "maximumArtifacts": 0,
512
+ "maximumCacheArchiveBytes": 0,
513
+ "maximumCacheExtractedBytes": 0,
514
+ "maximumCacheEntries": 0,
515
+ "maximumCaches": 0,
516
+ "maximumLogChunkBytes": 65536,
517
+ "maximumTotalLogBytes": 10485760,
518
+ "maximumWorkspaceBytes": 268435456,
519
+ "maximumWorkspaceEntries": 100000
520
+ },
521
+ "platform": "linux/amd64"
522
+ },
523
+ "permissions": {
524
+ "source": "read",
525
+ "artifacts": "none",
526
+ "caches": "none",
527
+ "images": "none"
528
+ },
529
+ "network": {
530
+ "mode": "none"
531
+ },
532
+ "execution": {
533
+ "profile": "oci",
534
+ "image": {
535
+ "candidate": "image"
536
+ },
537
+ "workingDirectory": "/workspace"
538
+ },
539
+ "steps": [
540
+ {
541
+ "name": "Candidate smoke test",
542
+ "command": [
543
+ "/usr/local/bin/app",
544
+ "--self-test"
545
+ ],
546
+ "environment": {
547
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
548
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
549
+ }
550
+ }
551
+ ],
552
+ "source": {
553
+ "format": "tar.gz",
554
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
555
+ "sizeBytes": 1024,
556
+ "extractedSizeBytes": 4096,
557
+ "entryCount": 4
558
+ },
559
+ "secrets": {},
560
+ "timeoutMs": 60000,
561
+ "resources": {
562
+ "memoryBytes": 268435456,
563
+ "cpus": 1,
564
+ "pids": 256
565
+ },
566
+ "artifacts": [],
567
+ "caches": []
568
+ },
569
+ "grants": [
570
+ {
571
+ "grantId": "grant-pull-2",
572
+ "access": "pull",
573
+ "registry": "code.foss.global",
574
+ "repository": "example/app/ci-candidates-trusted",
575
+ "username": "grant-pull-2",
576
+ "secret": "0123456789abcdef0123456789abcdef",
577
+ "expiresAt": "2026-09-25T19:00:00Z"
578
+ }
579
+ ],
580
+ "bindings": [
581
+ {
582
+ "candidate": "image",
583
+ "image": "code.foss.global/example/app/ci-candidates-trusted@sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
584
+ }
585
+ ]
586
+ }
587
+ },
588
+ {
589
+ "id": "lease-without-grants-invalid",
590
+ "schema": "JobLease",
591
+ "valid": false,
592
+ "instance": {
593
+ "jobId": "job-3",
594
+ "attemptId": "attempt-3",
595
+ "leaseId": "lease-3",
596
+ "fencingToken": "0123456789abcdef",
597
+ "leaseExpiresAt": "2026-09-25T18:05:00Z",
598
+ "job": {
599
+ "spec": "2.0.0",
600
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
601
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
602
+ "compiledPlanDigest": "510cbf54d5dbed5636d03249a9c7cb9c69ab1697ff7df505c372a72a6259636d",
603
+ "requirements": {
604
+ "executionProfile": "oci",
605
+ "isolation": "container",
606
+ "labels": [
607
+ "linux"
608
+ ],
609
+ "features": [
610
+ "source.tar-gz"
611
+ ],
612
+ "limits": {
613
+ "maximumSourceArchiveBytes": 1048576,
614
+ "maximumSourceExtractedBytes": 4194304,
615
+ "maximumSourceEntries": 1000,
616
+ "maximumArtifactArchiveBytes": 0,
617
+ "maximumArtifactExtractedBytes": 0,
618
+ "maximumArtifactEntries": 0,
619
+ "maximumArtifacts": 0,
620
+ "maximumCacheArchiveBytes": 0,
621
+ "maximumCacheExtractedBytes": 0,
622
+ "maximumCacheEntries": 0,
623
+ "maximumCaches": 0,
624
+ "maximumLogChunkBytes": 65536,
625
+ "maximumTotalLogBytes": 10485760,
626
+ "maximumWorkspaceBytes": 268435456,
627
+ "maximumWorkspaceEntries": 100000
628
+ }
629
+ },
630
+ "permissions": {
631
+ "source": "read",
632
+ "artifacts": "none",
633
+ "caches": "none",
634
+ "images": "none"
635
+ },
636
+ "network": {
637
+ "mode": "none"
638
+ },
639
+ "execution": {
640
+ "profile": "oci",
641
+ "image": "registry.example/ci@sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
642
+ "workingDirectory": "/workspace"
643
+ },
644
+ "steps": [
645
+ {
646
+ "name": "Test",
647
+ "command": [
648
+ "pnpm",
649
+ "test"
650
+ ],
651
+ "environment": {
652
+ "CI": "true",
653
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
654
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
655
+ }
656
+ }
657
+ ],
658
+ "source": {
659
+ "format": "tar.gz",
660
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
661
+ "sizeBytes": 1024,
662
+ "extractedSizeBytes": 4096,
663
+ "entryCount": 4
664
+ },
665
+ "secrets": {},
666
+ "timeoutMs": 60000,
667
+ "resources": {
668
+ "memoryBytes": 268435456,
669
+ "cpus": 1,
670
+ "pids": 256
671
+ },
672
+ "artifacts": [],
673
+ "caches": []
674
+ }
675
+ }
676
+ },
677
+ {
678
+ "id": "binding-tagged-image-invalid",
679
+ "schema": "ImageBinding",
680
+ "valid": false,
681
+ "instance": {
682
+ "candidate": "image",
683
+ "image": "code.foss.global/example/app:latest"
684
+ }
685
+ },
686
+ {
687
+ "id": "grant-delete-access-invalid",
688
+ "schema": "ImageGrant",
689
+ "valid": false,
690
+ "instance": {
691
+ "grantId": "grant-push-1",
692
+ "access": "delete",
693
+ "registry": "code.foss.global",
694
+ "repository": "example/app/ci-candidates-trusted",
695
+ "username": "grant-push-1",
696
+ "secret": "0123456789abcdef0123456789abcdef",
697
+ "expiresAt": "2026-09-25T19:00:00Z"
698
+ }
699
+ },
700
+ {
701
+ "id": "record-image-request-valid",
702
+ "schema": "RecordImageRequest",
703
+ "valid": true,
704
+ "instance": {
705
+ "recordRequestId": "record-1",
706
+ "identity": {
707
+ "runnerId": "runner-1",
708
+ "sessionId": "session-1",
709
+ "jobId": "job-1",
710
+ "attemptId": "attempt-1",
711
+ "leaseId": "lease-1",
712
+ "fencingToken": "0123456789abcdef"
713
+ },
714
+ "manifestDigest": "sha256:abababababababababababababababababababababababababababababababab",
715
+ "mediaType": "application/vnd.oci.image.manifest.v1+json",
716
+ "sizeBytes": 1234,
717
+ "platform": "linux/arm64"
718
+ }
719
+ },
720
+ {
721
+ "id": "record-image-index-invalid",
722
+ "schema": "RecordImageRequest",
723
+ "valid": false,
724
+ "instance": {
725
+ "recordRequestId": "record-1",
726
+ "identity": {
727
+ "runnerId": "runner-1",
728
+ "sessionId": "session-1",
729
+ "jobId": "job-1",
730
+ "attemptId": "attempt-1",
731
+ "leaseId": "lease-1",
732
+ "fencingToken": "0123456789abcdef"
733
+ },
734
+ "manifestDigest": "sha256:abababababababababababababababababababababababababababababababab",
735
+ "mediaType": "application/vnd.oci.image.index.v1+json",
736
+ "sizeBytes": 1234,
737
+ "platform": "linux/arm64"
738
+ }
739
+ },
740
+ {
741
+ "id": "image-record-valid",
742
+ "schema": "ImageRecord",
743
+ "valid": true,
744
+ "instance": {
745
+ "registry": "code.foss.global",
746
+ "repository": "example/app/ci-candidates-trusted",
747
+ "manifestDigest": "sha256:abababababababababababababababababababababababababababababababab",
748
+ "mediaType": "application/vnd.oci.image.manifest.v1+json",
749
+ "sizeBytes": 1234,
750
+ "platform": "linux/arm64",
751
+ "createdAt": "2026-09-25T18:04:00Z"
752
+ }
753
+ },
754
+ {
755
+ "id": "builder-capabilities-valid",
756
+ "schema": "RunnerCapabilities",
757
+ "valid": true,
758
+ "instance": {
759
+ "executionProfiles": [
760
+ "oci-image"
761
+ ],
762
+ "isolation": [
763
+ "microvm"
764
+ ],
765
+ "platforms": [
766
+ "linux/arm64"
767
+ ],
768
+ "labels": [
769
+ "builder"
770
+ ],
771
+ "features": [
772
+ "source.tar-gz",
773
+ "caches"
774
+ ],
775
+ "networks": [
776
+ "none",
777
+ "egress"
778
+ ],
779
+ "sourceFormats": [
780
+ "tar.gz"
781
+ ],
782
+ "limits": {
783
+ "maximumSourceArchiveBytes": 1048576,
784
+ "maximumSourceExtractedBytes": 4194304,
785
+ "maximumSourceEntries": 1000,
786
+ "maximumArtifactArchiveBytes": 0,
787
+ "maximumArtifactExtractedBytes": 0,
788
+ "maximumArtifactEntries": 0,
789
+ "maximumArtifacts": 0,
790
+ "maximumCacheArchiveBytes": 4294967296,
791
+ "maximumCacheExtractedBytes": 17179869184,
792
+ "maximumCacheEntries": 1000000,
793
+ "maximumCaches": 1,
794
+ "maximumLogChunkBytes": 65536,
795
+ "maximumTotalLogBytes": 10485760,
796
+ "maximumWorkspaceBytes": 21474836480,
797
+ "maximumWorkspaceEntries": 100000
798
+ }
799
+ }
800
+ },
801
+ {
802
+ "id": "container-capabilities-valid",
803
+ "schema": "RunnerCapabilities",
804
+ "valid": true,
805
+ "instance": {
806
+ "executionProfiles": [
807
+ "oci"
808
+ ],
809
+ "isolation": [
810
+ "container",
811
+ "microvm"
812
+ ],
813
+ "platforms": [
814
+ "linux/amd64"
815
+ ],
816
+ "labels": [
817
+ "linux"
818
+ ],
819
+ "features": [
820
+ "source.tar-gz",
821
+ "artifacts",
822
+ "caches"
823
+ ],
824
+ "networks": [
825
+ "none",
826
+ "egress"
827
+ ],
828
+ "sourceFormats": [
829
+ "tar.gz"
830
+ ],
831
+ "limits": {
832
+ "maximumSourceArchiveBytes": 1048576,
833
+ "maximumSourceExtractedBytes": 4194304,
834
+ "maximumSourceEntries": 1000,
835
+ "maximumArtifactArchiveBytes": 0,
836
+ "maximumArtifactExtractedBytes": 0,
837
+ "maximumArtifactEntries": 0,
838
+ "maximumArtifacts": 0,
839
+ "maximumCacheArchiveBytes": 4294967296,
840
+ "maximumCacheExtractedBytes": 17179869184,
841
+ "maximumCacheEntries": 1000000,
842
+ "maximumCaches": 1,
843
+ "maximumLogChunkBytes": 65536,
844
+ "maximumTotalLogBytes": 10485760,
845
+ "maximumWorkspaceBytes": 21474836480,
846
+ "maximumWorkspaceEntries": 100000
847
+ }
848
+ }
849
+ },
850
+ {
851
+ "id": "builder-capabilities-shared-profile-invalid",
852
+ "schema": "RunnerCapabilities",
853
+ "valid": false,
854
+ "instance": {
855
+ "executionProfiles": [
856
+ "oci-image",
857
+ "oci"
858
+ ],
859
+ "isolation": [
860
+ "microvm"
861
+ ],
862
+ "platforms": [
863
+ "linux/arm64"
864
+ ],
865
+ "labels": [
866
+ "builder"
867
+ ],
868
+ "features": [
869
+ "source.tar-gz",
870
+ "caches"
871
+ ],
872
+ "networks": [
873
+ "none",
874
+ "egress"
875
+ ],
876
+ "sourceFormats": [
877
+ "tar.gz"
878
+ ],
879
+ "limits": {
880
+ "maximumSourceArchiveBytes": 1048576,
881
+ "maximumSourceExtractedBytes": 4194304,
882
+ "maximumSourceEntries": 1000,
883
+ "maximumArtifactArchiveBytes": 0,
884
+ "maximumArtifactExtractedBytes": 0,
885
+ "maximumArtifactEntries": 0,
886
+ "maximumArtifacts": 0,
887
+ "maximumCacheArchiveBytes": 4294967296,
888
+ "maximumCacheExtractedBytes": 17179869184,
889
+ "maximumCacheEntries": 1000000,
890
+ "maximumCaches": 1,
891
+ "maximumLogChunkBytes": 65536,
892
+ "maximumTotalLogBytes": 10485760,
893
+ "maximumWorkspaceBytes": 21474836480,
894
+ "maximumWorkspaceEntries": 100000
895
+ }
896
+ }
897
+ },
898
+ {
899
+ "id": "builder-capabilities-without-microvm-invalid",
900
+ "schema": "RunnerCapabilities",
901
+ "valid": false,
902
+ "instance": {
903
+ "executionProfiles": [
904
+ "oci-image"
905
+ ],
906
+ "isolation": [
907
+ "container"
908
+ ],
909
+ "platforms": [
910
+ "linux/arm64"
911
+ ],
912
+ "labels": [
913
+ "builder"
914
+ ],
915
+ "features": [
916
+ "source.tar-gz",
917
+ "caches"
918
+ ],
919
+ "networks": [
920
+ "none",
921
+ "egress"
922
+ ],
923
+ "sourceFormats": [
924
+ "tar.gz"
925
+ ],
926
+ "limits": {
927
+ "maximumSourceArchiveBytes": 1048576,
928
+ "maximumSourceExtractedBytes": 4194304,
929
+ "maximumSourceEntries": 1000,
930
+ "maximumArtifactArchiveBytes": 0,
931
+ "maximumArtifactExtractedBytes": 0,
932
+ "maximumArtifactEntries": 0,
933
+ "maximumArtifacts": 0,
934
+ "maximumCacheArchiveBytes": 4294967296,
935
+ "maximumCacheExtractedBytes": 17179869184,
936
+ "maximumCacheEntries": 1000000,
937
+ "maximumCaches": 1,
938
+ "maximumLogChunkBytes": 65536,
939
+ "maximumTotalLogBytes": 10485760,
940
+ "maximumWorkspaceBytes": 21474836480,
941
+ "maximumWorkspaceEntries": 100000
942
+ }
943
+ }
944
+ },
945
+ {
946
+ "id": "bridge-network-capability-invalid",
947
+ "schema": "RunnerCapabilities",
948
+ "valid": false,
949
+ "instance": {
950
+ "executionProfiles": [
951
+ "oci-image"
952
+ ],
953
+ "isolation": [
954
+ "microvm"
955
+ ],
956
+ "platforms": [
957
+ "linux/arm64"
958
+ ],
959
+ "labels": [
960
+ "builder"
961
+ ],
962
+ "features": [
963
+ "source.tar-gz",
964
+ "caches"
965
+ ],
966
+ "networks": [
967
+ "none",
968
+ "bridge"
969
+ ],
970
+ "sourceFormats": [
971
+ "tar.gz"
972
+ ],
973
+ "limits": {
974
+ "maximumSourceArchiveBytes": 1048576,
975
+ "maximumSourceExtractedBytes": 4194304,
976
+ "maximumSourceEntries": 1000,
977
+ "maximumArtifactArchiveBytes": 0,
978
+ "maximumArtifactExtractedBytes": 0,
979
+ "maximumArtifactEntries": 0,
980
+ "maximumArtifacts": 0,
981
+ "maximumCacheArchiveBytes": 4294967296,
982
+ "maximumCacheExtractedBytes": 17179869184,
983
+ "maximumCacheEntries": 1000000,
984
+ "maximumCaches": 1,
985
+ "maximumLogChunkBytes": 65536,
986
+ "maximumTotalLogBytes": 10485760,
987
+ "maximumWorkspaceBytes": 21474836480,
988
+ "maximumWorkspaceEntries": 100000
989
+ }
990
+ }
991
+ },
992
+ {
993
+ "id": "start-session-request-resources-valid",
994
+ "schema": "StartSessionRequest",
995
+ "valid": true,
996
+ "instance": {
997
+ "sessionRequestId": "session-request-2",
998
+ "runnerId": "runner-1",
999
+ "spec": "2.0.0",
1000
+ "runnerVersion": "1.0.0",
1001
+ "capabilities": {
1002
+ "executionProfiles": [
1003
+ "oci"
1004
+ ],
1005
+ "isolation": [
1006
+ "container",
1007
+ "microvm"
1008
+ ],
1009
+ "platforms": [
1010
+ "linux/amd64"
1011
+ ],
1012
+ "labels": [
1013
+ "linux"
1014
+ ],
1015
+ "features": [
1016
+ "source.tar-gz",
1017
+ "artifacts",
1018
+ "caches"
1019
+ ],
1020
+ "networks": [
1021
+ "none",
1022
+ "egress"
1023
+ ],
1024
+ "sourceFormats": [
1025
+ "tar.gz"
1026
+ ],
1027
+ "limits": {
1028
+ "maximumSourceArchiveBytes": 1048576,
1029
+ "maximumSourceExtractedBytes": 4194304,
1030
+ "maximumSourceEntries": 1000,
1031
+ "maximumArtifactArchiveBytes": 0,
1032
+ "maximumArtifactExtractedBytes": 0,
1033
+ "maximumArtifactEntries": 0,
1034
+ "maximumArtifacts": 0,
1035
+ "maximumCacheArchiveBytes": 4294967296,
1036
+ "maximumCacheExtractedBytes": 17179869184,
1037
+ "maximumCacheEntries": 1000000,
1038
+ "maximumCaches": 1,
1039
+ "maximumLogChunkBytes": 65536,
1040
+ "maximumTotalLogBytes": 10485760,
1041
+ "maximumWorkspaceBytes": 21474836480,
1042
+ "maximumWorkspaceEntries": 100000
1043
+ },
1044
+ "resources": {
1045
+ "maximumMemoryBytes": 34359738368,
1046
+ "maximumCpus": 8,
1047
+ "maximumPids": 32768,
1048
+ "maximumSharedMemoryBytes": 4294967296
1049
+ }
1050
+ }
1051
+ }
1052
+ },
1053
+ {
1054
+ "id": "capabilities-resources-incomplete-invalid",
1055
+ "schema": "RunnerCapabilities",
1056
+ "valid": false,
1057
+ "instance": {
1058
+ "executionProfiles": [
1059
+ "oci"
1060
+ ],
1061
+ "isolation": [
1062
+ "container",
1063
+ "microvm"
1064
+ ],
1065
+ "platforms": [
1066
+ "linux/amd64"
1067
+ ],
1068
+ "labels": [
1069
+ "linux"
1070
+ ],
1071
+ "features": [
1072
+ "source.tar-gz",
1073
+ "artifacts",
1074
+ "caches"
1075
+ ],
1076
+ "networks": [
1077
+ "none",
1078
+ "egress"
1079
+ ],
1080
+ "sourceFormats": [
1081
+ "tar.gz"
1082
+ ],
1083
+ "limits": {
1084
+ "maximumSourceArchiveBytes": 1048576,
1085
+ "maximumSourceExtractedBytes": 4194304,
1086
+ "maximumSourceEntries": 1000,
1087
+ "maximumArtifactArchiveBytes": 0,
1088
+ "maximumArtifactExtractedBytes": 0,
1089
+ "maximumArtifactEntries": 0,
1090
+ "maximumArtifacts": 0,
1091
+ "maximumCacheArchiveBytes": 4294967296,
1092
+ "maximumCacheExtractedBytes": 17179869184,
1093
+ "maximumCacheEntries": 1000000,
1094
+ "maximumCaches": 1,
1095
+ "maximumLogChunkBytes": 65536,
1096
+ "maximumTotalLogBytes": 10485760,
1097
+ "maximumWorkspaceBytes": 21474836480,
1098
+ "maximumWorkspaceEntries": 100000
1099
+ },
1100
+ "resources": {
1101
+ "maximumMemoryBytes": 34359738368,
1102
+ "maximumCpus": 8,
1103
+ "maximumPids": 32768
1104
+ }
1105
+ }
1106
+ },
1107
+ {
1108
+ "id": "vm-session-capabilities-valid",
1109
+ "schema": "StartSessionRequest",
1110
+ "valid": true,
1111
+ "instance": {
1112
+ "sessionRequestId": "session-request-3",
1113
+ "runnerId": "runner-1",
1114
+ "spec": "2.0.0",
1115
+ "runnerVersion": "1.0.0",
1116
+ "capabilities": {
1117
+ "executionProfiles": [
1118
+ "oci",
1119
+ "vm"
1120
+ ],
1121
+ "isolation": [
1122
+ "container",
1123
+ "microvm"
1124
+ ],
1125
+ "platforms": [
1126
+ "linux/amd64"
1127
+ ],
1128
+ "labels": [
1129
+ "linux"
1130
+ ],
1131
+ "features": [
1132
+ "source.tar-gz",
1133
+ "artifacts",
1134
+ "caches"
1135
+ ],
1136
+ "networks": [
1137
+ "none",
1138
+ "egress"
1139
+ ],
1140
+ "sourceFormats": [
1141
+ "tar.gz"
1142
+ ],
1143
+ "limits": {
1144
+ "maximumSourceArchiveBytes": 1048576,
1145
+ "maximumSourceExtractedBytes": 4194304,
1146
+ "maximumSourceEntries": 1000,
1147
+ "maximumArtifactArchiveBytes": 0,
1148
+ "maximumArtifactExtractedBytes": 0,
1149
+ "maximumArtifactEntries": 0,
1150
+ "maximumArtifacts": 0,
1151
+ "maximumCacheArchiveBytes": 4294967296,
1152
+ "maximumCacheExtractedBytes": 17179869184,
1153
+ "maximumCacheEntries": 1000000,
1154
+ "maximumCaches": 1,
1155
+ "maximumLogChunkBytes": 65536,
1156
+ "maximumTotalLogBytes": 10485760,
1157
+ "maximumWorkspaceBytes": 21474836480,
1158
+ "maximumWorkspaceEntries": 100000
1159
+ }
1160
+ }
1161
+ }
1162
+ },
1163
+ {
1164
+ "id": "darwin-vm-session-capabilities-valid",
1165
+ "schema": "StartSessionRequest",
1166
+ "valid": true,
1167
+ "instance": {
1168
+ "sessionRequestId": "session-request-4",
1169
+ "runnerId": "runner-1",
1170
+ "spec": "2.0.0",
1171
+ "runnerVersion": "1.0.0",
1172
+ "capabilities": {
1173
+ "executionProfiles": [
1174
+ "vm"
1175
+ ],
1176
+ "isolation": [
1177
+ "microvm"
1178
+ ],
1179
+ "platforms": [
1180
+ "darwin/arm64"
1181
+ ],
1182
+ "labels": [
1183
+ "macos"
1184
+ ],
1185
+ "features": [
1186
+ "source.tar-gz",
1187
+ "artifacts",
1188
+ "caches"
1189
+ ],
1190
+ "networks": [
1191
+ "none",
1192
+ "egress"
1193
+ ],
1194
+ "sourceFormats": [
1195
+ "tar.gz"
1196
+ ],
1197
+ "limits": {
1198
+ "maximumSourceArchiveBytes": 1048576,
1199
+ "maximumSourceExtractedBytes": 4194304,
1200
+ "maximumSourceEntries": 1000,
1201
+ "maximumArtifactArchiveBytes": 0,
1202
+ "maximumArtifactExtractedBytes": 0,
1203
+ "maximumArtifactEntries": 0,
1204
+ "maximumArtifacts": 0,
1205
+ "maximumCacheArchiveBytes": 4294967296,
1206
+ "maximumCacheExtractedBytes": 17179869184,
1207
+ "maximumCacheEntries": 1000000,
1208
+ "maximumCaches": 1,
1209
+ "maximumLogChunkBytes": 65536,
1210
+ "maximumTotalLogBytes": 10485760,
1211
+ "maximumWorkspaceBytes": 21474836480,
1212
+ "maximumWorkspaceEntries": 100000
1213
+ }
1214
+ }
1215
+ }
1216
+ },
1217
+ {
1218
+ "id": "vm-capabilities-without-microvm-invalid",
1219
+ "schema": "RunnerCapabilities",
1220
+ "valid": false,
1221
+ "instance": {
1222
+ "executionProfiles": [
1223
+ "vm"
1224
+ ],
1225
+ "isolation": [
1226
+ "container"
1227
+ ],
1228
+ "platforms": [
1229
+ "linux/amd64"
1230
+ ],
1231
+ "labels": [
1232
+ "linux"
1233
+ ],
1234
+ "features": [
1235
+ "source.tar-gz",
1236
+ "artifacts",
1237
+ "caches"
1238
+ ],
1239
+ "networks": [
1240
+ "none",
1241
+ "egress"
1242
+ ],
1243
+ "sourceFormats": [
1244
+ "tar.gz"
1245
+ ],
1246
+ "limits": {
1247
+ "maximumSourceArchiveBytes": 1048576,
1248
+ "maximumSourceExtractedBytes": 4194304,
1249
+ "maximumSourceEntries": 1000,
1250
+ "maximumArtifactArchiveBytes": 0,
1251
+ "maximumArtifactExtractedBytes": 0,
1252
+ "maximumArtifactEntries": 0,
1253
+ "maximumArtifacts": 0,
1254
+ "maximumCacheArchiveBytes": 4294967296,
1255
+ "maximumCacheExtractedBytes": 17179869184,
1256
+ "maximumCacheEntries": 1000000,
1257
+ "maximumCaches": 1,
1258
+ "maximumLogChunkBytes": 65536,
1259
+ "maximumTotalLogBytes": 10485760,
1260
+ "maximumWorkspaceBytes": 21474836480,
1261
+ "maximumWorkspaceEntries": 100000
1262
+ }
1263
+ }
1264
+ },
1265
+ {
1266
+ "id": "vm-builder-capabilities-invalid",
1267
+ "schema": "RunnerCapabilities",
1268
+ "valid": false,
1269
+ "instance": {
1270
+ "executionProfiles": [
1271
+ "oci-image",
1272
+ "vm"
1273
+ ],
1274
+ "isolation": [
1275
+ "microvm"
1276
+ ],
1277
+ "platforms": [
1278
+ "linux/amd64"
1279
+ ],
1280
+ "labels": [
1281
+ "linux"
1282
+ ],
1283
+ "features": [
1284
+ "source.tar-gz",
1285
+ "artifacts",
1286
+ "caches"
1287
+ ],
1288
+ "networks": [
1289
+ "none",
1290
+ "egress"
1291
+ ],
1292
+ "sourceFormats": [
1293
+ "tar.gz"
1294
+ ],
1295
+ "limits": {
1296
+ "maximumSourceArchiveBytes": 1048576,
1297
+ "maximumSourceExtractedBytes": 4194304,
1298
+ "maximumSourceEntries": 1000,
1299
+ "maximumArtifactArchiveBytes": 0,
1300
+ "maximumArtifactExtractedBytes": 0,
1301
+ "maximumArtifactEntries": 0,
1302
+ "maximumArtifacts": 0,
1303
+ "maximumCacheArchiveBytes": 4294967296,
1304
+ "maximumCacheExtractedBytes": 17179869184,
1305
+ "maximumCacheEntries": 1000000,
1306
+ "maximumCaches": 1,
1307
+ "maximumLogChunkBytes": 65536,
1308
+ "maximumTotalLogBytes": 10485760,
1309
+ "maximumWorkspaceBytes": 21474836480,
1310
+ "maximumWorkspaceEntries": 100000
1311
+ }
1312
+ }
1313
+ },
1314
+ {
1315
+ "id": "npm-read-lease-valid",
1316
+ "schema": "JobLease",
1317
+ "valid": true,
1318
+ "instance": {
1319
+ "jobId": "job-1",
1320
+ "attemptId": "attempt-1",
1321
+ "leaseId": "lease-1",
1322
+ "fencingToken": "0123456789abcdef",
1323
+ "leaseExpiresAt": "2026-09-26T18:05:00Z",
1324
+ "job": {
1325
+ "spec": "2.0.0",
1326
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1327
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1328
+ "compiledPlanDigest": "8405c79b143e01fded6f3a311a40cf8e1ccd7040a02b8a820dfb2e9844410741",
1329
+ "requirements": {
1330
+ "executionProfile": "oci",
1331
+ "isolation": "container",
1332
+ "labels": [
1333
+ "linux"
1334
+ ],
1335
+ "features": [
1336
+ "source.tar-gz"
1337
+ ],
1338
+ "limits": {
1339
+ "maximumSourceArchiveBytes": 1048576,
1340
+ "maximumSourceExtractedBytes": 4194304,
1341
+ "maximumSourceEntries": 1000,
1342
+ "maximumArtifactArchiveBytes": 0,
1343
+ "maximumArtifactExtractedBytes": 0,
1344
+ "maximumArtifactEntries": 0,
1345
+ "maximumArtifacts": 0,
1346
+ "maximumCacheArchiveBytes": 0,
1347
+ "maximumCacheExtractedBytes": 0,
1348
+ "maximumCacheEntries": 0,
1349
+ "maximumCaches": 0,
1350
+ "maximumLogChunkBytes": 65536,
1351
+ "maximumTotalLogBytes": 10485760,
1352
+ "maximumWorkspaceBytes": 21474836480,
1353
+ "maximumWorkspaceEntries": 100000
1354
+ }
1355
+ },
1356
+ "permissions": {
1357
+ "source": "read",
1358
+ "artifacts": "none",
1359
+ "caches": "none",
1360
+ "images": "none"
1361
+ },
1362
+ "network": {
1363
+ "mode": "egress",
1364
+ "allow": [
1365
+ {
1366
+ "host": "npm.example.com",
1367
+ "ports": [
1368
+ 443
1369
+ ]
1370
+ },
1371
+ {
1372
+ "host": "registry.npmjs.org",
1373
+ "ports": [
1374
+ 443
1375
+ ]
1376
+ }
1377
+ ]
1378
+ },
1379
+ "execution": {
1380
+ "profile": "oci",
1381
+ "image": "registry.example/ci@sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
1382
+ "workingDirectory": "/workspace"
1383
+ },
1384
+ "steps": [
1385
+ {
1386
+ "name": "Install",
1387
+ "command": [
1388
+ "pnpm",
1389
+ "install",
1390
+ "--frozen-lockfile"
1391
+ ],
1392
+ "environment": {
1393
+ "CI": "true",
1394
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
1395
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
1396
+ }
1397
+ }
1398
+ ],
1399
+ "source": {
1400
+ "format": "tar.gz",
1401
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1402
+ "sizeBytes": 1024,
1403
+ "extractedSizeBytes": 4096,
1404
+ "entryCount": 4
1405
+ },
1406
+ "secrets": {},
1407
+ "timeoutMs": 60000,
1408
+ "npmRead": [
1409
+ {
1410
+ "registry": "https://npm.example.com",
1411
+ "scopes": [
1412
+ "@example_private"
1413
+ ]
1414
+ }
1415
+ ],
1416
+ "artifacts": [],
1417
+ "caches": []
1418
+ },
1419
+ "grants": [],
1420
+ "bindings": [],
1421
+ "npmGrants": [
1422
+ {
1423
+ "grantId": "grant-npm-1",
1424
+ "registry": "https://npm.example.com",
1425
+ "scopes": [
1426
+ "@example_private"
1427
+ ],
1428
+ "secret": "0123456789abcdef0123456789abcdef",
1429
+ "expiresAt": "2026-09-26T19:00:00Z"
1430
+ }
1431
+ ]
1432
+ }
1433
+ },
1434
+ {
1435
+ "id": "npm-read-lease-without-grants-invalid",
1436
+ "schema": "JobLease",
1437
+ "valid": false,
1438
+ "instance": {
1439
+ "jobId": "job-1",
1440
+ "attemptId": "attempt-1",
1441
+ "leaseId": "lease-1",
1442
+ "fencingToken": "0123456789abcdef",
1443
+ "leaseExpiresAt": "2026-09-26T18:05:00Z",
1444
+ "job": {
1445
+ "spec": "2.0.0",
1446
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1447
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1448
+ "compiledPlanDigest": "8405c79b143e01fded6f3a311a40cf8e1ccd7040a02b8a820dfb2e9844410741",
1449
+ "requirements": {
1450
+ "executionProfile": "oci",
1451
+ "isolation": "container",
1452
+ "labels": [
1453
+ "linux"
1454
+ ],
1455
+ "features": [
1456
+ "source.tar-gz"
1457
+ ],
1458
+ "limits": {
1459
+ "maximumSourceArchiveBytes": 1048576,
1460
+ "maximumSourceExtractedBytes": 4194304,
1461
+ "maximumSourceEntries": 1000,
1462
+ "maximumArtifactArchiveBytes": 0,
1463
+ "maximumArtifactExtractedBytes": 0,
1464
+ "maximumArtifactEntries": 0,
1465
+ "maximumArtifacts": 0,
1466
+ "maximumCacheArchiveBytes": 0,
1467
+ "maximumCacheExtractedBytes": 0,
1468
+ "maximumCacheEntries": 0,
1469
+ "maximumCaches": 0,
1470
+ "maximumLogChunkBytes": 65536,
1471
+ "maximumTotalLogBytes": 10485760,
1472
+ "maximumWorkspaceBytes": 21474836480,
1473
+ "maximumWorkspaceEntries": 100000
1474
+ }
1475
+ },
1476
+ "permissions": {
1477
+ "source": "read",
1478
+ "artifacts": "none",
1479
+ "caches": "none",
1480
+ "images": "none"
1481
+ },
1482
+ "network": {
1483
+ "mode": "egress",
1484
+ "allow": [
1485
+ {
1486
+ "host": "npm.example.com",
1487
+ "ports": [
1488
+ 443
1489
+ ]
1490
+ },
1491
+ {
1492
+ "host": "registry.npmjs.org",
1493
+ "ports": [
1494
+ 443
1495
+ ]
1496
+ }
1497
+ ]
1498
+ },
1499
+ "execution": {
1500
+ "profile": "oci",
1501
+ "image": "registry.example/ci@sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
1502
+ "workingDirectory": "/workspace"
1503
+ },
1504
+ "steps": [
1505
+ {
1506
+ "name": "Install",
1507
+ "command": [
1508
+ "pnpm",
1509
+ "install",
1510
+ "--frozen-lockfile"
1511
+ ],
1512
+ "environment": {
1513
+ "CI": "true",
1514
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
1515
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
1516
+ }
1517
+ }
1518
+ ],
1519
+ "source": {
1520
+ "format": "tar.gz",
1521
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1522
+ "sizeBytes": 1024,
1523
+ "extractedSizeBytes": 4096,
1524
+ "entryCount": 4
1525
+ },
1526
+ "secrets": {},
1527
+ "timeoutMs": 60000,
1528
+ "npmRead": [
1529
+ {
1530
+ "registry": "https://npm.example.com",
1531
+ "scopes": [
1532
+ "@example_private"
1533
+ ]
1534
+ }
1535
+ ],
1536
+ "artifacts": [],
1537
+ "caches": []
1538
+ },
1539
+ "grants": [],
1540
+ "bindings": []
1541
+ }
1542
+ },
1543
+ {
1544
+ "id": "npm-grants-without-npm-read-invalid",
1545
+ "schema": "JobLease",
1546
+ "valid": false,
1547
+ "instance": {
1548
+ "jobId": "job-1",
1549
+ "attemptId": "attempt-1",
1550
+ "leaseId": "lease-1",
1551
+ "fencingToken": "0123456789abcdef",
1552
+ "leaseExpiresAt": "2026-09-26T18:05:00Z",
1553
+ "job": {
1554
+ "spec": "2.0.0",
1555
+ "sourceObjectId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
1556
+ "workflowDigest": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
1557
+ "compiledPlanDigest": "2f45d18f2b0451125cb76284a26eaa5499981005fca934d51ffc7afe317ecaeb",
1558
+ "requirements": {
1559
+ "executionProfile": "oci",
1560
+ "isolation": "container",
1561
+ "labels": [
1562
+ "linux"
1563
+ ],
1564
+ "features": [
1565
+ "source.tar-gz"
1566
+ ],
1567
+ "limits": {
1568
+ "maximumSourceArchiveBytes": 1048576,
1569
+ "maximumSourceExtractedBytes": 4194304,
1570
+ "maximumSourceEntries": 1000,
1571
+ "maximumArtifactArchiveBytes": 0,
1572
+ "maximumArtifactExtractedBytes": 0,
1573
+ "maximumArtifactEntries": 0,
1574
+ "maximumArtifacts": 0,
1575
+ "maximumCacheArchiveBytes": 0,
1576
+ "maximumCacheExtractedBytes": 0,
1577
+ "maximumCacheEntries": 0,
1578
+ "maximumCaches": 0,
1579
+ "maximumLogChunkBytes": 65536,
1580
+ "maximumTotalLogBytes": 10485760,
1581
+ "maximumWorkspaceBytes": 21474836480,
1582
+ "maximumWorkspaceEntries": 100000
1583
+ }
1584
+ },
1585
+ "permissions": {
1586
+ "source": "read",
1587
+ "artifacts": "none",
1588
+ "caches": "none",
1589
+ "images": "none"
1590
+ },
1591
+ "network": {
1592
+ "mode": "none"
1593
+ },
1594
+ "execution": {
1595
+ "profile": "oci",
1596
+ "image": "registry.example/ci@sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
1597
+ "workingDirectory": "/workspace"
1598
+ },
1599
+ "steps": [
1600
+ {
1601
+ "name": "Test",
1602
+ "command": [
1603
+ "pnpm",
1604
+ "test"
1605
+ ],
1606
+ "environment": {
1607
+ "CI": "true",
1608
+ "SHIPZONE_CI_INPUTS_JSON": "{}",
1609
+ "SHIPZONE_CI_MATRIX_JSON": "{}"
1610
+ }
1611
+ }
1612
+ ],
1613
+ "source": {
1614
+ "format": "tar.gz",
1615
+ "sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
1616
+ "sizeBytes": 1024,
1617
+ "extractedSizeBytes": 4096,
1618
+ "entryCount": 4
1619
+ },
1620
+ "secrets": {},
1621
+ "timeoutMs": 60000,
1622
+ "resources": {
1623
+ "memoryBytes": 268435456,
1624
+ "cpus": 1,
1625
+ "pids": 256,
1626
+ "sharedMemoryBytes": 134217728
1627
+ },
1628
+ "artifacts": [],
1629
+ "caches": []
1630
+ },
1631
+ "grants": [],
1632
+ "bindings": [],
1633
+ "npmGrants": [
1634
+ {
1635
+ "grantId": "grant-npm-1",
1636
+ "registry": "https://npm.example.com",
1637
+ "scopes": [
1638
+ "@example_private"
1639
+ ],
1640
+ "secret": "0123456789abcdef0123456789abcdef",
1641
+ "expiresAt": "2026-09-26T19:00:00Z"
1642
+ }
1643
+ ]
1644
+ }
1645
+ },
1646
+ {
1647
+ "id": "npm-grant-unscoped-invalid",
1648
+ "schema": "NpmGrant",
1649
+ "valid": false,
1650
+ "instance": {
1651
+ "grantId": "grant-npm-1",
1652
+ "registry": "https://npm.example.com",
1653
+ "scopes": [
1654
+ "example_private"
1655
+ ],
1656
+ "secret": "0123456789abcdef0123456789abcdef",
1657
+ "expiresAt": "2026-09-26T19:00:00Z"
1658
+ }
1659
+ },
1660
+ {
1661
+ "id": "start-session-request-lease-features-valid",
1662
+ "schema": "StartSessionRequest",
1663
+ "valid": true,
1664
+ "instance": {
1665
+ "sessionRequestId": "session-request-5",
1666
+ "runnerId": "runner-1",
1667
+ "spec": "2.0.0",
1668
+ "runnerVersion": "1.0.0",
1669
+ "capabilities": {
1670
+ "executionProfiles": [
1671
+ "oci"
1672
+ ],
1673
+ "isolation": [
1674
+ "container",
1675
+ "microvm"
1676
+ ],
1677
+ "platforms": [
1678
+ "linux/amd64"
1679
+ ],
1680
+ "labels": [
1681
+ "linux"
1682
+ ],
1683
+ "features": [
1684
+ "source.tar-gz",
1685
+ "artifacts",
1686
+ "caches"
1687
+ ],
1688
+ "networks": [
1689
+ "none",
1690
+ "egress"
1691
+ ],
1692
+ "sourceFormats": [
1693
+ "tar.gz"
1694
+ ],
1695
+ "limits": {
1696
+ "maximumSourceArchiveBytes": 1048576,
1697
+ "maximumSourceExtractedBytes": 4194304,
1698
+ "maximumSourceEntries": 1000,
1699
+ "maximumArtifactArchiveBytes": 0,
1700
+ "maximumArtifactExtractedBytes": 0,
1701
+ "maximumArtifactEntries": 0,
1702
+ "maximumArtifacts": 0,
1703
+ "maximumCacheArchiveBytes": 4294967296,
1704
+ "maximumCacheExtractedBytes": 17179869184,
1705
+ "maximumCacheEntries": 1000000,
1706
+ "maximumCaches": 1,
1707
+ "maximumLogChunkBytes": 65536,
1708
+ "maximumTotalLogBytes": 10485760,
1709
+ "maximumWorkspaceBytes": 21474836480,
1710
+ "maximumWorkspaceEntries": 100000
1711
+ },
1712
+ "resources": {
1713
+ "maximumMemoryBytes": 34359738368,
1714
+ "maximumCpus": 8,
1715
+ "maximumPids": 32768,
1716
+ "maximumSharedMemoryBytes": 4294967296
1717
+ },
1718
+ "leaseFeatures": [
1719
+ "image-pull-grants",
1720
+ "candidate-bindings",
1721
+ "npm-read-grants"
1722
+ ],
1723
+ "maximumTimeoutMs": 7200000
1724
+ }
1725
+ }
1726
+ },
1727
+ {
1728
+ "id": "capabilities-empty-lease-features-valid",
1729
+ "schema": "RunnerCapabilities",
1730
+ "valid": true,
1731
+ "instance": {
1732
+ "executionProfiles": [
1733
+ "oci"
1734
+ ],
1735
+ "isolation": [
1736
+ "container",
1737
+ "microvm"
1738
+ ],
1739
+ "platforms": [
1740
+ "linux/amd64"
1741
+ ],
1742
+ "labels": [
1743
+ "linux"
1744
+ ],
1745
+ "features": [
1746
+ "source.tar-gz",
1747
+ "artifacts",
1748
+ "caches"
1749
+ ],
1750
+ "networks": [
1751
+ "none",
1752
+ "egress"
1753
+ ],
1754
+ "sourceFormats": [
1755
+ "tar.gz"
1756
+ ],
1757
+ "limits": {
1758
+ "maximumSourceArchiveBytes": 1048576,
1759
+ "maximumSourceExtractedBytes": 4194304,
1760
+ "maximumSourceEntries": 1000,
1761
+ "maximumArtifactArchiveBytes": 0,
1762
+ "maximumArtifactExtractedBytes": 0,
1763
+ "maximumArtifactEntries": 0,
1764
+ "maximumArtifacts": 0,
1765
+ "maximumCacheArchiveBytes": 4294967296,
1766
+ "maximumCacheExtractedBytes": 17179869184,
1767
+ "maximumCacheEntries": 1000000,
1768
+ "maximumCaches": 1,
1769
+ "maximumLogChunkBytes": 65536,
1770
+ "maximumTotalLogBytes": 10485760,
1771
+ "maximumWorkspaceBytes": 21474836480,
1772
+ "maximumWorkspaceEntries": 100000
1773
+ },
1774
+ "leaseFeatures": []
1775
+ }
1776
+ },
1777
+ {
1778
+ "id": "capabilities-candidate-bindings-without-pull-grants-invalid",
1779
+ "schema": "RunnerCapabilities",
1780
+ "valid": false,
1781
+ "instance": {
1782
+ "executionProfiles": [
1783
+ "oci"
1784
+ ],
1785
+ "isolation": [
1786
+ "container",
1787
+ "microvm"
1788
+ ],
1789
+ "platforms": [
1790
+ "linux/amd64"
1791
+ ],
1792
+ "labels": [
1793
+ "linux"
1794
+ ],
1795
+ "features": [
1796
+ "source.tar-gz",
1797
+ "artifacts",
1798
+ "caches"
1799
+ ],
1800
+ "networks": [
1801
+ "none",
1802
+ "egress"
1803
+ ],
1804
+ "sourceFormats": [
1805
+ "tar.gz"
1806
+ ],
1807
+ "limits": {
1808
+ "maximumSourceArchiveBytes": 1048576,
1809
+ "maximumSourceExtractedBytes": 4194304,
1810
+ "maximumSourceEntries": 1000,
1811
+ "maximumArtifactArchiveBytes": 0,
1812
+ "maximumArtifactExtractedBytes": 0,
1813
+ "maximumArtifactEntries": 0,
1814
+ "maximumArtifacts": 0,
1815
+ "maximumCacheArchiveBytes": 4294967296,
1816
+ "maximumCacheExtractedBytes": 17179869184,
1817
+ "maximumCacheEntries": 1000000,
1818
+ "maximumCaches": 1,
1819
+ "maximumLogChunkBytes": 65536,
1820
+ "maximumTotalLogBytes": 10485760,
1821
+ "maximumWorkspaceBytes": 21474836480,
1822
+ "maximumWorkspaceEntries": 100000
1823
+ },
1824
+ "leaseFeatures": [
1825
+ "candidate-bindings"
1826
+ ]
1827
+ }
1828
+ },
1829
+ {
1830
+ "id": "capabilities-unknown-lease-feature-invalid",
1831
+ "schema": "RunnerCapabilities",
1832
+ "valid": false,
1833
+ "instance": {
1834
+ "executionProfiles": [
1835
+ "oci"
1836
+ ],
1837
+ "isolation": [
1838
+ "container",
1839
+ "microvm"
1840
+ ],
1841
+ "platforms": [
1842
+ "linux/amd64"
1843
+ ],
1844
+ "labels": [
1845
+ "linux"
1846
+ ],
1847
+ "features": [
1848
+ "source.tar-gz",
1849
+ "artifacts",
1850
+ "caches"
1851
+ ],
1852
+ "networks": [
1853
+ "none",
1854
+ "egress"
1855
+ ],
1856
+ "sourceFormats": [
1857
+ "tar.gz"
1858
+ ],
1859
+ "limits": {
1860
+ "maximumSourceArchiveBytes": 1048576,
1861
+ "maximumSourceExtractedBytes": 4194304,
1862
+ "maximumSourceEntries": 1000,
1863
+ "maximumArtifactArchiveBytes": 0,
1864
+ "maximumArtifactExtractedBytes": 0,
1865
+ "maximumArtifactEntries": 0,
1866
+ "maximumArtifacts": 0,
1867
+ "maximumCacheArchiveBytes": 4294967296,
1868
+ "maximumCacheExtractedBytes": 17179869184,
1869
+ "maximumCacheEntries": 1000000,
1870
+ "maximumCaches": 1,
1871
+ "maximumLogChunkBytes": 65536,
1872
+ "maximumTotalLogBytes": 10485760,
1873
+ "maximumWorkspaceBytes": 21474836480,
1874
+ "maximumWorkspaceEntries": 100000
1875
+ },
1876
+ "leaseFeatures": [
1877
+ "image-push-grants"
1878
+ ]
1879
+ }
1880
+ },
1881
+ {
1882
+ "id": "capabilities-duplicate-lease-feature-invalid",
1883
+ "schema": "RunnerCapabilities",
1884
+ "valid": false,
1885
+ "instance": {
1886
+ "executionProfiles": [
1887
+ "oci"
1888
+ ],
1889
+ "isolation": [
1890
+ "container",
1891
+ "microvm"
1892
+ ],
1893
+ "platforms": [
1894
+ "linux/amd64"
1895
+ ],
1896
+ "labels": [
1897
+ "linux"
1898
+ ],
1899
+ "features": [
1900
+ "source.tar-gz",
1901
+ "artifacts",
1902
+ "caches"
1903
+ ],
1904
+ "networks": [
1905
+ "none",
1906
+ "egress"
1907
+ ],
1908
+ "sourceFormats": [
1909
+ "tar.gz"
1910
+ ],
1911
+ "limits": {
1912
+ "maximumSourceArchiveBytes": 1048576,
1913
+ "maximumSourceExtractedBytes": 4194304,
1914
+ "maximumSourceEntries": 1000,
1915
+ "maximumArtifactArchiveBytes": 0,
1916
+ "maximumArtifactExtractedBytes": 0,
1917
+ "maximumArtifactEntries": 0,
1918
+ "maximumArtifacts": 0,
1919
+ "maximumCacheArchiveBytes": 4294967296,
1920
+ "maximumCacheExtractedBytes": 17179869184,
1921
+ "maximumCacheEntries": 1000000,
1922
+ "maximumCaches": 1,
1923
+ "maximumLogChunkBytes": 65536,
1924
+ "maximumTotalLogBytes": 10485760,
1925
+ "maximumWorkspaceBytes": 21474836480,
1926
+ "maximumWorkspaceEntries": 100000
1927
+ },
1928
+ "leaseFeatures": [
1929
+ "npm-read-grants",
1930
+ "npm-read-grants"
1931
+ ]
1932
+ }
1933
+ },
1934
+ {
1935
+ "id": "capabilities-timeout-below-minimum-invalid",
1936
+ "schema": "RunnerCapabilities",
1937
+ "valid": false,
1938
+ "instance": {
1939
+ "executionProfiles": [
1940
+ "oci"
1941
+ ],
1942
+ "isolation": [
1943
+ "container",
1944
+ "microvm"
1945
+ ],
1946
+ "platforms": [
1947
+ "linux/amd64"
1948
+ ],
1949
+ "labels": [
1950
+ "linux"
1951
+ ],
1952
+ "features": [
1953
+ "source.tar-gz",
1954
+ "artifacts",
1955
+ "caches"
1956
+ ],
1957
+ "networks": [
1958
+ "none",
1959
+ "egress"
1960
+ ],
1961
+ "sourceFormats": [
1962
+ "tar.gz"
1963
+ ],
1964
+ "limits": {
1965
+ "maximumSourceArchiveBytes": 1048576,
1966
+ "maximumSourceExtractedBytes": 4194304,
1967
+ "maximumSourceEntries": 1000,
1968
+ "maximumArtifactArchiveBytes": 0,
1969
+ "maximumArtifactExtractedBytes": 0,
1970
+ "maximumArtifactEntries": 0,
1971
+ "maximumArtifacts": 0,
1972
+ "maximumCacheArchiveBytes": 4294967296,
1973
+ "maximumCacheExtractedBytes": 17179869184,
1974
+ "maximumCacheEntries": 1000000,
1975
+ "maximumCaches": 1,
1976
+ "maximumLogChunkBytes": 65536,
1977
+ "maximumTotalLogBytes": 10485760,
1978
+ "maximumWorkspaceBytes": 21474836480,
1979
+ "maximumWorkspaceEntries": 100000
1980
+ },
1981
+ "maximumTimeoutMs": 999
1982
+ }
1983
+ },
1984
+ {
1985
+ "id": "capabilities-timeout-above-maximum-invalid",
1986
+ "schema": "RunnerCapabilities",
1987
+ "valid": false,
1988
+ "instance": {
1989
+ "executionProfiles": [
1990
+ "oci"
1991
+ ],
1992
+ "isolation": [
1993
+ "container",
1994
+ "microvm"
1995
+ ],
1996
+ "platforms": [
1997
+ "linux/amd64"
1998
+ ],
1999
+ "labels": [
2000
+ "linux"
2001
+ ],
2002
+ "features": [
2003
+ "source.tar-gz",
2004
+ "artifacts",
2005
+ "caches"
2006
+ ],
2007
+ "networks": [
2008
+ "none",
2009
+ "egress"
2010
+ ],
2011
+ "sourceFormats": [
2012
+ "tar.gz"
2013
+ ],
2014
+ "limits": {
2015
+ "maximumSourceArchiveBytes": 1048576,
2016
+ "maximumSourceExtractedBytes": 4194304,
2017
+ "maximumSourceEntries": 1000,
2018
+ "maximumArtifactArchiveBytes": 0,
2019
+ "maximumArtifactExtractedBytes": 0,
2020
+ "maximumArtifactEntries": 0,
2021
+ "maximumArtifacts": 0,
2022
+ "maximumCacheArchiveBytes": 4294967296,
2023
+ "maximumCacheExtractedBytes": 17179869184,
2024
+ "maximumCacheEntries": 1000000,
2025
+ "maximumCaches": 1,
2026
+ "maximumLogChunkBytes": 65536,
2027
+ "maximumTotalLogBytes": 10485760,
2028
+ "maximumWorkspaceBytes": 21474836480,
2029
+ "maximumWorkspaceEntries": 100000
2030
+ },
2031
+ "maximumTimeoutMs": 86400001
2032
+ }
2033
+ }
2034
+ ]
2035
+ }