@eudiplo/cli 9.1.0-main.ec92b92 → 9.1.0-main.f4735f2
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/config/portability/upgrade.d.ts.map +1 -1
- package/dist/commands/config/portability/upgrade.js +2 -7
- package/dist/commands/config/portability/upgrade.js.map +1 -1
- package/dist/commands/config/validate/registry.json +11 -0
- package/dist/index.js +10357 -2249
- package/package.json +4 -4
- package/templates/demo-config/key-chains/status-list.json +3 -3
- package/templates/schemas/CredentialConfigCreate.schema.json +236 -6
- package/templates/schemas/CredentialConfigFile.schema.json +797 -1
- package/templates/schemas/ImportTenantDto.schema.json +0 -5
- package/templates/schemas/KeyChainDefaultsConfigFile.schema.json +65 -0
- package/templates/schemas/TenantConfigFile.schema.json +266 -7
- package/templates/schemas/UpdateTenantDto.schema.json +0 -12
- package/templates/schemas.manifest.json +1 -0
|
@@ -81,11 +81,6 @@
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"additionalProperties": false
|
|
84
|
-
},
|
|
85
|
-
"defaultAccessKeyChainId": {
|
|
86
|
-
"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.",
|
|
87
|
-
"type": "string",
|
|
88
|
-
"minLength": 1
|
|
89
84
|
}
|
|
90
85
|
},
|
|
91
86
|
"required": [
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "./KeyChainDefaultsConfigFile.schema.json",
|
|
4
|
+
"title": "KeyChainDefaultsConfigFile",
|
|
5
|
+
"description": "Configuration file identified by its $schema URL.",
|
|
6
|
+
"oneOf": [
|
|
7
|
+
{
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"const": "https://eudiplo.dev/schemas/v1/KeyChainDefaultsConfigFile.schema.json"
|
|
13
|
+
},
|
|
14
|
+
"metadata": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"generation": {
|
|
18
|
+
"type": "integer",
|
|
19
|
+
"minimum": 1,
|
|
20
|
+
"maximum": 9007199254740991
|
|
21
|
+
},
|
|
22
|
+
"ownership": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"unmanaged",
|
|
26
|
+
"file-managed"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
},
|
|
32
|
+
"spec": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"properties": {
|
|
35
|
+
"access": {
|
|
36
|
+
"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.",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"minLength": 1
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"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."
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"required": [
|
|
46
|
+
"$schema",
|
|
47
|
+
"metadata",
|
|
48
|
+
"spec"
|
|
49
|
+
],
|
|
50
|
+
"additionalProperties": false
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"access": {
|
|
56
|
+
"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.",
|
|
57
|
+
"type": "string",
|
|
58
|
+
"minLength": 1
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"additionalProperties": false,
|
|
62
|
+
"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."
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
}
|
|
@@ -5,6 +5,258 @@
|
|
|
5
5
|
"description": "Configuration file identified by its $schema URL.",
|
|
6
6
|
"oneOf": [
|
|
7
7
|
{
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"const": "https://eudiplo.dev/schemas/v4/TenantConfigFile.schema.json"
|
|
13
|
+
},
|
|
14
|
+
"metadata": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"generation": {
|
|
18
|
+
"type": "integer",
|
|
19
|
+
"minimum": 1,
|
|
20
|
+
"maximum": 9007199254740991
|
|
21
|
+
},
|
|
22
|
+
"ownership": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"enum": [
|
|
25
|
+
"unmanaged",
|
|
26
|
+
"file-managed"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": false
|
|
31
|
+
},
|
|
32
|
+
"spec": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"properties": {
|
|
35
|
+
"name": {
|
|
36
|
+
"default": "EUDIPLO",
|
|
37
|
+
"description": "Display name of the tenant.",
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1
|
|
40
|
+
},
|
|
41
|
+
"description": {
|
|
42
|
+
"description": "Optional tenant description.",
|
|
43
|
+
"type": "string",
|
|
44
|
+
"minLength": 1
|
|
45
|
+
},
|
|
46
|
+
"sessionConfig": {
|
|
47
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
48
|
+
"type": "object",
|
|
49
|
+
"properties": {
|
|
50
|
+
"ttlSeconds": {
|
|
51
|
+
"description": "Session time-to-live in seconds.",
|
|
52
|
+
"type": "integer",
|
|
53
|
+
"minimum": 60,
|
|
54
|
+
"maximum": 9007199254740991
|
|
55
|
+
},
|
|
56
|
+
"cleanupMode": {
|
|
57
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"enum": [
|
|
60
|
+
"full",
|
|
61
|
+
"anonymize"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"additionalProperties": false
|
|
66
|
+
},
|
|
67
|
+
"statusListConfig": {
|
|
68
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
69
|
+
"type": "object",
|
|
70
|
+
"properties": {
|
|
71
|
+
"capacity": {
|
|
72
|
+
"description": "Default status list capacity.",
|
|
73
|
+
"type": "integer",
|
|
74
|
+
"minimum": 100,
|
|
75
|
+
"maximum": 9007199254740991
|
|
76
|
+
},
|
|
77
|
+
"bits": {
|
|
78
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
79
|
+
"anyOf": [
|
|
80
|
+
{
|
|
81
|
+
"type": "number",
|
|
82
|
+
"const": 1
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"type": "number",
|
|
86
|
+
"const": 2
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"type": "number",
|
|
90
|
+
"const": 4
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"type": "number",
|
|
94
|
+
"const": 8
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"ttl": {
|
|
99
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
100
|
+
"type": "integer",
|
|
101
|
+
"minimum": 60,
|
|
102
|
+
"maximum": 9007199254740991
|
|
103
|
+
},
|
|
104
|
+
"immediateUpdate": {
|
|
105
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
106
|
+
"type": "boolean"
|
|
107
|
+
},
|
|
108
|
+
"enableAggregation": {
|
|
109
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
110
|
+
"type": "boolean"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"additionalProperties": false
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"required": [
|
|
117
|
+
"name"
|
|
118
|
+
],
|
|
119
|
+
"additionalProperties": false,
|
|
120
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"required": [
|
|
124
|
+
"$schema",
|
|
125
|
+
"metadata",
|
|
126
|
+
"spec"
|
|
127
|
+
],
|
|
128
|
+
"additionalProperties": false
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
132
|
+
"$id": "https://eudiplo.dev/schemas/v1/TenantConfigFile.schema.json",
|
|
133
|
+
"title": "TenantConfigFile",
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"$schema": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"const": "https://eudiplo.dev/schemas/v1/TenantConfigFile.schema.json"
|
|
139
|
+
},
|
|
140
|
+
"metadata": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"properties": {
|
|
143
|
+
"generation": {
|
|
144
|
+
"type": "integer",
|
|
145
|
+
"minimum": 1,
|
|
146
|
+
"maximum": 9007199254740991
|
|
147
|
+
},
|
|
148
|
+
"ownership": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"enum": [
|
|
151
|
+
"unmanaged",
|
|
152
|
+
"file-managed"
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
"additionalProperties": false
|
|
157
|
+
},
|
|
158
|
+
"spec": {
|
|
159
|
+
"type": "object",
|
|
160
|
+
"properties": {
|
|
161
|
+
"name": {
|
|
162
|
+
"default": "EUDIPLO",
|
|
163
|
+
"description": "Display name of the tenant.",
|
|
164
|
+
"type": "string",
|
|
165
|
+
"minLength": 1
|
|
166
|
+
},
|
|
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
|
|
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
|
|
202
|
+
},
|
|
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
|
+
]
|
|
223
|
+
},
|
|
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"
|
|
237
|
+
}
|
|
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",
|
|
8
260
|
"type": "object",
|
|
9
261
|
"properties": {
|
|
10
262
|
"$schema": {
|
|
@@ -134,13 +386,13 @@
|
|
|
134
386
|
},
|
|
135
387
|
{
|
|
136
388
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
137
|
-
"$id": "https://eudiplo.dev/schemas/
|
|
389
|
+
"$id": "https://eudiplo.dev/schemas/v3/TenantConfigFile.schema.json",
|
|
138
390
|
"title": "TenantConfigFile",
|
|
139
391
|
"type": "object",
|
|
140
392
|
"properties": {
|
|
141
393
|
"$schema": {
|
|
142
394
|
"type": "string",
|
|
143
|
-
"const": "https://eudiplo.dev/schemas/
|
|
395
|
+
"const": "https://eudiplo.dev/schemas/v3/TenantConfigFile.schema.json"
|
|
144
396
|
},
|
|
145
397
|
"metadata": {
|
|
146
398
|
"type": "object",
|
|
@@ -242,6 +494,18 @@
|
|
|
242
494
|
}
|
|
243
495
|
},
|
|
244
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."
|
|
245
509
|
}
|
|
246
510
|
},
|
|
247
511
|
"required": [
|
|
@@ -340,11 +604,6 @@
|
|
|
340
604
|
}
|
|
341
605
|
},
|
|
342
606
|
"additionalProperties": false
|
|
343
|
-
},
|
|
344
|
-
"defaultAccessKeyChainId": {
|
|
345
|
-
"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.",
|
|
346
|
-
"type": "string",
|
|
347
|
-
"minLength": 1
|
|
348
607
|
}
|
|
349
608
|
},
|
|
350
609
|
"required": [
|
|
@@ -87,18 +87,6 @@
|
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
89
|
"additionalProperties": false
|
|
90
|
-
},
|
|
91
|
-
"defaultAccessKeyChainId": {
|
|
92
|
-
"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. Omit to keep the current value or set to null to remove it.",
|
|
93
|
-
"anyOf": [
|
|
94
|
-
{
|
|
95
|
-
"type": "string",
|
|
96
|
-
"minLength": 1
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"type": "null"
|
|
100
|
-
}
|
|
101
|
-
]
|
|
102
90
|
}
|
|
103
91
|
},
|
|
104
92
|
"additionalProperties": false,
|