@eudiplo/cli 9.1.0-main.e4e29b5 → 9.1.0-main.e69fe20
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.
- package/dist/commands/completion/action.js +3 -1
- package/dist/commands/completion/action.js.map +1 -1
- package/dist/commands/config/portability/migrations.spec.js +4 -2
- package/dist/commands/config/portability/migrations.spec.js.map +1 -1
- package/dist/commands/config/portability/upgrade.d.ts.map +1 -1
- package/dist/commands/config/portability/upgrade.js +6 -2
- package/dist/commands/config/portability/upgrade.js.map +1 -1
- package/dist/commands/config/validate/action.d.ts.map +1 -1
- package/dist/commands/config/validate/action.js +2 -1
- package/dist/commands/config/validate/action.js.map +1 -1
- package/dist/commands/config/validate/registry.json +10 -0
- package/dist/commands/init/action.d.ts.map +1 -1
- package/dist/commands/init/action.js +1 -11
- package/dist/commands/init/action.js.map +1 -1
- package/dist/commands/instance/action.d.ts +2 -0
- package/dist/commands/instance/action.d.ts.map +1 -1
- package/dist/commands/instance/action.js +68 -12
- package/dist/commands/instance/action.js.map +1 -1
- package/dist/commands/instance/index.d.ts.map +1 -1
- package/dist/commands/instance/index.js +21 -3
- package/dist/commands/instance/index.js.map +1 -1
- package/dist/commands/open/action.d.ts.map +1 -1
- package/dist/commands/open/action.js +13 -2
- package/dist/commands/open/action.js.map +1 -1
- package/dist/commands/status/action.d.ts.map +1 -1
- package/dist/commands/status/action.js +2 -1
- package/dist/commands/status/action.js.map +1 -1
- package/dist/index.js +5435 -773
- package/dist/services/api-auth.d.ts.map +1 -1
- package/dist/services/api-auth.js +3 -2
- package/dist/services/api-auth.js.map +1 -1
- package/dist/services/browser.d.ts.map +1 -1
- package/dist/services/browser.js +3 -2
- package/dist/services/browser.js.map +1 -1
- package/dist/services/cli-config.d.ts +41 -1
- package/dist/services/cli-config.d.ts.map +1 -1
- package/dist/services/cli-config.js +217 -29
- package/dist/services/cli-config.js.map +1 -1
- package/dist/services/diagnostics.d.ts.map +1 -1
- package/dist/services/diagnostics.js +9 -8
- package/dist/services/diagnostics.js.map +1 -1
- package/dist/services/instance-selection.d.ts.map +1 -1
- package/dist/services/instance-selection.js +2 -5
- package/dist/services/instance-selection.js.map +1 -1
- package/dist/services/url.d.ts +21 -0
- package/dist/services/url.d.ts.map +1 -0
- package/dist/services/url.js +61 -0
- package/dist/services/url.js.map +1 -0
- package/package.json +4 -3
- package/templates/demo-config/clients/presentation-test.json +1 -1
- package/templates/demo-config/clients/test.json +6 -2
- package/templates/demo-config/key-chains/attestation.json +2 -1
- package/templates/demo-config/key-chains/status-list.json +5 -4
- package/templates/docker-compose.yml +2 -2
- package/templates/schemas/ClientConfigFile.schema.json +134 -1
- package/templates/schemas/CreateClientDto.schema.json +5 -1
- package/templates/schemas/CreateFederationTrustAnchorDto.schema.json +82 -0
- package/templates/schemas/CreateRegistrarConfigDto.schema.json +29 -0
- package/templates/schemas/CreateTenantDto.schema.json +5 -1
- package/templates/schemas/FederationTrustAnchorConfigFile.schema.json +60 -0
- package/templates/schemas/ImportTenantDto.schema.json +12 -0
- package/templates/schemas/IssuanceConfig.schema.json +120 -2
- package/templates/schemas/IssuanceConfigFile.schema.json +1434 -1
- package/templates/schemas/KeyChainConfigFile.schema.json +505 -119
- package/templates/schemas/KeyChainCreateDto.schema.json +11 -1
- package/templates/schemas/KeyChainImportDto.schema.json +9 -0
- package/templates/schemas/KmsConfigDto.schema.json +186 -0
- package/templates/schemas/KmsConfigFile.schema.json +1026 -1
- package/templates/schemas/RegistrarConfigFile.schema.json +101 -1
- package/templates/schemas/RotationPolicyCreateDto.schema.json +1 -1
- package/templates/schemas/TenantConfigFile.schema.json +224 -68
- package/templates/schemas/UpdateClientDto.schema.json +5 -1
- package/templates/schemas/UpdateFederationTrustAnchorDto.schema.json +70 -0
- package/templates/schemas/UpdateStatusListConfigDto.schema.json +5 -5
- package/templates/schemas/UpdateTenantDto.schema.json +20 -0
- package/templates/schemas.manifest.json +3 -0
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"properties": {
|
|
10
10
|
"$schema": {
|
|
11
11
|
"type": "string",
|
|
12
|
-
"const": "https://eudiplo.dev/schemas/
|
|
12
|
+
"const": "https://eudiplo.dev/schemas/v2/RegistrarConfigFile.schema.json"
|
|
13
13
|
},
|
|
14
14
|
"metadata": {
|
|
15
15
|
"type": "object",
|
|
@@ -39,6 +39,106 @@
|
|
|
39
39
|
"spec"
|
|
40
40
|
],
|
|
41
41
|
"additionalProperties": false
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
45
|
+
"$id": "https://eudiplo.dev/schemas/v1/RegistrarConfigFile.schema.json",
|
|
46
|
+
"title": "RegistrarConfigFile",
|
|
47
|
+
"type": "object",
|
|
48
|
+
"properties": {
|
|
49
|
+
"$schema": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"const": "https://eudiplo.dev/schemas/v1/RegistrarConfigFile.schema.json"
|
|
52
|
+
},
|
|
53
|
+
"metadata": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"properties": {
|
|
56
|
+
"generation": {
|
|
57
|
+
"type": "integer",
|
|
58
|
+
"minimum": 1,
|
|
59
|
+
"description": "Monotonically increasing configuration generation."
|
|
60
|
+
},
|
|
61
|
+
"ownership": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"enum": [
|
|
64
|
+
"unmanaged",
|
|
65
|
+
"file-managed"
|
|
66
|
+
],
|
|
67
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"additionalProperties": false
|
|
71
|
+
},
|
|
72
|
+
"spec": {
|
|
73
|
+
"$ref": "#/$defs/CreateRegistrarConfigDto"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"required": [
|
|
77
|
+
"$schema",
|
|
78
|
+
"spec"
|
|
79
|
+
],
|
|
80
|
+
"additionalProperties": false,
|
|
81
|
+
"$defs": {
|
|
82
|
+
"CreateRegistrarConfigDto": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"properties": {
|
|
85
|
+
"registrarUrl": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"format": "uri",
|
|
88
|
+
"description": "Base URL of the registrar service."
|
|
89
|
+
},
|
|
90
|
+
"oidcUrl": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"format": "uri",
|
|
93
|
+
"description": "OIDC discovery or issuer URL used for authentication."
|
|
94
|
+
},
|
|
95
|
+
"clientId": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"minLength": 1,
|
|
98
|
+
"description": "OAuth client ID used against the registrar."
|
|
99
|
+
},
|
|
100
|
+
"clientSecret": {
|
|
101
|
+
"description": "Optional OAuth client secret for registrar authentication.",
|
|
102
|
+
"type": "string",
|
|
103
|
+
"minLength": 1
|
|
104
|
+
},
|
|
105
|
+
"username": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"minLength": 1,
|
|
108
|
+
"description": "Username used for registrar authentication."
|
|
109
|
+
},
|
|
110
|
+
"password": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"minLength": 1,
|
|
113
|
+
"description": "Password used for registrar authentication."
|
|
114
|
+
},
|
|
115
|
+
"registrationCertificateDefaults": {
|
|
116
|
+
"description": "Optional default registration certificate values.",
|
|
117
|
+
"anyOf": [
|
|
118
|
+
{
|
|
119
|
+
"type": "object",
|
|
120
|
+
"propertyNames": {
|
|
121
|
+
"type": "string"
|
|
122
|
+
},
|
|
123
|
+
"additionalProperties": {}
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"type": "null"
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"required": [
|
|
132
|
+
"registrarUrl",
|
|
133
|
+
"oidcUrl",
|
|
134
|
+
"clientId",
|
|
135
|
+
"username",
|
|
136
|
+
"password"
|
|
137
|
+
],
|
|
138
|
+
"additionalProperties": false,
|
|
139
|
+
"title": "CreateRegistrarConfigDto"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
42
142
|
}
|
|
43
143
|
]
|
|
44
144
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"description": "Enable or disable automatic key rotation."
|
|
8
8
|
},
|
|
9
9
|
"intervalDays": {
|
|
10
|
-
"description": "Rotation interval in days.",
|
|
10
|
+
"description": "Rotation interval in days. Required when `enabled` is true.",
|
|
11
11
|
"type": "number",
|
|
12
12
|
"minimum": 1,
|
|
13
13
|
"maximum": 3650
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"
|
|
3
|
+
"$id": "./TenantConfigFile.schema.json",
|
|
4
|
+
"title": "TenantConfigFile",
|
|
5
|
+
"description": "Configuration file identified by its $schema URL.",
|
|
6
|
+
"oneOf": [
|
|
4
7
|
{
|
|
5
8
|
"type": "object",
|
|
6
9
|
"properties": {
|
|
7
10
|
"$schema": {
|
|
8
11
|
"type": "string",
|
|
9
|
-
"const": "https://eudiplo.dev/schemas/
|
|
12
|
+
"const": "https://eudiplo.dev/schemas/v3/TenantConfigFile.schema.json"
|
|
10
13
|
},
|
|
11
14
|
"metadata": {
|
|
12
15
|
"type": "object",
|
|
@@ -108,6 +111,18 @@
|
|
|
108
111
|
}
|
|
109
112
|
},
|
|
110
113
|
"additionalProperties": false
|
|
114
|
+
},
|
|
115
|
+
"defaultKeyChains": {
|
|
116
|
+
"type": "object",
|
|
117
|
+
"properties": {
|
|
118
|
+
"access": {
|
|
119
|
+
"description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
|
|
120
|
+
"type": "string",
|
|
121
|
+
"minLength": 1
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"additionalProperties": false,
|
|
125
|
+
"description": "The tenant's key chain per usage type, used where no configuration names one. A usage type without an entry uses a key chain picked by rule."
|
|
111
126
|
}
|
|
112
127
|
},
|
|
113
128
|
"required": [
|
|
@@ -125,106 +140,140 @@
|
|
|
125
140
|
"additionalProperties": false
|
|
126
141
|
},
|
|
127
142
|
{
|
|
143
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
144
|
+
"$id": "https://eudiplo.dev/schemas/v1/TenantConfigFile.schema.json",
|
|
145
|
+
"title": "TenantConfigFile",
|
|
128
146
|
"type": "object",
|
|
129
147
|
"properties": {
|
|
130
|
-
"
|
|
131
|
-
"default": "EUDIPLO",
|
|
132
|
-
"description": "Display name of the tenant.",
|
|
133
|
-
"type": "string",
|
|
134
|
-
"minLength": 1
|
|
135
|
-
},
|
|
136
|
-
"description": {
|
|
137
|
-
"description": "Optional tenant description.",
|
|
148
|
+
"$schema": {
|
|
138
149
|
"type": "string",
|
|
139
|
-
"
|
|
150
|
+
"const": "https://eudiplo.dev/schemas/v1/TenantConfigFile.schema.json"
|
|
140
151
|
},
|
|
141
|
-
"
|
|
142
|
-
"description": "Optional tenant-specific session storage configuration.",
|
|
152
|
+
"metadata": {
|
|
143
153
|
"type": "object",
|
|
144
154
|
"properties": {
|
|
145
|
-
"
|
|
146
|
-
"description": "Session time-to-live in seconds.",
|
|
155
|
+
"generation": {
|
|
147
156
|
"type": "integer",
|
|
148
|
-
"minimum":
|
|
157
|
+
"minimum": 1,
|
|
149
158
|
"maximum": 9007199254740991
|
|
150
159
|
},
|
|
151
|
-
"
|
|
152
|
-
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
160
|
+
"ownership": {
|
|
153
161
|
"type": "string",
|
|
154
162
|
"enum": [
|
|
155
|
-
"
|
|
156
|
-
"
|
|
163
|
+
"unmanaged",
|
|
164
|
+
"file-managed"
|
|
157
165
|
]
|
|
158
166
|
}
|
|
159
167
|
},
|
|
160
168
|
"additionalProperties": false
|
|
161
169
|
},
|
|
162
|
-
"
|
|
163
|
-
"description": "Optional tenant-specific status list defaults.",
|
|
170
|
+
"spec": {
|
|
164
171
|
"type": "object",
|
|
165
172
|
"properties": {
|
|
166
|
-
"
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
173
|
+
"name": {
|
|
174
|
+
"default": "EUDIPLO",
|
|
175
|
+
"description": "Display name of the tenant.",
|
|
176
|
+
"type": "string",
|
|
177
|
+
"minLength": 1
|
|
171
178
|
},
|
|
172
|
-
"
|
|
173
|
-
"description": "
|
|
174
|
-
"
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
179
|
+
"description": {
|
|
180
|
+
"description": "Optional tenant description.",
|
|
181
|
+
"type": "string",
|
|
182
|
+
"minLength": 1
|
|
183
|
+
},
|
|
184
|
+
"sessionConfig": {
|
|
185
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
186
|
+
"type": "object",
|
|
187
|
+
"properties": {
|
|
188
|
+
"ttlSeconds": {
|
|
189
|
+
"description": "Session time-to-live in seconds.",
|
|
190
|
+
"type": "integer",
|
|
191
|
+
"minimum": 60,
|
|
192
|
+
"maximum": 9007199254740991
|
|
178
193
|
},
|
|
179
|
-
{
|
|
180
|
-
"
|
|
181
|
-
"
|
|
194
|
+
"cleanupMode": {
|
|
195
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
196
|
+
"type": "string",
|
|
197
|
+
"enum": [
|
|
198
|
+
"full",
|
|
199
|
+
"anonymize"
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
"additionalProperties": false
|
|
204
|
+
},
|
|
205
|
+
"statusListConfig": {
|
|
206
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
207
|
+
"type": "object",
|
|
208
|
+
"properties": {
|
|
209
|
+
"capacity": {
|
|
210
|
+
"description": "Default status list capacity.",
|
|
211
|
+
"type": "integer",
|
|
212
|
+
"minimum": 100,
|
|
213
|
+
"maximum": 9007199254740991
|
|
182
214
|
},
|
|
183
|
-
{
|
|
184
|
-
"
|
|
185
|
-
"
|
|
215
|
+
"bits": {
|
|
216
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
217
|
+
"anyOf": [
|
|
218
|
+
{
|
|
219
|
+
"type": "number",
|
|
220
|
+
"const": 1
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"type": "number",
|
|
224
|
+
"const": 2
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"type": "number",
|
|
228
|
+
"const": 4
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"type": "number",
|
|
232
|
+
"const": 8
|
|
233
|
+
}
|
|
234
|
+
]
|
|
186
235
|
},
|
|
187
|
-
{
|
|
188
|
-
"
|
|
189
|
-
"
|
|
236
|
+
"ttl": {
|
|
237
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
238
|
+
"type": "integer",
|
|
239
|
+
"minimum": 60,
|
|
240
|
+
"maximum": 9007199254740991
|
|
241
|
+
},
|
|
242
|
+
"immediateUpdate": {
|
|
243
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
244
|
+
"type": "boolean"
|
|
245
|
+
},
|
|
246
|
+
"enableAggregation": {
|
|
247
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
248
|
+
"type": "boolean"
|
|
190
249
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
"ttl": {
|
|
194
|
-
"description": "JWT TTL for status list tokens in seconds.",
|
|
195
|
-
"type": "integer",
|
|
196
|
-
"minimum": 60,
|
|
197
|
-
"maximum": 9007199254740991
|
|
198
|
-
},
|
|
199
|
-
"immediateUpdate": {
|
|
200
|
-
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
201
|
-
"type": "boolean"
|
|
202
|
-
},
|
|
203
|
-
"enableAggregation": {
|
|
204
|
-
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
205
|
-
"type": "boolean"
|
|
250
|
+
},
|
|
251
|
+
"additionalProperties": false
|
|
206
252
|
}
|
|
207
253
|
},
|
|
208
|
-
"
|
|
254
|
+
"required": [
|
|
255
|
+
"name"
|
|
256
|
+
],
|
|
257
|
+
"additionalProperties": false,
|
|
258
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
209
259
|
}
|
|
210
260
|
},
|
|
211
261
|
"required": [
|
|
212
|
-
"
|
|
262
|
+
"$schema",
|
|
263
|
+
"metadata",
|
|
264
|
+
"spec"
|
|
213
265
|
],
|
|
214
|
-
"additionalProperties": false
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
],
|
|
218
|
-
"$id": "./TenantConfigFile.schema.json",
|
|
219
|
-
"title": "TenantConfigFile",
|
|
220
|
-
"description": "Configuration file identified by its $schema URL.",
|
|
221
|
-
"oneOf": [
|
|
266
|
+
"additionalProperties": false
|
|
267
|
+
},
|
|
222
268
|
{
|
|
269
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
270
|
+
"$id": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json",
|
|
271
|
+
"title": "TenantConfigFile",
|
|
223
272
|
"type": "object",
|
|
224
273
|
"properties": {
|
|
225
274
|
"$schema": {
|
|
226
275
|
"type": "string",
|
|
227
|
-
"const": "https://eudiplo.dev/schemas/
|
|
276
|
+
"const": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json"
|
|
228
277
|
},
|
|
229
278
|
"metadata": {
|
|
230
279
|
"type": "object",
|
|
@@ -326,6 +375,11 @@
|
|
|
326
375
|
}
|
|
327
376
|
},
|
|
328
377
|
"additionalProperties": false
|
|
378
|
+
},
|
|
379
|
+
"defaultAccessKeyChainId": {
|
|
380
|
+
"description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
|
|
381
|
+
"type": "string",
|
|
382
|
+
"minLength": 1
|
|
329
383
|
}
|
|
330
384
|
},
|
|
331
385
|
"required": [
|
|
@@ -341,6 +395,108 @@
|
|
|
341
395
|
"spec"
|
|
342
396
|
],
|
|
343
397
|
"additionalProperties": false
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"type": "object",
|
|
401
|
+
"properties": {
|
|
402
|
+
"name": {
|
|
403
|
+
"default": "EUDIPLO",
|
|
404
|
+
"description": "Display name of the tenant.",
|
|
405
|
+
"type": "string",
|
|
406
|
+
"minLength": 1
|
|
407
|
+
},
|
|
408
|
+
"description": {
|
|
409
|
+
"description": "Optional tenant description.",
|
|
410
|
+
"type": "string",
|
|
411
|
+
"minLength": 1
|
|
412
|
+
},
|
|
413
|
+
"sessionConfig": {
|
|
414
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
415
|
+
"type": "object",
|
|
416
|
+
"properties": {
|
|
417
|
+
"ttlSeconds": {
|
|
418
|
+
"description": "Session time-to-live in seconds.",
|
|
419
|
+
"type": "integer",
|
|
420
|
+
"minimum": 60,
|
|
421
|
+
"maximum": 9007199254740991
|
|
422
|
+
},
|
|
423
|
+
"cleanupMode": {
|
|
424
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
425
|
+
"type": "string",
|
|
426
|
+
"enum": [
|
|
427
|
+
"full",
|
|
428
|
+
"anonymize"
|
|
429
|
+
]
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
"additionalProperties": false
|
|
433
|
+
},
|
|
434
|
+
"statusListConfig": {
|
|
435
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
436
|
+
"type": "object",
|
|
437
|
+
"properties": {
|
|
438
|
+
"capacity": {
|
|
439
|
+
"description": "Default status list capacity.",
|
|
440
|
+
"type": "integer",
|
|
441
|
+
"minimum": 100,
|
|
442
|
+
"maximum": 9007199254740991
|
|
443
|
+
},
|
|
444
|
+
"bits": {
|
|
445
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
446
|
+
"anyOf": [
|
|
447
|
+
{
|
|
448
|
+
"type": "number",
|
|
449
|
+
"const": 1
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"type": "number",
|
|
453
|
+
"const": 2
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"type": "number",
|
|
457
|
+
"const": 4
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"type": "number",
|
|
461
|
+
"const": 8
|
|
462
|
+
}
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
"ttl": {
|
|
466
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
467
|
+
"type": "integer",
|
|
468
|
+
"minimum": 60,
|
|
469
|
+
"maximum": 9007199254740991
|
|
470
|
+
},
|
|
471
|
+
"immediateUpdate": {
|
|
472
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
473
|
+
"type": "boolean"
|
|
474
|
+
},
|
|
475
|
+
"enableAggregation": {
|
|
476
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
477
|
+
"type": "boolean"
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"additionalProperties": false
|
|
481
|
+
},
|
|
482
|
+
"defaultKeyChains": {
|
|
483
|
+
"type": "object",
|
|
484
|
+
"properties": {
|
|
485
|
+
"access": {
|
|
486
|
+
"description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
|
|
487
|
+
"type": "string",
|
|
488
|
+
"minLength": 1
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
"additionalProperties": false,
|
|
492
|
+
"description": "The tenant's key chain per usage type, used where no configuration names one. A usage type without an entry uses a key chain picked by rule."
|
|
493
|
+
}
|
|
494
|
+
},
|
|
495
|
+
"required": [
|
|
496
|
+
"name"
|
|
497
|
+
],
|
|
498
|
+
"additionalProperties": false,
|
|
499
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
344
500
|
}
|
|
345
501
|
]
|
|
346
502
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"entityId": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"minLength": 1,
|
|
8
|
+
"maxLength": 2048,
|
|
9
|
+
"description": "Entity identifier of the trust anchor, exactly as configured in `federation.trustAnchors` and DCQL `openid_federation` values."
|
|
10
|
+
},
|
|
11
|
+
"description": {
|
|
12
|
+
"anyOf": [
|
|
13
|
+
{
|
|
14
|
+
"type": "string",
|
|
15
|
+
"minLength": 1,
|
|
16
|
+
"maxLength": 1000
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"type": "null"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"description": "Optional description of the trust anchor."
|
|
23
|
+
},
|
|
24
|
+
"jwks": {
|
|
25
|
+
"type": "object",
|
|
26
|
+
"properties": {
|
|
27
|
+
"keys": {
|
|
28
|
+
"minItems": 1,
|
|
29
|
+
"maxItems": 20,
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"properties": {
|
|
34
|
+
"kty": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"enum": [
|
|
37
|
+
"EC",
|
|
38
|
+
"RSA",
|
|
39
|
+
"OKP"
|
|
40
|
+
],
|
|
41
|
+
"description": "Key type of the public federation key."
|
|
42
|
+
},
|
|
43
|
+
"kid": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"minLength": 1,
|
|
46
|
+
"maxLength": 256,
|
|
47
|
+
"description": "Key ID. Federation statements name their signing key with `kid`."
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"required": [
|
|
51
|
+
"kty",
|
|
52
|
+
"kid"
|
|
53
|
+
],
|
|
54
|
+
"additionalProperties": {},
|
|
55
|
+
"description": "Public federation key of the trust anchor as a JWK."
|
|
56
|
+
},
|
|
57
|
+
"description": "The trust anchor's federation keys."
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"required": [
|
|
61
|
+
"keys"
|
|
62
|
+
],
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"description": "JWK set with the federation keys of the trust anchor, obtained out of band (OpenID Federation 1.0 Section 10.2)."
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": false,
|
|
68
|
+
"$id": "./UpdateFederationTrustAnchorDto.schema.json",
|
|
69
|
+
"title": "UpdateFederationTrustAnchorDto"
|
|
70
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"type": "object",
|
|
4
4
|
"properties": {
|
|
5
5
|
"capacity": {
|
|
6
|
-
"description": "Capacity override.
|
|
6
|
+
"description": "Capacity override. Omit or set null to follow STATUS_CAPACITY.",
|
|
7
7
|
"anyOf": [
|
|
8
8
|
{
|
|
9
9
|
"type": "integer",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
]
|
|
17
17
|
},
|
|
18
18
|
"bits": {
|
|
19
|
-
"description": "Bits-per-status override.
|
|
19
|
+
"description": "Bits-per-status override. Omit or set null to follow STATUS_BITS.",
|
|
20
20
|
"anyOf": [
|
|
21
21
|
{
|
|
22
22
|
"anyOf": [
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
]
|
|
45
45
|
},
|
|
46
46
|
"ttl": {
|
|
47
|
-
"description": "JWT TTL override in seconds.
|
|
47
|
+
"description": "JWT TTL override in seconds. Omit or set null to follow STATUS_TTL.",
|
|
48
48
|
"anyOf": [
|
|
49
49
|
{
|
|
50
50
|
"type": "integer",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
]
|
|
58
58
|
},
|
|
59
59
|
"immediateUpdate": {
|
|
60
|
-
"description": "Immediate regeneration toggle.
|
|
60
|
+
"description": "Immediate regeneration toggle. Omit or set null to follow STATUS_IMMEDIATE_UPDATE.",
|
|
61
61
|
"type": [
|
|
62
62
|
"boolean",
|
|
63
63
|
"null"
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"enableAggregation": {
|
|
67
|
-
"description": "Aggregation URI toggle.
|
|
67
|
+
"description": "Aggregation URI toggle. Omit or set null to follow STATUS_ENABLE_AGGREGATION.",
|
|
68
68
|
"type": [
|
|
69
69
|
"boolean",
|
|
70
70
|
"null"
|
|
@@ -87,6 +87,26 @@
|
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
89
|
"additionalProperties": false
|
|
90
|
+
},
|
|
91
|
+
"defaultKeyChains": {
|
|
92
|
+
"description": "The tenant's key chain per usage type, used where no configuration names one. Replaces the stored entries; omit to keep them, or set to null to remove them.",
|
|
93
|
+
"anyOf": [
|
|
94
|
+
{
|
|
95
|
+
"type": "object",
|
|
96
|
+
"properties": {
|
|
97
|
+
"access": {
|
|
98
|
+
"description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
|
|
99
|
+
"type": "string",
|
|
100
|
+
"minLength": 1
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"additionalProperties": false,
|
|
104
|
+
"description": "The tenant's key chain per usage type, used where no configuration names one. A usage type without an entry uses a key chain picked by rule."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"type": "null"
|
|
108
|
+
}
|
|
109
|
+
]
|
|
90
110
|
}
|
|
91
111
|
},
|
|
92
112
|
"additionalProperties": false,
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"ConfigDocumentMetadata.schema.json",
|
|
7
7
|
"CreateAttributeProviderDto.schema.json",
|
|
8
8
|
"CreateClientDto.schema.json",
|
|
9
|
+
"CreateFederationTrustAnchorDto.schema.json",
|
|
9
10
|
"CreateRegistrarConfigDto.schema.json",
|
|
10
11
|
"CreateStatusListDto.schema.json",
|
|
11
12
|
"CreateTenantDto.schema.json",
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
"CredentialConfigFile.schema.json",
|
|
15
16
|
"DCQL.schema.json",
|
|
16
17
|
"EmbeddedDisclosurePolicy.schema.json",
|
|
18
|
+
"FederationTrustAnchorConfigFile.schema.json",
|
|
17
19
|
"ImportTenantDto.schema.json",
|
|
18
20
|
"IssuanceConfig.schema.json",
|
|
19
21
|
"IssuanceConfigFile.schema.json",
|
|
@@ -38,6 +40,7 @@
|
|
|
38
40
|
"TrustListCreateDto.schema.json",
|
|
39
41
|
"UpdateAttributeProviderDto.schema.json",
|
|
40
42
|
"UpdateClientDto.schema.json",
|
|
43
|
+
"UpdateFederationTrustAnchorDto.schema.json",
|
|
41
44
|
"UpdateStatusListConfigDto.schema.json",
|
|
42
45
|
"UpdateStatusListDto.schema.json",
|
|
43
46
|
"UpdateTenantDto.schema.json",
|