@eudiplo/cli 7.2.0 → 7.3.0-main.b6ff9ed

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 (181) 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/index.js +0 -0
  109. package/dist/runtime.d.ts +2 -0
  110. package/dist/runtime.d.ts.map +1 -1
  111. package/dist/runtime.js +8 -1
  112. package/dist/runtime.js.map +1 -1
  113. package/dist/sea-assets.d.ts +4 -2
  114. package/dist/sea-assets.d.ts.map +1 -1
  115. package/dist/sea-assets.js +6 -3
  116. package/dist/sea-assets.js.map +1 -1
  117. package/dist/services/cli-config.d.ts +2 -0
  118. package/dist/services/cli-config.d.ts.map +1 -1
  119. package/dist/services/cli-config.js +22 -1
  120. package/dist/services/cli-config.js.map +1 -1
  121. package/dist/services/compose-project.d.ts.map +1 -1
  122. package/dist/services/compose-project.js +14 -6
  123. package/dist/services/compose-project.js.map +1 -1
  124. package/dist/services/deployment-drivers.d.ts +7 -0
  125. package/dist/services/deployment-drivers.d.ts.map +1 -1
  126. package/dist/services/deployment-drivers.js +79 -16
  127. package/dist/services/deployment-drivers.js.map +1 -1
  128. package/dist/services/diagnostics.d.ts.map +1 -1
  129. package/dist/services/diagnostics.js +3 -1
  130. package/dist/services/diagnostics.js.map +1 -1
  131. package/dist/services/instance-selection.d.ts.map +1 -1
  132. package/dist/services/instance-selection.js.map +1 -1
  133. package/dist/services/project-directory.d.ts.map +1 -1
  134. package/dist/services/project-directory.js.map +1 -1
  135. package/dist/types.d.ts.map +1 -1
  136. package/package.json +10 -8
  137. package/templates/demo-config/issuance/issuance.json +20 -12
  138. package/templates/demo-config/key-chains/access.json +13 -2
  139. package/templates/demo-config/key-chains/attestation.json +14 -3
  140. package/templates/demo-config/key-chains/status-list.json +15 -4
  141. package/templates/demo-config/key-chains/trust-list.json +13 -2
  142. package/templates/demo-config/presentation/age-over-18.json +46 -53
  143. package/templates/demo-config/presentation/pid.json +44 -0
  144. package/templates/demo-config.manifest.json +1 -0
  145. package/templates/schemas/AttributeProviderAuth.schema.json +60 -0
  146. package/templates/schemas/AttributeProviderConfigFile.schema.json +37 -0
  147. package/templates/schemas/CertImportDto.schema.json +35 -0
  148. package/templates/schemas/ClientConfigFile.schema.json +37 -0
  149. package/templates/schemas/ConfigDocumentMetadata.schema.json +25 -0
  150. package/templates/schemas/CreateClientDto.schema.json +1 -0
  151. package/templates/schemas/CreateStatusListDto.schema.json +46 -0
  152. package/templates/schemas/CreateTenantDto.schema.json +117 -0
  153. package/templates/schemas/CredentialConfigFile.schema.json +37 -0
  154. package/templates/schemas/DCQL.schema.json +401 -0
  155. package/templates/schemas/EmbeddedDisclosurePolicy.schema.json +106 -0
  156. package/templates/schemas/ImportTenantDto.schema.json +69 -0
  157. package/templates/schemas/IssuanceConfigFile.schema.json +32 -0
  158. package/templates/schemas/KeyChainConfigFile.schema.json +476 -0
  159. package/templates/schemas/KeyChainCreateDto.schema.json +66 -0
  160. package/templates/schemas/KeyChainUpdateDto.schema.json +40 -0
  161. package/templates/schemas/KmsConfigFile.schema.json +37 -0
  162. package/templates/schemas/PresentationConfigFile.schema.json +32 -0
  163. package/templates/schemas/RegistrarConfigFile.schema.json +37 -0
  164. package/templates/schemas/RotationPolicyCreateDto.schema.json +28 -0
  165. package/templates/schemas/RotationPolicyUpdateDto.schema.json +25 -0
  166. package/templates/schemas/SessionStorageConfig.schema.json +24 -0
  167. package/templates/schemas/StatusListConfig.schema.json +51 -0
  168. package/templates/schemas/StatusListConfigFile.schema.json +37 -0
  169. package/templates/schemas/TenantConfigFile.schema.json +230 -0
  170. package/templates/schemas/TransactionData.schema.json +24 -0
  171. package/templates/schemas/TrustListConfigFile.schema.json +37 -0
  172. package/templates/schemas/UpdateAttributeProviderDto.schema.json +93 -0
  173. package/templates/schemas/UpdateClientDto.schema.json +63 -0
  174. package/templates/schemas/UpdateStatusListConfigDto.schema.json +85 -0
  175. package/templates/schemas/UpdateStatusListDto.schema.json +33 -0
  176. package/templates/schemas/UpdateTenantDto.schema.json +96 -0
  177. package/templates/schemas/UpdateWebhookEndpointDto.schema.json +93 -0
  178. package/templates/schemas/VCT.schema.json +37 -0
  179. package/templates/schemas/WebhookConfig.schema.json +80 -0
  180. package/templates/schemas/WebhookEndpointConfigFile.schema.json +37 -0
  181. package/templates/schemas.manifest.json +35 -1
@@ -1,17 +1,28 @@
1
1
  {
2
+ "apiVersion": "eudiplo.io/key-chain/v2",
3
+ "kind": "KeyChain",
4
+ "metadata": {
5
+ "id": "2f71c235-87e2-43c9-b572-739a3164ce95",
6
+ "generation": 1
7
+ },
8
+ "spec": {
2
9
  "id": "2f71c235-87e2-43c9-b572-739a3164ce95",
3
10
  "description": "Access Certificate",
4
11
  "usageType": "access",
5
- "key": {
12
+ "keySource": {
13
+ "type": "private-jwk",
14
+ "jwk": {
6
15
  "kty": "EC",
7
16
  "x": "XhUejp-xQ_Dk0dRpg8PBFr0viFpdI_nmErMWjzOnOEg",
8
17
  "y": "TfvSjR63Ohj8HpiBkVm0FaieKmahFNJC4IfXZtL14PQ",
9
18
  "crv": "P-256",
10
19
  "d": "878XDi2iZi860bluRn4j1Ib3zlzYIaUN2q1qklhmA90",
11
20
  "kid": "2f71c235-87e2-43c9-b572-739a3164ce95-active"
21
+ }
12
22
  },
13
23
  "kmsProvider": "db",
14
24
  "crt": [
15
- "-----BEGIN CERTIFICATE-----\nMIIBqDCCAU6gAwIBAgIRAKvmiMRB5R7lA5jLGSWb+t0wCgYIKoZIzj0EAwIwIzEL\nMAkGA1UEBhMCREUxFDASBgNVBAMTC0RlbW8gVGVuYW50MB4XDTI2MDMwOTExMDM1\nN1oXDTI3MDMwOTExMDM1N1owIzELMAkGA1UEBhMCREUxFDASBgNVBAMTC0RlbW8g\nVGVuYW50MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXhUejp+xQ/Dk0dRpg8PB\nFr0viFpdI/nmErMWjzOnOEhN+9KNHrc6GPwemIGRWbQVqJ4qZqEU0kLgh9dm0vXg\n9KNjMGEwIgYDVR0RBBswGYIXc2VydmljZS5ldWRpLXdhbGxldC5kZXYwDAYDVR0T\nAQH/BAIwADAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0OBBYEFJ/qrJtPiM+jlZzxig8f\nVugUZLHYMAoGCCqGSM49BAMCA0gAMEUCIQDxZTfmEZ6XXETPk5iQHRqpPmhJYMpB\n3KZ/XzNBTbC8OAIgZwa4rpELbnfCweRNhC0JjZ/sVZl1TPgBd11N56l7r34=\n-----END CERTIFICATE-----"
25
+ "-----BEGIN CERTIFICATE-----\nMIIBqDCCAU6gAwIBAgIRAKvmiMRB5R7lA5jLGSWb+t0wCgYIKoZIzj0EAwIwIzEL\nMAkGA1UEBhMCREUxFDASBgNVBAMTC0RlbW8gVGVuYW50MB4XDTI2MDMwOTExMDM1\nN1oXDTI3MDMwOTExMDM1N1owIzELMAkGA1UEBhMCREUxFDASBgNVBAMTC0RlbW8g\nVGVuYW50MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXhUejp+xQ/Dk0dRpg8PB\nFr0viFpdI/nmErMWjzOnOEhN+9KNHrc6GPwemIGRWbQVqJ4qZqEU0kLgh9dm0vXg\n9KNjMGEwIgYDVR0RBBswGYIXc2VydmljZS5ldWRpLXdhbGxldC5kZXYwDAYDVR0T\nAQH/BAIwADAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0OBBYEFJ/qrJtPiM+jlZzxig8f\nVugUZLHYMAoGCCqGSM49BAMCA0gAMEUCIQDxZTfmEZ6XXETPk5iQHRqpPmhJYMpB\n3KZ/XzNBTbC8OAIgZwa4rpELbnfCweRNhC0JjZ/sVZl1TPgBd11N56l7r34=\n-----END CERTIFICATE-----"
16
26
  ]
27
+ }
17
28
  }
@@ -1,18 +1,29 @@
1
1
  {
2
+ "apiVersion": "eudiplo.io/key-chain/v2",
3
+ "kind": "KeyChain",
4
+ "metadata": {
5
+ "id": "dbb65456-c358-46c1-bb5b-c777ef72c1d3",
6
+ "generation": 1
7
+ },
8
+ "spec": {
2
9
  "id": "dbb65456-c358-46c1-bb5b-c777ef72c1d3",
3
10
  "description": "key for signing",
4
11
  "usageType": "attestation",
5
- "key": {
12
+ "keySource": {
13
+ "type": "private-jwk",
14
+ "jwk": {
6
15
  "crv": "P-256",
7
16
  "d": "oXPLTk02Mq9n8GfOTQ8hdoe3ENkNoN_Y2ymLnUmnbV0",
8
17
  "kty": "EC",
9
18
  "x": "HHkkbUgKSkkqXmL8utl-TLWIg8CYQS4WPJ8j_nO44Yw",
10
19
  "y": "1NJY0LT3mEuucLQCZJWNrA7fVW8ypR4Zf5cuu85NjSw",
11
20
  "alg": "ES256"
21
+ }
12
22
  },
13
23
  "kmsProvider": "db",
14
24
  "rotationPolicy": {
15
- "certValidityDays": 30,
16
- "enabled": true
25
+ "certValidityDays": 30,
26
+ "enabled": true
17
27
  }
28
+ }
18
29
  }
@@ -1,18 +1,29 @@
1
1
  {
2
+ "apiVersion": "eudiplo.io/key-chain/v2",
3
+ "kind": "KeyChain",
4
+ "metadata": {
5
+ "id": "dbb65456-c358-46c1-bb5b-c777ef72c1d4",
6
+ "generation": 1
7
+ },
8
+ "spec": {
2
9
  "id": "dbb65456-c358-46c1-bb5b-c777ef72c1d4",
3
10
  "description": "key for status list signing",
4
11
  "usageType": "statusList",
5
- "key": {
12
+ "keySource": {
13
+ "type": "private-jwk",
14
+ "jwk": {
6
15
  "crv": "P-256",
7
16
  "d": "oXPLTk02Mq9n8GfOTQ8hdoe3ENkNoN_Y2ymLnUmnbV0",
8
17
  "kty": "EC",
9
18
  "x": "HHkkbUgKSkkqXmL8utl-TLWIg8CYQS4WPJ8j_nO44Yw",
10
19
  "y": "1NJY0LT3mEuucLQCZJWNrA7fVW8ypR4Zf5cuu85NjSw",
11
20
  "alg": "ES256"
21
+ }
12
22
  },
13
23
  "kmsProvider": "db",
14
24
  "rotationPolicy": {
15
- "certValidityDays": 30,
16
- "enabled": true
25
+ "certValidityDays": 30,
26
+ "enabled": true
17
27
  }
18
- }
28
+ }
29
+ }
@@ -1,14 +1,25 @@
1
1
  {
2
+ "apiVersion": "eudiplo.io/key-chain/v2",
3
+ "kind": "KeyChain",
4
+ "metadata": {
5
+ "id": "570852d7-7e7f-40af-a0e3-a6ebffd75ed0",
6
+ "generation": 1
7
+ },
8
+ "spec": {
2
9
  "id": "570852d7-7e7f-40af-a0e3-a6ebffd75ed0",
3
10
  "description": "used to sign trust lists",
4
11
  "usageType": "trustList",
5
- "key": {
12
+ "keySource": {
13
+ "type": "private-jwk",
14
+ "jwk": {
6
15
  "crv": "P-256",
7
16
  "d": "_iZzAnnFH_HsBzDG_hk8qpTQmh_sCwhPpvebVNjhe2A",
8
17
  "kty": "EC",
9
18
  "x": "MhpvX9dEM8NsXM-c6474d2uHrPRWrVD4WZGtVvxfQhk",
10
19
  "y": "q_uS4tQZSKu22_YgTlEFjuNdz-e-uNHzW1-x_VLicco",
11
20
  "alg": "ES256"
21
+ }
12
22
  },
13
23
  "kmsProvider": "db"
14
- }
24
+ }
25
+ }
@@ -1,64 +1,57 @@
1
1
  {
2
+ "apiVersion": "eudiplo.io/presentation-config/v2",
3
+ "kind": "PresentationConfig",
4
+ "metadata": {
5
+ "id": "age-over-18",
6
+ "generation": 1
7
+ },
8
+ "spec": {
2
9
  "id": "age-over-18",
3
10
  "description": "Age Over 18 Verification - Proves user is 18+ without revealing exact birthdate",
4
11
  "dcql_query": {
5
- "credentials": [
12
+ "credentials": [
13
+ {
14
+ "id": "pid-sd-jwt",
15
+ "format": "dc+sd-jwt",
16
+ "meta": {
17
+ "vct_values": ["urn:eudi:pid:de:1"]
18
+ },
19
+ "claims": [
6
20
  {
7
- "id": "pid-sd-jwt",
8
- "format": "dc+sd-jwt",
9
- "meta": {
10
- "vct_values": [
11
- "urn:eudi:pid:de:1"
12
- ]
13
- },
14
- "claims": [
15
- {
16
- "path": [
17
- "age_equal_or_over",
18
- "18"
19
- ]
20
- }
21
- ]
22
- },
21
+ "path": ["age_equal_or_over", "18"]
22
+ }
23
+ ]
24
+ },
25
+ {
26
+ "id": "pid-mso-mdoc",
27
+ "format": "mso_mdoc",
28
+ "meta": {
29
+ "doctype_value": "eu.europa.ec.eudi.pid.1"
30
+ },
31
+ "claims": [
23
32
  {
24
- "id": "pid-mso-mdoc",
25
- "format": "mso_mdoc",
26
- "meta": {
27
- "doctype_value": "eu.europa.ec.eudi.pid.1"
28
- },
29
- "claims": [
30
- {
31
- "path": [
32
- "eu.europa.ec.eudi.pid.1",
33
- "age_over_18"
34
- ],
35
- "intent_to_retain": false
36
- }
37
- ],
38
- "trusted_authorities": [
39
- {
40
- "type": "etsi_tl",
41
- "values": [
42
- {
43
- "trustListId": "580831bc-ef11-43f4-a3be-a2b6bf1b29a3"
44
- }
45
- ]
46
- }
47
- ]
33
+ "path": ["eu.europa.ec.eudi.pid.1", "age_over_18"],
34
+ "intent_to_retain": false
48
35
  }
49
- ],
50
- "credential_sets": [
36
+ ],
37
+ "trusted_authorities": [
51
38
  {
52
- "options": [
53
- [
54
- "pid-sd-jwt"
55
- ],
56
- [
57
- "pid-mso-mdoc"
58
- ]
59
- ]
39
+ "type": "etsi_tl",
40
+ "values": [
41
+ {
42
+ "trustListId": "580831bc-ef11-43f4-a3be-a2b6bf1b29a3"
43
+ }
44
+ ]
60
45
  }
61
- ]
46
+ ]
47
+ }
48
+ ],
49
+ "credential_sets": [
50
+ {
51
+ "options": [["pid-sd-jwt"], ["pid-mso-mdoc"]]
52
+ }
53
+ ]
62
54
  },
63
55
  "lifeTime": 300
64
- }
56
+ }
57
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "apiVersion": "eudiplo.io/presentation-config/v2",
3
+ "kind": "PresentationConfig",
4
+ "metadata": {
5
+ "id": "pid",
6
+ "generation": 1
7
+ },
8
+ "spec": {
9
+ "id": "pid",
10
+ "description": "Presentation ID",
11
+ "dcql_query": {
12
+ "credentials": [
13
+ {
14
+ "id": "pid",
15
+ "format": "dc+sd-jwt",
16
+ "meta": {
17
+ "vct_values": [
18
+ "<TENANT_URL>/credentials-metadata/vct/pid"
19
+ ]
20
+ },
21
+ "claims": [
22
+ {
23
+ "path": [
24
+ "address",
25
+ "locality"
26
+ ]
27
+ }
28
+ ],
29
+ "trusted_authorities": [
30
+ {
31
+ "type": "etsi_tl",
32
+ "values": [
33
+ {
34
+ "trustListId": "580831bc-ef11-43f4-a3be-a2b6bf1b29a3"
35
+ }
36
+ ]
37
+ }
38
+ ]
39
+ }
40
+ ]
41
+ },
42
+ "webhookEndpointId": "notification"
43
+ }
44
+ }
@@ -18,6 +18,7 @@
18
18
  "key-chains/status-list.json",
19
19
  "key-chains/trust-list.json",
20
20
  "presentation/age-over-18.json",
21
+ "presentation/pid.json",
21
22
  "trust-lists/trustlist-580831bc-ef11-43f4-a3be-a2b6bf1b29a3-config.json",
22
23
  "webhook-endpoints/notification.json"
23
24
  ]
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "oneOf": [
4
+ {
5
+ "type": "object",
6
+ "properties": {
7
+ "type": {
8
+ "type": "string",
9
+ "const": "none",
10
+ "description": "Disable authentication for attribute provider calls."
11
+ }
12
+ },
13
+ "required": [
14
+ "type"
15
+ ],
16
+ "additionalProperties": false,
17
+ "description": "No authentication variant."
18
+ },
19
+ {
20
+ "type": "object",
21
+ "properties": {
22
+ "type": {
23
+ "type": "string",
24
+ "const": "apiKey",
25
+ "description": "Use API key authentication."
26
+ },
27
+ "config": {
28
+ "type": "object",
29
+ "properties": {
30
+ "headerName": {
31
+ "type": "string",
32
+ "minLength": 1,
33
+ "description": "HTTP header name carrying the API key."
34
+ },
35
+ "value": {
36
+ "type": "string",
37
+ "minLength": 1,
38
+ "description": "API key value."
39
+ }
40
+ },
41
+ "required": [
42
+ "headerName",
43
+ "value"
44
+ ],
45
+ "additionalProperties": false,
46
+ "description": "API key authentication settings."
47
+ }
48
+ },
49
+ "required": [
50
+ "type",
51
+ "config"
52
+ ],
53
+ "additionalProperties": false,
54
+ "description": "API key authentication variant."
55
+ }
56
+ ],
57
+ "description": "Authentication method used to call the attribute provider.",
58
+ "$id": "./AttributeProviderAuth.schema.json",
59
+ "title": "AttributeProviderAuth"
60
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "./AttributeProviderConfigFile.schema.json",
4
+ "title": "AttributeProviderConfigFile",
5
+ "description": "An attribute-provider configuration file in legacy payload or versioned-envelope form.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "./CreateAttributeProviderDto.schema.json"
9
+ },
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "apiVersion": {
14
+ "type": "string",
15
+ "const": "eudiplo.io/attribute-provider/v1"
16
+ },
17
+ "kind": {
18
+ "type": "string",
19
+ "const": "AttributeProvider"
20
+ },
21
+ "metadata": {
22
+ "$ref": "./ConfigDocumentMetadata.schema.json"
23
+ },
24
+ "spec": {
25
+ "$ref": "./CreateAttributeProviderDto.schema.json"
26
+ }
27
+ },
28
+ "required": [
29
+ "apiVersion",
30
+ "kind",
31
+ "metadata",
32
+ "spec"
33
+ ],
34
+ "additionalProperties": false
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "description": "Optional certificate id. If omitted, one may be generated.",
7
+ "type": "string",
8
+ "minLength": 1
9
+ },
10
+ "keyId": {
11
+ "description": "Optional key chain id associated with this certificate chain.",
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "description": {
16
+ "description": "Optional certificate description.",
17
+ "type": "string"
18
+ },
19
+ "crt": {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ },
26
+ "description": "Certificate chain entries, typically PEM-encoded certificates."
27
+ }
28
+ },
29
+ "required": [
30
+ "crt"
31
+ ],
32
+ "additionalProperties": false,
33
+ "$id": "./CertImportDto.schema.json",
34
+ "title": "CertImportDto"
35
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "./ClientConfigFile.schema.json",
4
+ "title": "ClientConfigFile",
5
+ "description": "A client configuration file in legacy payload or versioned-envelope form.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "./CreateClientDto.schema.json"
9
+ },
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "apiVersion": {
14
+ "type": "string",
15
+ "const": "eudiplo.io/client/v1"
16
+ },
17
+ "kind": {
18
+ "type": "string",
19
+ "const": "Client"
20
+ },
21
+ "metadata": {
22
+ "$ref": "./ConfigDocumentMetadata.schema.json"
23
+ },
24
+ "spec": {
25
+ "$ref": "./CreateClientDto.schema.json"
26
+ }
27
+ },
28
+ "required": [
29
+ "apiVersion",
30
+ "kind",
31
+ "metadata",
32
+ "spec"
33
+ ],
34
+ "additionalProperties": false
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "./ConfigDocumentMetadata.schema.json",
4
+ "title": "ConfigDocumentMetadata",
5
+ "type": "object",
6
+ "properties": {
7
+ "id": {
8
+ "type": "string",
9
+ "minLength": 1,
10
+ "description": "Stable resource identifier."
11
+ },
12
+ "generation": {
13
+ "type": "integer",
14
+ "minimum": 1,
15
+ "description": "Monotonically increasing configuration generation."
16
+ },
17
+ "ownership": {
18
+ "type": "string",
19
+ "enum": ["unmanaged", "file-managed"],
20
+ "description": "Requested ownership recorded when the document is applied."
21
+ }
22
+ },
23
+ "required": ["id"],
24
+ "additionalProperties": false
25
+ }
@@ -31,6 +31,7 @@
31
31
  "clients:manage",
32
32
  "users:manage",
33
33
  "tenants:manage",
34
+ "tenant:admin",
34
35
  "registrar:manage"
35
36
  ]
36
37
  },
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "credentialConfigurationId": {
6
+ "description": "Optional credential configuration binding.",
7
+ "type": "string",
8
+ "minLength": 1
9
+ },
10
+ "keyChainId": {
11
+ "description": "Optional key chain to sign the list with.",
12
+ "type": "string",
13
+ "minLength": 1
14
+ },
15
+ "bits": {
16
+ "description": "Optional bits-per-status value.",
17
+ "anyOf": [
18
+ {
19
+ "type": "number",
20
+ "const": 1
21
+ },
22
+ {
23
+ "type": "number",
24
+ "const": 2
25
+ },
26
+ {
27
+ "type": "number",
28
+ "const": 4
29
+ },
30
+ {
31
+ "type": "number",
32
+ "const": 8
33
+ }
34
+ ]
35
+ },
36
+ "capacity": {
37
+ "description": "Optional status list capacity.",
38
+ "type": "integer",
39
+ "minimum": 1000,
40
+ "maximum": 9007199254740991
41
+ }
42
+ },
43
+ "additionalProperties": false,
44
+ "$id": "./CreateStatusListDto.schema.json",
45
+ "title": "CreateStatusListDto"
46
+ }
@@ -0,0 +1,117 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "minLength": 1,
8
+ "description": "Unique tenant identifier."
9
+ },
10
+ "name": {
11
+ "default": "EUDIPLO",
12
+ "description": "Display name of the tenant.",
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "description": {
17
+ "description": "Optional tenant description.",
18
+ "type": "string",
19
+ "minLength": 1
20
+ },
21
+ "roles": {
22
+ "description": "Optional default role assignments for the tenant.",
23
+ "type": "array",
24
+ "items": {
25
+ "type": "string",
26
+ "enum": [
27
+ "tenants:manage",
28
+ "issuance:offer",
29
+ "issuance:manage",
30
+ "presentation:request",
31
+ "presentation:manage",
32
+ "clients:manage",
33
+ "users:manage",
34
+ "registrar:manage",
35
+ "tenant:admin"
36
+ ]
37
+ }
38
+ },
39
+ "sessionConfig": {
40
+ "description": "Optional tenant-specific session storage configuration.",
41
+ "type": "object",
42
+ "properties": {
43
+ "ttlSeconds": {
44
+ "description": "Session time-to-live in seconds.",
45
+ "type": "integer",
46
+ "minimum": 60,
47
+ "maximum": 9007199254740991
48
+ },
49
+ "cleanupMode": {
50
+ "description": "Whether to fully delete or anonymize expired sessions.",
51
+ "type": "string",
52
+ "enum": [
53
+ "full",
54
+ "anonymize"
55
+ ]
56
+ }
57
+ },
58
+ "additionalProperties": false
59
+ },
60
+ "statusListConfig": {
61
+ "description": "Optional tenant-specific status list defaults.",
62
+ "type": "object",
63
+ "properties": {
64
+ "capacity": {
65
+ "description": "Default status list capacity.",
66
+ "type": "integer",
67
+ "minimum": 100,
68
+ "maximum": 9007199254740991
69
+ },
70
+ "bits": {
71
+ "description": "Bits-per-status setting (1, 2, 4, or 8).",
72
+ "anyOf": [
73
+ {
74
+ "type": "number",
75
+ "const": 1
76
+ },
77
+ {
78
+ "type": "number",
79
+ "const": 2
80
+ },
81
+ {
82
+ "type": "number",
83
+ "const": 4
84
+ },
85
+ {
86
+ "type": "number",
87
+ "const": 8
88
+ }
89
+ ]
90
+ },
91
+ "ttl": {
92
+ "description": "JWT TTL for status list tokens in seconds.",
93
+ "type": "integer",
94
+ "minimum": 60,
95
+ "maximum": 9007199254740991
96
+ },
97
+ "immediateUpdate": {
98
+ "description": "Regenerate status list JWTs immediately after status updates.",
99
+ "type": "boolean"
100
+ },
101
+ "enableAggregation": {
102
+ "description": "Include aggregation_uri in generated status list JWTs.",
103
+ "type": "boolean"
104
+ }
105
+ },
106
+ "additionalProperties": false
107
+ }
108
+ },
109
+ "required": [
110
+ "id",
111
+ "name"
112
+ ],
113
+ "additionalProperties": false,
114
+ "description": "Payload for creating a tenant.",
115
+ "$id": "./CreateTenantDto.schema.json",
116
+ "title": "CreateTenantDto"
117
+ }