@dynamicalsystems/idl 0.11.0 → 0.13.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.
@@ -0,0 +1,866 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/DynamicalSystemsGroup/dsg-idl/schema/dsg-extension-release-v1.json",
4
+ "title": "dsg.extension.release/1",
5
+ "$defs": {
6
+ "release": {
7
+ "anyOf": [
8
+ {
9
+ "additionalProperties": false,
10
+ "type": "object",
11
+ "required": [
12
+ "profile",
13
+ "schemaVersion",
14
+ "kind",
15
+ "publisher",
16
+ "name",
17
+ "version",
18
+ "releaseOrn",
19
+ "namespace",
20
+ "source",
21
+ "build",
22
+ "canonicalization",
23
+ "dependencies",
24
+ "compute",
25
+ "components",
26
+ "requirements",
27
+ "bounds"
28
+ ],
29
+ "properties": {
30
+ "profile": {
31
+ "const": "dsg.extension.release/1",
32
+ "type": "string"
33
+ },
34
+ "schemaVersion": {
35
+ "const": 1,
36
+ "type": "number"
37
+ },
38
+ "kind": {
39
+ "const": "extension-release",
40
+ "type": "string"
41
+ },
42
+ "publisher": {
43
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
44
+ "type": "string"
45
+ },
46
+ "name": {
47
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
48
+ "type": "string"
49
+ },
50
+ "version": {
51
+ "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]+\\.[0-9]+$",
52
+ "type": "string"
53
+ },
54
+ "releaseOrn": {
55
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
56
+ "type": "string"
57
+ },
58
+ "namespace": {
59
+ "minLength": 1,
60
+ "type": "string"
61
+ },
62
+ "source": {
63
+ "additionalProperties": false,
64
+ "type": "object",
65
+ "required": ["repository", "revision"],
66
+ "properties": {
67
+ "repository": {
68
+ "minLength": 1,
69
+ "type": "string"
70
+ },
71
+ "revision": {
72
+ "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
73
+ "type": "string"
74
+ }
75
+ }
76
+ },
77
+ "build": {
78
+ "additionalProperties": false,
79
+ "type": "object",
80
+ "required": ["provenance", "sourceDigest"],
81
+ "properties": {
82
+ "provenance": {
83
+ "additionalProperties": false,
84
+ "type": "object",
85
+ "required": ["orn", "sha256"],
86
+ "properties": {
87
+ "orn": {
88
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
89
+ "type": "string"
90
+ },
91
+ "sha256": {
92
+ "pattern": "^[0-9a-f]{64}$",
93
+ "type": "string"
94
+ }
95
+ }
96
+ },
97
+ "sourceDigest": {
98
+ "pattern": "^[0-9a-f]{64}$",
99
+ "type": "string"
100
+ }
101
+ }
102
+ },
103
+ "canonicalization": {
104
+ "const": "RFC8785-JCS-UTF8",
105
+ "type": "string"
106
+ },
107
+ "dependencies": {
108
+ "uniqueItems": true,
109
+ "type": "array",
110
+ "items": {
111
+ "additionalProperties": false,
112
+ "type": "object",
113
+ "required": ["id", "kind", "reference", "required"],
114
+ "properties": {
115
+ "id": {
116
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
117
+ "type": "string"
118
+ },
119
+ "kind": {
120
+ "anyOf": [
121
+ {
122
+ "const": "extension-release",
123
+ "type": "string"
124
+ },
125
+ {
126
+ "const": "idl-package",
127
+ "type": "string"
128
+ },
129
+ {
130
+ "const": "module-release",
131
+ "type": "string"
132
+ },
133
+ {
134
+ "const": "law-release",
135
+ "type": "string"
136
+ },
137
+ {
138
+ "const": "event-catalog",
139
+ "type": "string"
140
+ },
141
+ {
142
+ "const": "example-release",
143
+ "type": "string"
144
+ },
145
+ {
146
+ "const": "target-release",
147
+ "type": "string"
148
+ }
149
+ ]
150
+ },
151
+ "reference": {
152
+ "additionalProperties": false,
153
+ "type": "object",
154
+ "required": ["orn", "sha256"],
155
+ "properties": {
156
+ "orn": {
157
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
158
+ "type": "string"
159
+ },
160
+ "sha256": {
161
+ "pattern": "^[0-9a-f]{64}$",
162
+ "type": "string"
163
+ }
164
+ }
165
+ },
166
+ "required": {
167
+ "type": "boolean"
168
+ }
169
+ }
170
+ }
171
+ },
172
+ "compute": {
173
+ "const": true,
174
+ "type": "boolean"
175
+ },
176
+ "components": {
177
+ "minItems": 1,
178
+ "uniqueItems": true,
179
+ "type": "array",
180
+ "items": {
181
+ "additionalProperties": false,
182
+ "type": "object",
183
+ "required": ["id", "reference", "mediaType", "required", "dependsOn", "kind"],
184
+ "properties": {
185
+ "id": {
186
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
187
+ "type": "string"
188
+ },
189
+ "reference": {
190
+ "additionalProperties": false,
191
+ "type": "object",
192
+ "required": ["orn", "sha256"],
193
+ "properties": {
194
+ "orn": {
195
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
196
+ "type": "string"
197
+ },
198
+ "sha256": {
199
+ "pattern": "^[0-9a-f]{64}$",
200
+ "type": "string"
201
+ }
202
+ }
203
+ },
204
+ "mediaType": {
205
+ "minLength": 1,
206
+ "type": "string"
207
+ },
208
+ "required": {
209
+ "type": "boolean"
210
+ },
211
+ "dependsOn": {
212
+ "uniqueItems": true,
213
+ "type": "array",
214
+ "items": {
215
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
216
+ "type": "string"
217
+ }
218
+ },
219
+ "kind": {
220
+ "anyOf": [
221
+ {
222
+ "const": "workflow",
223
+ "type": "string"
224
+ },
225
+ {
226
+ "const": "example",
227
+ "type": "string"
228
+ },
229
+ {
230
+ "const": "contract",
231
+ "type": "string"
232
+ },
233
+ {
234
+ "const": "job-class",
235
+ "type": "string"
236
+ },
237
+ {
238
+ "const": "workload-artifact",
239
+ "type": "string"
240
+ },
241
+ {
242
+ "const": "event-catalog",
243
+ "type": "string"
244
+ },
245
+ {
246
+ "const": "connector",
247
+ "type": "string"
248
+ },
249
+ {
250
+ "const": "module",
251
+ "type": "string"
252
+ },
253
+ {
254
+ "const": "check",
255
+ "type": "string"
256
+ },
257
+ {
258
+ "const": "vocabulary",
259
+ "type": "string"
260
+ },
261
+ {
262
+ "const": "assurance",
263
+ "type": "string"
264
+ },
265
+ {
266
+ "const": "documentation",
267
+ "type": "string"
268
+ }
269
+ ]
270
+ }
271
+ }
272
+ }
273
+ },
274
+ "requirements": {
275
+ "additionalProperties": false,
276
+ "type": "object",
277
+ "required": [
278
+ "idlProfiles",
279
+ "roles",
280
+ "handling",
281
+ "supportedPlatforms",
282
+ "targets",
283
+ "isolation",
284
+ "retention",
285
+ "completion",
286
+ "teardown",
287
+ "evidence",
288
+ "replay"
289
+ ],
290
+ "properties": {
291
+ "idlProfiles": {
292
+ "uniqueItems": true,
293
+ "type": "array",
294
+ "items": {
295
+ "minLength": 1,
296
+ "type": "string"
297
+ }
298
+ },
299
+ "roles": {
300
+ "uniqueItems": true,
301
+ "type": "array",
302
+ "items": {
303
+ "minLength": 1,
304
+ "type": "string"
305
+ }
306
+ },
307
+ "qualification": {
308
+ "additionalProperties": false,
309
+ "type": "object",
310
+ "required": ["orn", "sha256"],
311
+ "properties": {
312
+ "orn": {
313
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
314
+ "type": "string"
315
+ },
316
+ "sha256": {
317
+ "pattern": "^[0-9a-f]{64}$",
318
+ "type": "string"
319
+ }
320
+ }
321
+ },
322
+ "handling": {
323
+ "anyOf": [
324
+ {
325
+ "const": "public",
326
+ "type": "string"
327
+ },
328
+ {
329
+ "const": "restricted",
330
+ "type": "string"
331
+ },
332
+ {
333
+ "const": "confidential",
334
+ "type": "string"
335
+ }
336
+ ]
337
+ },
338
+ "supportedPlatforms": {
339
+ "minItems": 1,
340
+ "uniqueItems": true,
341
+ "type": "array",
342
+ "items": {
343
+ "minLength": 1,
344
+ "type": "string"
345
+ }
346
+ },
347
+ "targets": {
348
+ "uniqueItems": true,
349
+ "type": "array",
350
+ "items": {
351
+ "additionalProperties": false,
352
+ "type": "object",
353
+ "required": ["orn", "sha256"],
354
+ "properties": {
355
+ "orn": {
356
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
357
+ "type": "string"
358
+ },
359
+ "sha256": {
360
+ "pattern": "^[0-9a-f]{64}$",
361
+ "type": "string"
362
+ }
363
+ }
364
+ }
365
+ },
366
+ "isolation": {
367
+ "anyOf": [
368
+ {
369
+ "const": "ephemeral",
370
+ "type": "string"
371
+ },
372
+ {
373
+ "const": "dedicated",
374
+ "type": "string"
375
+ }
376
+ ]
377
+ },
378
+ "retention": {
379
+ "anyOf": [
380
+ {
381
+ "const": "ephemeral",
382
+ "type": "string"
383
+ },
384
+ {
385
+ "const": "bounded",
386
+ "type": "string"
387
+ },
388
+ {
389
+ "const": "durable",
390
+ "type": "string"
391
+ }
392
+ ]
393
+ },
394
+ "completion": {
395
+ "additionalProperties": false,
396
+ "type": "object",
397
+ "required": ["orn", "sha256"],
398
+ "properties": {
399
+ "orn": {
400
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
401
+ "type": "string"
402
+ },
403
+ "sha256": {
404
+ "pattern": "^[0-9a-f]{64}$",
405
+ "type": "string"
406
+ }
407
+ }
408
+ },
409
+ "teardown": {
410
+ "additionalProperties": false,
411
+ "type": "object",
412
+ "required": ["orn", "sha256"],
413
+ "properties": {
414
+ "orn": {
415
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
416
+ "type": "string"
417
+ },
418
+ "sha256": {
419
+ "pattern": "^[0-9a-f]{64}$",
420
+ "type": "string"
421
+ }
422
+ }
423
+ },
424
+ "evidence": {
425
+ "additionalProperties": false,
426
+ "type": "object",
427
+ "required": ["orn", "sha256"],
428
+ "properties": {
429
+ "orn": {
430
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
431
+ "type": "string"
432
+ },
433
+ "sha256": {
434
+ "pattern": "^[0-9a-f]{64}$",
435
+ "type": "string"
436
+ }
437
+ }
438
+ },
439
+ "replay": {
440
+ "additionalProperties": false,
441
+ "type": "object",
442
+ "required": ["orn", "sha256"],
443
+ "properties": {
444
+ "orn": {
445
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
446
+ "type": "string"
447
+ },
448
+ "sha256": {
449
+ "pattern": "^[0-9a-f]{64}$",
450
+ "type": "string"
451
+ }
452
+ }
453
+ }
454
+ }
455
+ },
456
+ "bounds": {
457
+ "additionalProperties": false,
458
+ "type": "object",
459
+ "required": ["maxDurationSeconds", "maxParallelism", "maxUsdMicroUnits"],
460
+ "properties": {
461
+ "maxDurationSeconds": {
462
+ "minimum": 0,
463
+ "maximum": 9007199254740991,
464
+ "type": "integer"
465
+ },
466
+ "maxParallelism": {
467
+ "minimum": 0,
468
+ "maximum": 9007199254740991,
469
+ "type": "integer"
470
+ },
471
+ "maxUsdMicroUnits": {
472
+ "minimum": 0,
473
+ "maximum": 9007199254740991,
474
+ "type": "integer"
475
+ }
476
+ }
477
+ }
478
+ }
479
+ },
480
+ {
481
+ "additionalProperties": false,
482
+ "type": "object",
483
+ "required": [
484
+ "profile",
485
+ "schemaVersion",
486
+ "kind",
487
+ "publisher",
488
+ "name",
489
+ "version",
490
+ "releaseOrn",
491
+ "namespace",
492
+ "source",
493
+ "build",
494
+ "canonicalization",
495
+ "dependencies",
496
+ "compute",
497
+ "components",
498
+ "requirements"
499
+ ],
500
+ "properties": {
501
+ "profile": {
502
+ "const": "dsg.extension.release/1",
503
+ "type": "string"
504
+ },
505
+ "schemaVersion": {
506
+ "const": 1,
507
+ "type": "number"
508
+ },
509
+ "kind": {
510
+ "const": "extension-release",
511
+ "type": "string"
512
+ },
513
+ "publisher": {
514
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
515
+ "type": "string"
516
+ },
517
+ "name": {
518
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
519
+ "type": "string"
520
+ },
521
+ "version": {
522
+ "pattern": "^(?:0|[1-9][0-9]*)\\.[0-9]+\\.[0-9]+$",
523
+ "type": "string"
524
+ },
525
+ "releaseOrn": {
526
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
527
+ "type": "string"
528
+ },
529
+ "namespace": {
530
+ "minLength": 1,
531
+ "type": "string"
532
+ },
533
+ "source": {
534
+ "additionalProperties": false,
535
+ "type": "object",
536
+ "required": ["repository", "revision"],
537
+ "properties": {
538
+ "repository": {
539
+ "minLength": 1,
540
+ "type": "string"
541
+ },
542
+ "revision": {
543
+ "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
544
+ "type": "string"
545
+ }
546
+ }
547
+ },
548
+ "build": {
549
+ "additionalProperties": false,
550
+ "type": "object",
551
+ "required": ["provenance", "sourceDigest"],
552
+ "properties": {
553
+ "provenance": {
554
+ "additionalProperties": false,
555
+ "type": "object",
556
+ "required": ["orn", "sha256"],
557
+ "properties": {
558
+ "orn": {
559
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
560
+ "type": "string"
561
+ },
562
+ "sha256": {
563
+ "pattern": "^[0-9a-f]{64}$",
564
+ "type": "string"
565
+ }
566
+ }
567
+ },
568
+ "sourceDigest": {
569
+ "pattern": "^[0-9a-f]{64}$",
570
+ "type": "string"
571
+ }
572
+ }
573
+ },
574
+ "canonicalization": {
575
+ "const": "RFC8785-JCS-UTF8",
576
+ "type": "string"
577
+ },
578
+ "dependencies": {
579
+ "uniqueItems": true,
580
+ "type": "array",
581
+ "items": {
582
+ "additionalProperties": false,
583
+ "type": "object",
584
+ "required": ["id", "kind", "reference", "required"],
585
+ "properties": {
586
+ "id": {
587
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
588
+ "type": "string"
589
+ },
590
+ "kind": {
591
+ "anyOf": [
592
+ {
593
+ "const": "extension-release",
594
+ "type": "string"
595
+ },
596
+ {
597
+ "const": "idl-package",
598
+ "type": "string"
599
+ },
600
+ {
601
+ "const": "module-release",
602
+ "type": "string"
603
+ },
604
+ {
605
+ "const": "law-release",
606
+ "type": "string"
607
+ },
608
+ {
609
+ "const": "event-catalog",
610
+ "type": "string"
611
+ },
612
+ {
613
+ "const": "example-release",
614
+ "type": "string"
615
+ },
616
+ {
617
+ "const": "target-release",
618
+ "type": "string"
619
+ }
620
+ ]
621
+ },
622
+ "reference": {
623
+ "additionalProperties": false,
624
+ "type": "object",
625
+ "required": ["orn", "sha256"],
626
+ "properties": {
627
+ "orn": {
628
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
629
+ "type": "string"
630
+ },
631
+ "sha256": {
632
+ "pattern": "^[0-9a-f]{64}$",
633
+ "type": "string"
634
+ }
635
+ }
636
+ },
637
+ "required": {
638
+ "type": "boolean"
639
+ }
640
+ }
641
+ }
642
+ },
643
+ "compute": {
644
+ "const": false,
645
+ "type": "boolean"
646
+ },
647
+ "components": {
648
+ "minItems": 1,
649
+ "uniqueItems": true,
650
+ "type": "array",
651
+ "items": {
652
+ "additionalProperties": false,
653
+ "type": "object",
654
+ "required": ["id", "reference", "mediaType", "required", "dependsOn", "kind"],
655
+ "properties": {
656
+ "id": {
657
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
658
+ "type": "string"
659
+ },
660
+ "reference": {
661
+ "additionalProperties": false,
662
+ "type": "object",
663
+ "required": ["orn", "sha256"],
664
+ "properties": {
665
+ "orn": {
666
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
667
+ "type": "string"
668
+ },
669
+ "sha256": {
670
+ "pattern": "^[0-9a-f]{64}$",
671
+ "type": "string"
672
+ }
673
+ }
674
+ },
675
+ "mediaType": {
676
+ "minLength": 1,
677
+ "type": "string"
678
+ },
679
+ "required": {
680
+ "type": "boolean"
681
+ },
682
+ "dependsOn": {
683
+ "uniqueItems": true,
684
+ "type": "array",
685
+ "items": {
686
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
687
+ "type": "string"
688
+ }
689
+ },
690
+ "kind": {
691
+ "anyOf": [
692
+ {
693
+ "const": "workflow",
694
+ "type": "string"
695
+ },
696
+ {
697
+ "const": "example",
698
+ "type": "string"
699
+ },
700
+ {
701
+ "const": "contract",
702
+ "type": "string"
703
+ },
704
+ {
705
+ "const": "event-catalog",
706
+ "type": "string"
707
+ },
708
+ {
709
+ "const": "connector",
710
+ "type": "string"
711
+ },
712
+ {
713
+ "const": "module",
714
+ "type": "string"
715
+ },
716
+ {
717
+ "const": "check",
718
+ "type": "string"
719
+ },
720
+ {
721
+ "const": "vocabulary",
722
+ "type": "string"
723
+ },
724
+ {
725
+ "const": "assurance",
726
+ "type": "string"
727
+ },
728
+ {
729
+ "const": "documentation",
730
+ "type": "string"
731
+ }
732
+ ]
733
+ }
734
+ }
735
+ }
736
+ },
737
+ "requirements": {
738
+ "additionalProperties": false,
739
+ "type": "object",
740
+ "required": ["idlProfiles", "roles", "handling"],
741
+ "properties": {
742
+ "idlProfiles": {
743
+ "uniqueItems": true,
744
+ "type": "array",
745
+ "items": {
746
+ "minLength": 1,
747
+ "type": "string"
748
+ }
749
+ },
750
+ "roles": {
751
+ "uniqueItems": true,
752
+ "type": "array",
753
+ "items": {
754
+ "minLength": 1,
755
+ "type": "string"
756
+ }
757
+ },
758
+ "qualification": {
759
+ "additionalProperties": false,
760
+ "type": "object",
761
+ "required": ["orn", "sha256"],
762
+ "properties": {
763
+ "orn": {
764
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
765
+ "type": "string"
766
+ },
767
+ "sha256": {
768
+ "pattern": "^[0-9a-f]{64}$",
769
+ "type": "string"
770
+ }
771
+ }
772
+ },
773
+ "handling": {
774
+ "anyOf": [
775
+ {
776
+ "const": "public",
777
+ "type": "string"
778
+ },
779
+ {
780
+ "const": "restricted",
781
+ "type": "string"
782
+ },
783
+ {
784
+ "const": "confidential",
785
+ "type": "string"
786
+ }
787
+ ]
788
+ }
789
+ }
790
+ }
791
+ }
792
+ }
793
+ ]
794
+ },
795
+ "signature": {
796
+ "additionalProperties": false,
797
+ "type": "object",
798
+ "required": [
799
+ "profile",
800
+ "schemaVersion",
801
+ "kind",
802
+ "release",
803
+ "publisher",
804
+ "publicKey",
805
+ "bodySha256",
806
+ "canonicalization",
807
+ "signature",
808
+ "signedAt"
809
+ ],
810
+ "properties": {
811
+ "profile": {
812
+ "const": "dsg.extension.release/1",
813
+ "type": "string"
814
+ },
815
+ "schemaVersion": {
816
+ "const": 1,
817
+ "type": "number"
818
+ },
819
+ "kind": {
820
+ "const": "extension-release-signature",
821
+ "type": "string"
822
+ },
823
+ "release": {
824
+ "additionalProperties": false,
825
+ "type": "object",
826
+ "required": ["orn", "sha256"],
827
+ "properties": {
828
+ "orn": {
829
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
830
+ "type": "string"
831
+ },
832
+ "sha256": {
833
+ "pattern": "^[0-9a-f]{64}$",
834
+ "type": "string"
835
+ }
836
+ }
837
+ },
838
+ "publisher": {
839
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
840
+ "type": "string"
841
+ },
842
+ "publicKey": {
843
+ "pattern": "^[0-9a-f]{64}$",
844
+ "type": "string"
845
+ },
846
+ "bodySha256": {
847
+ "pattern": "^[0-9a-f]{64}$",
848
+ "type": "string"
849
+ },
850
+ "canonicalization": {
851
+ "const": "RFC8785-JCS-UTF8",
852
+ "type": "string"
853
+ },
854
+ "signature": {
855
+ "pattern": "^[0-9a-f]{128}$",
856
+ "type": "string"
857
+ },
858
+ "signedAt": {
859
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
860
+ "type": "string"
861
+ }
862
+ }
863
+ }
864
+ },
865
+ "$ref": "#/$defs/release"
866
+ }