@8lines/gauntlet-protocol 0.1.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 (91) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +265 -0
  3. package/dist/environment.d.ts +3 -0
  4. package/dist/environment.d.ts.map +1 -0
  5. package/dist/environment.js +32 -0
  6. package/dist/environment.js.map +1 -0
  7. package/dist/identifiers.d.ts +4 -0
  8. package/dist/identifiers.d.ts.map +1 -0
  9. package/dist/identifiers.js +5 -0
  10. package/dist/identifiers.js.map +1 -0
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +8 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/placements.d.ts +5 -0
  16. package/dist/placements.d.ts.map +1 -0
  17. package/dist/placements.js +99 -0
  18. package/dist/placements.js.map +1 -0
  19. package/dist/portable-pattern.d.ts +2 -0
  20. package/dist/portable-pattern.d.ts.map +1 -0
  21. package/dist/portable-pattern.js +450 -0
  22. package/dist/portable-pattern.js.map +1 -0
  23. package/dist/preset-secrets.d.ts +7 -0
  24. package/dist/preset-secrets.d.ts.map +1 -0
  25. package/dist/preset-secrets.js +694 -0
  26. package/dist/preset-secrets.js.map +1 -0
  27. package/dist/revision.d.ts +11 -0
  28. package/dist/revision.d.ts.map +1 -0
  29. package/dist/revision.js +135 -0
  30. package/dist/revision.js.map +1 -0
  31. package/dist/schema-profile.d.ts +5 -0
  32. package/dist/schema-profile.d.ts.map +1 -0
  33. package/dist/schema-profile.js +295 -0
  34. package/dist/schema-profile.js.map +1 -0
  35. package/dist/semantic-validation.d.ts +24 -0
  36. package/dist/semantic-validation.d.ts.map +1 -0
  37. package/dist/semantic-validation.js +321 -0
  38. package/dist/semantic-validation.js.map +1 -0
  39. package/dist/types.d.ts +437 -0
  40. package/dist/types.d.ts.map +1 -0
  41. package/dist/types.js +2 -0
  42. package/dist/types.js.map +1 -0
  43. package/fixtures/v1/adapter-semantic-vectors.json +3257 -0
  44. package/fixtures/v1/adapter-semantic-vectors.schema.json +519 -0
  45. package/fixtures/v1/create-run-request.valid.json +33 -0
  46. package/fixtures/v1/data-source-page.valid.json +18 -0
  47. package/fixtures/v1/data-source-query.valid.json +12 -0
  48. package/fixtures/v1/data-source-resolve-request.valid.json +10 -0
  49. package/fixtures/v1/data-source-resolve-response.valid.json +17 -0
  50. package/fixtures/v1/health.valid.json +4 -0
  51. package/fixtures/v1/jcs-revision-vectors.json +114 -0
  52. package/fixtures/v1/manifest.invalid-major-version.json +18 -0
  53. package/fixtures/v1/manifest.invalid-unknown-property.json +27 -0
  54. package/fixtures/v1/manifest.minor-forward.valid.json +142 -0
  55. package/fixtures/v1/manifest.valid.json +137 -0
  56. package/fixtures/v1/operation.invalid-remote-ref.json +28 -0
  57. package/fixtures/v1/operation.invalid-schema-profile.json +28 -0
  58. package/fixtures/v1/operation.invalid-unsafe-id.json +28 -0
  59. package/fixtures/v1/operation.valid.json +227 -0
  60. package/fixtures/v1/problem.unsupported-capability.valid.json +7 -0
  61. package/fixtures/v1/problem.valid.json +8 -0
  62. package/fixtures/v1/problem.validation.valid.json +16 -0
  63. package/fixtures/v1/run-event.valid.json +21 -0
  64. package/fixtures/v1/run.cancelled.valid.json +17 -0
  65. package/fixtures/v1/run.failed.valid.json +32 -0
  66. package/fixtures/v1/run.invalid-active-problem.json +16 -0
  67. package/fixtures/v1/run.invalid-cancelled-problem.json +17 -0
  68. package/fixtures/v1/run.invalid-terminal-without-problem.json +12 -0
  69. package/fixtures/v1/run.invalid-timed-out-status.json +18 -0
  70. package/fixtures/v1/run.queued.valid.json +15 -0
  71. package/fixtures/v1/run.succeeded.valid.json +68 -0
  72. package/fixtures/v1/run.timed-out.valid.json +18 -0
  73. package/fixtures/v1/session-launch.valid.json +5 -0
  74. package/fixtures/v1/tc-schema-core-pattern-vectors.json +450 -0
  75. package/fixtures/v1/upload-response.valid.json +11 -0
  76. package/openapi/adapter-v1.yaml +251 -0
  77. package/package.json +41 -0
  78. package/schemas/v1/common.schema.json +558 -0
  79. package/schemas/v1/create-run-request.schema.json +16 -0
  80. package/schemas/v1/data-source-page.schema.json +15 -0
  81. package/schemas/v1/data-source-query.schema.json +14 -0
  82. package/schemas/v1/data-source-resolve-request.schema.json +16 -0
  83. package/schemas/v1/data-source-resolve-response.schema.json +27 -0
  84. package/schemas/v1/health.schema.json +12 -0
  85. package/schemas/v1/manifest.schema.json +147 -0
  86. package/schemas/v1/operation-definition.schema.json +326 -0
  87. package/schemas/v1/problem.schema.json +5 -0
  88. package/schemas/v1/run-event.schema.json +15 -0
  89. package/schemas/v1/run.schema.json +95 -0
  90. package/schemas/v1/session-launch.schema.json +13 -0
  91. package/schemas/v1/upload.schema.json +11 -0
@@ -0,0 +1,558 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.8lines.dev/gauntlet/v1/common.schema.json",
4
+ "$defs": {
5
+ "portableId": {
6
+ "type": "string",
7
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
8
+ },
9
+ "environmentKind": {
10
+ "enum": ["development", "test", "qa", "staging", "uat", "preview", "sandbox"]
11
+ },
12
+ "environmentDescriptor": {
13
+ "type": "object",
14
+ "required": ["name", "kind"],
15
+ "properties": {
16
+ "name": { "$ref": "#/$defs/portableId" },
17
+ "kind": { "$ref": "#/$defs/environmentKind" }
18
+ },
19
+ "additionalProperties": false
20
+ },
21
+ "operationImpact": {
22
+ "enum": ["read", "write", "destructive"]
23
+ },
24
+ "protocolVersion": {
25
+ "type": "string",
26
+ "pattern": "^1\\.(0|[1-9][0-9]*)$"
27
+ },
28
+ "profileId": {
29
+ "type": "string",
30
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*@[1-9][0-9]*$"
31
+ },
32
+ "capabilityId": {
33
+ "type": "string",
34
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*@[1-9][0-9]*$"
35
+ },
36
+ "sha256Revision": {
37
+ "type": "string",
38
+ "pattern": "^sha256:[0-9a-f]{64}$"
39
+ },
40
+ "rfc3339Timestamp": {
41
+ "type": "string",
42
+ "format": "date-time"
43
+ },
44
+ "httpUrl": {
45
+ "type": "string",
46
+ "format": "uri",
47
+ "pattern": "^[Hh][Tt][Tt][Pp][Ss]?://"
48
+ },
49
+ "safeInteger": {
50
+ "type": "integer",
51
+ "minimum": -9007199254740991,
52
+ "maximum": 9007199254740991
53
+ },
54
+ "nonNegativeSafeInteger": {
55
+ "type": "integer",
56
+ "minimum": 0,
57
+ "maximum": 9007199254740991
58
+ },
59
+ "positiveSafeInteger": {
60
+ "type": "integer",
61
+ "minimum": 1,
62
+ "maximum": 9007199254740991
63
+ },
64
+ "jsonPointer": {
65
+ "type": "string",
66
+ "pattern": "^(?:/(?:[^~/]|~[01])*)*$"
67
+ },
68
+ "operationPlacement": {
69
+ "oneOf": [
70
+ {
71
+ "type": "object",
72
+ "required": ["kind"],
73
+ "properties": { "kind": { "const": "global" } },
74
+ "additionalProperties": false
75
+ },
76
+ {
77
+ "type": "object",
78
+ "required": ["kind", "subjectType"],
79
+ "properties": {
80
+ "kind": { "const": "subject" },
81
+ "subjectType": { "$ref": "#/$defs/portableId" },
82
+ "bindings": {
83
+ "type": "object",
84
+ "minProperties": 1,
85
+ "propertyNames": { "type": "string", "pattern": "^(?:/(?:[^~/]|~[01])*)+$" },
86
+ "additionalProperties": { "$ref": "#/$defs/portableId" }
87
+ }
88
+ },
89
+ "additionalProperties": false
90
+ }
91
+ ]
92
+ },
93
+ "operationPlacements": {
94
+ "type": "array",
95
+ "minItems": 1,
96
+ "items": { "$ref": "#/$defs/operationPlacement" }
97
+ },
98
+ "jsonPrimitive": {
99
+ "oneOf": [
100
+ { "type": "null" },
101
+ { "type": "boolean" },
102
+ { "type": "string" },
103
+ { "$ref": "#/$defs/safeInteger" },
104
+ { "type": "number", "not": { "type": "integer" } }
105
+ ]
106
+ },
107
+ "jsonValue": {
108
+ "oneOf": [
109
+ { "$ref": "#/$defs/jsonPrimitive" },
110
+ { "type": "array", "items": { "$ref": "#/$defs/jsonValue" } },
111
+ { "type": "object", "additionalProperties": { "$ref": "#/$defs/jsonValue" } }
112
+ ]
113
+ },
114
+ "jsonObject": {
115
+ "type": "object",
116
+ "additionalProperties": { "$ref": "#/$defs/jsonValue" }
117
+ },
118
+ "extensions": {
119
+ "type": "object",
120
+ "propertyNames": {
121
+ "pattern": "^urn:[A-Za-z0-9][A-Za-z0-9:._/-]*$"
122
+ },
123
+ "additionalProperties": { "$ref": "#/$defs/jsonValue" }
124
+ },
125
+ "confirmationAcknowledgement": {
126
+ "type": "object",
127
+ "required": ["operationId", "operationRevision", "impact"],
128
+ "properties": {
129
+ "operationId": { "$ref": "#/$defs/portableId" },
130
+ "operationRevision": { "$ref": "#/$defs/sha256Revision" },
131
+ "impact": { "$ref": "#/$defs/operationImpact" },
132
+ "extensions": { "$ref": "#/$defs/extensions" }
133
+ },
134
+ "additionalProperties": false
135
+ },
136
+ "protocolRequirements": {
137
+ "type": "object",
138
+ "properties": {
139
+ "profiles": {
140
+ "type": "array",
141
+ "items": { "$ref": "#/$defs/profileId" },
142
+ "uniqueItems": true
143
+ },
144
+ "capabilities": {
145
+ "type": "array",
146
+ "items": { "$ref": "#/$defs/capabilityId" },
147
+ "uniqueItems": true
148
+ }
149
+ },
150
+ "additionalProperties": false
151
+ },
152
+ "jsonSchema": {
153
+ "type": "object",
154
+ "required": ["$schema"],
155
+ "properties": {
156
+ "$schema": { "const": "https://json-schema.org/draft/2020-12/schema" }
157
+ },
158
+ "additionalProperties": true
159
+ },
160
+ "objectJsonSchema": {
161
+ "type": "object",
162
+ "required": ["$schema", "type"],
163
+ "properties": {
164
+ "$schema": { "const": "https://json-schema.org/draft/2020-12/schema" },
165
+ "type": { "const": "object" }
166
+ },
167
+ "additionalProperties": true
168
+ },
169
+ "validationError": {
170
+ "type": "object",
171
+ "required": ["instancePath", "schemaPath", "keyword", "message", "params"],
172
+ "properties": {
173
+ "instancePath": { "type": "string" },
174
+ "schemaPath": { "type": "string" },
175
+ "keyword": { "type": "string" },
176
+ "message": { "type": "string" },
177
+ "params": { "$ref": "#/$defs/jsonObject" },
178
+ "extensions": { "$ref": "#/$defs/extensions" }
179
+ },
180
+ "additionalProperties": false
181
+ },
182
+ "problem": {
183
+ "type": "object",
184
+ "required": ["type", "title", "status"],
185
+ "properties": {
186
+ "type": {
187
+ "type": "string",
188
+ "pattern": "^urn:gauntlet:problem:[A-Za-z0-9][A-Za-z0-9._:-]*$"
189
+ },
190
+ "title": { "type": "string", "minLength": 1 },
191
+ "status": { "type": "integer", "minimum": 100, "maximum": 599 },
192
+ "detail": { "type": "string" },
193
+ "instance": { "type": "string" },
194
+ "correlationId": { "type": "string" },
195
+ "errors": {
196
+ "type": "array",
197
+ "items": { "$ref": "#/$defs/validationError" }
198
+ },
199
+ "capability": { "$ref": "#/$defs/capabilityId" },
200
+ "extensions": { "$ref": "#/$defs/extensions" }
201
+ },
202
+ "additionalProperties": false
203
+ },
204
+ "actor": {
205
+ "type": "object",
206
+ "required": ["id"],
207
+ "properties": {
208
+ "id": { "$ref": "#/$defs/portableId" },
209
+ "displayName": { "type": "string" }
210
+ },
211
+ "additionalProperties": false
212
+ },
213
+ "target": {
214
+ "type": "object",
215
+ "required": ["id"],
216
+ "properties": {
217
+ "id": { "$ref": "#/$defs/portableId" },
218
+ "environment": { "type": "string" }
219
+ },
220
+ "additionalProperties": false
221
+ },
222
+ "invocationContext": {
223
+ "type": "object",
224
+ "required": ["requestId"],
225
+ "properties": {
226
+ "requestId": { "$ref": "#/$defs/portableId" },
227
+ "locale": { "type": "string" },
228
+ "timeZone": { "type": "string" },
229
+ "actor": { "$ref": "#/$defs/actor" },
230
+ "target": { "$ref": "#/$defs/target" },
231
+ "extensions": { "$ref": "#/$defs/extensions" }
232
+ },
233
+ "additionalProperties": false
234
+ },
235
+ "jsonPointerMap": {
236
+ "type": "object",
237
+ "propertyNames": { "$ref": "#/$defs/jsonPointer" },
238
+ "additionalProperties": { "$ref": "#/$defs/jsonValue" }
239
+ },
240
+ "fileReference": {
241
+ "type": "object",
242
+ "required": ["kind", "uploadId", "name", "mediaType", "sizeBytes", "expiresAt"],
243
+ "properties": {
244
+ "kind": { "const": "file" },
245
+ "uploadId": { "$ref": "#/$defs/portableId" },
246
+ "name": { "type": "string", "minLength": 1 },
247
+ "mediaType": { "type": "string", "minLength": 1 },
248
+ "sizeBytes": { "$ref": "#/$defs/nonNegativeSafeInteger" },
249
+ "sha256": { "$ref": "#/$defs/sha256Revision" },
250
+ "expiresAt": { "$ref": "#/$defs/rfc3339Timestamp" },
251
+ "extensions": { "$ref": "#/$defs/extensions" }
252
+ },
253
+ "additionalProperties": false
254
+ },
255
+ "dataSourceItem": {
256
+ "type": "object",
257
+ "required": ["value", "label"],
258
+ "properties": {
259
+ "value": { "type": "string" },
260
+ "label": { "type": "string" },
261
+ "description": { "type": "string" },
262
+ "group": { "type": "string" },
263
+ "disabled": { "type": "boolean" },
264
+ "metadata": { "$ref": "#/$defs/jsonObject" },
265
+ "extensions": { "$ref": "#/$defs/extensions" }
266
+ },
267
+ "additionalProperties": false
268
+ },
269
+ "runProgress": {
270
+ "type": "object",
271
+ "required": ["updatedAt"],
272
+ "properties": {
273
+ "current": { "type": "number" },
274
+ "total": { "type": "number" },
275
+ "phase": { "type": "string" },
276
+ "message": { "type": "string" },
277
+ "updatedAt": { "$ref": "#/$defs/rfc3339Timestamp" },
278
+ "extensions": { "$ref": "#/$defs/extensions" }
279
+ },
280
+ "additionalProperties": false
281
+ },
282
+ "runSummary": {
283
+ "type": "object",
284
+ "required": ["title", "tone"],
285
+ "properties": {
286
+ "title": { "type": "string" },
287
+ "message": { "type": "string" },
288
+ "tone": { "enum": ["neutral", "success", "warning", "error"] },
289
+ "extensions": { "$ref": "#/$defs/extensions" }
290
+ },
291
+ "additionalProperties": false
292
+ },
293
+ "followUpAction": {
294
+ "oneOf": [
295
+ {
296
+ "type": "object",
297
+ "required": ["kind", "label", "operationId"],
298
+ "properties": {
299
+ "kind": { "const": "invoke-operation" },
300
+ "label": { "type": "string" },
301
+ "operationId": { "$ref": "#/$defs/portableId" },
302
+ "input": { "$ref": "#/$defs/jsonObject" }
303
+ },
304
+ "additionalProperties": false
305
+ },
306
+ {
307
+ "type": "object",
308
+ "required": ["kind", "label", "url"],
309
+ "properties": {
310
+ "kind": { "const": "open-link" },
311
+ "label": { "type": "string" },
312
+ "url": { "$ref": "#/$defs/httpUrl" }
313
+ },
314
+ "additionalProperties": false
315
+ },
316
+ {
317
+ "type": "object",
318
+ "required": ["kind", "label", "artifactId"],
319
+ "properties": {
320
+ "kind": { "const": "browser-launch" },
321
+ "label": { "type": "string" },
322
+ "artifactId": { "$ref": "#/$defs/portableId" }
323
+ },
324
+ "additionalProperties": false
325
+ }
326
+ ]
327
+ },
328
+ "artifact": {
329
+ "oneOf": [
330
+ {
331
+ "type": "object",
332
+ "required": ["id", "kind", "level", "message"],
333
+ "properties": {
334
+ "id": { "$ref": "#/$defs/portableId" },
335
+ "title": { "type": "string" },
336
+ "kind": { "const": "notice" },
337
+ "level": { "enum": ["info", "success", "warning", "error"] },
338
+ "message": { "type": "string" },
339
+ "extensions": { "$ref": "#/$defs/extensions" }
340
+ },
341
+ "additionalProperties": false
342
+ },
343
+ {
344
+ "type": "object",
345
+ "required": ["id", "kind", "metrics"],
346
+ "properties": {
347
+ "id": { "$ref": "#/$defs/portableId" },
348
+ "title": { "type": "string" },
349
+ "kind": { "const": "metrics" },
350
+ "metrics": {
351
+ "type": "array",
352
+ "items": {
353
+ "type": "object",
354
+ "required": ["name", "value"],
355
+ "properties": {
356
+ "name": { "type": "string" },
357
+ "value": { "type": "number" },
358
+ "unit": { "type": "string" }
359
+ },
360
+ "additionalProperties": false
361
+ }
362
+ },
363
+ "extensions": { "$ref": "#/$defs/extensions" }
364
+ },
365
+ "additionalProperties": false
366
+ },
367
+ {
368
+ "type": "object",
369
+ "required": ["id", "kind", "entries"],
370
+ "properties": {
371
+ "id": { "$ref": "#/$defs/portableId" },
372
+ "title": { "type": "string" },
373
+ "kind": { "const": "key-value" },
374
+ "entries": {
375
+ "type": "array",
376
+ "items": {
377
+ "type": "object",
378
+ "required": ["key", "label", "value"],
379
+ "properties": {
380
+ "key": { "type": "string" },
381
+ "label": { "type": "string" },
382
+ "value": { "$ref": "#/$defs/jsonValue" }
383
+ },
384
+ "additionalProperties": false
385
+ }
386
+ },
387
+ "extensions": { "$ref": "#/$defs/extensions" }
388
+ },
389
+ "additionalProperties": false
390
+ },
391
+ {
392
+ "type": "object",
393
+ "required": ["id", "kind", "columns", "rows"],
394
+ "properties": {
395
+ "id": { "$ref": "#/$defs/portableId" },
396
+ "title": { "type": "string" },
397
+ "kind": { "const": "table" },
398
+ "columns": {
399
+ "type": "array",
400
+ "items": {
401
+ "type": "object",
402
+ "required": ["key", "label"],
403
+ "properties": {
404
+ "key": { "type": "string" },
405
+ "label": { "type": "string" }
406
+ },
407
+ "additionalProperties": false
408
+ }
409
+ },
410
+ "rows": { "type": "array", "items": { "$ref": "#/$defs/jsonObject" } },
411
+ "extensions": { "$ref": "#/$defs/extensions" }
412
+ },
413
+ "additionalProperties": false
414
+ },
415
+ {
416
+ "type": "object",
417
+ "required": ["id", "kind", "value"],
418
+ "properties": {
419
+ "id": { "$ref": "#/$defs/portableId" },
420
+ "title": { "type": "string" },
421
+ "kind": { "const": "json" },
422
+ "value": { "$ref": "#/$defs/jsonValue" },
423
+ "extensions": { "$ref": "#/$defs/extensions" }
424
+ },
425
+ "additionalProperties": false
426
+ },
427
+ {
428
+ "type": "object",
429
+ "required": ["id", "kind", "markdown"],
430
+ "properties": {
431
+ "id": { "$ref": "#/$defs/portableId" },
432
+ "title": { "type": "string" },
433
+ "kind": { "const": "markdown" },
434
+ "markdown": { "type": "string" },
435
+ "extensions": { "$ref": "#/$defs/extensions" }
436
+ },
437
+ "additionalProperties": false
438
+ },
439
+ {
440
+ "type": "object",
441
+ "required": ["id", "kind", "format", "content"],
442
+ "properties": {
443
+ "id": { "$ref": "#/$defs/portableId" },
444
+ "title": { "type": "string" },
445
+ "kind": { "const": "diff" },
446
+ "format": { "const": "unified" },
447
+ "content": { "type": "string" },
448
+ "extensions": { "$ref": "#/$defs/extensions" }
449
+ },
450
+ "additionalProperties": false
451
+ },
452
+ {
453
+ "type": "object",
454
+ "required": ["id", "kind", "items"],
455
+ "properties": {
456
+ "id": { "$ref": "#/$defs/portableId" },
457
+ "title": { "type": "string" },
458
+ "kind": { "const": "timeline" },
459
+ "items": {
460
+ "type": "array",
461
+ "items": {
462
+ "type": "object",
463
+ "required": ["timestamp", "title"],
464
+ "properties": {
465
+ "timestamp": { "$ref": "#/$defs/rfc3339Timestamp" },
466
+ "title": { "type": "string" },
467
+ "description": { "type": "string" }
468
+ },
469
+ "additionalProperties": false
470
+ }
471
+ },
472
+ "extensions": { "$ref": "#/$defs/extensions" }
473
+ },
474
+ "additionalProperties": false
475
+ },
476
+ {
477
+ "type": "object",
478
+ "required": ["id", "kind", "entries"],
479
+ "properties": {
480
+ "id": { "$ref": "#/$defs/portableId" },
481
+ "title": { "type": "string" },
482
+ "kind": { "const": "log" },
483
+ "entries": {
484
+ "type": "array",
485
+ "items": {
486
+ "type": "object",
487
+ "required": ["level", "message"],
488
+ "properties": {
489
+ "timestamp": { "$ref": "#/$defs/rfc3339Timestamp" },
490
+ "level": { "enum": ["debug", "info", "warning", "error"] },
491
+ "message": { "type": "string" }
492
+ },
493
+ "additionalProperties": false
494
+ }
495
+ },
496
+ "extensions": { "$ref": "#/$defs/extensions" }
497
+ },
498
+ "additionalProperties": false
499
+ },
500
+ {
501
+ "type": "object",
502
+ "required": ["id", "kind", "url", "name", "mediaType"],
503
+ "properties": {
504
+ "id": { "$ref": "#/$defs/portableId" },
505
+ "title": { "type": "string" },
506
+ "kind": { "const": "download" },
507
+ "url": { "$ref": "#/$defs/httpUrl" },
508
+ "name": { "type": "string" },
509
+ "mediaType": { "type": "string" },
510
+ "sizeBytes": { "$ref": "#/$defs/nonNegativeSafeInteger" },
511
+ "extensions": { "$ref": "#/$defs/extensions" }
512
+ },
513
+ "additionalProperties": false
514
+ },
515
+ {
516
+ "type": "object",
517
+ "required": ["id", "kind", "label", "url"],
518
+ "properties": {
519
+ "id": { "$ref": "#/$defs/portableId" },
520
+ "title": { "type": "string" },
521
+ "kind": { "const": "link" },
522
+ "label": { "type": "string" },
523
+ "url": { "$ref": "#/$defs/httpUrl" },
524
+ "extensions": { "$ref": "#/$defs/extensions" }
525
+ },
526
+ "additionalProperties": false
527
+ },
528
+ {
529
+ "type": "object",
530
+ "required": ["id", "kind", "label"],
531
+ "properties": {
532
+ "id": { "$ref": "#/$defs/portableId" },
533
+ "title": { "type": "string" },
534
+ "kind": { "const": "browser-launch" },
535
+ "label": { "type": "string" },
536
+ "extensions": { "$ref": "#/$defs/extensions" }
537
+ },
538
+ "additionalProperties": false
539
+ },
540
+ {
541
+ "type": "object",
542
+ "required": ["id", "kind", "data"],
543
+ "properties": {
544
+ "id": { "$ref": "#/$defs/portableId" },
545
+ "title": { "type": "string" },
546
+ "kind": {
547
+ "type": "string",
548
+ "pattern": "^urn:[A-Za-z0-9][A-Za-z0-9:._/-]*$"
549
+ },
550
+ "data": { "$ref": "#/$defs/jsonValue" },
551
+ "extensions": { "$ref": "#/$defs/extensions" }
552
+ },
553
+ "additionalProperties": false
554
+ }
555
+ ]
556
+ }
557
+ }
558
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.8lines.dev/gauntlet/v1/create-run-request.schema.json",
4
+ "type": "object",
5
+ "required": ["operationRevision", "input"],
6
+ "properties": {
7
+ "operationRevision": { "$ref": "./common.schema.json#/$defs/sha256Revision" },
8
+ "input": { "$ref": "./common.schema.json#/$defs/jsonObject" },
9
+ "context": { "$ref": "./common.schema.json#/$defs/invocationContext" },
10
+ "dryRun": { "type": "boolean" },
11
+ "idempotencyKey": { "type": "string", "minLength": 1 },
12
+ "confirmation": { "$ref": "./common.schema.json#/$defs/confirmationAcknowledgement" },
13
+ "extensions": { "$ref": "./common.schema.json#/$defs/extensions" }
14
+ },
15
+ "additionalProperties": false
16
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.8lines.dev/gauntlet/v1/data-source-page.schema.json",
4
+ "type": "object",
5
+ "required": ["items"],
6
+ "properties": {
7
+ "items": {
8
+ "type": "array",
9
+ "items": { "$ref": "./common.schema.json#/$defs/dataSourceItem" }
10
+ },
11
+ "nextCursor": { "type": "string" },
12
+ "extensions": { "$ref": "./common.schema.json#/$defs/extensions" }
13
+ },
14
+ "additionalProperties": false
15
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.8lines.dev/gauntlet/v1/data-source-query.schema.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "search": { "type": "string" },
7
+ "cursor": { "type": "string" },
8
+ "limit": { "$ref": "./common.schema.json#/$defs/positiveSafeInteger" },
9
+ "dependencies": { "$ref": "./common.schema.json#/$defs/jsonPointerMap" },
10
+ "context": { "$ref": "./common.schema.json#/$defs/invocationContext" },
11
+ "extensions": { "$ref": "./common.schema.json#/$defs/extensions" }
12
+ },
13
+ "additionalProperties": false
14
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.8lines.dev/gauntlet/v1/data-source-resolve-request.schema.json",
4
+ "type": "object",
5
+ "required": ["values"],
6
+ "properties": {
7
+ "values": {
8
+ "type": "array",
9
+ "items": { "type": "string" }
10
+ },
11
+ "dependencies": { "$ref": "./common.schema.json#/$defs/jsonPointerMap" },
12
+ "context": { "$ref": "./common.schema.json#/$defs/invocationContext" },
13
+ "extensions": { "$ref": "./common.schema.json#/$defs/extensions" }
14
+ },
15
+ "additionalProperties": false
16
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.8lines.dev/gauntlet/v1/data-source-resolve-response.schema.json",
4
+ "type": "object",
5
+ "required": ["results"],
6
+ "properties": {
7
+ "results": {
8
+ "type": "array",
9
+ "items": {
10
+ "type": "object",
11
+ "required": ["value", "item"],
12
+ "properties": {
13
+ "value": { "type": "string" },
14
+ "item": {
15
+ "oneOf": [
16
+ { "$ref": "./common.schema.json#/$defs/dataSourceItem" },
17
+ { "type": "null" }
18
+ ]
19
+ }
20
+ },
21
+ "additionalProperties": false
22
+ }
23
+ },
24
+ "extensions": { "$ref": "./common.schema.json#/$defs/extensions" }
25
+ },
26
+ "additionalProperties": false
27
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.8lines.dev/gauntlet/v1/health.schema.json",
4
+ "type": "object",
5
+ "required": ["status", "protocolVersion"],
6
+ "properties": {
7
+ "status": { "const": "ok" },
8
+ "protocolVersion": { "$ref": "./common.schema.json#/$defs/protocolVersion" },
9
+ "extensions": { "$ref": "./common.schema.json#/$defs/extensions" }
10
+ },
11
+ "additionalProperties": false
12
+ }