@eudiplo/cli 7.2.0 → 7.3.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 (180) hide show
  1. package/README.md +88 -24
  2. package/dist/commands/commands/index.d.ts +4 -0
  3. package/dist/commands/commands/index.d.ts.map +1 -0
  4. package/dist/commands/commands/index.js +13 -0
  5. package/dist/commands/commands/index.js.map +1 -0
  6. package/dist/commands/commands/render.d.ts +4 -0
  7. package/dist/commands/commands/render.d.ts.map +1 -0
  8. package/dist/commands/commands/render.js +52 -0
  9. package/dist/commands/commands/render.js.map +1 -0
  10. package/dist/commands/completion/action.d.ts +6 -0
  11. package/dist/commands/completion/action.d.ts.map +1 -0
  12. package/dist/commands/completion/action.js +133 -0
  13. package/dist/commands/completion/action.js.map +1 -0
  14. package/dist/commands/completion/index.d.ts +6 -0
  15. package/dist/commands/completion/index.d.ts.map +1 -0
  16. package/dist/commands/completion/index.js +23 -0
  17. package/dist/commands/completion/index.js.map +1 -0
  18. package/dist/commands/config/action.d.ts +4 -0
  19. package/dist/commands/config/action.d.ts.map +1 -0
  20. package/dist/commands/config/action.js +33 -0
  21. package/dist/commands/config/action.js.map +1 -0
  22. package/dist/commands/config/editor/action.d.ts +3 -0
  23. package/dist/commands/config/editor/action.d.ts.map +1 -0
  24. package/dist/commands/config/editor/action.js +112 -0
  25. package/dist/commands/config/editor/action.js.map +1 -0
  26. package/dist/commands/config/editor/index.d.ts +5 -0
  27. package/dist/commands/config/editor/index.d.ts.map +1 -0
  28. package/dist/commands/config/editor/index.js +20 -0
  29. package/dist/commands/config/editor/index.js.map +1 -0
  30. package/dist/commands/config/index.d.ts +1 -1
  31. package/dist/commands/config/index.d.ts.map +1 -1
  32. package/dist/commands/config/index.js +22 -0
  33. package/dist/commands/config/index.js.map +1 -1
  34. package/dist/commands/config/portability/action.d.ts +5 -0
  35. package/dist/commands/config/portability/action.d.ts.map +1 -0
  36. package/dist/commands/config/portability/action.js +164 -0
  37. package/dist/commands/config/portability/action.js.map +1 -0
  38. package/dist/commands/config/portability/index.d.ts +5 -0
  39. package/dist/commands/config/portability/index.d.ts.map +1 -0
  40. package/dist/commands/config/portability/index.js +44 -0
  41. package/dist/commands/config/portability/index.js.map +1 -0
  42. package/dist/commands/config/portability/migrations.d.ts +24 -0
  43. package/dist/commands/config/portability/migrations.d.ts.map +1 -0
  44. package/dist/commands/config/portability/migrations.js +95 -0
  45. package/dist/commands/config/portability/migrations.js.map +1 -0
  46. package/dist/commands/config/portability/migrations.spec.d.ts +2 -0
  47. package/dist/commands/config/portability/migrations.spec.d.ts.map +1 -0
  48. package/dist/commands/config/portability/migrations.spec.js +32 -0
  49. package/dist/commands/config/portability/migrations.spec.js.map +1 -0
  50. package/dist/commands/config/tenant/action.d.ts.map +1 -1
  51. package/dist/commands/config/tenant/action.js +16 -6
  52. package/dist/commands/config/tenant/action.js.map +1 -1
  53. package/dist/commands/config/tenant/index.d.ts.map +1 -1
  54. package/dist/commands/config/tenant/index.js.map +1 -1
  55. package/dist/commands/config/validate/action.d.ts.map +1 -1
  56. package/dist/commands/config/validate/action.js +3 -1
  57. package/dist/commands/config/validate/action.js.map +1 -1
  58. package/dist/commands/config/validate/registry.d.ts +1 -0
  59. package/dist/commands/config/validate/registry.d.ts.map +1 -1
  60. package/dist/commands/config/validate/registry.js +1 -1
  61. package/dist/commands/config/validate/registry.js.map +1 -1
  62. package/dist/commands/config/validate/registry.json +12 -23
  63. package/dist/commands/config/validate/report.d.ts.map +1 -1
  64. package/dist/commands/config/validate/report.js +6 -1
  65. package/dist/commands/config/validate/report.js.map +1 -1
  66. package/dist/commands/config/validate/schemas.d.ts +1 -0
  67. package/dist/commands/config/validate/schemas.d.ts.map +1 -1
  68. package/dist/commands/config/validate/schemas.js +16 -5
  69. package/dist/commands/config/validate/schemas.js.map +1 -1
  70. package/dist/commands/config/validate/types.d.ts.map +1 -1
  71. package/dist/commands/config/validate/validator.d.ts.map +1 -1
  72. package/dist/commands/config/validate/validator.js +13 -5
  73. package/dist/commands/config/validate/validator.js.map +1 -1
  74. package/dist/commands/demo/action.d.ts.map +1 -1
  75. package/dist/commands/demo/action.js +3 -2
  76. package/dist/commands/demo/action.js.map +1 -1
  77. package/dist/commands/demo/index.d.ts.map +1 -1
  78. package/dist/commands/demo/index.js.map +1 -1
  79. package/dist/commands/deployment/action.d.ts.map +1 -1
  80. package/dist/commands/deployment/action.js +10 -3
  81. package/dist/commands/deployment/action.js.map +1 -1
  82. package/dist/commands/deployment/index.d.ts.map +1 -1
  83. package/dist/commands/deployment/index.js +1 -1
  84. package/dist/commands/deployment/index.js.map +1 -1
  85. package/dist/commands/doctor/action.d.ts.map +1 -1
  86. package/dist/commands/doctor/action.js +1 -1
  87. package/dist/commands/doctor/action.js.map +1 -1
  88. package/dist/commands/init/action.d.ts.map +1 -1
  89. package/dist/commands/init/action.js +20 -7
  90. package/dist/commands/init/action.js.map +1 -1
  91. package/dist/commands/init/index.d.ts.map +1 -1
  92. package/dist/commands/init/index.js.map +1 -1
  93. package/dist/commands/instance/action.d.ts +4 -0
  94. package/dist/commands/instance/action.d.ts.map +1 -1
  95. package/dist/commands/instance/action.js +66 -1
  96. package/dist/commands/instance/action.js.map +1 -1
  97. package/dist/commands/instance/index.d.ts.map +1 -1
  98. package/dist/commands/instance/index.js +31 -1
  99. package/dist/commands/instance/index.js.map +1 -1
  100. package/dist/commands/shared.d.ts.map +1 -1
  101. package/dist/commands/shared.js +4 -1
  102. package/dist/commands/shared.js.map +1 -1
  103. package/dist/commands/status/action.d.ts.map +1 -1
  104. package/dist/commands/status/action.js.map +1 -1
  105. package/dist/commands/version/action.d.ts.map +1 -1
  106. package/dist/commands/version/action.js +3 -1
  107. package/dist/commands/version/action.js.map +1 -1
  108. package/dist/runtime.d.ts +2 -0
  109. package/dist/runtime.d.ts.map +1 -1
  110. package/dist/runtime.js +8 -1
  111. package/dist/runtime.js.map +1 -1
  112. package/dist/sea-assets.d.ts +4 -2
  113. package/dist/sea-assets.d.ts.map +1 -1
  114. package/dist/sea-assets.js +6 -3
  115. package/dist/sea-assets.js.map +1 -1
  116. package/dist/services/cli-config.d.ts +2 -0
  117. package/dist/services/cli-config.d.ts.map +1 -1
  118. package/dist/services/cli-config.js +22 -1
  119. package/dist/services/cli-config.js.map +1 -1
  120. package/dist/services/compose-project.d.ts.map +1 -1
  121. package/dist/services/compose-project.js +14 -6
  122. package/dist/services/compose-project.js.map +1 -1
  123. package/dist/services/deployment-drivers.d.ts +7 -0
  124. package/dist/services/deployment-drivers.d.ts.map +1 -1
  125. package/dist/services/deployment-drivers.js +79 -16
  126. package/dist/services/deployment-drivers.js.map +1 -1
  127. package/dist/services/diagnostics.d.ts.map +1 -1
  128. package/dist/services/diagnostics.js +3 -1
  129. package/dist/services/diagnostics.js.map +1 -1
  130. package/dist/services/instance-selection.d.ts.map +1 -1
  131. package/dist/services/instance-selection.js.map +1 -1
  132. package/dist/services/project-directory.d.ts.map +1 -1
  133. package/dist/services/project-directory.js.map +1 -1
  134. package/dist/types.d.ts.map +1 -1
  135. package/package.json +10 -8
  136. package/templates/demo-config/issuance/issuance.json +20 -12
  137. package/templates/demo-config/key-chains/access.json +13 -2
  138. package/templates/demo-config/key-chains/attestation.json +14 -3
  139. package/templates/demo-config/key-chains/status-list.json +15 -4
  140. package/templates/demo-config/key-chains/trust-list.json +13 -2
  141. package/templates/demo-config/presentation/age-over-18.json +46 -53
  142. package/templates/demo-config/presentation/pid.json +44 -0
  143. package/templates/demo-config.manifest.json +1 -0
  144. package/templates/schemas/AttributeProviderAuth.schema.json +60 -0
  145. package/templates/schemas/AttributeProviderConfigFile.schema.json +37 -0
  146. package/templates/schemas/CertImportDto.schema.json +35 -0
  147. package/templates/schemas/ClientConfigFile.schema.json +37 -0
  148. package/templates/schemas/ConfigDocumentMetadata.schema.json +25 -0
  149. package/templates/schemas/CreateClientDto.schema.json +1 -0
  150. package/templates/schemas/CreateStatusListDto.schema.json +46 -0
  151. package/templates/schemas/CreateTenantDto.schema.json +117 -0
  152. package/templates/schemas/CredentialConfigFile.schema.json +37 -0
  153. package/templates/schemas/DCQL.schema.json +401 -0
  154. package/templates/schemas/EmbeddedDisclosurePolicy.schema.json +106 -0
  155. package/templates/schemas/ImportTenantDto.schema.json +69 -0
  156. package/templates/schemas/IssuanceConfigFile.schema.json +32 -0
  157. package/templates/schemas/KeyChainConfigFile.schema.json +476 -0
  158. package/templates/schemas/KeyChainCreateDto.schema.json +66 -0
  159. package/templates/schemas/KeyChainUpdateDto.schema.json +40 -0
  160. package/templates/schemas/KmsConfigFile.schema.json +37 -0
  161. package/templates/schemas/PresentationConfigFile.schema.json +32 -0
  162. package/templates/schemas/RegistrarConfigFile.schema.json +37 -0
  163. package/templates/schemas/RotationPolicyCreateDto.schema.json +28 -0
  164. package/templates/schemas/RotationPolicyUpdateDto.schema.json +25 -0
  165. package/templates/schemas/SessionStorageConfig.schema.json +24 -0
  166. package/templates/schemas/StatusListConfig.schema.json +51 -0
  167. package/templates/schemas/StatusListConfigFile.schema.json +37 -0
  168. package/templates/schemas/TenantConfigFile.schema.json +230 -0
  169. package/templates/schemas/TransactionData.schema.json +24 -0
  170. package/templates/schemas/TrustListConfigFile.schema.json +37 -0
  171. package/templates/schemas/UpdateAttributeProviderDto.schema.json +93 -0
  172. package/templates/schemas/UpdateClientDto.schema.json +63 -0
  173. package/templates/schemas/UpdateStatusListConfigDto.schema.json +85 -0
  174. package/templates/schemas/UpdateStatusListDto.schema.json +33 -0
  175. package/templates/schemas/UpdateTenantDto.schema.json +96 -0
  176. package/templates/schemas/UpdateWebhookEndpointDto.schema.json +93 -0
  177. package/templates/schemas/VCT.schema.json +37 -0
  178. package/templates/schemas/WebhookConfig.schema.json +80 -0
  179. package/templates/schemas/WebhookEndpointConfigFile.schema.json +37 -0
  180. package/templates/schemas.manifest.json +35 -1
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "./CredentialConfigFile.schema.json",
4
+ "title": "CredentialConfigFile",
5
+ "description": "A credential configuration file in legacy payload or versioned-envelope form.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "./CredentialConfigCreate.schema.json"
9
+ },
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "apiVersion": {
14
+ "type": "string",
15
+ "const": "eudiplo.io/credential-config/v1"
16
+ },
17
+ "kind": {
18
+ "type": "string",
19
+ "const": "CredentialConfig"
20
+ },
21
+ "metadata": {
22
+ "$ref": "./ConfigDocumentMetadata.schema.json"
23
+ },
24
+ "spec": {
25
+ "$ref": "./CredentialConfigCreate.schema.json"
26
+ }
27
+ },
28
+ "required": [
29
+ "apiVersion",
30
+ "kind",
31
+ "metadata",
32
+ "spec"
33
+ ],
34
+ "additionalProperties": false
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,401 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "credentials": {
6
+ "minItems": 1,
7
+ "type": "array",
8
+ "items": {
9
+ "oneOf": [
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "id": {
14
+ "type": "string",
15
+ "minLength": 1,
16
+ "pattern": "^[A-Za-z0-9_-]+$",
17
+ "description": "Credential query identifier."
18
+ },
19
+ "multiple": {
20
+ "description": "Allow multiple matching credentials.",
21
+ "type": "boolean"
22
+ },
23
+ "claim_sets": {
24
+ "description": "Optional claim set constraints.",
25
+ "type": "array",
26
+ "items": {
27
+ "type": "array",
28
+ "items": {
29
+ "type": "string"
30
+ }
31
+ }
32
+ },
33
+ "trusted_authorities": {
34
+ "description": "Optional trusted authority constraints.",
35
+ "type": "array",
36
+ "items": {
37
+ "oneOf": [
38
+ {
39
+ "type": "object",
40
+ "properties": {
41
+ "type": {
42
+ "type": "string",
43
+ "const": "etsi_tl",
44
+ "description": "Trusted authority type discriminator for ETSI trust lists."
45
+ },
46
+ "values": {
47
+ "type": "array",
48
+ "items": {
49
+ "type": "object",
50
+ "properties": {
51
+ "trustListId": {
52
+ "description": "Optional trust list id reference.",
53
+ "type": "string"
54
+ },
55
+ "url": {
56
+ "description": "Optional trust list URL reference.",
57
+ "anyOf": [
58
+ {
59
+ "type": "string",
60
+ "format": "uri"
61
+ },
62
+ {
63
+ "type": "string",
64
+ "pattern": "^<TENANT_URL>(?:\\/.*)?$"
65
+ }
66
+ ]
67
+ },
68
+ "verifierKey": {
69
+ "description": "Optional verifier key material.",
70
+ "type": "object",
71
+ "propertyNames": {
72
+ "type": "string"
73
+ },
74
+ "additionalProperties": {}
75
+ },
76
+ "verifierX509Der": {
77
+ "description": "Optional verifier certificate in DER/base64 form.",
78
+ "type": "string"
79
+ }
80
+ },
81
+ "additionalProperties": false
82
+ },
83
+ "description": "Trust list references for ETSI TL verification."
84
+ }
85
+ },
86
+ "required": [
87
+ "type",
88
+ "values"
89
+ ],
90
+ "additionalProperties": false
91
+ },
92
+ {
93
+ "type": "object",
94
+ "properties": {
95
+ "type": {
96
+ "type": "string",
97
+ "const": "openid_federation",
98
+ "description": "Trusted authority type discriminator for OpenID Federation."
99
+ },
100
+ "values": {
101
+ "type": "array",
102
+ "items": {
103
+ "type": "string"
104
+ },
105
+ "description": "OpenID Federation authority identifiers."
106
+ }
107
+ },
108
+ "required": [
109
+ "type",
110
+ "values"
111
+ ],
112
+ "additionalProperties": false
113
+ }
114
+ ]
115
+ }
116
+ },
117
+ "format": {
118
+ "type": "string",
119
+ "const": "dc+sd-jwt",
120
+ "description": "Credential format discriminator."
121
+ },
122
+ "meta": {
123
+ "type": "object",
124
+ "properties": {
125
+ "vct_values": {
126
+ "minItems": 1,
127
+ "type": "array",
128
+ "items": {
129
+ "type": "string"
130
+ },
131
+ "description": "Accepted VCT values."
132
+ }
133
+ },
134
+ "required": [
135
+ "vct_values"
136
+ ],
137
+ "additionalProperties": false
138
+ },
139
+ "claims": {
140
+ "description": "Optional claim-level constraints.",
141
+ "type": "array",
142
+ "items": {
143
+ "type": "object",
144
+ "properties": {
145
+ "id": {
146
+ "description": "Optional claim query id.",
147
+ "type": "string"
148
+ },
149
+ "path": {
150
+ "type": "array",
151
+ "items": {
152
+ "anyOf": [
153
+ {
154
+ "type": "string"
155
+ },
156
+ {
157
+ "type": "number"
158
+ }
159
+ ]
160
+ },
161
+ "description": "Path to the claim value in presented credentials."
162
+ },
163
+ "values": {
164
+ "description": "Optional allowed values for the claim.",
165
+ "type": "array",
166
+ "items": {
167
+ "type": "string"
168
+ }
169
+ }
170
+ },
171
+ "required": [
172
+ "path"
173
+ ],
174
+ "additionalProperties": false
175
+ }
176
+ }
177
+ },
178
+ "required": [
179
+ "id",
180
+ "format",
181
+ "meta"
182
+ ],
183
+ "additionalProperties": false
184
+ },
185
+ {
186
+ "type": "object",
187
+ "properties": {
188
+ "id": {
189
+ "type": "string",
190
+ "minLength": 1,
191
+ "pattern": "^[A-Za-z0-9_-]+$",
192
+ "description": "Credential query identifier."
193
+ },
194
+ "multiple": {
195
+ "description": "Allow multiple matching credentials.",
196
+ "type": "boolean"
197
+ },
198
+ "claim_sets": {
199
+ "description": "Optional claim set constraints.",
200
+ "type": "array",
201
+ "items": {
202
+ "type": "array",
203
+ "items": {
204
+ "type": "string"
205
+ }
206
+ }
207
+ },
208
+ "trusted_authorities": {
209
+ "description": "Optional trusted authority constraints.",
210
+ "type": "array",
211
+ "items": {
212
+ "oneOf": [
213
+ {
214
+ "type": "object",
215
+ "properties": {
216
+ "type": {
217
+ "type": "string",
218
+ "const": "etsi_tl",
219
+ "description": "Trusted authority type discriminator for ETSI trust lists."
220
+ },
221
+ "values": {
222
+ "type": "array",
223
+ "items": {
224
+ "type": "object",
225
+ "properties": {
226
+ "trustListId": {
227
+ "description": "Optional trust list id reference.",
228
+ "type": "string"
229
+ },
230
+ "url": {
231
+ "description": "Optional trust list URL reference.",
232
+ "anyOf": [
233
+ {
234
+ "type": "string",
235
+ "format": "uri"
236
+ },
237
+ {
238
+ "type": "string",
239
+ "pattern": "^<TENANT_URL>(?:\\/.*)?$"
240
+ }
241
+ ]
242
+ },
243
+ "verifierKey": {
244
+ "description": "Optional verifier key material.",
245
+ "type": "object",
246
+ "propertyNames": {
247
+ "type": "string"
248
+ },
249
+ "additionalProperties": {}
250
+ },
251
+ "verifierX509Der": {
252
+ "description": "Optional verifier certificate in DER/base64 form.",
253
+ "type": "string"
254
+ }
255
+ },
256
+ "additionalProperties": false
257
+ },
258
+ "description": "Trust list references for ETSI TL verification."
259
+ }
260
+ },
261
+ "required": [
262
+ "type",
263
+ "values"
264
+ ],
265
+ "additionalProperties": false
266
+ },
267
+ {
268
+ "type": "object",
269
+ "properties": {
270
+ "type": {
271
+ "type": "string",
272
+ "const": "openid_federation",
273
+ "description": "Trusted authority type discriminator for OpenID Federation."
274
+ },
275
+ "values": {
276
+ "type": "array",
277
+ "items": {
278
+ "type": "string"
279
+ },
280
+ "description": "OpenID Federation authority identifiers."
281
+ }
282
+ },
283
+ "required": [
284
+ "type",
285
+ "values"
286
+ ],
287
+ "additionalProperties": false
288
+ }
289
+ ]
290
+ }
291
+ },
292
+ "format": {
293
+ "type": "string",
294
+ "const": "mso_mdoc",
295
+ "description": "Credential format discriminator."
296
+ },
297
+ "meta": {
298
+ "type": "object",
299
+ "properties": {
300
+ "doctype_value": {
301
+ "type": "string",
302
+ "minLength": 1,
303
+ "description": "Expected mDoc doctype value."
304
+ }
305
+ },
306
+ "required": [
307
+ "doctype_value"
308
+ ],
309
+ "additionalProperties": false
310
+ },
311
+ "claims": {
312
+ "description": "Optional mDoc claim-level constraints.",
313
+ "type": "array",
314
+ "items": {
315
+ "type": "object",
316
+ "properties": {
317
+ "id": {
318
+ "description": "Optional claim query id.",
319
+ "type": "string"
320
+ },
321
+ "path": {
322
+ "type": "array",
323
+ "items": {
324
+ "anyOf": [
325
+ {
326
+ "type": "string"
327
+ },
328
+ {
329
+ "type": "number"
330
+ }
331
+ ]
332
+ },
333
+ "description": "Path to the claim value in presented credentials."
334
+ },
335
+ "values": {
336
+ "description": "Optional allowed values for the claim.",
337
+ "type": "array",
338
+ "items": {
339
+ "type": "string"
340
+ }
341
+ },
342
+ "intent_to_retain": {
343
+ "description": "Whether relying party intends to retain the claim.",
344
+ "type": "boolean"
345
+ }
346
+ },
347
+ "required": [
348
+ "path"
349
+ ],
350
+ "additionalProperties": false
351
+ }
352
+ }
353
+ },
354
+ "required": [
355
+ "id",
356
+ "format",
357
+ "meta"
358
+ ],
359
+ "additionalProperties": false
360
+ }
361
+ ]
362
+ },
363
+ "description": "Credential queries requested by the verifier."
364
+ },
365
+ "credential_sets": {
366
+ "description": "Optional higher-level credential set requirements.",
367
+ "type": "array",
368
+ "items": {
369
+ "type": "object",
370
+ "properties": {
371
+ "options": {
372
+ "minItems": 1,
373
+ "type": "array",
374
+ "items": {
375
+ "minItems": 1,
376
+ "type": "array",
377
+ "items": {
378
+ "type": "string"
379
+ }
380
+ },
381
+ "description": "Alternative credential query id combinations."
382
+ },
383
+ "required": {
384
+ "description": "Whether this credential set is mandatory.",
385
+ "type": "boolean"
386
+ }
387
+ },
388
+ "required": [
389
+ "options"
390
+ ],
391
+ "additionalProperties": false
392
+ }
393
+ }
394
+ },
395
+ "required": [
396
+ "credentials"
397
+ ],
398
+ "additionalProperties": false,
399
+ "$id": "./DCQL.schema.json",
400
+ "title": "DCQL"
401
+ }
@@ -0,0 +1,106 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "oneOf": [
4
+ {
5
+ "type": "object",
6
+ "properties": {
7
+ "policy": {
8
+ "type": "string",
9
+ "const": "attestationBased",
10
+ "description": "Attestation-based policy discriminator."
11
+ },
12
+ "values": {
13
+ "type": "array",
14
+ "items": {
15
+ "type": "object",
16
+ "properties": {
17
+ "claims": {
18
+ "description": "Claims constraints considered by policy evaluation.",
19
+ "type": "array",
20
+ "items": {}
21
+ },
22
+ "credentials": {
23
+ "type": "array",
24
+ "items": {},
25
+ "description": "Credential constraints considered by policy evaluation."
26
+ },
27
+ "credential_sets": {
28
+ "description": "Optional credential set constraints.",
29
+ "type": "array",
30
+ "items": {}
31
+ }
32
+ },
33
+ "required": [
34
+ "credentials"
35
+ ],
36
+ "additionalProperties": false
37
+ },
38
+ "description": "Attestation requirements used for policy enforcement."
39
+ }
40
+ },
41
+ "required": [
42
+ "policy",
43
+ "values"
44
+ ],
45
+ "additionalProperties": false
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "policy": {
51
+ "type": "string",
52
+ "const": "none",
53
+ "description": "No disclosure policy enforcement."
54
+ }
55
+ },
56
+ "required": [
57
+ "policy"
58
+ ],
59
+ "additionalProperties": false
60
+ },
61
+ {
62
+ "type": "object",
63
+ "properties": {
64
+ "policy": {
65
+ "type": "string",
66
+ "const": "allowList",
67
+ "description": "Allow-list based policy discriminator."
68
+ },
69
+ "values": {
70
+ "type": "array",
71
+ "items": {
72
+ "type": "string"
73
+ },
74
+ "description": "Allowed values for policy checks."
75
+ }
76
+ },
77
+ "required": [
78
+ "policy",
79
+ "values"
80
+ ],
81
+ "additionalProperties": false
82
+ },
83
+ {
84
+ "type": "object",
85
+ "properties": {
86
+ "policy": {
87
+ "type": "string",
88
+ "const": "rootOfTrust",
89
+ "description": "Root-of-trust policy discriminator."
90
+ },
91
+ "values": {
92
+ "type": "string",
93
+ "description": "Root-of-trust identifier or reference."
94
+ }
95
+ },
96
+ "required": [
97
+ "policy",
98
+ "values"
99
+ ],
100
+ "additionalProperties": false
101
+ }
102
+ ],
103
+ "description": "Embedded disclosure policy configuration.",
104
+ "$id": "./EmbeddedDisclosurePolicy.schema.json",
105
+ "title": "EmbeddedDisclosurePolicy"
106
+ }
@@ -12,6 +12,75 @@
12
12
  "description": "Optional tenant description.",
13
13
  "type": "string",
14
14
  "minLength": 1
15
+ },
16
+ "sessionConfig": {
17
+ "description": "Optional tenant-specific session storage configuration.",
18
+ "type": "object",
19
+ "properties": {
20
+ "ttlSeconds": {
21
+ "description": "Session time-to-live in seconds.",
22
+ "type": "integer",
23
+ "minimum": 60,
24
+ "maximum": 9007199254740991
25
+ },
26
+ "cleanupMode": {
27
+ "description": "Whether to fully delete or anonymize expired sessions.",
28
+ "type": "string",
29
+ "enum": [
30
+ "full",
31
+ "anonymize"
32
+ ]
33
+ }
34
+ },
35
+ "additionalProperties": false
36
+ },
37
+ "statusListConfig": {
38
+ "description": "Optional tenant-specific status list defaults.",
39
+ "type": "object",
40
+ "properties": {
41
+ "capacity": {
42
+ "description": "Default status list capacity.",
43
+ "type": "integer",
44
+ "minimum": 100,
45
+ "maximum": 9007199254740991
46
+ },
47
+ "bits": {
48
+ "description": "Bits-per-status setting (1, 2, 4, or 8).",
49
+ "anyOf": [
50
+ {
51
+ "type": "number",
52
+ "const": 1
53
+ },
54
+ {
55
+ "type": "number",
56
+ "const": 2
57
+ },
58
+ {
59
+ "type": "number",
60
+ "const": 4
61
+ },
62
+ {
63
+ "type": "number",
64
+ "const": 8
65
+ }
66
+ ]
67
+ },
68
+ "ttl": {
69
+ "description": "JWT TTL for status list tokens in seconds.",
70
+ "type": "integer",
71
+ "minimum": 60,
72
+ "maximum": 9007199254740991
73
+ },
74
+ "immediateUpdate": {
75
+ "description": "Regenerate status list JWTs immediately after status updates.",
76
+ "type": "boolean"
77
+ },
78
+ "enableAggregation": {
79
+ "description": "Include aggregation_uri in generated status list JWTs.",
80
+ "type": "boolean"
81
+ }
82
+ },
83
+ "additionalProperties": false
15
84
  }
16
85
  },
17
86
  "required": [
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "./IssuanceConfigFile.schema.json",
4
+ "title": "IssuanceConfigFile",
5
+ "description": "An issuance configuration file in legacy payload or versioned-envelope form.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "./IssuanceConfig.schema.json"
9
+ },
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "apiVersion": {
14
+ "type": "string",
15
+ "const": "eudiplo.io/issuance-config/v2"
16
+ },
17
+ "kind": {
18
+ "type": "string",
19
+ "const": "IssuanceConfig"
20
+ },
21
+ "metadata": {
22
+ "$ref": "./ConfigDocumentMetadata.schema.json"
23
+ },
24
+ "spec": {
25
+ "$ref": "./IssuanceConfig.schema.json"
26
+ }
27
+ },
28
+ "required": ["apiVersion", "kind", "metadata", "spec"],
29
+ "additionalProperties": false
30
+ }
31
+ ]
32
+ }