@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.
Files changed (77) hide show
  1. package/dist/commands/completion/action.js +3 -1
  2. package/dist/commands/completion/action.js.map +1 -1
  3. package/dist/commands/config/portability/migrations.spec.js +4 -2
  4. package/dist/commands/config/portability/migrations.spec.js.map +1 -1
  5. package/dist/commands/config/portability/upgrade.d.ts.map +1 -1
  6. package/dist/commands/config/portability/upgrade.js +7 -8
  7. package/dist/commands/config/portability/upgrade.js.map +1 -1
  8. package/dist/commands/config/validate/action.d.ts.map +1 -1
  9. package/dist/commands/config/validate/action.js +2 -1
  10. package/dist/commands/config/validate/action.js.map +1 -1
  11. package/dist/commands/config/validate/registry.json +21 -0
  12. package/dist/commands/init/action.d.ts.map +1 -1
  13. package/dist/commands/init/action.js +1 -11
  14. package/dist/commands/init/action.js.map +1 -1
  15. package/dist/commands/instance/action.d.ts +2 -0
  16. package/dist/commands/instance/action.d.ts.map +1 -1
  17. package/dist/commands/instance/action.js +68 -12
  18. package/dist/commands/instance/action.js.map +1 -1
  19. package/dist/commands/instance/index.d.ts.map +1 -1
  20. package/dist/commands/instance/index.js +21 -3
  21. package/dist/commands/instance/index.js.map +1 -1
  22. package/dist/commands/open/action.d.ts.map +1 -1
  23. package/dist/commands/open/action.js +13 -2
  24. package/dist/commands/open/action.js.map +1 -1
  25. package/dist/commands/status/action.d.ts.map +1 -1
  26. package/dist/commands/status/action.js +2 -1
  27. package/dist/commands/status/action.js.map +1 -1
  28. package/dist/index.js +17843 -5289
  29. package/dist/services/api-auth.d.ts.map +1 -1
  30. package/dist/services/api-auth.js +3 -2
  31. package/dist/services/api-auth.js.map +1 -1
  32. package/dist/services/browser.d.ts.map +1 -1
  33. package/dist/services/browser.js +3 -2
  34. package/dist/services/browser.js.map +1 -1
  35. package/dist/services/cli-config.d.ts +41 -1
  36. package/dist/services/cli-config.d.ts.map +1 -1
  37. package/dist/services/cli-config.js +217 -29
  38. package/dist/services/cli-config.js.map +1 -1
  39. package/dist/services/diagnostics.d.ts.map +1 -1
  40. package/dist/services/diagnostics.js +9 -8
  41. package/dist/services/diagnostics.js.map +1 -1
  42. package/dist/services/instance-selection.d.ts.map +1 -1
  43. package/dist/services/instance-selection.js +2 -5
  44. package/dist/services/instance-selection.js.map +1 -1
  45. package/dist/services/url.d.ts +21 -0
  46. package/dist/services/url.d.ts.map +1 -0
  47. package/dist/services/url.js +61 -0
  48. package/dist/services/url.js.map +1 -0
  49. package/package.json +6 -5
  50. package/templates/demo-config/clients/presentation-test.json +1 -1
  51. package/templates/demo-config/clients/test.json +6 -2
  52. package/templates/demo-config/key-chains/attestation.json +2 -1
  53. package/templates/demo-config/key-chains/status-list.json +5 -4
  54. package/templates/docker-compose.yml +2 -2
  55. package/templates/schemas/ClientConfigFile.schema.json +134 -1
  56. package/templates/schemas/CreateClientDto.schema.json +5 -1
  57. package/templates/schemas/CreateFederationTrustAnchorDto.schema.json +82 -0
  58. package/templates/schemas/CreateRegistrarConfigDto.schema.json +29 -0
  59. package/templates/schemas/CreateTenantDto.schema.json +5 -1
  60. package/templates/schemas/CredentialConfigCreate.schema.json +236 -6
  61. package/templates/schemas/CredentialConfigFile.schema.json +797 -1
  62. package/templates/schemas/FederationTrustAnchorConfigFile.schema.json +60 -0
  63. package/templates/schemas/IssuanceConfig.schema.json +120 -2
  64. package/templates/schemas/IssuanceConfigFile.schema.json +1434 -1
  65. package/templates/schemas/KeyChainConfigFile.schema.json +505 -119
  66. package/templates/schemas/KeyChainCreateDto.schema.json +11 -1
  67. package/templates/schemas/KeyChainDefaultsConfigFile.schema.json +65 -0
  68. package/templates/schemas/KeyChainImportDto.schema.json +9 -0
  69. package/templates/schemas/KmsConfigDto.schema.json +186 -0
  70. package/templates/schemas/KmsConfigFile.schema.json +1026 -1
  71. package/templates/schemas/RegistrarConfigFile.schema.json +101 -1
  72. package/templates/schemas/RotationPolicyCreateDto.schema.json +1 -1
  73. package/templates/schemas/TenantConfigFile.schema.json +334 -64
  74. package/templates/schemas/UpdateClientDto.schema.json +5 -1
  75. package/templates/schemas/UpdateFederationTrustAnchorDto.schema.json +70 -0
  76. package/templates/schemas/UpdateStatusListConfigDto.schema.json +5 -5
  77. 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/v2/CredentialConfigFile.schema.json"
12
+ "const": "https://eudiplo.dev/schemas/v3/CredentialConfigFile.schema.json"
13
13
  },
14
14
  "metadata": {
15
15
  "type": "object",
@@ -850,6 +850,802 @@
850
850
  "title": "CredentialConfigCreate"
851
851
  }
852
852
  }
853
+ },
854
+ {
855
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
856
+ "$id": "https://eudiplo.dev/schemas/v2/CredentialConfigFile.schema.json",
857
+ "title": "CredentialConfigFile",
858
+ "type": "object",
859
+ "properties": {
860
+ "$schema": {
861
+ "type": "string",
862
+ "const": "https://eudiplo.dev/schemas/v2/CredentialConfigFile.schema.json"
863
+ },
864
+ "metadata": {
865
+ "type": "object",
866
+ "properties": {
867
+ "generation": {
868
+ "type": "integer",
869
+ "minimum": 1,
870
+ "description": "Monotonically increasing configuration generation."
871
+ },
872
+ "ownership": {
873
+ "type": "string",
874
+ "enum": [
875
+ "unmanaged",
876
+ "file-managed"
877
+ ],
878
+ "description": "Requested ownership recorded when the document is applied."
879
+ }
880
+ },
881
+ "additionalProperties": false
882
+ },
883
+ "spec": {
884
+ "allOf": [
885
+ {
886
+ "$ref": "#/$defs/CredentialConfigCreate"
887
+ },
888
+ {
889
+ "type": "object",
890
+ "required": [
891
+ "id"
892
+ ],
893
+ "properties": {
894
+ "id": {
895
+ "type": "string",
896
+ "minLength": 1
897
+ }
898
+ }
899
+ }
900
+ ]
901
+ }
902
+ },
903
+ "required": [
904
+ "$schema",
905
+ "spec"
906
+ ],
907
+ "additionalProperties": false,
908
+ "$defs": {
909
+ "CredentialConfigCreate": {
910
+ "type": "object",
911
+ "properties": {
912
+ "id": {
913
+ "type": "string",
914
+ "minLength": 1,
915
+ "description": "Credential configuration identifier."
916
+ },
917
+ "description": {
918
+ "description": "Optional description for operators and tooling.",
919
+ "type": [
920
+ "string",
921
+ "null"
922
+ ]
923
+ },
924
+ "config": {
925
+ "type": "object",
926
+ "properties": {
927
+ "format": {
928
+ "type": "string",
929
+ "enum": [
930
+ "mso_mdoc",
931
+ "dc+sd-jwt"
932
+ ],
933
+ "description": "Credential format emitted by this configuration."
934
+ },
935
+ "display": {
936
+ "type": "array",
937
+ "items": {
938
+ "type": "object",
939
+ "properties": {
940
+ "locale": {
941
+ "type": "string",
942
+ "minLength": 1,
943
+ "description": "Locale tag for the display entry."
944
+ },
945
+ "name": {
946
+ "type": "string",
947
+ "minLength": 1,
948
+ "description": "Human-readable field name."
949
+ },
950
+ "description": {
951
+ "description": "Optional field description for this locale.",
952
+ "type": "string"
953
+ },
954
+ "background_color": {
955
+ "description": "Optional background color for card-style rendering.",
956
+ "type": "string"
957
+ },
958
+ "text_color": {
959
+ "description": "Optional text color for card-style rendering.",
960
+ "type": "string"
961
+ },
962
+ "background_image": {
963
+ "description": "Optional background image.",
964
+ "type": "object",
965
+ "properties": {
966
+ "uri": {
967
+ "type": "string",
968
+ "minLength": 1,
969
+ "description": "Image URI."
970
+ }
971
+ },
972
+ "required": [
973
+ "uri"
974
+ ],
975
+ "additionalProperties": false
976
+ },
977
+ "logo": {
978
+ "description": "Optional logo image.",
979
+ "type": "object",
980
+ "properties": {
981
+ "uri": {
982
+ "type": "string",
983
+ "minLength": 1,
984
+ "description": "Image URI."
985
+ }
986
+ },
987
+ "required": [
988
+ "uri"
989
+ ],
990
+ "additionalProperties": false
991
+ }
992
+ },
993
+ "required": [
994
+ "locale",
995
+ "name"
996
+ ],
997
+ "additionalProperties": false
998
+ },
999
+ "description": "Display metadata shown by wallets."
1000
+ },
1001
+ "scope": {
1002
+ "description": "Optional OAuth scope associated with this credential type.",
1003
+ "type": "string"
1004
+ },
1005
+ "docType": {
1006
+ "description": "Optional mDoc document type.",
1007
+ "type": "string"
1008
+ },
1009
+ "keyAttestationsRequired": {
1010
+ "description": "Optional key attestation requirements.",
1011
+ "type": "object",
1012
+ "properties": {
1013
+ "key_storage": {
1014
+ "description": "Required key storage attestations.",
1015
+ "type": "array",
1016
+ "items": {
1017
+ "type": "string"
1018
+ }
1019
+ },
1020
+ "user_authentication": {
1021
+ "description": "Required user authentication attestations.",
1022
+ "type": "array",
1023
+ "items": {
1024
+ "type": "string"
1025
+ }
1026
+ }
1027
+ },
1028
+ "additionalProperties": false
1029
+ },
1030
+ "proofTypesSupported": {
1031
+ "description": "Supported proof types for issuance requests.",
1032
+ "type": "array",
1033
+ "items": {
1034
+ "type": "string",
1035
+ "enum": [
1036
+ "jwt",
1037
+ "attestation"
1038
+ ]
1039
+ }
1040
+ },
1041
+ "credentialReusePolicy": {
1042
+ "description": "Optional PID/EAA reuse policy published in credential metadata.",
1043
+ "type": "object",
1044
+ "properties": {
1045
+ "id": {
1046
+ "type": "string",
1047
+ "minLength": 1
1048
+ },
1049
+ "options": {
1050
+ "type": "array",
1051
+ "items": {
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "details": {
1055
+ "minItems": 1,
1056
+ "type": "array",
1057
+ "items": {
1058
+ "type": "string",
1059
+ "enum": [
1060
+ "once_only",
1061
+ "limited_time",
1062
+ "limited-time",
1063
+ "rotating-batch",
1064
+ "per-relying-party"
1065
+ ]
1066
+ }
1067
+ },
1068
+ "batch_size": {
1069
+ "type": "integer",
1070
+ "minimum": 2,
1071
+ "maximum": 9007199254740991
1072
+ },
1073
+ "reissue_trigger_unused": {
1074
+ "type": "integer",
1075
+ "minimum": 0,
1076
+ "maximum": 9007199254740991
1077
+ },
1078
+ "reissue_trigger_lifetime_left": {
1079
+ "type": "integer",
1080
+ "minimum": 0,
1081
+ "maximum": 9007199254740991
1082
+ }
1083
+ },
1084
+ "required": [
1085
+ "details"
1086
+ ],
1087
+ "additionalProperties": false
1088
+ }
1089
+ }
1090
+ },
1091
+ "required": [
1092
+ "id"
1093
+ ],
1094
+ "additionalProperties": false
1095
+ }
1096
+ },
1097
+ "required": [
1098
+ "format",
1099
+ "display"
1100
+ ],
1101
+ "additionalProperties": false,
1102
+ "description": "Issuer metadata-facing credential configuration."
1103
+ },
1104
+ "fields": {
1105
+ "type": "array",
1106
+ "items": {
1107
+ "$ref": "#/$defs/CredentialConfigCreate/$defs/__schema0"
1108
+ },
1109
+ "description": "Claim field definitions for credential issuance."
1110
+ },
1111
+ "attributeProviderId": {
1112
+ "description": "Optional attribute provider id used to resolve claim values.",
1113
+ "type": [
1114
+ "string",
1115
+ "null"
1116
+ ]
1117
+ },
1118
+ "webhookEndpointId": {
1119
+ "description": "Not used for notifications: they go to the webhook endpoint of the offer.",
1120
+ "type": [
1121
+ "string",
1122
+ "null"
1123
+ ]
1124
+ },
1125
+ "vct": {
1126
+ "description": "Optional VCT value or structured VCT metadata.",
1127
+ "anyOf": [
1128
+ {
1129
+ "type": "string"
1130
+ },
1131
+ {
1132
+ "type": "object",
1133
+ "properties": {
1134
+ "vct": {
1135
+ "description": "VCT identifier.",
1136
+ "type": "string"
1137
+ },
1138
+ "name": {
1139
+ "description": "Human-readable VCT name.",
1140
+ "type": "string"
1141
+ },
1142
+ "description": {
1143
+ "description": "Optional VCT description.",
1144
+ "type": "string"
1145
+ },
1146
+ "extends": {
1147
+ "description": "Optional base VCT reference.",
1148
+ "type": "string"
1149
+ },
1150
+ "extends#integrity": {
1151
+ "description": "Integrity hash for the extends reference.",
1152
+ "type": "string"
1153
+ },
1154
+ "schema_uri": {
1155
+ "description": "Optional schema URI for the VCT.",
1156
+ "type": "string"
1157
+ },
1158
+ "schema_uri#integrity": {
1159
+ "description": "Integrity hash for schema_uri.",
1160
+ "type": "string"
1161
+ }
1162
+ },
1163
+ "additionalProperties": false
1164
+ },
1165
+ {
1166
+ "type": "null"
1167
+ }
1168
+ ]
1169
+ },
1170
+ "keyBinding": {
1171
+ "description": "Enable key binding requirements.",
1172
+ "type": "boolean"
1173
+ },
1174
+ "keyChainId": {
1175
+ "description": "Optional key chain id used for credential signing.",
1176
+ "type": "string",
1177
+ "minLength": 1
1178
+ },
1179
+ "statusManagement": {
1180
+ "description": "Enable status management for issued credentials.",
1181
+ "type": "boolean"
1182
+ },
1183
+ "activeCredentials": {
1184
+ "description": "Optional issuer-side policy limiting simultaneously active credentials per subject. Requires statusManagement.",
1185
+ "anyOf": [
1186
+ {
1187
+ "type": "object",
1188
+ "properties": {
1189
+ "enabled": {
1190
+ "type": "boolean",
1191
+ "description": "Ensure a subject has at most one active credential of this configuration."
1192
+ },
1193
+ "tracking": {
1194
+ "description": "How the subject's active credential set is tracked. Only 'internal' (pseudonymous, issuer-side) is currently supported.",
1195
+ "type": "string",
1196
+ "enum": [
1197
+ "internal"
1198
+ ]
1199
+ }
1200
+ },
1201
+ "required": [
1202
+ "enabled"
1203
+ ],
1204
+ "additionalProperties": false,
1205
+ "description": "Issuer-side policy limiting the number of simultaneously active credentials per subject."
1206
+ },
1207
+ {
1208
+ "type": "null"
1209
+ }
1210
+ ]
1211
+ },
1212
+ "iaeActions": {
1213
+ "description": "Interactive authorization steps (a presentation or a web flow) that the wallet completes, in order, before the credential is issued.",
1214
+ "anyOf": [
1215
+ {
1216
+ "type": "array",
1217
+ "items": {
1218
+ "oneOf": [
1219
+ {
1220
+ "type": "object",
1221
+ "properties": {
1222
+ "type": {
1223
+ "type": "string",
1224
+ "const": "openid4vp_presentation",
1225
+ "description": "Trigger an OpenID4VP presentation action."
1226
+ },
1227
+ "label": {
1228
+ "description": "Optional UI label for the action.",
1229
+ "type": "string"
1230
+ },
1231
+ "presentationConfigId": {
1232
+ "type": "string",
1233
+ "minLength": 1,
1234
+ "description": "Presentation configuration id to execute."
1235
+ }
1236
+ },
1237
+ "required": [
1238
+ "type",
1239
+ "presentationConfigId"
1240
+ ],
1241
+ "additionalProperties": false
1242
+ },
1243
+ {
1244
+ "type": "object",
1245
+ "properties": {
1246
+ "type": {
1247
+ "type": "string",
1248
+ "const": "redirect_to_web",
1249
+ "description": "Trigger a redirect-to-web action."
1250
+ },
1251
+ "label": {
1252
+ "description": "Optional UI label for the action.",
1253
+ "type": "string"
1254
+ },
1255
+ "url": {
1256
+ "type": "string",
1257
+ "format": "uri",
1258
+ "description": "Destination URL for the redirect action."
1259
+ },
1260
+ "callbackUrl": {
1261
+ "description": "Optional callback URL after redirect completion.",
1262
+ "type": "string",
1263
+ "format": "uri"
1264
+ },
1265
+ "description": {
1266
+ "description": "Optional action description.",
1267
+ "type": "string"
1268
+ }
1269
+ },
1270
+ "required": [
1271
+ "type",
1272
+ "url"
1273
+ ],
1274
+ "additionalProperties": false
1275
+ }
1276
+ ],
1277
+ "description": "In-app experience action definitions."
1278
+ }
1279
+ },
1280
+ {
1281
+ "type": "null"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "sdJwtTrustFormat": {
1286
+ "description": "Trust format used for SD-JWT verification metadata.",
1287
+ "anyOf": [
1288
+ {
1289
+ "type": "string",
1290
+ "enum": [
1291
+ "x5c",
1292
+ "federation"
1293
+ ]
1294
+ },
1295
+ {
1296
+ "type": "null"
1297
+ }
1298
+ ]
1299
+ },
1300
+ "lifeTime": {
1301
+ "description": "Credential lifetime in seconds.",
1302
+ "type": "integer",
1303
+ "minimum": 1,
1304
+ "maximum": 9007199254740991
1305
+ },
1306
+ "schemaMeta": {
1307
+ "description": "Optional schema metadata and trust bindings.",
1308
+ "anyOf": [
1309
+ {
1310
+ "type": "object",
1311
+ "properties": {
1312
+ "id": {
1313
+ "description": "Optional schema metadata identifier.",
1314
+ "type": "string"
1315
+ },
1316
+ "name": {
1317
+ "description": "Optional schema metadata name.",
1318
+ "type": "string"
1319
+ },
1320
+ "version": {
1321
+ "type": "string",
1322
+ "description": "Schema metadata version."
1323
+ },
1324
+ "rulebookURI": {
1325
+ "description": "Optional rulebook URI reference.",
1326
+ "type": "string"
1327
+ },
1328
+ "attestationLoS": {
1329
+ "type": "string",
1330
+ "enum": [
1331
+ "iso_18045_high",
1332
+ "iso_18045_moderate",
1333
+ "iso_18045_enhanced-basic",
1334
+ "iso_18045_basic"
1335
+ ],
1336
+ "description": "Assurance level for attestation requirements."
1337
+ },
1338
+ "bindingType": {
1339
+ "type": "string",
1340
+ "enum": [
1341
+ "claim",
1342
+ "key",
1343
+ "biometric",
1344
+ "none"
1345
+ ],
1346
+ "description": "Subject binding type."
1347
+ },
1348
+ "schemaURIs": {
1349
+ "description": "Optional schema URI entries.",
1350
+ "type": "array",
1351
+ "items": {
1352
+ "type": "object",
1353
+ "properties": {
1354
+ "credentialConfigId": {
1355
+ "description": "Optional credential configuration id this schema URI applies to.",
1356
+ "type": "string"
1357
+ },
1358
+ "format": {
1359
+ "description": "Optional credential format for this schema URI.",
1360
+ "type": "string"
1361
+ },
1362
+ "uri": {
1363
+ "description": "Schema URI reference.",
1364
+ "type": "string"
1365
+ },
1366
+ "meta": {
1367
+ "description": "Optional metadata attached to the schema URI.",
1368
+ "type": "object",
1369
+ "propertyNames": {
1370
+ "type": "string"
1371
+ },
1372
+ "additionalProperties": {}
1373
+ }
1374
+ },
1375
+ "additionalProperties": false
1376
+ }
1377
+ },
1378
+ "trustedAuthorities": {
1379
+ "description": "Optional trusted authority entries.",
1380
+ "type": "array",
1381
+ "items": {
1382
+ "type": "object",
1383
+ "properties": {
1384
+ "trustListId": {
1385
+ "description": "Optional trust list id.",
1386
+ "type": "string"
1387
+ },
1388
+ "frameworkType": {
1389
+ "description": "Trust framework type. `x509` takes a root certificate in `value` and no `verificationMethod`.",
1390
+ "type": "string",
1391
+ "enum": [
1392
+ "aki",
1393
+ "etsi_tl",
1394
+ "openid_federation",
1395
+ "x509"
1396
+ ]
1397
+ },
1398
+ "value": {
1399
+ "description": "Framework-specific authority value, for example the trust list URL for `etsi_tl` or the root certificate (base64 DER or PEM) for `x509`.",
1400
+ "type": "string"
1401
+ },
1402
+ "verificationMethod": {
1403
+ "description": "Verification method descriptor.",
1404
+ "anyOf": [
1405
+ {
1406
+ "type": "object",
1407
+ "propertyNames": {
1408
+ "type": "string"
1409
+ },
1410
+ "additionalProperties": {}
1411
+ },
1412
+ {
1413
+ "type": "string"
1414
+ }
1415
+ ]
1416
+ }
1417
+ },
1418
+ "additionalProperties": false
1419
+ }
1420
+ }
1421
+ },
1422
+ "required": [
1423
+ "version",
1424
+ "attestationLoS",
1425
+ "bindingType"
1426
+ ],
1427
+ "additionalProperties": false
1428
+ },
1429
+ {
1430
+ "type": "null"
1431
+ }
1432
+ ]
1433
+ },
1434
+ "embeddedDisclosurePolicy": {
1435
+ "description": "Optional embedded disclosure policy.",
1436
+ "anyOf": [
1437
+ {
1438
+ "oneOf": [
1439
+ {
1440
+ "type": "object",
1441
+ "properties": {
1442
+ "policy": {
1443
+ "type": "string",
1444
+ "const": "attestationBased",
1445
+ "description": "Attestation-based policy discriminator."
1446
+ },
1447
+ "values": {
1448
+ "type": "array",
1449
+ "items": {
1450
+ "type": "object",
1451
+ "properties": {
1452
+ "claims": {
1453
+ "description": "Claims constraints considered by policy evaluation.",
1454
+ "type": "array",
1455
+ "items": {}
1456
+ },
1457
+ "credentials": {
1458
+ "type": "array",
1459
+ "items": {},
1460
+ "description": "Credential constraints considered by policy evaluation."
1461
+ },
1462
+ "credential_sets": {
1463
+ "description": "Optional credential set constraints.",
1464
+ "type": "array",
1465
+ "items": {}
1466
+ }
1467
+ },
1468
+ "required": [
1469
+ "credentials"
1470
+ ],
1471
+ "additionalProperties": false
1472
+ },
1473
+ "description": "Attestation requirements used for policy enforcement."
1474
+ }
1475
+ },
1476
+ "required": [
1477
+ "policy",
1478
+ "values"
1479
+ ],
1480
+ "additionalProperties": false
1481
+ },
1482
+ {
1483
+ "type": "object",
1484
+ "properties": {
1485
+ "policy": {
1486
+ "type": "string",
1487
+ "const": "none",
1488
+ "description": "No disclosure policy enforcement."
1489
+ }
1490
+ },
1491
+ "required": [
1492
+ "policy"
1493
+ ],
1494
+ "additionalProperties": false
1495
+ },
1496
+ {
1497
+ "type": "object",
1498
+ "properties": {
1499
+ "policy": {
1500
+ "type": "string",
1501
+ "const": "allowList",
1502
+ "description": "Allow-list based policy discriminator."
1503
+ },
1504
+ "values": {
1505
+ "type": "array",
1506
+ "items": {
1507
+ "type": "string"
1508
+ },
1509
+ "description": "Allowed values for policy checks."
1510
+ }
1511
+ },
1512
+ "required": [
1513
+ "policy",
1514
+ "values"
1515
+ ],
1516
+ "additionalProperties": false
1517
+ },
1518
+ {
1519
+ "type": "object",
1520
+ "properties": {
1521
+ "policy": {
1522
+ "type": "string",
1523
+ "const": "rootOfTrust",
1524
+ "description": "Root-of-trust policy discriminator."
1525
+ },
1526
+ "values": {
1527
+ "type": "string",
1528
+ "description": "Root-of-trust identifier or reference."
1529
+ }
1530
+ },
1531
+ "required": [
1532
+ "policy",
1533
+ "values"
1534
+ ],
1535
+ "additionalProperties": false
1536
+ }
1537
+ ],
1538
+ "description": "Embedded disclosure policy configuration."
1539
+ },
1540
+ {
1541
+ "type": "null"
1542
+ }
1543
+ ]
1544
+ }
1545
+ },
1546
+ "required": [
1547
+ "id",
1548
+ "config",
1549
+ "fields"
1550
+ ],
1551
+ "additionalProperties": false,
1552
+ "description": "Payload for creating credential issuance configuration.",
1553
+ "$defs": {
1554
+ "__schema0": {
1555
+ "type": "object",
1556
+ "properties": {
1557
+ "path": {
1558
+ "type": "array",
1559
+ "items": {
1560
+ "type": [
1561
+ "string",
1562
+ "number",
1563
+ "null"
1564
+ ]
1565
+ },
1566
+ "description": "Path to this claim inside the credential payload."
1567
+ },
1568
+ "type": {
1569
+ "type": "string",
1570
+ "enum": [
1571
+ "string",
1572
+ "number",
1573
+ "integer",
1574
+ "boolean",
1575
+ "object",
1576
+ "array"
1577
+ ],
1578
+ "description": "Data type of the claim value."
1579
+ },
1580
+ "defaultValue": {
1581
+ "description": "Optional default value for this field."
1582
+ },
1583
+ "mandatory": {
1584
+ "description": "Whether the field is required at issuance time.",
1585
+ "type": "boolean"
1586
+ },
1587
+ "disclosable": {
1588
+ "description": "Whether the claim is selectively disclosable.",
1589
+ "type": "boolean"
1590
+ },
1591
+ "namespace": {
1592
+ "description": "Optional namespace for claim grouping.",
1593
+ "type": "string"
1594
+ },
1595
+ "display": {
1596
+ "description": "Localized display metadata for this field.",
1597
+ "type": "array",
1598
+ "items": {
1599
+ "type": "object",
1600
+ "properties": {
1601
+ "locale": {
1602
+ "type": "string",
1603
+ "minLength": 1,
1604
+ "description": "Locale tag for the display entry."
1605
+ },
1606
+ "name": {
1607
+ "type": "string",
1608
+ "minLength": 1,
1609
+ "description": "Human-readable field name."
1610
+ },
1611
+ "description": {
1612
+ "description": "Optional field description for this locale.",
1613
+ "type": "string"
1614
+ }
1615
+ },
1616
+ "required": [
1617
+ "locale",
1618
+ "name"
1619
+ ],
1620
+ "additionalProperties": false
1621
+ }
1622
+ },
1623
+ "constraints": {
1624
+ "description": "Optional validation constraints for the claim value.",
1625
+ "type": "object",
1626
+ "propertyNames": {
1627
+ "type": "string"
1628
+ },
1629
+ "additionalProperties": {}
1630
+ },
1631
+ "children": {
1632
+ "description": "Nested child claim definitions for object or array fields.",
1633
+ "type": "array",
1634
+ "items": {
1635
+ "$ref": "#/$defs/CredentialConfigCreate/$defs/__schema0"
1636
+ }
1637
+ }
1638
+ },
1639
+ "required": [
1640
+ "path",
1641
+ "type"
1642
+ ],
1643
+ "additionalProperties": false
1644
+ }
1645
+ },
1646
+ "title": "CredentialConfigCreate"
1647
+ }
1648
+ }
853
1649
  }
854
1650
  ]
855
1651
  }