@eudiplo/cli 9.1.0-main.c121f07 → 9.1.0-main.cd87b41
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 +7 -8
- 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 +21 -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 +17843 -5289
- 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 +6 -5
- 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/CredentialConfigCreate.schema.json +236 -6
- package/templates/schemas/CredentialConfigFile.schema.json +797 -1
- package/templates/schemas/FederationTrustAnchorConfigFile.schema.json +60 -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/KeyChainDefaultsConfigFile.schema.json +65 -0
- 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 +334 -64
- 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.manifest.json +4 -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/v4/TenantConfigFile.schema.json"
|
|
10
13
|
},
|
|
11
14
|
"metadata": {
|
|
12
15
|
"type": "object",
|
|
@@ -125,106 +128,271 @@
|
|
|
125
128
|
"additionalProperties": false
|
|
126
129
|
},
|
|
127
130
|
{
|
|
131
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
132
|
+
"$id": "https://eudiplo.dev/schemas/v1/TenantConfigFile.schema.json",
|
|
133
|
+
"title": "TenantConfigFile",
|
|
128
134
|
"type": "object",
|
|
129
135
|
"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.",
|
|
136
|
+
"$schema": {
|
|
138
137
|
"type": "string",
|
|
139
|
-
"
|
|
138
|
+
"const": "https://eudiplo.dev/schemas/v1/TenantConfigFile.schema.json"
|
|
140
139
|
},
|
|
141
|
-
"
|
|
142
|
-
"description": "Optional tenant-specific session storage configuration.",
|
|
140
|
+
"metadata": {
|
|
143
141
|
"type": "object",
|
|
144
142
|
"properties": {
|
|
145
|
-
"
|
|
146
|
-
"description": "Session time-to-live in seconds.",
|
|
143
|
+
"generation": {
|
|
147
144
|
"type": "integer",
|
|
148
|
-
"minimum":
|
|
145
|
+
"minimum": 1,
|
|
149
146
|
"maximum": 9007199254740991
|
|
150
147
|
},
|
|
151
|
-
"
|
|
152
|
-
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
148
|
+
"ownership": {
|
|
153
149
|
"type": "string",
|
|
154
150
|
"enum": [
|
|
155
|
-
"
|
|
156
|
-
"
|
|
151
|
+
"unmanaged",
|
|
152
|
+
"file-managed"
|
|
157
153
|
]
|
|
158
154
|
}
|
|
159
155
|
},
|
|
160
156
|
"additionalProperties": false
|
|
161
157
|
},
|
|
162
|
-
"
|
|
163
|
-
"description": "Optional tenant-specific status list defaults.",
|
|
158
|
+
"spec": {
|
|
164
159
|
"type": "object",
|
|
165
160
|
"properties": {
|
|
166
|
-
"
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
161
|
+
"name": {
|
|
162
|
+
"default": "EUDIPLO",
|
|
163
|
+
"description": "Display name of the tenant.",
|
|
164
|
+
"type": "string",
|
|
165
|
+
"minLength": 1
|
|
171
166
|
},
|
|
172
|
-
"
|
|
173
|
-
"description": "
|
|
174
|
-
"
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
167
|
+
"description": {
|
|
168
|
+
"description": "Optional tenant description.",
|
|
169
|
+
"type": "string",
|
|
170
|
+
"minLength": 1
|
|
171
|
+
},
|
|
172
|
+
"sessionConfig": {
|
|
173
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
174
|
+
"type": "object",
|
|
175
|
+
"properties": {
|
|
176
|
+
"ttlSeconds": {
|
|
177
|
+
"description": "Session time-to-live in seconds.",
|
|
178
|
+
"type": "integer",
|
|
179
|
+
"minimum": 60,
|
|
180
|
+
"maximum": 9007199254740991
|
|
178
181
|
},
|
|
179
|
-
{
|
|
180
|
-
"
|
|
181
|
-
"
|
|
182
|
+
"cleanupMode": {
|
|
183
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
184
|
+
"type": "string",
|
|
185
|
+
"enum": [
|
|
186
|
+
"full",
|
|
187
|
+
"anonymize"
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"additionalProperties": false
|
|
192
|
+
},
|
|
193
|
+
"statusListConfig": {
|
|
194
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
195
|
+
"type": "object",
|
|
196
|
+
"properties": {
|
|
197
|
+
"capacity": {
|
|
198
|
+
"description": "Default status list capacity.",
|
|
199
|
+
"type": "integer",
|
|
200
|
+
"minimum": 100,
|
|
201
|
+
"maximum": 9007199254740991
|
|
182
202
|
},
|
|
183
|
-
{
|
|
184
|
-
"
|
|
185
|
-
"
|
|
203
|
+
"bits": {
|
|
204
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
205
|
+
"anyOf": [
|
|
206
|
+
{
|
|
207
|
+
"type": "number",
|
|
208
|
+
"const": 1
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"type": "number",
|
|
212
|
+
"const": 2
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"type": "number",
|
|
216
|
+
"const": 4
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"type": "number",
|
|
220
|
+
"const": 8
|
|
221
|
+
}
|
|
222
|
+
]
|
|
186
223
|
},
|
|
187
|
-
{
|
|
188
|
-
"
|
|
189
|
-
"
|
|
224
|
+
"ttl": {
|
|
225
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
226
|
+
"type": "integer",
|
|
227
|
+
"minimum": 60,
|
|
228
|
+
"maximum": 9007199254740991
|
|
229
|
+
},
|
|
230
|
+
"immediateUpdate": {
|
|
231
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
232
|
+
"type": "boolean"
|
|
233
|
+
},
|
|
234
|
+
"enableAggregation": {
|
|
235
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
236
|
+
"type": "boolean"
|
|
190
237
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
238
|
+
},
|
|
239
|
+
"additionalProperties": false
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
"required": [
|
|
243
|
+
"name"
|
|
244
|
+
],
|
|
245
|
+
"additionalProperties": false,
|
|
246
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
"required": [
|
|
250
|
+
"$schema",
|
|
251
|
+
"metadata",
|
|
252
|
+
"spec"
|
|
253
|
+
],
|
|
254
|
+
"additionalProperties": false
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
258
|
+
"$id": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json",
|
|
259
|
+
"title": "TenantConfigFile",
|
|
260
|
+
"type": "object",
|
|
261
|
+
"properties": {
|
|
262
|
+
"$schema": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"const": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json"
|
|
265
|
+
},
|
|
266
|
+
"metadata": {
|
|
267
|
+
"type": "object",
|
|
268
|
+
"properties": {
|
|
269
|
+
"generation": {
|
|
195
270
|
"type": "integer",
|
|
196
|
-
"minimum":
|
|
271
|
+
"minimum": 1,
|
|
197
272
|
"maximum": 9007199254740991
|
|
198
273
|
},
|
|
199
|
-
"
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
"type": "boolean"
|
|
274
|
+
"ownership": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"enum": [
|
|
277
|
+
"unmanaged",
|
|
278
|
+
"file-managed"
|
|
279
|
+
]
|
|
206
280
|
}
|
|
207
281
|
},
|
|
208
282
|
"additionalProperties": false
|
|
283
|
+
},
|
|
284
|
+
"spec": {
|
|
285
|
+
"type": "object",
|
|
286
|
+
"properties": {
|
|
287
|
+
"name": {
|
|
288
|
+
"default": "EUDIPLO",
|
|
289
|
+
"description": "Display name of the tenant.",
|
|
290
|
+
"type": "string",
|
|
291
|
+
"minLength": 1
|
|
292
|
+
},
|
|
293
|
+
"description": {
|
|
294
|
+
"description": "Optional tenant description.",
|
|
295
|
+
"type": "string",
|
|
296
|
+
"minLength": 1
|
|
297
|
+
},
|
|
298
|
+
"sessionConfig": {
|
|
299
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
300
|
+
"type": "object",
|
|
301
|
+
"properties": {
|
|
302
|
+
"ttlSeconds": {
|
|
303
|
+
"description": "Session time-to-live in seconds.",
|
|
304
|
+
"type": "integer",
|
|
305
|
+
"minimum": 60,
|
|
306
|
+
"maximum": 9007199254740991
|
|
307
|
+
},
|
|
308
|
+
"cleanupMode": {
|
|
309
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
310
|
+
"type": "string",
|
|
311
|
+
"enum": [
|
|
312
|
+
"full",
|
|
313
|
+
"anonymize"
|
|
314
|
+
]
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
"additionalProperties": false
|
|
318
|
+
},
|
|
319
|
+
"statusListConfig": {
|
|
320
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
321
|
+
"type": "object",
|
|
322
|
+
"properties": {
|
|
323
|
+
"capacity": {
|
|
324
|
+
"description": "Default status list capacity.",
|
|
325
|
+
"type": "integer",
|
|
326
|
+
"minimum": 100,
|
|
327
|
+
"maximum": 9007199254740991
|
|
328
|
+
},
|
|
329
|
+
"bits": {
|
|
330
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
331
|
+
"anyOf": [
|
|
332
|
+
{
|
|
333
|
+
"type": "number",
|
|
334
|
+
"const": 1
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"type": "number",
|
|
338
|
+
"const": 2
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"type": "number",
|
|
342
|
+
"const": 4
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"type": "number",
|
|
346
|
+
"const": 8
|
|
347
|
+
}
|
|
348
|
+
]
|
|
349
|
+
},
|
|
350
|
+
"ttl": {
|
|
351
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
352
|
+
"type": "integer",
|
|
353
|
+
"minimum": 60,
|
|
354
|
+
"maximum": 9007199254740991
|
|
355
|
+
},
|
|
356
|
+
"immediateUpdate": {
|
|
357
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
358
|
+
"type": "boolean"
|
|
359
|
+
},
|
|
360
|
+
"enableAggregation": {
|
|
361
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
362
|
+
"type": "boolean"
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
"additionalProperties": false
|
|
366
|
+
},
|
|
367
|
+
"defaultAccessKeyChainId": {
|
|
368
|
+
"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.",
|
|
369
|
+
"type": "string",
|
|
370
|
+
"minLength": 1
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
"required": [
|
|
374
|
+
"name"
|
|
375
|
+
],
|
|
376
|
+
"additionalProperties": false,
|
|
377
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
209
378
|
}
|
|
210
379
|
},
|
|
211
380
|
"required": [
|
|
212
|
-
"
|
|
381
|
+
"$schema",
|
|
382
|
+
"metadata",
|
|
383
|
+
"spec"
|
|
213
384
|
],
|
|
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": [
|
|
385
|
+
"additionalProperties": false
|
|
386
|
+
},
|
|
222
387
|
{
|
|
388
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
389
|
+
"$id": "https://eudiplo.dev/schemas/v3/TenantConfigFile.schema.json",
|
|
390
|
+
"title": "TenantConfigFile",
|
|
223
391
|
"type": "object",
|
|
224
392
|
"properties": {
|
|
225
393
|
"$schema": {
|
|
226
394
|
"type": "string",
|
|
227
|
-
"const": "https://eudiplo.dev/schemas/
|
|
395
|
+
"const": "https://eudiplo.dev/schemas/v3/TenantConfigFile.schema.json"
|
|
228
396
|
},
|
|
229
397
|
"metadata": {
|
|
230
398
|
"type": "object",
|
|
@@ -326,6 +494,18 @@
|
|
|
326
494
|
}
|
|
327
495
|
},
|
|
328
496
|
"additionalProperties": false
|
|
497
|
+
},
|
|
498
|
+
"defaultKeyChains": {
|
|
499
|
+
"type": "object",
|
|
500
|
+
"properties": {
|
|
501
|
+
"access": {
|
|
502
|
+
"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.",
|
|
503
|
+
"type": "string",
|
|
504
|
+
"minLength": 1
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
"additionalProperties": false,
|
|
508
|
+
"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."
|
|
329
509
|
}
|
|
330
510
|
},
|
|
331
511
|
"required": [
|
|
@@ -341,6 +521,96 @@
|
|
|
341
521
|
"spec"
|
|
342
522
|
],
|
|
343
523
|
"additionalProperties": false
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
"type": "object",
|
|
527
|
+
"properties": {
|
|
528
|
+
"name": {
|
|
529
|
+
"default": "EUDIPLO",
|
|
530
|
+
"description": "Display name of the tenant.",
|
|
531
|
+
"type": "string",
|
|
532
|
+
"minLength": 1
|
|
533
|
+
},
|
|
534
|
+
"description": {
|
|
535
|
+
"description": "Optional tenant description.",
|
|
536
|
+
"type": "string",
|
|
537
|
+
"minLength": 1
|
|
538
|
+
},
|
|
539
|
+
"sessionConfig": {
|
|
540
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
541
|
+
"type": "object",
|
|
542
|
+
"properties": {
|
|
543
|
+
"ttlSeconds": {
|
|
544
|
+
"description": "Session time-to-live in seconds.",
|
|
545
|
+
"type": "integer",
|
|
546
|
+
"minimum": 60,
|
|
547
|
+
"maximum": 9007199254740991
|
|
548
|
+
},
|
|
549
|
+
"cleanupMode": {
|
|
550
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
551
|
+
"type": "string",
|
|
552
|
+
"enum": [
|
|
553
|
+
"full",
|
|
554
|
+
"anonymize"
|
|
555
|
+
]
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
"additionalProperties": false
|
|
559
|
+
},
|
|
560
|
+
"statusListConfig": {
|
|
561
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
562
|
+
"type": "object",
|
|
563
|
+
"properties": {
|
|
564
|
+
"capacity": {
|
|
565
|
+
"description": "Default status list capacity.",
|
|
566
|
+
"type": "integer",
|
|
567
|
+
"minimum": 100,
|
|
568
|
+
"maximum": 9007199254740991
|
|
569
|
+
},
|
|
570
|
+
"bits": {
|
|
571
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
572
|
+
"anyOf": [
|
|
573
|
+
{
|
|
574
|
+
"type": "number",
|
|
575
|
+
"const": 1
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"type": "number",
|
|
579
|
+
"const": 2
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"type": "number",
|
|
583
|
+
"const": 4
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"type": "number",
|
|
587
|
+
"const": 8
|
|
588
|
+
}
|
|
589
|
+
]
|
|
590
|
+
},
|
|
591
|
+
"ttl": {
|
|
592
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
593
|
+
"type": "integer",
|
|
594
|
+
"minimum": 60,
|
|
595
|
+
"maximum": 9007199254740991
|
|
596
|
+
},
|
|
597
|
+
"immediateUpdate": {
|
|
598
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
599
|
+
"type": "boolean"
|
|
600
|
+
},
|
|
601
|
+
"enableAggregation": {
|
|
602
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
603
|
+
"type": "boolean"
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
"additionalProperties": false
|
|
607
|
+
}
|
|
608
|
+
},
|
|
609
|
+
"required": [
|
|
610
|
+
"name"
|
|
611
|
+
],
|
|
612
|
+
"additionalProperties": false,
|
|
613
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
344
614
|
}
|
|
345
615
|
]
|
|
346
616
|
}
|
|
@@ -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
|
+
}
|