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