@eudiplo/cli 9.1.0-main.ea0dcd8 → 9.1.0-main.ec92b92

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/index.js CHANGED
@@ -15091,7 +15091,7 @@ function unzipSync(data, opts) {
15091
15091
 
15092
15092
  // ../../packages/eudiplo-config-format/dist/config-format.js
15093
15093
  var CONFIG_FORMATS = {
15094
- Tenant: { slug: "tenant", file: "TenantConfigFile", version: 1 },
15094
+ Tenant: { slug: "tenant", file: "TenantConfigFile", version: 2 },
15095
15095
  Client: { slug: "client", file: "ClientConfigFile", version: 2 },
15096
15096
  KmsConfig: { slug: "kms-config", file: "KmsConfigFile", version: 2 },
15097
15097
  KeyChain: { slug: "key-chain", file: "KeyChainConfigFile", version: 3 },
@@ -15165,6 +15165,8 @@ function bareFileVersion(kind, spec) {
15165
15165
  }
15166
15166
  if (kind === "RegistrarConfig")
15167
15167
  return "relyingPartyContact" in spec ? 2 : 1;
15168
+ if (kind === "Tenant")
15169
+ return "defaultAccessKeyChainId" in spec ? 2 : 1;
15168
15170
  if (kind === "KmsConfig") {
15169
15171
  const providers = Array.isArray(spec.providers) ? spec.providers : [];
15170
15172
  return providers.some((provider) => typeof provider === "object" && provider !== null && ("algorithms" in provider || "defaultAlgorithm" in provider)) ? 2 : 1;
@@ -15304,6 +15306,16 @@ var CONFIG_MIGRATIONS = [
15304
15306
  // as before.
15305
15307
  migrate: (spec) => ({ spec })
15306
15308
  },
15309
+ {
15310
+ id: "tenant-v2-default-access-key-chain",
15311
+ kind: "Tenant",
15312
+ from: 1,
15313
+ to: 2,
15314
+ // v2 only adds the optional defaultAccessKeyChainId: a v1 spec is a
15315
+ // valid v2 spec, whose tenant keeps picking its access key chain by
15316
+ // rule.
15317
+ migrate: (spec) => ({ spec })
15318
+ },
15307
15319
  {
15308
15320
  id: "key-chain-v2-type",
15309
15321
  kind: "KeyChain",
@@ -24581,6 +24593,137 @@ var CONFIG_SCHEMAS = [
24581
24593
  }
24582
24594
  }
24583
24595
  },
24596
+ {
24597
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
24598
+ "$id": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json",
24599
+ "title": "TenantConfigFile",
24600
+ "type": "object",
24601
+ "properties": {
24602
+ "$schema": {
24603
+ "type": "string",
24604
+ "const": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json"
24605
+ },
24606
+ "metadata": {
24607
+ "type": "object",
24608
+ "properties": {
24609
+ "generation": {
24610
+ "type": "integer",
24611
+ "minimum": 1,
24612
+ "maximum": 9007199254740991
24613
+ },
24614
+ "ownership": {
24615
+ "type": "string",
24616
+ "enum": [
24617
+ "unmanaged",
24618
+ "file-managed"
24619
+ ]
24620
+ }
24621
+ },
24622
+ "additionalProperties": false
24623
+ },
24624
+ "spec": {
24625
+ "type": "object",
24626
+ "properties": {
24627
+ "name": {
24628
+ "default": "EUDIPLO",
24629
+ "description": "Display name of the tenant.",
24630
+ "type": "string",
24631
+ "minLength": 1
24632
+ },
24633
+ "description": {
24634
+ "description": "Optional tenant description.",
24635
+ "type": "string",
24636
+ "minLength": 1
24637
+ },
24638
+ "sessionConfig": {
24639
+ "description": "Optional tenant-specific session storage configuration.",
24640
+ "type": "object",
24641
+ "properties": {
24642
+ "ttlSeconds": {
24643
+ "description": "Session time-to-live in seconds.",
24644
+ "type": "integer",
24645
+ "minimum": 60,
24646
+ "maximum": 9007199254740991
24647
+ },
24648
+ "cleanupMode": {
24649
+ "description": "Whether to fully delete or anonymize expired sessions.",
24650
+ "type": "string",
24651
+ "enum": [
24652
+ "full",
24653
+ "anonymize"
24654
+ ]
24655
+ }
24656
+ },
24657
+ "additionalProperties": false
24658
+ },
24659
+ "statusListConfig": {
24660
+ "description": "Optional tenant-specific status list defaults.",
24661
+ "type": "object",
24662
+ "properties": {
24663
+ "capacity": {
24664
+ "description": "Default status list capacity.",
24665
+ "type": "integer",
24666
+ "minimum": 100,
24667
+ "maximum": 9007199254740991
24668
+ },
24669
+ "bits": {
24670
+ "description": "Bits-per-status setting (1, 2, 4, or 8).",
24671
+ "anyOf": [
24672
+ {
24673
+ "type": "number",
24674
+ "const": 1
24675
+ },
24676
+ {
24677
+ "type": "number",
24678
+ "const": 2
24679
+ },
24680
+ {
24681
+ "type": "number",
24682
+ "const": 4
24683
+ },
24684
+ {
24685
+ "type": "number",
24686
+ "const": 8
24687
+ }
24688
+ ]
24689
+ },
24690
+ "ttl": {
24691
+ "description": "JWT TTL for status list tokens in seconds.",
24692
+ "type": "integer",
24693
+ "minimum": 60,
24694
+ "maximum": 9007199254740991
24695
+ },
24696
+ "immediateUpdate": {
24697
+ "description": "Regenerate status list JWTs immediately after status updates.",
24698
+ "type": "boolean"
24699
+ },
24700
+ "enableAggregation": {
24701
+ "description": "Include aggregation_uri in generated status list JWTs.",
24702
+ "type": "boolean"
24703
+ }
24704
+ },
24705
+ "additionalProperties": false
24706
+ },
24707
+ "defaultAccessKeyChainId": {
24708
+ "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.",
24709
+ "type": "string",
24710
+ "minLength": 1
24711
+ }
24712
+ },
24713
+ "required": [
24714
+ "name"
24715
+ ],
24716
+ "additionalProperties": false,
24717
+ "description": "Payload used when importing tenant metadata from config files."
24718
+ }
24719
+ },
24720
+ "required": [
24721
+ "$schema",
24722
+ "metadata",
24723
+ "spec"
24724
+ ],
24725
+ "additionalProperties": false
24726
+ },
24584
24727
  {
24585
24728
  "$schema": "https://json-schema.org/draft/2020-12/schema",
24586
24729
  "$id": "https://eudiplo.dev/schemas/v3/IssuanceConfigFile.schema.json",
@@ -30720,7 +30863,7 @@ function createDeploymentCommands(context, setExitCode) {
30720
30863
  // package.json
30721
30864
  var package_default = {
30722
30865
  name: "@eudiplo/cli",
30723
- version: "9.1.0-main.ea0dcd8",
30866
+ version: "9.1.0-main.ec92b92",
30724
30867
  description: "Deployment-aware command line tools for EUDIPLO",
30725
30868
  private: false,
30726
30869
  type: "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eudiplo/cli",
3
- "version": "9.1.0-main.ea0dcd8",
3
+ "version": "9.1.0-main.ec92b92",
4
4
  "description": "Deployment-aware command line tools for EUDIPLO",
5
5
  "private": false,
6
6
  "type": "module",
@@ -81,6 +81,11 @@
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
84
89
  }
85
90
  },
86
91
  "required": [
@@ -5,6 +5,137 @@
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/v2/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
+ "defaultAccessKeyChainId": {
116
+ "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.",
117
+ "type": "string",
118
+ "minLength": 1
119
+ }
120
+ },
121
+ "required": [
122
+ "name"
123
+ ],
124
+ "additionalProperties": false,
125
+ "description": "Payload used when importing tenant metadata from config files."
126
+ }
127
+ },
128
+ "required": [
129
+ "$schema",
130
+ "metadata",
131
+ "spec"
132
+ ],
133
+ "additionalProperties": false
134
+ },
135
+ {
136
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
137
+ "$id": "https://eudiplo.dev/schemas/v1/TenantConfigFile.schema.json",
138
+ "title": "TenantConfigFile",
8
139
  "type": "object",
9
140
  "properties": {
10
141
  "$schema": {
@@ -209,6 +340,11 @@
209
340
  }
210
341
  },
211
342
  "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
212
348
  }
213
349
  },
214
350
  "required": [
@@ -87,6 +87,18 @@
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
+ ]
90
102
  }
91
103
  },
92
104
  "additionalProperties": false,