@eudiplo/cli 9.0.0 → 9.1.0-main.021024e
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/migrations.spec.js +3 -2
- package/dist/commands/config/portability/migrations.spec.js.map +1 -1
- package/dist/commands/config/validate/index.d.ts.map +1 -1
- package/dist/commands/config/validate/index.js +2 -2
- package/dist/commands/config/validate/index.js.map +1 -1
- package/dist/commands/deployment/index.d.ts.map +1 -1
- package/dist/commands/deployment/index.js +8 -3
- package/dist/commands/deployment/index.js.map +1 -1
- package/dist/commands/deployment/pass-through.d.ts +15 -0
- package/dist/commands/deployment/pass-through.d.ts.map +1 -0
- package/dist/commands/deployment/pass-through.js +52 -0
- package/dist/commands/deployment/pass-through.js.map +1 -0
- package/dist/commands/upgrade/action.d.ts.map +1 -1
- package/dist/commands/upgrade/action.js +5 -2
- package/dist/commands/upgrade/action.js.map +1 -1
- package/dist/index.js +2786 -1190
- package/dist/services/compose-args.d.ts +1 -1
- package/dist/services/compose-args.d.ts.map +1 -1
- package/dist/services/compose-args.js +4 -2
- package/dist/services/compose-args.js.map +1 -1
- package/dist/services/compose-upgrade.d.ts +2 -0
- package/dist/services/compose-upgrade.d.ts.map +1 -1
- package/dist/services/compose-upgrade.js +5 -0
- package/dist/services/compose-upgrade.js.map +1 -1
- package/dist/services/container-state.d.ts +4 -1
- package/dist/services/container-state.d.ts.map +1 -1
- package/dist/services/container-state.js +21 -8
- package/dist/services/container-state.js.map +1 -1
- package/dist/services/diagnostics.d.ts.map +1 -1
- package/dist/services/diagnostics.js +10 -0
- package/dist/services/diagnostics.js.map +1 -1
- package/package.json +5 -5
- package/templates/demo-config/clients/test.json +2 -1
- package/templates/demo-config/presentation/age-over-18.json +10 -0
- package/templates/demo-config/presentation/pid.json +1 -2
- package/templates/demo-config.manifest.json +1 -3
- package/templates/docker-compose.yml +11 -6
- package/templates/schemas/CreateTenantDto.schema.json +1 -1
- package/templates/schemas/CredentialConfigCreate.schema.json +6 -5
- package/templates/schemas/CredentialConfigFile.schema.json +796 -1
- package/templates/schemas/IssuanceConfig.schema.json +20 -0
- package/templates/schemas/IssuanceConfigFile.schema.json +676 -1
- package/templates/demo-config/attribute-providers/claims-provider.json +0 -15
- package/templates/demo-config/webhook-endpoints/notification.json +0 -15
package/dist/index.js
CHANGED
|
@@ -3099,12 +3099,13 @@ var require_data = __commonJS({
|
|
|
3099
3099
|
}
|
|
3100
3100
|
});
|
|
3101
3101
|
|
|
3102
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3102
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/utils.js
|
|
3103
3103
|
var require_utils = __commonJS({
|
|
3104
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3104
|
+
"../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/utils.js"(exports, module) {
|
|
3105
3105
|
"use strict";
|
|
3106
3106
|
var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
|
|
3107
3107
|
var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
3108
|
+
var isPort = RegExp.prototype.test.bind(/^\d*$/u);
|
|
3108
3109
|
var isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
|
|
3109
3110
|
var isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
|
|
3110
3111
|
var isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
|
|
@@ -3570,8 +3571,12 @@ var require_utils = __commonJS({
|
|
|
3570
3571
|
uriTokens.push(host);
|
|
3571
3572
|
}
|
|
3572
3573
|
if (typeof component.port === "number" || typeof component.port === "string") {
|
|
3574
|
+
const port = String(component.port);
|
|
3575
|
+
if (!isPort(port)) {
|
|
3576
|
+
throw new TypeError("URI port is malformed.");
|
|
3577
|
+
}
|
|
3573
3578
|
uriTokens.push(":");
|
|
3574
|
-
uriTokens.push(
|
|
3579
|
+
uriTokens.push(port);
|
|
3575
3580
|
}
|
|
3576
3581
|
return uriTokens.length ? uriTokens.join("") : void 0;
|
|
3577
3582
|
}
|
|
@@ -3596,9 +3601,9 @@ var require_utils = __commonJS({
|
|
|
3596
3601
|
}
|
|
3597
3602
|
});
|
|
3598
3603
|
|
|
3599
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3604
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/schemes.js
|
|
3600
3605
|
var require_schemes = __commonJS({
|
|
3601
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3606
|
+
"../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/schemes.js"(exports, module) {
|
|
3602
3607
|
"use strict";
|
|
3603
3608
|
var { isUUID } = require_utils();
|
|
3604
3609
|
var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
|
|
@@ -3807,9 +3812,9 @@ var require_schemes = __commonJS({
|
|
|
3807
3812
|
}
|
|
3808
3813
|
});
|
|
3809
3814
|
|
|
3810
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3815
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/index.js
|
|
3811
3816
|
var require_fast_uri = __commonJS({
|
|
3812
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3817
|
+
"../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/index.js"(exports, module) {
|
|
3813
3818
|
"use strict";
|
|
3814
3819
|
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
3815
3820
|
var { SCHEMES, getSchemeHandler } = require_schemes();
|
|
@@ -4014,12 +4019,15 @@ var require_fast_uri = __commonJS({
|
|
|
4014
4019
|
}
|
|
4015
4020
|
return false;
|
|
4016
4021
|
}
|
|
4022
|
+
function isIPLiteral(host) {
|
|
4023
|
+
return host[0] === "[" && host[host.length - 1] === "]";
|
|
4024
|
+
}
|
|
4017
4025
|
function hasMalformedComponentPercentEncoding(matches) {
|
|
4018
4026
|
const host = matches[4];
|
|
4019
|
-
return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !(host
|
|
4027
|
+
return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !isIPLiteral(host) && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
|
|
4020
4028
|
}
|
|
4021
4029
|
function canonicalizeHost(parsed, options, schemeHandler, isIP) {
|
|
4022
|
-
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && parsed.host
|
|
4030
|
+
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && !isIPLiteral(parsed.host) && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
4023
4031
|
try {
|
|
4024
4032
|
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
4025
4033
|
} catch (e) {
|
|
@@ -4106,10 +4114,11 @@ var require_fast_uri = __commonJS({
|
|
|
4106
4114
|
if (parsed.host) {
|
|
4107
4115
|
const ipv4result = isIPv4(parsed.host);
|
|
4108
4116
|
if (ipv4result === false) {
|
|
4109
|
-
const bracketedIPLiteral = parsed.host
|
|
4117
|
+
const bracketedIPLiteral = isIPLiteral(parsed.host);
|
|
4118
|
+
const hasIPLiteralBracket = parsed.host.indexOf("[") !== -1 || parsed.host.indexOf("]") !== -1;
|
|
4110
4119
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
4111
4120
|
isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
|
|
4112
|
-
malformedIPLiteral =
|
|
4121
|
+
malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true);
|
|
4113
4122
|
parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
|
|
4114
4123
|
if (malformedIPLiteral) {
|
|
4115
4124
|
parsed.error = parsed.error || "URI host is malformed.";
|
|
@@ -4132,14 +4141,17 @@ var require_fast_uri = __commonJS({
|
|
|
4132
4141
|
parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
|
|
4133
4142
|
}
|
|
4134
4143
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4144
|
+
if (!malformedIPLiteral) {
|
|
4145
|
+
malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
|
|
4146
|
+
}
|
|
4147
|
+
if (uri.indexOf("%") !== -1 && parsed.host !== void 0 && !malformedIPLiteral) {
|
|
4148
|
+
let host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
|
|
4149
|
+
if (!isIP) {
|
|
4150
|
+
host = normalizePercentEncoding(host.toLowerCase());
|
|
4142
4151
|
}
|
|
4152
|
+
parsed.host = reescapeHostDelimiters(host, isIP);
|
|
4153
|
+
}
|
|
4154
|
+
if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
|
|
4143
4155
|
if (parsed.path) {
|
|
4144
4156
|
parsed.path = normalizePathEncoding(parsed.path);
|
|
4145
4157
|
}
|
|
@@ -14897,12 +14909,12 @@ var CONFIG_FORMATS = {
|
|
|
14897
14909
|
IssuanceConfig: {
|
|
14898
14910
|
slug: "issuance-config",
|
|
14899
14911
|
file: "IssuanceConfigFile",
|
|
14900
|
-
version:
|
|
14912
|
+
version: 3
|
|
14901
14913
|
},
|
|
14902
14914
|
CredentialConfig: {
|
|
14903
14915
|
slug: "credential-config",
|
|
14904
14916
|
file: "CredentialConfigFile",
|
|
14905
|
-
version:
|
|
14917
|
+
version: 2
|
|
14906
14918
|
},
|
|
14907
14919
|
PresentationConfig: {
|
|
14908
14920
|
slug: "presentation-config",
|
|
@@ -14980,6 +14992,25 @@ var CONFIG_MIGRATIONS = [
|
|
|
14980
14992
|
// valid v2 spec whose offers keep having no lifetime.
|
|
14981
14993
|
migrate: (spec) => ({ spec })
|
|
14982
14994
|
},
|
|
14995
|
+
{
|
|
14996
|
+
id: "issuance-config-v3-trust-list-verifier-pem",
|
|
14997
|
+
kind: "IssuanceConfig",
|
|
14998
|
+
from: 2,
|
|
14999
|
+
to: 3,
|
|
15000
|
+
// v3 only adds the optional verifierKeyPem to wallet provider trust
|
|
15001
|
+
// list references: a v2 spec is a valid v3 spec.
|
|
15002
|
+
migrate: (spec) => ({ spec })
|
|
15003
|
+
},
|
|
15004
|
+
{
|
|
15005
|
+
id: "credential-config-v2-x509-trusted-authority",
|
|
15006
|
+
kind: "CredentialConfig",
|
|
15007
|
+
from: 1,
|
|
15008
|
+
to: 2,
|
|
15009
|
+
// v2 only adds the frameworkType `x509` to schemaMeta trusted
|
|
15010
|
+
// authorities, which schema metadata publishing already writes: a v1
|
|
15011
|
+
// spec is a valid v2 spec.
|
|
15012
|
+
migrate: (spec) => ({ spec })
|
|
15013
|
+
},
|
|
14983
15014
|
presentationConfigV1ToV2,
|
|
14984
15015
|
{
|
|
14985
15016
|
id: "presentation-config-v3-typed-claim-values",
|
|
@@ -20060,13 +20091,13 @@ var CONFIG_SCHEMAS = [
|
|
|
20060
20091
|
},
|
|
20061
20092
|
{
|
|
20062
20093
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
20063
|
-
"$id": "https://eudiplo.dev/schemas/v2/
|
|
20064
|
-
"title": "
|
|
20094
|
+
"$id": "https://eudiplo.dev/schemas/v2/CredentialConfigFile.schema.json",
|
|
20095
|
+
"title": "CredentialConfigFile",
|
|
20065
20096
|
"type": "object",
|
|
20066
20097
|
"properties": {
|
|
20067
20098
|
"$schema": {
|
|
20068
20099
|
"type": "string",
|
|
20069
|
-
"const": "https://eudiplo.dev/schemas/v2/
|
|
20100
|
+
"const": "https://eudiplo.dev/schemas/v2/CredentialConfigFile.schema.json"
|
|
20070
20101
|
},
|
|
20071
20102
|
"metadata": {
|
|
20072
20103
|
"type": "object",
|
|
@@ -20088,7 +20119,23 @@ var CONFIG_SCHEMAS = [
|
|
|
20088
20119
|
"additionalProperties": false
|
|
20089
20120
|
},
|
|
20090
20121
|
"spec": {
|
|
20091
|
-
"
|
|
20122
|
+
"allOf": [
|
|
20123
|
+
{
|
|
20124
|
+
"$ref": "#/$defs/CredentialConfigCreate"
|
|
20125
|
+
},
|
|
20126
|
+
{
|
|
20127
|
+
"type": "object",
|
|
20128
|
+
"required": [
|
|
20129
|
+
"id"
|
|
20130
|
+
],
|
|
20131
|
+
"properties": {
|
|
20132
|
+
"id": {
|
|
20133
|
+
"type": "string",
|
|
20134
|
+
"minLength": 1
|
|
20135
|
+
}
|
|
20136
|
+
}
|
|
20137
|
+
}
|
|
20138
|
+
]
|
|
20092
20139
|
}
|
|
20093
20140
|
},
|
|
20094
20141
|
"required": [
|
|
@@ -20097,513 +20144,260 @@ var CONFIG_SCHEMAS = [
|
|
|
20097
20144
|
],
|
|
20098
20145
|
"additionalProperties": false,
|
|
20099
20146
|
"$defs": {
|
|
20100
|
-
"
|
|
20147
|
+
"CredentialConfigCreate": {
|
|
20101
20148
|
"type": "object",
|
|
20102
20149
|
"properties": {
|
|
20103
|
-
"
|
|
20104
|
-
"
|
|
20105
|
-
"
|
|
20106
|
-
"
|
|
20107
|
-
"maximum": 9007199254740991
|
|
20108
|
-
},
|
|
20109
|
-
"dPopRequired": {
|
|
20110
|
-
"description": "Require DPoP proofs for issuance endpoints.",
|
|
20111
|
-
"type": "boolean"
|
|
20150
|
+
"id": {
|
|
20151
|
+
"type": "string",
|
|
20152
|
+
"minLength": 1,
|
|
20153
|
+
"description": "Credential configuration identifier."
|
|
20112
20154
|
},
|
|
20113
|
-
"
|
|
20114
|
-
"description": "
|
|
20115
|
-
"type":
|
|
20155
|
+
"description": {
|
|
20156
|
+
"description": "Optional description for operators and tooling.",
|
|
20157
|
+
"type": [
|
|
20158
|
+
"string",
|
|
20159
|
+
"null"
|
|
20160
|
+
]
|
|
20116
20161
|
},
|
|
20117
|
-
"
|
|
20118
|
-
"
|
|
20119
|
-
"
|
|
20120
|
-
|
|
20121
|
-
|
|
20122
|
-
|
|
20123
|
-
|
|
20124
|
-
"
|
|
20125
|
-
|
|
20126
|
-
|
|
20127
|
-
"url": {
|
|
20128
|
-
"description": "URL of the wallet provider trust list.",
|
|
20129
|
-
"type": "string",
|
|
20130
|
-
"format": "uri"
|
|
20131
|
-
},
|
|
20132
|
-
"verifierKey": {
|
|
20133
|
-
"description": "Optional verifier key material used for trust list verification.",
|
|
20134
|
-
"type": "object",
|
|
20135
|
-
"propertyNames": {
|
|
20136
|
-
"type": "string"
|
|
20137
|
-
},
|
|
20138
|
-
"additionalProperties": {}
|
|
20139
|
-
},
|
|
20140
|
-
"verifierX509Der": {
|
|
20141
|
-
"description": "Optional verifier certificate in DER/base64 form.",
|
|
20142
|
-
"type": "string"
|
|
20143
|
-
}
|
|
20162
|
+
"config": {
|
|
20163
|
+
"type": "object",
|
|
20164
|
+
"properties": {
|
|
20165
|
+
"format": {
|
|
20166
|
+
"type": "string",
|
|
20167
|
+
"enum": [
|
|
20168
|
+
"mso_mdoc",
|
|
20169
|
+
"dc+sd-jwt"
|
|
20170
|
+
],
|
|
20171
|
+
"description": "Credential format emitted by this configuration."
|
|
20144
20172
|
},
|
|
20145
|
-
"
|
|
20146
|
-
|
|
20147
|
-
|
|
20148
|
-
"signingKeyId": {
|
|
20149
|
-
"description": "Default signing key chain id for credential issuance.",
|
|
20150
|
-
"type": "string",
|
|
20151
|
-
"minLength": 1
|
|
20152
|
-
},
|
|
20153
|
-
"authorizationServers": {
|
|
20154
|
-
"minItems": 1,
|
|
20155
|
-
"type": "array",
|
|
20156
|
-
"items": {
|
|
20157
|
-
"oneOf": [
|
|
20158
|
-
{
|
|
20173
|
+
"display": {
|
|
20174
|
+
"type": "array",
|
|
20175
|
+
"items": {
|
|
20159
20176
|
"type": "object",
|
|
20160
20177
|
"properties": {
|
|
20161
|
-
"
|
|
20178
|
+
"locale": {
|
|
20162
20179
|
"type": "string",
|
|
20163
|
-
"
|
|
20164
|
-
"description": "
|
|
20180
|
+
"minLength": 1,
|
|
20181
|
+
"description": "Locale tag for the display entry."
|
|
20165
20182
|
},
|
|
20166
|
-
"
|
|
20183
|
+
"name": {
|
|
20167
20184
|
"type": "string",
|
|
20168
20185
|
"minLength": 1,
|
|
20169
|
-
"description": "
|
|
20186
|
+
"description": "Human-readable field name."
|
|
20170
20187
|
},
|
|
20171
|
-
"
|
|
20172
|
-
"
|
|
20173
|
-
"
|
|
20174
|
-
"description": "Issuer URL for the external authorization server."
|
|
20188
|
+
"description": {
|
|
20189
|
+
"description": "Optional field description for this locale.",
|
|
20190
|
+
"type": "string"
|
|
20175
20191
|
},
|
|
20176
|
-
"
|
|
20177
|
-
"description": "
|
|
20192
|
+
"background_color": {
|
|
20193
|
+
"description": "Optional background color for card-style rendering.",
|
|
20194
|
+
"type": "string"
|
|
20195
|
+
},
|
|
20196
|
+
"text_color": {
|
|
20197
|
+
"description": "Optional text color for card-style rendering.",
|
|
20198
|
+
"type": "string"
|
|
20199
|
+
},
|
|
20200
|
+
"background_image": {
|
|
20201
|
+
"description": "Optional background image.",
|
|
20178
20202
|
"type": "object",
|
|
20179
20203
|
"properties": {
|
|
20180
|
-
"
|
|
20181
|
-
"type": "string",
|
|
20182
|
-
"const": "access_token_claim",
|
|
20183
|
-
"description": "Read the correlation value from a configured access-token claim."
|
|
20184
|
-
},
|
|
20185
|
-
"claim": {
|
|
20204
|
+
"uri": {
|
|
20186
20205
|
"type": "string",
|
|
20187
20206
|
"minLength": 1,
|
|
20188
|
-
"description": "
|
|
20207
|
+
"description": "Image URI."
|
|
20189
20208
|
}
|
|
20190
20209
|
},
|
|
20191
20210
|
"required": [
|
|
20192
|
-
"
|
|
20193
|
-
"claim"
|
|
20211
|
+
"uri"
|
|
20194
20212
|
],
|
|
20195
20213
|
"additionalProperties": false
|
|
20196
20214
|
},
|
|
20197
|
-
"
|
|
20198
|
-
"description": "Optional
|
|
20199
|
-
"type": "string"
|
|
20200
|
-
},
|
|
20201
|
-
"enabled": {
|
|
20202
|
-
"description": "Whether this authorization server entry is enabled.",
|
|
20203
|
-
"type": "boolean"
|
|
20204
|
-
}
|
|
20205
|
-
},
|
|
20206
|
-
"required": [
|
|
20207
|
-
"type",
|
|
20208
|
-
"id",
|
|
20209
|
-
"issuer"
|
|
20210
|
-
],
|
|
20211
|
-
"additionalProperties": false
|
|
20212
|
-
},
|
|
20213
|
-
{
|
|
20214
|
-
"type": "object",
|
|
20215
|
-
"properties": {
|
|
20216
|
-
"type": {
|
|
20217
|
-
"type": "string",
|
|
20218
|
-
"const": "oid4vp",
|
|
20219
|
-
"description": "Use OID4VP-based authorization server chaining."
|
|
20220
|
-
},
|
|
20221
|
-
"id": {
|
|
20222
|
-
"type": "string",
|
|
20223
|
-
"minLength": 1,
|
|
20224
|
-
"description": "Authorization server identifier."
|
|
20225
|
-
},
|
|
20226
|
-
"presentationConfigId": {
|
|
20227
|
-
"type": "string",
|
|
20228
|
-
"minLength": 1,
|
|
20229
|
-
"description": "Presentation configuration id used during authorization."
|
|
20230
|
-
},
|
|
20231
|
-
"immediateWalletRedirect": {
|
|
20232
|
-
"description": "Redirect wallets immediately after authorization response creation.",
|
|
20233
|
-
"type": "boolean"
|
|
20234
|
-
},
|
|
20235
|
-
"token": {
|
|
20236
|
-
"description": "Optional token issuance settings.",
|
|
20215
|
+
"logo": {
|
|
20216
|
+
"description": "Optional logo image.",
|
|
20237
20217
|
"type": "object",
|
|
20238
20218
|
"properties": {
|
|
20239
|
-
"
|
|
20240
|
-
"description": "Access token lifetime in seconds.",
|
|
20241
|
-
"type": "number",
|
|
20242
|
-
"minimum": 60
|
|
20243
|
-
},
|
|
20244
|
-
"signingKeyId": {
|
|
20245
|
-
"description": "Optional key chain id used to sign issued tokens.",
|
|
20219
|
+
"uri": {
|
|
20246
20220
|
"type": "string",
|
|
20247
|
-
"minLength": 1
|
|
20248
|
-
|
|
20249
|
-
"refreshTokenEnabled": {
|
|
20250
|
-
"description": "Enable issuing refresh tokens.",
|
|
20251
|
-
"type": "boolean"
|
|
20252
|
-
},
|
|
20253
|
-
"refreshTokenExpiresInSeconds": {
|
|
20254
|
-
"description": "Refresh token lifetime in seconds.",
|
|
20255
|
-
"type": "number",
|
|
20256
|
-
"minimum": 60
|
|
20221
|
+
"minLength": 1,
|
|
20222
|
+
"description": "Image URI."
|
|
20257
20223
|
}
|
|
20258
20224
|
},
|
|
20225
|
+
"required": [
|
|
20226
|
+
"uri"
|
|
20227
|
+
],
|
|
20259
20228
|
"additionalProperties": false
|
|
20260
|
-
},
|
|
20261
|
-
"requireDPoP": {
|
|
20262
|
-
"description": "Require DPoP proofs for token/credential requests.",
|
|
20263
|
-
"type": "boolean"
|
|
20264
|
-
},
|
|
20265
|
-
"walletAttestationRequired": {
|
|
20266
|
-
"description": "Require wallet attestation for this authorization server.",
|
|
20267
|
-
"type": "boolean"
|
|
20268
|
-
},
|
|
20269
|
-
"walletProviderTrustLists": {
|
|
20270
|
-
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
20271
|
-
"type": "array",
|
|
20272
|
-
"items": {
|
|
20273
|
-
"type": "object",
|
|
20274
|
-
"properties": {
|
|
20275
|
-
"trustListId": {
|
|
20276
|
-
"type": "string",
|
|
20277
|
-
"minLength": 1
|
|
20278
|
-
},
|
|
20279
|
-
"url": {
|
|
20280
|
-
"description": "URL of the wallet provider trust list.",
|
|
20281
|
-
"type": "string",
|
|
20282
|
-
"format": "uri"
|
|
20283
|
-
},
|
|
20284
|
-
"verifierKey": {
|
|
20285
|
-
"description": "Optional verifier key material used for trust list verification.",
|
|
20286
|
-
"type": "object",
|
|
20287
|
-
"propertyNames": {
|
|
20288
|
-
"type": "string"
|
|
20289
|
-
},
|
|
20290
|
-
"additionalProperties": {}
|
|
20291
|
-
},
|
|
20292
|
-
"verifierX509Der": {
|
|
20293
|
-
"description": "Optional verifier certificate in DER/base64 form.",
|
|
20294
|
-
"type": "string"
|
|
20295
|
-
}
|
|
20296
|
-
},
|
|
20297
|
-
"additionalProperties": false
|
|
20298
|
-
}
|
|
20299
|
-
},
|
|
20300
|
-
"label": {
|
|
20301
|
-
"description": "Optional display label for UI selection.",
|
|
20302
|
-
"type": "string"
|
|
20303
|
-
},
|
|
20304
|
-
"enabled": {
|
|
20305
|
-
"description": "Whether this authorization server entry is enabled.",
|
|
20306
|
-
"type": "boolean"
|
|
20307
20229
|
}
|
|
20308
20230
|
},
|
|
20309
20231
|
"required": [
|
|
20310
|
-
"
|
|
20311
|
-
"
|
|
20312
|
-
"presentationConfigId"
|
|
20232
|
+
"locale",
|
|
20233
|
+
"name"
|
|
20313
20234
|
],
|
|
20314
20235
|
"additionalProperties": false
|
|
20315
20236
|
},
|
|
20316
|
-
|
|
20317
|
-
|
|
20318
|
-
|
|
20319
|
-
|
|
20320
|
-
|
|
20321
|
-
|
|
20322
|
-
|
|
20323
|
-
|
|
20324
|
-
|
|
20325
|
-
|
|
20326
|
-
|
|
20327
|
-
|
|
20328
|
-
|
|
20329
|
-
|
|
20237
|
+
"description": "Display metadata shown by wallets."
|
|
20238
|
+
},
|
|
20239
|
+
"scope": {
|
|
20240
|
+
"description": "Optional OAuth scope associated with this credential type.",
|
|
20241
|
+
"type": "string"
|
|
20242
|
+
},
|
|
20243
|
+
"docType": {
|
|
20244
|
+
"description": "Optional mDoc document type.",
|
|
20245
|
+
"type": "string"
|
|
20246
|
+
},
|
|
20247
|
+
"keyAttestationsRequired": {
|
|
20248
|
+
"description": "Optional key attestation requirements.",
|
|
20249
|
+
"type": "object",
|
|
20250
|
+
"properties": {
|
|
20251
|
+
"key_storage": {
|
|
20252
|
+
"description": "Required key storage attestations.",
|
|
20253
|
+
"type": "array",
|
|
20254
|
+
"items": {
|
|
20255
|
+
"type": "string"
|
|
20256
|
+
}
|
|
20257
|
+
},
|
|
20258
|
+
"user_authentication": {
|
|
20259
|
+
"description": "Required user authentication attestations.",
|
|
20260
|
+
"type": "array",
|
|
20261
|
+
"items": {
|
|
20262
|
+
"type": "string"
|
|
20263
|
+
}
|
|
20264
|
+
}
|
|
20265
|
+
},
|
|
20266
|
+
"additionalProperties": false
|
|
20267
|
+
},
|
|
20268
|
+
"proofTypesSupported": {
|
|
20269
|
+
"description": "Supported proof types for issuance requests.",
|
|
20270
|
+
"type": "array",
|
|
20271
|
+
"items": {
|
|
20272
|
+
"type": "string",
|
|
20273
|
+
"enum": [
|
|
20274
|
+
"jwt",
|
|
20275
|
+
"attestation"
|
|
20276
|
+
]
|
|
20277
|
+
}
|
|
20278
|
+
},
|
|
20279
|
+
"credentialReusePolicy": {
|
|
20280
|
+
"description": "Optional PID/EAA reuse policy published in credential metadata.",
|
|
20281
|
+
"type": "object",
|
|
20282
|
+
"properties": {
|
|
20283
|
+
"id": {
|
|
20284
|
+
"type": "string",
|
|
20285
|
+
"minLength": 1
|
|
20286
|
+
},
|
|
20287
|
+
"options": {
|
|
20288
|
+
"type": "array",
|
|
20289
|
+
"items": {
|
|
20330
20290
|
"type": "object",
|
|
20331
20291
|
"properties": {
|
|
20332
|
-
"
|
|
20333
|
-
"
|
|
20334
|
-
"format": "uri",
|
|
20335
|
-
"description": "Upstream OIDC issuer URL."
|
|
20336
|
-
},
|
|
20337
|
-
"clientId": {
|
|
20338
|
-
"type": "string",
|
|
20339
|
-
"minLength": 1,
|
|
20340
|
-
"description": "Client id for upstream OIDC authentication."
|
|
20341
|
-
},
|
|
20342
|
-
"clientSecret": {
|
|
20343
|
-
"description": "Optional client secret for upstream OIDC authentication.",
|
|
20344
|
-
"type": "string",
|
|
20345
|
-
"minLength": 1
|
|
20346
|
-
},
|
|
20347
|
-
"scopes": {
|
|
20348
|
-
"description": "Optional scopes requested from the upstream issuer.",
|
|
20292
|
+
"details": {
|
|
20293
|
+
"minItems": 1,
|
|
20349
20294
|
"type": "array",
|
|
20350
20295
|
"items": {
|
|
20351
20296
|
"type": "string",
|
|
20352
|
-
"
|
|
20297
|
+
"enum": [
|
|
20298
|
+
"once_only",
|
|
20299
|
+
"limited_time",
|
|
20300
|
+
"limited-time",
|
|
20301
|
+
"rotating-batch",
|
|
20302
|
+
"per-relying-party"
|
|
20303
|
+
]
|
|
20353
20304
|
}
|
|
20354
|
-
}
|
|
20355
|
-
},
|
|
20356
|
-
"required": [
|
|
20357
|
-
"issuer",
|
|
20358
|
-
"clientId"
|
|
20359
|
-
],
|
|
20360
|
-
"additionalProperties": false,
|
|
20361
|
-
"description": "Upstream OIDC connection settings."
|
|
20362
|
-
},
|
|
20363
|
-
"token": {
|
|
20364
|
-
"description": "Optional token issuance settings.",
|
|
20365
|
-
"type": "object",
|
|
20366
|
-
"properties": {
|
|
20367
|
-
"lifetimeSeconds": {
|
|
20368
|
-
"description": "Access token lifetime in seconds.",
|
|
20369
|
-
"type": "number",
|
|
20370
|
-
"minimum": 60
|
|
20371
20305
|
},
|
|
20372
|
-
"
|
|
20373
|
-
"
|
|
20374
|
-
"
|
|
20375
|
-
"
|
|
20306
|
+
"batch_size": {
|
|
20307
|
+
"type": "integer",
|
|
20308
|
+
"minimum": 2,
|
|
20309
|
+
"maximum": 9007199254740991
|
|
20376
20310
|
},
|
|
20377
|
-
"
|
|
20378
|
-
"
|
|
20379
|
-
"
|
|
20311
|
+
"reissue_trigger_unused": {
|
|
20312
|
+
"type": "integer",
|
|
20313
|
+
"minimum": 0,
|
|
20314
|
+
"maximum": 9007199254740991
|
|
20380
20315
|
},
|
|
20381
|
-
"
|
|
20382
|
-
"
|
|
20383
|
-
"
|
|
20384
|
-
"
|
|
20316
|
+
"reissue_trigger_lifetime_left": {
|
|
20317
|
+
"type": "integer",
|
|
20318
|
+
"minimum": 0,
|
|
20319
|
+
"maximum": 9007199254740991
|
|
20385
20320
|
}
|
|
20386
20321
|
},
|
|
20322
|
+
"required": [
|
|
20323
|
+
"details"
|
|
20324
|
+
],
|
|
20387
20325
|
"additionalProperties": false
|
|
20388
|
-
},
|
|
20389
|
-
"requireDPoP": {
|
|
20390
|
-
"description": "Require DPoP proofs for token/credential requests.",
|
|
20391
|
-
"type": "boolean"
|
|
20392
|
-
},
|
|
20393
|
-
"walletAttestationRequired": {
|
|
20394
|
-
"description": "Require wallet attestation for this authorization server.",
|
|
20395
|
-
"type": "boolean"
|
|
20396
|
-
},
|
|
20397
|
-
"walletProviderTrustLists": {
|
|
20398
|
-
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
20399
|
-
"type": "array",
|
|
20400
|
-
"items": {
|
|
20401
|
-
"type": "object",
|
|
20402
|
-
"properties": {
|
|
20403
|
-
"trustListId": {
|
|
20404
|
-
"type": "string",
|
|
20405
|
-
"minLength": 1
|
|
20406
|
-
},
|
|
20407
|
-
"url": {
|
|
20408
|
-
"description": "URL of the wallet provider trust list.",
|
|
20409
|
-
"type": "string",
|
|
20410
|
-
"format": "uri"
|
|
20411
|
-
},
|
|
20412
|
-
"verifierKey": {
|
|
20413
|
-
"description": "Optional verifier key material used for trust list verification.",
|
|
20414
|
-
"type": "object",
|
|
20415
|
-
"propertyNames": {
|
|
20416
|
-
"type": "string"
|
|
20417
|
-
},
|
|
20418
|
-
"additionalProperties": {}
|
|
20419
|
-
},
|
|
20420
|
-
"verifierX509Der": {
|
|
20421
|
-
"description": "Optional verifier certificate in DER/base64 form.",
|
|
20422
|
-
"type": "string"
|
|
20423
|
-
}
|
|
20424
|
-
},
|
|
20425
|
-
"additionalProperties": false
|
|
20426
|
-
}
|
|
20427
|
-
},
|
|
20428
|
-
"label": {
|
|
20429
|
-
"description": "Optional display label for UI selection.",
|
|
20430
|
-
"type": "string"
|
|
20431
|
-
},
|
|
20432
|
-
"enabled": {
|
|
20433
|
-
"description": "Whether this authorization server entry is enabled.",
|
|
20434
|
-
"type": "boolean"
|
|
20435
20326
|
}
|
|
20436
|
-
}
|
|
20437
|
-
"required": [
|
|
20438
|
-
"type",
|
|
20439
|
-
"id",
|
|
20440
|
-
"upstream"
|
|
20441
|
-
],
|
|
20442
|
-
"additionalProperties": false
|
|
20327
|
+
}
|
|
20443
20328
|
},
|
|
20444
|
-
|
|
20445
|
-
"
|
|
20446
|
-
|
|
20447
|
-
|
|
20448
|
-
|
|
20449
|
-
"const": "built-in",
|
|
20450
|
-
"description": "Use EUDIPLO built-in authorization server."
|
|
20451
|
-
},
|
|
20452
|
-
"id": {
|
|
20453
|
-
"type": "string",
|
|
20454
|
-
"minLength": 1,
|
|
20455
|
-
"description": "Authorization server identifier."
|
|
20456
|
-
},
|
|
20457
|
-
"token": {
|
|
20458
|
-
"description": "Optional token issuance settings.",
|
|
20459
|
-
"type": "object",
|
|
20460
|
-
"properties": {
|
|
20461
|
-
"lifetimeSeconds": {
|
|
20462
|
-
"description": "Access token lifetime in seconds.",
|
|
20463
|
-
"type": "number",
|
|
20464
|
-
"minimum": 60
|
|
20465
|
-
},
|
|
20466
|
-
"signingKeyId": {
|
|
20467
|
-
"description": "Optional key chain id used to sign issued tokens.",
|
|
20468
|
-
"type": "string",
|
|
20469
|
-
"minLength": 1
|
|
20470
|
-
},
|
|
20471
|
-
"refreshTokenEnabled": {
|
|
20472
|
-
"description": "Enable issuing refresh tokens.",
|
|
20473
|
-
"type": "boolean"
|
|
20474
|
-
},
|
|
20475
|
-
"refreshTokenExpiresInSeconds": {
|
|
20476
|
-
"description": "Refresh token lifetime in seconds.",
|
|
20477
|
-
"type": "number",
|
|
20478
|
-
"minimum": 60
|
|
20479
|
-
}
|
|
20480
|
-
},
|
|
20481
|
-
"additionalProperties": false
|
|
20482
|
-
},
|
|
20483
|
-
"requireDPoP": {
|
|
20484
|
-
"description": "Require DPoP proofs for token/credential requests.",
|
|
20485
|
-
"type": "boolean"
|
|
20486
|
-
},
|
|
20487
|
-
"walletAttestationRequired": {
|
|
20488
|
-
"description": "Require wallet attestation for this authorization server.",
|
|
20489
|
-
"type": "boolean"
|
|
20490
|
-
},
|
|
20491
|
-
"walletProviderTrustLists": {
|
|
20492
|
-
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
20493
|
-
"type": "array",
|
|
20494
|
-
"items": {
|
|
20495
|
-
"type": "object",
|
|
20496
|
-
"properties": {
|
|
20497
|
-
"trustListId": {
|
|
20498
|
-
"type": "string",
|
|
20499
|
-
"minLength": 1
|
|
20500
|
-
},
|
|
20501
|
-
"url": {
|
|
20502
|
-
"description": "URL of the wallet provider trust list.",
|
|
20503
|
-
"type": "string",
|
|
20504
|
-
"format": "uri"
|
|
20505
|
-
},
|
|
20506
|
-
"verifierKey": {
|
|
20507
|
-
"description": "Optional verifier key material used for trust list verification.",
|
|
20508
|
-
"type": "object",
|
|
20509
|
-
"propertyNames": {
|
|
20510
|
-
"type": "string"
|
|
20511
|
-
},
|
|
20512
|
-
"additionalProperties": {}
|
|
20513
|
-
},
|
|
20514
|
-
"verifierX509Der": {
|
|
20515
|
-
"description": "Optional verifier certificate in DER/base64 form.",
|
|
20516
|
-
"type": "string"
|
|
20517
|
-
}
|
|
20518
|
-
},
|
|
20519
|
-
"additionalProperties": false
|
|
20520
|
-
}
|
|
20521
|
-
},
|
|
20522
|
-
"label": {
|
|
20523
|
-
"description": "Optional display label for UI selection.",
|
|
20524
|
-
"type": "string"
|
|
20525
|
-
},
|
|
20526
|
-
"enabled": {
|
|
20527
|
-
"description": "Whether this authorization server entry is enabled.",
|
|
20528
|
-
"type": "boolean"
|
|
20529
|
-
}
|
|
20530
|
-
},
|
|
20531
|
-
"required": [
|
|
20532
|
-
"type",
|
|
20533
|
-
"id"
|
|
20534
|
-
],
|
|
20535
|
-
"additionalProperties": false
|
|
20536
|
-
}
|
|
20537
|
-
],
|
|
20538
|
-
"description": "Supported authorization server configurations."
|
|
20329
|
+
"required": [
|
|
20330
|
+
"id"
|
|
20331
|
+
],
|
|
20332
|
+
"additionalProperties": false
|
|
20333
|
+
}
|
|
20539
20334
|
},
|
|
20540
|
-
"
|
|
20335
|
+
"required": [
|
|
20336
|
+
"format",
|
|
20337
|
+
"display"
|
|
20338
|
+
],
|
|
20339
|
+
"additionalProperties": false,
|
|
20340
|
+
"description": "Issuer metadata-facing credential configuration."
|
|
20541
20341
|
},
|
|
20542
|
-
"
|
|
20543
|
-
"
|
|
20342
|
+
"fields": {
|
|
20343
|
+
"type": "array",
|
|
20344
|
+
"items": {
|
|
20345
|
+
"$ref": "#/$defs/CredentialConfigCreate/$defs/__schema0"
|
|
20346
|
+
},
|
|
20347
|
+
"description": "Claim field definitions for credential issuance."
|
|
20348
|
+
},
|
|
20349
|
+
"attributeProviderId": {
|
|
20350
|
+
"description": "Optional attribute provider id used to resolve claim values.",
|
|
20351
|
+
"type": [
|
|
20352
|
+
"string",
|
|
20353
|
+
"null"
|
|
20354
|
+
]
|
|
20355
|
+
},
|
|
20356
|
+
"webhookEndpointId": {
|
|
20357
|
+
"description": "Not used for notifications: they go to the webhook endpoint of the offer.",
|
|
20358
|
+
"type": [
|
|
20359
|
+
"string",
|
|
20360
|
+
"null"
|
|
20361
|
+
]
|
|
20362
|
+
},
|
|
20363
|
+
"vct": {
|
|
20364
|
+
"description": "Optional VCT value or structured VCT metadata.",
|
|
20544
20365
|
"anyOf": [
|
|
20366
|
+
{
|
|
20367
|
+
"type": "string"
|
|
20368
|
+
},
|
|
20545
20369
|
{
|
|
20546
20370
|
"type": "object",
|
|
20547
20371
|
"properties": {
|
|
20548
|
-
"
|
|
20549
|
-
"description": "
|
|
20550
|
-
"type": "string"
|
|
20551
|
-
"enum": [
|
|
20552
|
-
"trust_anchor",
|
|
20553
|
-
"intermediate",
|
|
20554
|
-
"leaf"
|
|
20555
|
-
]
|
|
20372
|
+
"vct": {
|
|
20373
|
+
"description": "VCT identifier.",
|
|
20374
|
+
"type": "string"
|
|
20556
20375
|
},
|
|
20557
|
-
"
|
|
20558
|
-
"description": "
|
|
20559
|
-
"type": "string"
|
|
20560
|
-
"enum": [
|
|
20561
|
-
"federation-only",
|
|
20562
|
-
"hybrid"
|
|
20563
|
-
]
|
|
20376
|
+
"name": {
|
|
20377
|
+
"description": "Human-readable VCT name.",
|
|
20378
|
+
"type": "string"
|
|
20564
20379
|
},
|
|
20565
|
-
"
|
|
20566
|
-
"description": "Optional
|
|
20380
|
+
"description": {
|
|
20381
|
+
"description": "Optional VCT description.",
|
|
20567
20382
|
"type": "string"
|
|
20568
20383
|
},
|
|
20569
|
-
"
|
|
20570
|
-
"description": "
|
|
20571
|
-
"type": "
|
|
20384
|
+
"extends": {
|
|
20385
|
+
"description": "Optional base VCT reference.",
|
|
20386
|
+
"type": "string"
|
|
20572
20387
|
},
|
|
20573
|
-
"
|
|
20574
|
-
"description": "
|
|
20575
|
-
"type": "
|
|
20576
|
-
"minimum": 1,
|
|
20577
|
-
"maximum": 9007199254740991
|
|
20388
|
+
"extends#integrity": {
|
|
20389
|
+
"description": "Integrity hash for the extends reference.",
|
|
20390
|
+
"type": "string"
|
|
20578
20391
|
},
|
|
20579
|
-
"
|
|
20580
|
-
"
|
|
20581
|
-
"
|
|
20582
|
-
|
|
20583
|
-
|
|
20584
|
-
|
|
20585
|
-
|
|
20586
|
-
"minLength": 1,
|
|
20587
|
-
"description": "Federation trust anchor entity id."
|
|
20588
|
-
},
|
|
20589
|
-
"entityConfigurationUri": {
|
|
20590
|
-
"type": "string",
|
|
20591
|
-
"format": "uri",
|
|
20592
|
-
"description": "Entity configuration URI for the trust anchor."
|
|
20593
|
-
}
|
|
20594
|
-
},
|
|
20595
|
-
"required": [
|
|
20596
|
-
"entityId",
|
|
20597
|
-
"entityConfigurationUri"
|
|
20598
|
-
],
|
|
20599
|
-
"additionalProperties": false
|
|
20600
|
-
},
|
|
20601
|
-
"description": "Federation trust anchors."
|
|
20392
|
+
"schema_uri": {
|
|
20393
|
+
"description": "Optional schema URI for the VCT.",
|
|
20394
|
+
"type": "string"
|
|
20395
|
+
},
|
|
20396
|
+
"schema_uri#integrity": {
|
|
20397
|
+
"description": "Integrity hash for schema_uri.",
|
|
20398
|
+
"type": "string"
|
|
20602
20399
|
}
|
|
20603
20400
|
},
|
|
20604
|
-
"required": [
|
|
20605
|
-
"trustAnchors"
|
|
20606
|
-
],
|
|
20607
20401
|
"additionalProperties": false
|
|
20608
20402
|
},
|
|
20609
20403
|
{
|
|
@@ -20611,709 +20405,2446 @@ var CONFIG_SCHEMAS = [
|
|
|
20611
20405
|
}
|
|
20612
20406
|
]
|
|
20613
20407
|
},
|
|
20614
|
-
"
|
|
20615
|
-
"description": "
|
|
20408
|
+
"keyBinding": {
|
|
20409
|
+
"description": "Enable key binding requirements.",
|
|
20410
|
+
"type": "boolean"
|
|
20411
|
+
},
|
|
20412
|
+
"keyChainId": {
|
|
20413
|
+
"description": "Optional key chain id used for credential signing.",
|
|
20414
|
+
"type": "string",
|
|
20415
|
+
"minLength": 1
|
|
20416
|
+
},
|
|
20417
|
+
"statusManagement": {
|
|
20418
|
+
"description": "Enable status management for issued credentials.",
|
|
20419
|
+
"type": "boolean"
|
|
20420
|
+
},
|
|
20421
|
+
"activeCredentials": {
|
|
20422
|
+
"description": "Optional issuer-side policy limiting simultaneously active credentials per subject. Requires statusManagement.",
|
|
20616
20423
|
"anyOf": [
|
|
20617
20424
|
{
|
|
20618
20425
|
"type": "object",
|
|
20619
20426
|
"properties": {
|
|
20620
20427
|
"enabled": {
|
|
20621
|
-
"
|
|
20622
|
-
"
|
|
20428
|
+
"type": "boolean",
|
|
20429
|
+
"description": "Ensure a subject has at most one active credential of this configuration."
|
|
20623
20430
|
},
|
|
20624
|
-
"
|
|
20625
|
-
"description": "How
|
|
20431
|
+
"tracking": {
|
|
20432
|
+
"description": "How the subject's active credential set is tracked. Only 'internal' (pseudonymous, issuer-side) is currently supported.",
|
|
20626
20433
|
"type": "string",
|
|
20627
20434
|
"enum": [
|
|
20628
|
-
"
|
|
20629
|
-
"generate"
|
|
20435
|
+
"internal"
|
|
20630
20436
|
]
|
|
20631
|
-
},
|
|
20632
|
-
"jwt": {
|
|
20633
|
-
"description": "Optional registration certificate JWT when using import mode.",
|
|
20634
|
-
"type": "string"
|
|
20635
|
-
},
|
|
20636
|
-
"privacyPolicy": {
|
|
20637
|
-
"description": "Optional privacy policy URI.",
|
|
20638
|
-
"type": "string"
|
|
20639
|
-
},
|
|
20640
|
-
"supportUri": {
|
|
20641
|
-
"description": "Optional support URI.",
|
|
20642
|
-
"type": "string"
|
|
20643
20437
|
}
|
|
20644
20438
|
},
|
|
20645
|
-
"
|
|
20439
|
+
"required": [
|
|
20440
|
+
"enabled"
|
|
20441
|
+
],
|
|
20442
|
+
"additionalProperties": false,
|
|
20443
|
+
"description": "Issuer-side policy limiting the number of simultaneously active credentials per subject."
|
|
20646
20444
|
},
|
|
20647
20445
|
{
|
|
20648
20446
|
"type": "null"
|
|
20649
20447
|
}
|
|
20650
20448
|
]
|
|
20651
20449
|
},
|
|
20652
|
-
"
|
|
20653
|
-
"description": "
|
|
20654
|
-
"type": "array",
|
|
20655
|
-
"items": {
|
|
20656
|
-
"type": "object",
|
|
20657
|
-
"properties": {
|
|
20658
|
-
"name": {
|
|
20659
|
-
"description": "Issuer display name.",
|
|
20660
|
-
"type": "string"
|
|
20661
|
-
},
|
|
20662
|
-
"locale": {
|
|
20663
|
-
"description": "Locale tag for this display entry.",
|
|
20664
|
-
"type": "string"
|
|
20665
|
-
},
|
|
20666
|
-
"logo": {
|
|
20667
|
-
"description": "Optional issuer logo metadata.",
|
|
20668
|
-
"type": "object",
|
|
20669
|
-
"properties": {
|
|
20670
|
-
"uri": {
|
|
20671
|
-
"type": "string",
|
|
20672
|
-
"minLength": 1,
|
|
20673
|
-
"description": "Logo URI."
|
|
20674
|
-
},
|
|
20675
|
-
"alt_text": {
|
|
20676
|
-
"description": "Optional localized alternative text.",
|
|
20677
|
-
"type": "string"
|
|
20678
|
-
}
|
|
20679
|
-
},
|
|
20680
|
-
"required": [
|
|
20681
|
-
"uri"
|
|
20682
|
-
],
|
|
20683
|
-
"additionalProperties": {}
|
|
20684
|
-
}
|
|
20685
|
-
},
|
|
20686
|
-
"additionalProperties": {}
|
|
20687
|
-
}
|
|
20688
|
-
},
|
|
20689
|
-
"notificationEndpointEnabled": {
|
|
20690
|
-
"description": "Whether the OID4VCI notification endpoint is exposed for this issuance configuration.",
|
|
20691
|
-
"type": "boolean"
|
|
20692
|
-
},
|
|
20693
|
-
"credentialResponseEncryption": {
|
|
20694
|
-
"description": "Enable encrypted credential responses.",
|
|
20695
|
-
"type": "boolean"
|
|
20696
|
-
},
|
|
20697
|
-
"credentialRequestEncryption": {
|
|
20698
|
-
"description": "Require encrypted credential requests.",
|
|
20699
|
-
"type": "boolean"
|
|
20700
|
-
},
|
|
20701
|
-
"txCodeMaxAttempts": {
|
|
20702
|
-
"description": "Maximum verification attempts for transaction codes. Null resets to defaults.",
|
|
20450
|
+
"iaeActions": {
|
|
20451
|
+
"description": "Interactive authorization steps (a presentation or a web flow) that the wallet completes, in order, before the credential is issued.",
|
|
20703
20452
|
"anyOf": [
|
|
20704
20453
|
{
|
|
20705
|
-
"type": "
|
|
20706
|
-
"
|
|
20707
|
-
|
|
20454
|
+
"type": "array",
|
|
20455
|
+
"items": {
|
|
20456
|
+
"oneOf": [
|
|
20457
|
+
{
|
|
20458
|
+
"type": "object",
|
|
20459
|
+
"properties": {
|
|
20460
|
+
"type": {
|
|
20461
|
+
"type": "string",
|
|
20462
|
+
"const": "openid4vp_presentation",
|
|
20463
|
+
"description": "Trigger an OpenID4VP presentation action."
|
|
20464
|
+
},
|
|
20465
|
+
"label": {
|
|
20466
|
+
"description": "Optional UI label for the action.",
|
|
20467
|
+
"type": "string"
|
|
20468
|
+
},
|
|
20469
|
+
"presentationConfigId": {
|
|
20470
|
+
"type": "string",
|
|
20471
|
+
"minLength": 1,
|
|
20472
|
+
"description": "Presentation configuration id to execute."
|
|
20473
|
+
}
|
|
20474
|
+
},
|
|
20475
|
+
"required": [
|
|
20476
|
+
"type",
|
|
20477
|
+
"presentationConfigId"
|
|
20478
|
+
],
|
|
20479
|
+
"additionalProperties": false
|
|
20480
|
+
},
|
|
20481
|
+
{
|
|
20482
|
+
"type": "object",
|
|
20483
|
+
"properties": {
|
|
20484
|
+
"type": {
|
|
20485
|
+
"type": "string",
|
|
20486
|
+
"const": "redirect_to_web",
|
|
20487
|
+
"description": "Trigger a redirect-to-web action."
|
|
20488
|
+
},
|
|
20489
|
+
"label": {
|
|
20490
|
+
"description": "Optional UI label for the action.",
|
|
20491
|
+
"type": "string"
|
|
20492
|
+
},
|
|
20493
|
+
"url": {
|
|
20494
|
+
"type": "string",
|
|
20495
|
+
"format": "uri",
|
|
20496
|
+
"description": "Destination URL for the redirect action."
|
|
20497
|
+
},
|
|
20498
|
+
"callbackUrl": {
|
|
20499
|
+
"description": "Optional callback URL after redirect completion.",
|
|
20500
|
+
"type": "string",
|
|
20501
|
+
"format": "uri"
|
|
20502
|
+
},
|
|
20503
|
+
"description": {
|
|
20504
|
+
"description": "Optional action description.",
|
|
20505
|
+
"type": "string"
|
|
20506
|
+
}
|
|
20507
|
+
},
|
|
20508
|
+
"required": [
|
|
20509
|
+
"type",
|
|
20510
|
+
"url"
|
|
20511
|
+
],
|
|
20512
|
+
"additionalProperties": false
|
|
20513
|
+
}
|
|
20514
|
+
],
|
|
20515
|
+
"description": "In-app experience action definitions."
|
|
20516
|
+
}
|
|
20708
20517
|
},
|
|
20709
20518
|
{
|
|
20710
20519
|
"type": "null"
|
|
20711
20520
|
}
|
|
20712
20521
|
]
|
|
20713
20522
|
},
|
|
20714
|
-
"
|
|
20715
|
-
"description": "
|
|
20523
|
+
"sdJwtTrustFormat": {
|
|
20524
|
+
"description": "Trust format used for SD-JWT verification metadata.",
|
|
20716
20525
|
"anyOf": [
|
|
20717
20526
|
{
|
|
20718
|
-
"type": "
|
|
20719
|
-
"
|
|
20720
|
-
|
|
20527
|
+
"type": "string",
|
|
20528
|
+
"enum": [
|
|
20529
|
+
"x5c",
|
|
20530
|
+
"federation"
|
|
20531
|
+
]
|
|
20721
20532
|
},
|
|
20722
20533
|
{
|
|
20723
20534
|
"type": "null"
|
|
20724
20535
|
}
|
|
20725
20536
|
]
|
|
20726
|
-
}
|
|
20727
|
-
},
|
|
20728
|
-
"required": [
|
|
20729
|
-
"authorizationServers"
|
|
20730
|
-
],
|
|
20731
|
-
"additionalProperties": false,
|
|
20732
|
-
"title": "IssuanceConfig"
|
|
20733
|
-
}
|
|
20734
|
-
}
|
|
20735
|
-
},
|
|
20736
|
-
{
|
|
20737
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
20738
|
-
"$id": "https://eudiplo.dev/schemas/v2/PresentationConfigFile.schema.json",
|
|
20739
|
-
"title": "PresentationConfigFile",
|
|
20740
|
-
"type": "object",
|
|
20741
|
-
"properties": {
|
|
20742
|
-
"$schema": {
|
|
20743
|
-
"type": "string",
|
|
20744
|
-
"const": "https://eudiplo.dev/schemas/v2/PresentationConfigFile.schema.json"
|
|
20745
|
-
},
|
|
20746
|
-
"metadata": {
|
|
20747
|
-
"type": "object",
|
|
20748
|
-
"properties": {
|
|
20749
|
-
"generation": {
|
|
20750
|
-
"type": "integer",
|
|
20751
|
-
"minimum": 1,
|
|
20752
|
-
"description": "Monotonically increasing configuration generation."
|
|
20753
|
-
},
|
|
20754
|
-
"ownership": {
|
|
20755
|
-
"type": "string",
|
|
20756
|
-
"enum": [
|
|
20757
|
-
"unmanaged",
|
|
20758
|
-
"file-managed"
|
|
20759
|
-
],
|
|
20760
|
-
"description": "Requested ownership recorded when the document is applied."
|
|
20761
|
-
}
|
|
20762
|
-
},
|
|
20763
|
-
"additionalProperties": false
|
|
20764
|
-
},
|
|
20765
|
-
"spec": {
|
|
20766
|
-
"allOf": [
|
|
20767
|
-
{
|
|
20768
|
-
"$ref": "#/$defs/PresentationConfigCreateDto"
|
|
20769
|
-
},
|
|
20770
|
-
{
|
|
20771
|
-
"type": "object",
|
|
20772
|
-
"required": [
|
|
20773
|
-
"id"
|
|
20774
|
-
],
|
|
20775
|
-
"properties": {
|
|
20776
|
-
"id": {
|
|
20777
|
-
"type": "string",
|
|
20778
|
-
"minLength": 1
|
|
20779
|
-
}
|
|
20780
|
-
}
|
|
20781
|
-
}
|
|
20782
|
-
]
|
|
20783
|
-
}
|
|
20784
|
-
},
|
|
20785
|
-
"required": [
|
|
20786
|
-
"$schema",
|
|
20787
|
-
"spec"
|
|
20788
|
-
],
|
|
20789
|
-
"additionalProperties": false,
|
|
20790
|
-
"$defs": {
|
|
20791
|
-
"PresentationConfigCreateDto": {
|
|
20792
|
-
"type": "object",
|
|
20793
|
-
"properties": {
|
|
20794
|
-
"id": {
|
|
20795
|
-
"type": "string",
|
|
20796
|
-
"minLength": 1,
|
|
20797
|
-
"description": "Presentation configuration identifier."
|
|
20798
|
-
},
|
|
20799
|
-
"description": {
|
|
20800
|
-
"description": "Optional presentation configuration description.",
|
|
20801
|
-
"type": [
|
|
20802
|
-
"string",
|
|
20803
|
-
"null"
|
|
20804
|
-
]
|
|
20805
20537
|
},
|
|
20806
20538
|
"lifeTime": {
|
|
20807
|
-
"description": "
|
|
20539
|
+
"description": "Credential lifetime in seconds.",
|
|
20808
20540
|
"type": "integer",
|
|
20809
20541
|
"minimum": 1,
|
|
20810
20542
|
"maximum": 9007199254740991
|
|
20811
20543
|
},
|
|
20812
|
-
"
|
|
20813
|
-
"description": "
|
|
20814
|
-
"
|
|
20815
|
-
|
|
20816
|
-
|
|
20817
|
-
|
|
20818
|
-
|
|
20819
|
-
|
|
20820
|
-
|
|
20821
|
-
|
|
20822
|
-
|
|
20823
|
-
|
|
20824
|
-
|
|
20825
|
-
|
|
20826
|
-
|
|
20827
|
-
|
|
20828
|
-
|
|
20829
|
-
|
|
20830
|
-
|
|
20831
|
-
|
|
20832
|
-
|
|
20833
|
-
|
|
20834
|
-
"
|
|
20835
|
-
|
|
20544
|
+
"schemaMeta": {
|
|
20545
|
+
"description": "Optional schema metadata and trust bindings.",
|
|
20546
|
+
"anyOf": [
|
|
20547
|
+
{
|
|
20548
|
+
"type": "object",
|
|
20549
|
+
"properties": {
|
|
20550
|
+
"id": {
|
|
20551
|
+
"description": "Optional schema metadata identifier.",
|
|
20552
|
+
"type": "string"
|
|
20553
|
+
},
|
|
20554
|
+
"name": {
|
|
20555
|
+
"description": "Optional schema metadata name.",
|
|
20556
|
+
"type": "string"
|
|
20557
|
+
},
|
|
20558
|
+
"version": {
|
|
20559
|
+
"type": "string",
|
|
20560
|
+
"description": "Schema metadata version."
|
|
20561
|
+
},
|
|
20562
|
+
"rulebookURI": {
|
|
20563
|
+
"description": "Optional rulebook URI reference.",
|
|
20564
|
+
"type": "string"
|
|
20565
|
+
},
|
|
20566
|
+
"attestationLoS": {
|
|
20567
|
+
"type": "string",
|
|
20568
|
+
"enum": [
|
|
20569
|
+
"iso_18045_high",
|
|
20570
|
+
"iso_18045_moderate",
|
|
20571
|
+
"iso_18045_enhanced-basic",
|
|
20572
|
+
"iso_18045_basic"
|
|
20573
|
+
],
|
|
20574
|
+
"description": "Assurance level for attestation requirements."
|
|
20575
|
+
},
|
|
20576
|
+
"bindingType": {
|
|
20577
|
+
"type": "string",
|
|
20578
|
+
"enum": [
|
|
20579
|
+
"claim",
|
|
20580
|
+
"key",
|
|
20581
|
+
"biometric",
|
|
20582
|
+
"none"
|
|
20583
|
+
],
|
|
20584
|
+
"description": "Subject binding type."
|
|
20585
|
+
},
|
|
20586
|
+
"schemaURIs": {
|
|
20587
|
+
"description": "Optional schema URI entries.",
|
|
20588
|
+
"type": "array",
|
|
20589
|
+
"items": {
|
|
20836
20590
|
"type": "object",
|
|
20837
20591
|
"properties": {
|
|
20838
|
-
"
|
|
20839
|
-
"
|
|
20840
|
-
"
|
|
20841
|
-
"pattern": "^[A-Za-z0-9_-]+$",
|
|
20842
|
-
"description": "Credential query identifier."
|
|
20592
|
+
"credentialConfigId": {
|
|
20593
|
+
"description": "Optional credential configuration id this schema URI applies to.",
|
|
20594
|
+
"type": "string"
|
|
20843
20595
|
},
|
|
20844
|
-
"
|
|
20845
|
-
"description": "
|
|
20846
|
-
"type": "
|
|
20596
|
+
"format": {
|
|
20597
|
+
"description": "Optional credential format for this schema URI.",
|
|
20598
|
+
"type": "string"
|
|
20847
20599
|
},
|
|
20848
|
-
"
|
|
20849
|
-
"description": "
|
|
20850
|
-
"type": "
|
|
20851
|
-
|
|
20852
|
-
|
|
20600
|
+
"uri": {
|
|
20601
|
+
"description": "Schema URI reference.",
|
|
20602
|
+
"type": "string"
|
|
20603
|
+
},
|
|
20604
|
+
"meta": {
|
|
20605
|
+
"description": "Optional metadata attached to the schema URI.",
|
|
20606
|
+
"type": "object",
|
|
20607
|
+
"propertyNames": {
|
|
20608
|
+
"type": "string"
|
|
20609
|
+
},
|
|
20610
|
+
"additionalProperties": {}
|
|
20611
|
+
}
|
|
20612
|
+
},
|
|
20613
|
+
"additionalProperties": false
|
|
20614
|
+
}
|
|
20615
|
+
},
|
|
20616
|
+
"trustedAuthorities": {
|
|
20617
|
+
"description": "Optional trusted authority entries.",
|
|
20618
|
+
"type": "array",
|
|
20619
|
+
"items": {
|
|
20620
|
+
"type": "object",
|
|
20621
|
+
"properties": {
|
|
20622
|
+
"trustListId": {
|
|
20623
|
+
"description": "Optional trust list id.",
|
|
20624
|
+
"type": "string"
|
|
20625
|
+
},
|
|
20626
|
+
"frameworkType": {
|
|
20627
|
+
"description": "Trust framework type. `x509` takes a root certificate in `value` and no `verificationMethod`.",
|
|
20628
|
+
"type": "string",
|
|
20629
|
+
"enum": [
|
|
20630
|
+
"aki",
|
|
20631
|
+
"etsi_tl",
|
|
20632
|
+
"openid_federation",
|
|
20633
|
+
"x509"
|
|
20634
|
+
]
|
|
20635
|
+
},
|
|
20636
|
+
"value": {
|
|
20637
|
+
"description": "Framework-specific authority value, for example the trust list URL for `etsi_tl` or the root certificate (base64 DER or PEM) for `x509`.",
|
|
20638
|
+
"type": "string"
|
|
20639
|
+
},
|
|
20640
|
+
"verificationMethod": {
|
|
20641
|
+
"description": "Verification method descriptor.",
|
|
20642
|
+
"anyOf": [
|
|
20643
|
+
{
|
|
20644
|
+
"type": "object",
|
|
20645
|
+
"propertyNames": {
|
|
20646
|
+
"type": "string"
|
|
20647
|
+
},
|
|
20648
|
+
"additionalProperties": {}
|
|
20649
|
+
},
|
|
20650
|
+
{
|
|
20651
|
+
"type": "string"
|
|
20652
|
+
}
|
|
20653
|
+
]
|
|
20654
|
+
}
|
|
20655
|
+
},
|
|
20656
|
+
"additionalProperties": false
|
|
20657
|
+
}
|
|
20658
|
+
}
|
|
20659
|
+
},
|
|
20660
|
+
"required": [
|
|
20661
|
+
"version",
|
|
20662
|
+
"attestationLoS",
|
|
20663
|
+
"bindingType"
|
|
20664
|
+
],
|
|
20665
|
+
"additionalProperties": false
|
|
20666
|
+
},
|
|
20667
|
+
{
|
|
20668
|
+
"type": "null"
|
|
20669
|
+
}
|
|
20670
|
+
]
|
|
20671
|
+
},
|
|
20672
|
+
"embeddedDisclosurePolicy": {
|
|
20673
|
+
"description": "Optional embedded disclosure policy.",
|
|
20674
|
+
"anyOf": [
|
|
20675
|
+
{
|
|
20676
|
+
"oneOf": [
|
|
20677
|
+
{
|
|
20678
|
+
"type": "object",
|
|
20679
|
+
"properties": {
|
|
20680
|
+
"policy": {
|
|
20681
|
+
"type": "string",
|
|
20682
|
+
"const": "attestationBased",
|
|
20683
|
+
"description": "Attestation-based policy discriminator."
|
|
20684
|
+
},
|
|
20685
|
+
"values": {
|
|
20686
|
+
"type": "array",
|
|
20687
|
+
"items": {
|
|
20688
|
+
"type": "object",
|
|
20689
|
+
"properties": {
|
|
20690
|
+
"claims": {
|
|
20691
|
+
"description": "Claims constraints considered by policy evaluation.",
|
|
20692
|
+
"type": "array",
|
|
20693
|
+
"items": {}
|
|
20694
|
+
},
|
|
20695
|
+
"credentials": {
|
|
20696
|
+
"type": "array",
|
|
20697
|
+
"items": {},
|
|
20698
|
+
"description": "Credential constraints considered by policy evaluation."
|
|
20699
|
+
},
|
|
20700
|
+
"credential_sets": {
|
|
20701
|
+
"description": "Optional credential set constraints.",
|
|
20702
|
+
"type": "array",
|
|
20703
|
+
"items": {}
|
|
20704
|
+
}
|
|
20705
|
+
},
|
|
20706
|
+
"required": [
|
|
20707
|
+
"credentials"
|
|
20708
|
+
],
|
|
20709
|
+
"additionalProperties": false
|
|
20710
|
+
},
|
|
20711
|
+
"description": "Attestation requirements used for policy enforcement."
|
|
20712
|
+
}
|
|
20713
|
+
},
|
|
20714
|
+
"required": [
|
|
20715
|
+
"policy",
|
|
20716
|
+
"values"
|
|
20717
|
+
],
|
|
20718
|
+
"additionalProperties": false
|
|
20719
|
+
},
|
|
20720
|
+
{
|
|
20721
|
+
"type": "object",
|
|
20722
|
+
"properties": {
|
|
20723
|
+
"policy": {
|
|
20724
|
+
"type": "string",
|
|
20725
|
+
"const": "none",
|
|
20726
|
+
"description": "No disclosure policy enforcement."
|
|
20727
|
+
}
|
|
20728
|
+
},
|
|
20729
|
+
"required": [
|
|
20730
|
+
"policy"
|
|
20731
|
+
],
|
|
20732
|
+
"additionalProperties": false
|
|
20733
|
+
},
|
|
20734
|
+
{
|
|
20735
|
+
"type": "object",
|
|
20736
|
+
"properties": {
|
|
20737
|
+
"policy": {
|
|
20738
|
+
"type": "string",
|
|
20739
|
+
"const": "allowList",
|
|
20740
|
+
"description": "Allow-list based policy discriminator."
|
|
20741
|
+
},
|
|
20742
|
+
"values": {
|
|
20743
|
+
"type": "array",
|
|
20744
|
+
"items": {
|
|
20745
|
+
"type": "string"
|
|
20746
|
+
},
|
|
20747
|
+
"description": "Allowed values for policy checks."
|
|
20748
|
+
}
|
|
20749
|
+
},
|
|
20750
|
+
"required": [
|
|
20751
|
+
"policy",
|
|
20752
|
+
"values"
|
|
20753
|
+
],
|
|
20754
|
+
"additionalProperties": false
|
|
20755
|
+
},
|
|
20756
|
+
{
|
|
20757
|
+
"type": "object",
|
|
20758
|
+
"properties": {
|
|
20759
|
+
"policy": {
|
|
20760
|
+
"type": "string",
|
|
20761
|
+
"const": "rootOfTrust",
|
|
20762
|
+
"description": "Root-of-trust policy discriminator."
|
|
20763
|
+
},
|
|
20764
|
+
"values": {
|
|
20765
|
+
"type": "string",
|
|
20766
|
+
"description": "Root-of-trust identifier or reference."
|
|
20767
|
+
}
|
|
20768
|
+
},
|
|
20769
|
+
"required": [
|
|
20770
|
+
"policy",
|
|
20771
|
+
"values"
|
|
20772
|
+
],
|
|
20773
|
+
"additionalProperties": false
|
|
20774
|
+
}
|
|
20775
|
+
],
|
|
20776
|
+
"description": "Embedded disclosure policy configuration."
|
|
20777
|
+
},
|
|
20778
|
+
{
|
|
20779
|
+
"type": "null"
|
|
20780
|
+
}
|
|
20781
|
+
]
|
|
20782
|
+
}
|
|
20783
|
+
},
|
|
20784
|
+
"required": [
|
|
20785
|
+
"id",
|
|
20786
|
+
"config",
|
|
20787
|
+
"fields"
|
|
20788
|
+
],
|
|
20789
|
+
"additionalProperties": false,
|
|
20790
|
+
"description": "Payload for creating credential issuance configuration.",
|
|
20791
|
+
"$defs": {
|
|
20792
|
+
"__schema0": {
|
|
20793
|
+
"type": "object",
|
|
20794
|
+
"properties": {
|
|
20795
|
+
"path": {
|
|
20796
|
+
"type": "array",
|
|
20797
|
+
"items": {
|
|
20798
|
+
"type": [
|
|
20799
|
+
"string",
|
|
20800
|
+
"number",
|
|
20801
|
+
"null"
|
|
20802
|
+
]
|
|
20803
|
+
},
|
|
20804
|
+
"description": "Path to this claim inside the credential payload."
|
|
20805
|
+
},
|
|
20806
|
+
"type": {
|
|
20807
|
+
"type": "string",
|
|
20808
|
+
"enum": [
|
|
20809
|
+
"string",
|
|
20810
|
+
"number",
|
|
20811
|
+
"integer",
|
|
20812
|
+
"boolean",
|
|
20813
|
+
"object",
|
|
20814
|
+
"array"
|
|
20815
|
+
],
|
|
20816
|
+
"description": "Data type of the claim value."
|
|
20817
|
+
},
|
|
20818
|
+
"defaultValue": {
|
|
20819
|
+
"description": "Optional default value for this field."
|
|
20820
|
+
},
|
|
20821
|
+
"mandatory": {
|
|
20822
|
+
"description": "Whether the field is required at issuance time.",
|
|
20823
|
+
"type": "boolean"
|
|
20824
|
+
},
|
|
20825
|
+
"disclosable": {
|
|
20826
|
+
"description": "Whether the claim is selectively disclosable.",
|
|
20827
|
+
"type": "boolean"
|
|
20828
|
+
},
|
|
20829
|
+
"namespace": {
|
|
20830
|
+
"description": "Optional namespace for claim grouping.",
|
|
20831
|
+
"type": "string"
|
|
20832
|
+
},
|
|
20833
|
+
"display": {
|
|
20834
|
+
"description": "Localized display metadata for this field.",
|
|
20835
|
+
"type": "array",
|
|
20836
|
+
"items": {
|
|
20837
|
+
"type": "object",
|
|
20838
|
+
"properties": {
|
|
20839
|
+
"locale": {
|
|
20840
|
+
"type": "string",
|
|
20841
|
+
"minLength": 1,
|
|
20842
|
+
"description": "Locale tag for the display entry."
|
|
20843
|
+
},
|
|
20844
|
+
"name": {
|
|
20845
|
+
"type": "string",
|
|
20846
|
+
"minLength": 1,
|
|
20847
|
+
"description": "Human-readable field name."
|
|
20848
|
+
},
|
|
20849
|
+
"description": {
|
|
20850
|
+
"description": "Optional field description for this locale.",
|
|
20851
|
+
"type": "string"
|
|
20852
|
+
}
|
|
20853
|
+
},
|
|
20854
|
+
"required": [
|
|
20855
|
+
"locale",
|
|
20856
|
+
"name"
|
|
20857
|
+
],
|
|
20858
|
+
"additionalProperties": false
|
|
20859
|
+
}
|
|
20860
|
+
},
|
|
20861
|
+
"constraints": {
|
|
20862
|
+
"description": "Optional validation constraints for the claim value.",
|
|
20863
|
+
"type": "object",
|
|
20864
|
+
"propertyNames": {
|
|
20865
|
+
"type": "string"
|
|
20866
|
+
},
|
|
20867
|
+
"additionalProperties": {}
|
|
20868
|
+
},
|
|
20869
|
+
"children": {
|
|
20870
|
+
"description": "Nested child claim definitions for object or array fields.",
|
|
20871
|
+
"type": "array",
|
|
20872
|
+
"items": {
|
|
20873
|
+
"$ref": "#/$defs/CredentialConfigCreate/$defs/__schema0"
|
|
20874
|
+
}
|
|
20875
|
+
}
|
|
20876
|
+
},
|
|
20877
|
+
"required": [
|
|
20878
|
+
"path",
|
|
20879
|
+
"type"
|
|
20880
|
+
],
|
|
20881
|
+
"additionalProperties": false
|
|
20882
|
+
}
|
|
20883
|
+
},
|
|
20884
|
+
"title": "CredentialConfigCreate"
|
|
20885
|
+
}
|
|
20886
|
+
}
|
|
20887
|
+
},
|
|
20888
|
+
{
|
|
20889
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
20890
|
+
"$id": "https://eudiplo.dev/schemas/v2/IssuanceConfigFile.schema.json",
|
|
20891
|
+
"title": "IssuanceConfigFile",
|
|
20892
|
+
"type": "object",
|
|
20893
|
+
"properties": {
|
|
20894
|
+
"$schema": {
|
|
20895
|
+
"type": "string",
|
|
20896
|
+
"const": "https://eudiplo.dev/schemas/v2/IssuanceConfigFile.schema.json"
|
|
20897
|
+
},
|
|
20898
|
+
"metadata": {
|
|
20899
|
+
"type": "object",
|
|
20900
|
+
"properties": {
|
|
20901
|
+
"generation": {
|
|
20902
|
+
"type": "integer",
|
|
20903
|
+
"minimum": 1,
|
|
20904
|
+
"description": "Monotonically increasing configuration generation."
|
|
20905
|
+
},
|
|
20906
|
+
"ownership": {
|
|
20907
|
+
"type": "string",
|
|
20908
|
+
"enum": [
|
|
20909
|
+
"unmanaged",
|
|
20910
|
+
"file-managed"
|
|
20911
|
+
],
|
|
20912
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
20913
|
+
}
|
|
20914
|
+
},
|
|
20915
|
+
"additionalProperties": false
|
|
20916
|
+
},
|
|
20917
|
+
"spec": {
|
|
20918
|
+
"$ref": "#/$defs/IssuanceConfig"
|
|
20919
|
+
}
|
|
20920
|
+
},
|
|
20921
|
+
"required": [
|
|
20922
|
+
"$schema",
|
|
20923
|
+
"spec"
|
|
20924
|
+
],
|
|
20925
|
+
"additionalProperties": false,
|
|
20926
|
+
"$defs": {
|
|
20927
|
+
"IssuanceConfig": {
|
|
20928
|
+
"type": "object",
|
|
20929
|
+
"properties": {
|
|
20930
|
+
"batchSize": {
|
|
20931
|
+
"description": "Optional issuance batch size.",
|
|
20932
|
+
"type": "integer",
|
|
20933
|
+
"minimum": 1,
|
|
20934
|
+
"maximum": 9007199254740991
|
|
20935
|
+
},
|
|
20936
|
+
"dPopRequired": {
|
|
20937
|
+
"description": "Require DPoP proofs for issuance endpoints.",
|
|
20938
|
+
"type": "boolean"
|
|
20939
|
+
},
|
|
20940
|
+
"walletAttestationRequired": {
|
|
20941
|
+
"description": "Default wallet attestation requirement for managed authorization servers.",
|
|
20942
|
+
"type": "boolean"
|
|
20943
|
+
},
|
|
20944
|
+
"walletProviderTrustLists": {
|
|
20945
|
+
"description": "Shared wallet provider trust lists for key attestations and default authorization server wallet authentication.",
|
|
20946
|
+
"type": "array",
|
|
20947
|
+
"items": {
|
|
20948
|
+
"type": "object",
|
|
20949
|
+
"properties": {
|
|
20950
|
+
"trustListId": {
|
|
20951
|
+
"type": "string",
|
|
20952
|
+
"minLength": 1
|
|
20953
|
+
},
|
|
20954
|
+
"url": {
|
|
20955
|
+
"description": "URL of the wallet provider trust list.",
|
|
20956
|
+
"type": "string",
|
|
20957
|
+
"format": "uri"
|
|
20958
|
+
},
|
|
20959
|
+
"verifierKey": {
|
|
20960
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
20961
|
+
"type": "object",
|
|
20962
|
+
"propertyNames": {
|
|
20963
|
+
"type": "string"
|
|
20964
|
+
},
|
|
20965
|
+
"additionalProperties": {}
|
|
20966
|
+
},
|
|
20967
|
+
"verifierX509Der": {
|
|
20968
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
20969
|
+
"type": "string"
|
|
20970
|
+
}
|
|
20971
|
+
},
|
|
20972
|
+
"additionalProperties": false
|
|
20973
|
+
}
|
|
20974
|
+
},
|
|
20975
|
+
"signingKeyId": {
|
|
20976
|
+
"description": "Default signing key chain id for credential issuance.",
|
|
20977
|
+
"type": "string",
|
|
20978
|
+
"minLength": 1
|
|
20979
|
+
},
|
|
20980
|
+
"authorizationServers": {
|
|
20981
|
+
"minItems": 1,
|
|
20982
|
+
"type": "array",
|
|
20983
|
+
"items": {
|
|
20984
|
+
"oneOf": [
|
|
20985
|
+
{
|
|
20986
|
+
"type": "object",
|
|
20987
|
+
"properties": {
|
|
20988
|
+
"type": {
|
|
20989
|
+
"type": "string",
|
|
20990
|
+
"const": "external",
|
|
20991
|
+
"description": "Use an externally managed authorization server."
|
|
20992
|
+
},
|
|
20993
|
+
"id": {
|
|
20994
|
+
"type": "string",
|
|
20995
|
+
"minLength": 1,
|
|
20996
|
+
"description": "Authorization server identifier."
|
|
20997
|
+
},
|
|
20998
|
+
"issuer": {
|
|
20999
|
+
"type": "string",
|
|
21000
|
+
"format": "uri",
|
|
21001
|
+
"description": "Issuer URL for the external authorization server."
|
|
21002
|
+
},
|
|
21003
|
+
"sessionBinding": {
|
|
21004
|
+
"description": "Explicit mapping from an external access-token claim to an existing issuance session.",
|
|
21005
|
+
"type": "object",
|
|
21006
|
+
"properties": {
|
|
21007
|
+
"method": {
|
|
21008
|
+
"type": "string",
|
|
21009
|
+
"const": "access_token_claim",
|
|
21010
|
+
"description": "Read the correlation value from a configured access-token claim."
|
|
21011
|
+
},
|
|
21012
|
+
"claim": {
|
|
21013
|
+
"type": "string",
|
|
21014
|
+
"minLength": 1,
|
|
21015
|
+
"description": "Claim name that contains the issuance-session correlation value."
|
|
21016
|
+
}
|
|
21017
|
+
},
|
|
21018
|
+
"required": [
|
|
21019
|
+
"method",
|
|
21020
|
+
"claim"
|
|
21021
|
+
],
|
|
21022
|
+
"additionalProperties": false
|
|
21023
|
+
},
|
|
21024
|
+
"label": {
|
|
21025
|
+
"description": "Optional display label for UI selection.",
|
|
21026
|
+
"type": "string"
|
|
21027
|
+
},
|
|
21028
|
+
"enabled": {
|
|
21029
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
21030
|
+
"type": "boolean"
|
|
21031
|
+
}
|
|
21032
|
+
},
|
|
21033
|
+
"required": [
|
|
21034
|
+
"type",
|
|
21035
|
+
"id",
|
|
21036
|
+
"issuer"
|
|
21037
|
+
],
|
|
21038
|
+
"additionalProperties": false
|
|
21039
|
+
},
|
|
21040
|
+
{
|
|
21041
|
+
"type": "object",
|
|
21042
|
+
"properties": {
|
|
21043
|
+
"type": {
|
|
21044
|
+
"type": "string",
|
|
21045
|
+
"const": "oid4vp",
|
|
21046
|
+
"description": "Use OID4VP-based authorization server chaining."
|
|
21047
|
+
},
|
|
21048
|
+
"id": {
|
|
21049
|
+
"type": "string",
|
|
21050
|
+
"minLength": 1,
|
|
21051
|
+
"description": "Authorization server identifier."
|
|
21052
|
+
},
|
|
21053
|
+
"presentationConfigId": {
|
|
21054
|
+
"type": "string",
|
|
21055
|
+
"minLength": 1,
|
|
21056
|
+
"description": "Presentation configuration id used during authorization."
|
|
21057
|
+
},
|
|
21058
|
+
"immediateWalletRedirect": {
|
|
21059
|
+
"description": "Redirect wallets immediately after authorization response creation.",
|
|
21060
|
+
"type": "boolean"
|
|
21061
|
+
},
|
|
21062
|
+
"token": {
|
|
21063
|
+
"description": "Optional token issuance settings.",
|
|
21064
|
+
"type": "object",
|
|
21065
|
+
"properties": {
|
|
21066
|
+
"lifetimeSeconds": {
|
|
21067
|
+
"description": "Access token lifetime in seconds.",
|
|
21068
|
+
"type": "number",
|
|
21069
|
+
"minimum": 60
|
|
21070
|
+
},
|
|
21071
|
+
"signingKeyId": {
|
|
21072
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
21073
|
+
"type": "string",
|
|
21074
|
+
"minLength": 1
|
|
21075
|
+
},
|
|
21076
|
+
"refreshTokenEnabled": {
|
|
21077
|
+
"description": "Enable issuing refresh tokens.",
|
|
21078
|
+
"type": "boolean"
|
|
21079
|
+
},
|
|
21080
|
+
"refreshTokenExpiresInSeconds": {
|
|
21081
|
+
"description": "Refresh token lifetime in seconds.",
|
|
21082
|
+
"type": "number",
|
|
21083
|
+
"minimum": 60
|
|
21084
|
+
}
|
|
21085
|
+
},
|
|
21086
|
+
"additionalProperties": false
|
|
21087
|
+
},
|
|
21088
|
+
"requireDPoP": {
|
|
21089
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
21090
|
+
"type": "boolean"
|
|
21091
|
+
},
|
|
21092
|
+
"walletAttestationRequired": {
|
|
21093
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
21094
|
+
"type": "boolean"
|
|
21095
|
+
},
|
|
21096
|
+
"walletProviderTrustLists": {
|
|
21097
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
21098
|
+
"type": "array",
|
|
21099
|
+
"items": {
|
|
21100
|
+
"type": "object",
|
|
21101
|
+
"properties": {
|
|
21102
|
+
"trustListId": {
|
|
21103
|
+
"type": "string",
|
|
21104
|
+
"minLength": 1
|
|
21105
|
+
},
|
|
21106
|
+
"url": {
|
|
21107
|
+
"description": "URL of the wallet provider trust list.",
|
|
21108
|
+
"type": "string",
|
|
21109
|
+
"format": "uri"
|
|
21110
|
+
},
|
|
21111
|
+
"verifierKey": {
|
|
21112
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
21113
|
+
"type": "object",
|
|
21114
|
+
"propertyNames": {
|
|
21115
|
+
"type": "string"
|
|
21116
|
+
},
|
|
21117
|
+
"additionalProperties": {}
|
|
21118
|
+
},
|
|
21119
|
+
"verifierX509Der": {
|
|
21120
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
21121
|
+
"type": "string"
|
|
21122
|
+
}
|
|
21123
|
+
},
|
|
21124
|
+
"additionalProperties": false
|
|
21125
|
+
}
|
|
21126
|
+
},
|
|
21127
|
+
"label": {
|
|
21128
|
+
"description": "Optional display label for UI selection.",
|
|
21129
|
+
"type": "string"
|
|
21130
|
+
},
|
|
21131
|
+
"enabled": {
|
|
21132
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
21133
|
+
"type": "boolean"
|
|
21134
|
+
}
|
|
21135
|
+
},
|
|
21136
|
+
"required": [
|
|
21137
|
+
"type",
|
|
21138
|
+
"id",
|
|
21139
|
+
"presentationConfigId"
|
|
21140
|
+
],
|
|
21141
|
+
"additionalProperties": false
|
|
21142
|
+
},
|
|
21143
|
+
{
|
|
21144
|
+
"type": "object",
|
|
21145
|
+
"properties": {
|
|
21146
|
+
"type": {
|
|
21147
|
+
"type": "string",
|
|
21148
|
+
"const": "chained",
|
|
21149
|
+
"description": "Use upstream OIDC as authorization source."
|
|
21150
|
+
},
|
|
21151
|
+
"id": {
|
|
21152
|
+
"type": "string",
|
|
21153
|
+
"minLength": 1,
|
|
21154
|
+
"description": "Authorization server identifier."
|
|
21155
|
+
},
|
|
21156
|
+
"upstream": {
|
|
21157
|
+
"type": "object",
|
|
21158
|
+
"properties": {
|
|
21159
|
+
"issuer": {
|
|
21160
|
+
"type": "string",
|
|
21161
|
+
"format": "uri",
|
|
21162
|
+
"description": "Upstream OIDC issuer URL."
|
|
21163
|
+
},
|
|
21164
|
+
"clientId": {
|
|
21165
|
+
"type": "string",
|
|
21166
|
+
"minLength": 1,
|
|
21167
|
+
"description": "Client id for upstream OIDC authentication."
|
|
21168
|
+
},
|
|
21169
|
+
"clientSecret": {
|
|
21170
|
+
"description": "Optional client secret for upstream OIDC authentication.",
|
|
21171
|
+
"type": "string",
|
|
21172
|
+
"minLength": 1
|
|
21173
|
+
},
|
|
21174
|
+
"scopes": {
|
|
21175
|
+
"description": "Optional scopes requested from the upstream issuer.",
|
|
21176
|
+
"type": "array",
|
|
21177
|
+
"items": {
|
|
21178
|
+
"type": "string",
|
|
21179
|
+
"minLength": 1
|
|
21180
|
+
}
|
|
21181
|
+
}
|
|
21182
|
+
},
|
|
21183
|
+
"required": [
|
|
21184
|
+
"issuer",
|
|
21185
|
+
"clientId"
|
|
21186
|
+
],
|
|
21187
|
+
"additionalProperties": false,
|
|
21188
|
+
"description": "Upstream OIDC connection settings."
|
|
21189
|
+
},
|
|
21190
|
+
"token": {
|
|
21191
|
+
"description": "Optional token issuance settings.",
|
|
21192
|
+
"type": "object",
|
|
21193
|
+
"properties": {
|
|
21194
|
+
"lifetimeSeconds": {
|
|
21195
|
+
"description": "Access token lifetime in seconds.",
|
|
21196
|
+
"type": "number",
|
|
21197
|
+
"minimum": 60
|
|
21198
|
+
},
|
|
21199
|
+
"signingKeyId": {
|
|
21200
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
21201
|
+
"type": "string",
|
|
21202
|
+
"minLength": 1
|
|
21203
|
+
},
|
|
21204
|
+
"refreshTokenEnabled": {
|
|
21205
|
+
"description": "Enable issuing refresh tokens.",
|
|
21206
|
+
"type": "boolean"
|
|
21207
|
+
},
|
|
21208
|
+
"refreshTokenExpiresInSeconds": {
|
|
21209
|
+
"description": "Refresh token lifetime in seconds.",
|
|
21210
|
+
"type": "number",
|
|
21211
|
+
"minimum": 60
|
|
21212
|
+
}
|
|
21213
|
+
},
|
|
21214
|
+
"additionalProperties": false
|
|
21215
|
+
},
|
|
21216
|
+
"requireDPoP": {
|
|
21217
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
21218
|
+
"type": "boolean"
|
|
21219
|
+
},
|
|
21220
|
+
"walletAttestationRequired": {
|
|
21221
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
21222
|
+
"type": "boolean"
|
|
21223
|
+
},
|
|
21224
|
+
"walletProviderTrustLists": {
|
|
21225
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
21226
|
+
"type": "array",
|
|
21227
|
+
"items": {
|
|
21228
|
+
"type": "object",
|
|
21229
|
+
"properties": {
|
|
21230
|
+
"trustListId": {
|
|
21231
|
+
"type": "string",
|
|
21232
|
+
"minLength": 1
|
|
21233
|
+
},
|
|
21234
|
+
"url": {
|
|
21235
|
+
"description": "URL of the wallet provider trust list.",
|
|
21236
|
+
"type": "string",
|
|
21237
|
+
"format": "uri"
|
|
21238
|
+
},
|
|
21239
|
+
"verifierKey": {
|
|
21240
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
21241
|
+
"type": "object",
|
|
21242
|
+
"propertyNames": {
|
|
21243
|
+
"type": "string"
|
|
21244
|
+
},
|
|
21245
|
+
"additionalProperties": {}
|
|
21246
|
+
},
|
|
21247
|
+
"verifierX509Der": {
|
|
21248
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
21249
|
+
"type": "string"
|
|
21250
|
+
}
|
|
21251
|
+
},
|
|
21252
|
+
"additionalProperties": false
|
|
21253
|
+
}
|
|
21254
|
+
},
|
|
21255
|
+
"label": {
|
|
21256
|
+
"description": "Optional display label for UI selection.",
|
|
21257
|
+
"type": "string"
|
|
21258
|
+
},
|
|
21259
|
+
"enabled": {
|
|
21260
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
21261
|
+
"type": "boolean"
|
|
21262
|
+
}
|
|
21263
|
+
},
|
|
21264
|
+
"required": [
|
|
21265
|
+
"type",
|
|
21266
|
+
"id",
|
|
21267
|
+
"upstream"
|
|
21268
|
+
],
|
|
21269
|
+
"additionalProperties": false
|
|
21270
|
+
},
|
|
21271
|
+
{
|
|
21272
|
+
"type": "object",
|
|
21273
|
+
"properties": {
|
|
21274
|
+
"type": {
|
|
21275
|
+
"type": "string",
|
|
21276
|
+
"const": "built-in",
|
|
21277
|
+
"description": "Use EUDIPLO built-in authorization server."
|
|
21278
|
+
},
|
|
21279
|
+
"id": {
|
|
21280
|
+
"type": "string",
|
|
21281
|
+
"minLength": 1,
|
|
21282
|
+
"description": "Authorization server identifier."
|
|
21283
|
+
},
|
|
21284
|
+
"token": {
|
|
21285
|
+
"description": "Optional token issuance settings.",
|
|
21286
|
+
"type": "object",
|
|
21287
|
+
"properties": {
|
|
21288
|
+
"lifetimeSeconds": {
|
|
21289
|
+
"description": "Access token lifetime in seconds.",
|
|
21290
|
+
"type": "number",
|
|
21291
|
+
"minimum": 60
|
|
21292
|
+
},
|
|
21293
|
+
"signingKeyId": {
|
|
21294
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
21295
|
+
"type": "string",
|
|
21296
|
+
"minLength": 1
|
|
21297
|
+
},
|
|
21298
|
+
"refreshTokenEnabled": {
|
|
21299
|
+
"description": "Enable issuing refresh tokens.",
|
|
21300
|
+
"type": "boolean"
|
|
21301
|
+
},
|
|
21302
|
+
"refreshTokenExpiresInSeconds": {
|
|
21303
|
+
"description": "Refresh token lifetime in seconds.",
|
|
21304
|
+
"type": "number",
|
|
21305
|
+
"minimum": 60
|
|
21306
|
+
}
|
|
21307
|
+
},
|
|
21308
|
+
"additionalProperties": false
|
|
21309
|
+
},
|
|
21310
|
+
"requireDPoP": {
|
|
21311
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
21312
|
+
"type": "boolean"
|
|
21313
|
+
},
|
|
21314
|
+
"walletAttestationRequired": {
|
|
21315
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
21316
|
+
"type": "boolean"
|
|
21317
|
+
},
|
|
21318
|
+
"walletProviderTrustLists": {
|
|
21319
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
21320
|
+
"type": "array",
|
|
21321
|
+
"items": {
|
|
21322
|
+
"type": "object",
|
|
21323
|
+
"properties": {
|
|
21324
|
+
"trustListId": {
|
|
21325
|
+
"type": "string",
|
|
21326
|
+
"minLength": 1
|
|
21327
|
+
},
|
|
21328
|
+
"url": {
|
|
21329
|
+
"description": "URL of the wallet provider trust list.",
|
|
21330
|
+
"type": "string",
|
|
21331
|
+
"format": "uri"
|
|
21332
|
+
},
|
|
21333
|
+
"verifierKey": {
|
|
21334
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
21335
|
+
"type": "object",
|
|
21336
|
+
"propertyNames": {
|
|
21337
|
+
"type": "string"
|
|
21338
|
+
},
|
|
21339
|
+
"additionalProperties": {}
|
|
21340
|
+
},
|
|
21341
|
+
"verifierX509Der": {
|
|
21342
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
21343
|
+
"type": "string"
|
|
21344
|
+
}
|
|
21345
|
+
},
|
|
21346
|
+
"additionalProperties": false
|
|
21347
|
+
}
|
|
21348
|
+
},
|
|
21349
|
+
"label": {
|
|
21350
|
+
"description": "Optional display label for UI selection.",
|
|
21351
|
+
"type": "string"
|
|
21352
|
+
},
|
|
21353
|
+
"enabled": {
|
|
21354
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
21355
|
+
"type": "boolean"
|
|
21356
|
+
}
|
|
21357
|
+
},
|
|
21358
|
+
"required": [
|
|
21359
|
+
"type",
|
|
21360
|
+
"id"
|
|
21361
|
+
],
|
|
21362
|
+
"additionalProperties": false
|
|
21363
|
+
}
|
|
21364
|
+
],
|
|
21365
|
+
"description": "Supported authorization server configurations."
|
|
21366
|
+
},
|
|
21367
|
+
"description": "Configured authorization server entries."
|
|
21368
|
+
},
|
|
21369
|
+
"federation": {
|
|
21370
|
+
"description": "Optional OpenID Federation settings.",
|
|
21371
|
+
"anyOf": [
|
|
21372
|
+
{
|
|
21373
|
+
"type": "object",
|
|
21374
|
+
"properties": {
|
|
21375
|
+
"role": {
|
|
21376
|
+
"description": "Federation role for this issuer.",
|
|
21377
|
+
"type": "string",
|
|
21378
|
+
"enum": [
|
|
21379
|
+
"trust_anchor",
|
|
21380
|
+
"intermediate",
|
|
21381
|
+
"leaf"
|
|
21382
|
+
]
|
|
21383
|
+
},
|
|
21384
|
+
"mode": {
|
|
21385
|
+
"description": "Federation operation mode.",
|
|
21386
|
+
"type": "string",
|
|
21387
|
+
"enum": [
|
|
21388
|
+
"federation-only",
|
|
21389
|
+
"hybrid"
|
|
21390
|
+
]
|
|
21391
|
+
},
|
|
21392
|
+
"entityId": {
|
|
21393
|
+
"description": "Optional local federation entity id.",
|
|
21394
|
+
"type": "string"
|
|
21395
|
+
},
|
|
21396
|
+
"enforceSigningPolicy": {
|
|
21397
|
+
"description": "Enforce strict signing policy checks.",
|
|
21398
|
+
"type": "boolean"
|
|
21399
|
+
},
|
|
21400
|
+
"cacheTtlSeconds": {
|
|
21401
|
+
"description": "Cache time-to-live for federation metadata in seconds.",
|
|
21402
|
+
"type": "integer",
|
|
21403
|
+
"minimum": 1,
|
|
21404
|
+
"maximum": 9007199254740991
|
|
21405
|
+
},
|
|
21406
|
+
"trustAnchors": {
|
|
21407
|
+
"type": "array",
|
|
21408
|
+
"items": {
|
|
21409
|
+
"type": "object",
|
|
21410
|
+
"properties": {
|
|
21411
|
+
"entityId": {
|
|
21412
|
+
"type": "string",
|
|
21413
|
+
"minLength": 1,
|
|
21414
|
+
"description": "Federation trust anchor entity id."
|
|
21415
|
+
},
|
|
21416
|
+
"entityConfigurationUri": {
|
|
21417
|
+
"type": "string",
|
|
21418
|
+
"format": "uri",
|
|
21419
|
+
"description": "Entity configuration URI for the trust anchor."
|
|
21420
|
+
}
|
|
21421
|
+
},
|
|
21422
|
+
"required": [
|
|
21423
|
+
"entityId",
|
|
21424
|
+
"entityConfigurationUri"
|
|
21425
|
+
],
|
|
21426
|
+
"additionalProperties": false
|
|
21427
|
+
},
|
|
21428
|
+
"description": "Federation trust anchors."
|
|
21429
|
+
}
|
|
21430
|
+
},
|
|
21431
|
+
"required": [
|
|
21432
|
+
"trustAnchors"
|
|
21433
|
+
],
|
|
21434
|
+
"additionalProperties": false
|
|
21435
|
+
},
|
|
21436
|
+
{
|
|
21437
|
+
"type": "null"
|
|
21438
|
+
}
|
|
21439
|
+
]
|
|
21440
|
+
},
|
|
21441
|
+
"registrationCertificate": {
|
|
21442
|
+
"description": "Optional registration certificate settings.",
|
|
21443
|
+
"anyOf": [
|
|
21444
|
+
{
|
|
21445
|
+
"type": "object",
|
|
21446
|
+
"properties": {
|
|
21447
|
+
"enabled": {
|
|
21448
|
+
"description": "Enable issuer registration certificate support.",
|
|
21449
|
+
"type": "boolean"
|
|
21450
|
+
},
|
|
21451
|
+
"mode": {
|
|
21452
|
+
"description": "How registration certificate data is provided.",
|
|
21453
|
+
"type": "string",
|
|
21454
|
+
"enum": [
|
|
21455
|
+
"import",
|
|
21456
|
+
"generate"
|
|
21457
|
+
]
|
|
21458
|
+
},
|
|
21459
|
+
"jwt": {
|
|
21460
|
+
"description": "Optional registration certificate JWT when using import mode.",
|
|
21461
|
+
"type": "string"
|
|
21462
|
+
},
|
|
21463
|
+
"privacyPolicy": {
|
|
21464
|
+
"description": "Optional privacy policy URI.",
|
|
21465
|
+
"type": "string"
|
|
21466
|
+
},
|
|
21467
|
+
"supportUri": {
|
|
21468
|
+
"description": "Optional support URI.",
|
|
21469
|
+
"type": "string"
|
|
21470
|
+
}
|
|
21471
|
+
},
|
|
21472
|
+
"additionalProperties": false
|
|
21473
|
+
},
|
|
21474
|
+
{
|
|
21475
|
+
"type": "null"
|
|
21476
|
+
}
|
|
21477
|
+
]
|
|
21478
|
+
},
|
|
21479
|
+
"display": {
|
|
21480
|
+
"description": "Localized issuer metadata shown to wallets.",
|
|
21481
|
+
"type": "array",
|
|
21482
|
+
"items": {
|
|
21483
|
+
"type": "object",
|
|
21484
|
+
"properties": {
|
|
21485
|
+
"name": {
|
|
21486
|
+
"description": "Issuer display name.",
|
|
21487
|
+
"type": "string"
|
|
21488
|
+
},
|
|
21489
|
+
"locale": {
|
|
21490
|
+
"description": "Locale tag for this display entry.",
|
|
21491
|
+
"type": "string"
|
|
21492
|
+
},
|
|
21493
|
+
"logo": {
|
|
21494
|
+
"description": "Optional issuer logo metadata.",
|
|
21495
|
+
"type": "object",
|
|
21496
|
+
"properties": {
|
|
21497
|
+
"uri": {
|
|
21498
|
+
"type": "string",
|
|
21499
|
+
"minLength": 1,
|
|
21500
|
+
"description": "Logo URI."
|
|
21501
|
+
},
|
|
21502
|
+
"alt_text": {
|
|
21503
|
+
"description": "Optional localized alternative text.",
|
|
21504
|
+
"type": "string"
|
|
21505
|
+
}
|
|
21506
|
+
},
|
|
21507
|
+
"required": [
|
|
21508
|
+
"uri"
|
|
21509
|
+
],
|
|
21510
|
+
"additionalProperties": {}
|
|
21511
|
+
}
|
|
21512
|
+
},
|
|
21513
|
+
"additionalProperties": {}
|
|
21514
|
+
}
|
|
21515
|
+
},
|
|
21516
|
+
"notificationEndpointEnabled": {
|
|
21517
|
+
"description": "Whether the OID4VCI notification endpoint is exposed for this issuance configuration.",
|
|
21518
|
+
"type": "boolean"
|
|
21519
|
+
},
|
|
21520
|
+
"credentialResponseEncryption": {
|
|
21521
|
+
"description": "Enable encrypted credential responses.",
|
|
21522
|
+
"type": "boolean"
|
|
21523
|
+
},
|
|
21524
|
+
"credentialRequestEncryption": {
|
|
21525
|
+
"description": "Require encrypted credential requests.",
|
|
21526
|
+
"type": "boolean"
|
|
21527
|
+
},
|
|
21528
|
+
"txCodeMaxAttempts": {
|
|
21529
|
+
"description": "Maximum verification attempts for transaction codes. Null resets to defaults.",
|
|
21530
|
+
"anyOf": [
|
|
21531
|
+
{
|
|
21532
|
+
"type": "integer",
|
|
21533
|
+
"minimum": 1,
|
|
21534
|
+
"maximum": 9007199254740991
|
|
21535
|
+
},
|
|
21536
|
+
{
|
|
21537
|
+
"type": "null"
|
|
21538
|
+
}
|
|
21539
|
+
]
|
|
21540
|
+
},
|
|
21541
|
+
"offerLifetimeSeconds": {
|
|
21542
|
+
"description": "Default lifetime of credential offers in seconds. Can be overridden per offer request. Null or unset: offers do not expire.",
|
|
21543
|
+
"anyOf": [
|
|
21544
|
+
{
|
|
21545
|
+
"type": "integer",
|
|
21546
|
+
"minimum": 1,
|
|
21547
|
+
"maximum": 9007199254740991
|
|
21548
|
+
},
|
|
21549
|
+
{
|
|
21550
|
+
"type": "null"
|
|
21551
|
+
}
|
|
21552
|
+
]
|
|
21553
|
+
}
|
|
21554
|
+
},
|
|
21555
|
+
"required": [
|
|
21556
|
+
"authorizationServers"
|
|
21557
|
+
],
|
|
21558
|
+
"additionalProperties": false,
|
|
21559
|
+
"title": "IssuanceConfig"
|
|
21560
|
+
}
|
|
21561
|
+
}
|
|
21562
|
+
},
|
|
21563
|
+
{
|
|
21564
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
21565
|
+
"$id": "https://eudiplo.dev/schemas/v2/PresentationConfigFile.schema.json",
|
|
21566
|
+
"title": "PresentationConfigFile",
|
|
21567
|
+
"type": "object",
|
|
21568
|
+
"properties": {
|
|
21569
|
+
"$schema": {
|
|
21570
|
+
"type": "string",
|
|
21571
|
+
"const": "https://eudiplo.dev/schemas/v2/PresentationConfigFile.schema.json"
|
|
21572
|
+
},
|
|
21573
|
+
"metadata": {
|
|
21574
|
+
"type": "object",
|
|
21575
|
+
"properties": {
|
|
21576
|
+
"generation": {
|
|
21577
|
+
"type": "integer",
|
|
21578
|
+
"minimum": 1,
|
|
21579
|
+
"description": "Monotonically increasing configuration generation."
|
|
21580
|
+
},
|
|
21581
|
+
"ownership": {
|
|
21582
|
+
"type": "string",
|
|
21583
|
+
"enum": [
|
|
21584
|
+
"unmanaged",
|
|
21585
|
+
"file-managed"
|
|
21586
|
+
],
|
|
21587
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
21588
|
+
}
|
|
21589
|
+
},
|
|
21590
|
+
"additionalProperties": false
|
|
21591
|
+
},
|
|
21592
|
+
"spec": {
|
|
21593
|
+
"allOf": [
|
|
21594
|
+
{
|
|
21595
|
+
"$ref": "#/$defs/PresentationConfigCreateDto"
|
|
21596
|
+
},
|
|
21597
|
+
{
|
|
21598
|
+
"type": "object",
|
|
21599
|
+
"required": [
|
|
21600
|
+
"id"
|
|
21601
|
+
],
|
|
21602
|
+
"properties": {
|
|
21603
|
+
"id": {
|
|
21604
|
+
"type": "string",
|
|
21605
|
+
"minLength": 1
|
|
21606
|
+
}
|
|
21607
|
+
}
|
|
21608
|
+
}
|
|
21609
|
+
]
|
|
21610
|
+
}
|
|
21611
|
+
},
|
|
21612
|
+
"required": [
|
|
21613
|
+
"$schema",
|
|
21614
|
+
"spec"
|
|
21615
|
+
],
|
|
21616
|
+
"additionalProperties": false,
|
|
21617
|
+
"$defs": {
|
|
21618
|
+
"PresentationConfigCreateDto": {
|
|
21619
|
+
"type": "object",
|
|
21620
|
+
"properties": {
|
|
21621
|
+
"id": {
|
|
21622
|
+
"type": "string",
|
|
21623
|
+
"minLength": 1,
|
|
21624
|
+
"description": "Presentation configuration identifier."
|
|
21625
|
+
},
|
|
21626
|
+
"description": {
|
|
21627
|
+
"description": "Optional presentation configuration description.",
|
|
21628
|
+
"type": [
|
|
21629
|
+
"string",
|
|
21630
|
+
"null"
|
|
21631
|
+
]
|
|
21632
|
+
},
|
|
21633
|
+
"lifeTime": {
|
|
21634
|
+
"description": "Presentation request lifetime in seconds.",
|
|
21635
|
+
"type": "integer",
|
|
21636
|
+
"minimum": 1,
|
|
21637
|
+
"maximum": 9007199254740991
|
|
21638
|
+
},
|
|
21639
|
+
"skewSeconds": {
|
|
21640
|
+
"description": "Clock skew tolerance in seconds.",
|
|
21641
|
+
"type": "integer",
|
|
21642
|
+
"minimum": 0,
|
|
21643
|
+
"maximum": 9007199254740991
|
|
21644
|
+
},
|
|
21645
|
+
"statusCheckMode": {
|
|
21646
|
+
"description": "Revocation/status check mode.",
|
|
21647
|
+
"type": "string",
|
|
21648
|
+
"enum": [
|
|
21649
|
+
"strict",
|
|
21650
|
+
"best_effort",
|
|
21651
|
+
"disabled"
|
|
21652
|
+
]
|
|
21653
|
+
},
|
|
21654
|
+
"dcql_query": {
|
|
21655
|
+
"type": "object",
|
|
21656
|
+
"properties": {
|
|
21657
|
+
"credentials": {
|
|
21658
|
+
"minItems": 1,
|
|
21659
|
+
"type": "array",
|
|
21660
|
+
"items": {
|
|
21661
|
+
"oneOf": [
|
|
21662
|
+
{
|
|
21663
|
+
"type": "object",
|
|
21664
|
+
"properties": {
|
|
21665
|
+
"id": {
|
|
21666
|
+
"type": "string",
|
|
21667
|
+
"minLength": 1,
|
|
21668
|
+
"pattern": "^[A-Za-z0-9_-]+$",
|
|
21669
|
+
"description": "Credential query identifier."
|
|
21670
|
+
},
|
|
21671
|
+
"multiple": {
|
|
21672
|
+
"description": "Allow multiple matching credentials.",
|
|
21673
|
+
"type": "boolean"
|
|
21674
|
+
},
|
|
21675
|
+
"claim_sets": {
|
|
21676
|
+
"description": "Optional claim set constraints.",
|
|
21677
|
+
"type": "array",
|
|
21678
|
+
"items": {
|
|
21679
|
+
"type": "array",
|
|
21680
|
+
"items": {
|
|
21681
|
+
"type": "string"
|
|
21682
|
+
}
|
|
21683
|
+
}
|
|
21684
|
+
},
|
|
21685
|
+
"trusted_authorities": {
|
|
21686
|
+
"description": "Optional trusted authority constraints.",
|
|
21687
|
+
"type": "array",
|
|
21688
|
+
"items": {
|
|
21689
|
+
"oneOf": [
|
|
21690
|
+
{
|
|
21691
|
+
"type": "object",
|
|
21692
|
+
"properties": {
|
|
21693
|
+
"type": {
|
|
21694
|
+
"type": "string",
|
|
21695
|
+
"const": "etsi_tl",
|
|
21696
|
+
"description": "Trusted authority type discriminator for ETSI trust lists."
|
|
21697
|
+
},
|
|
21698
|
+
"values": {
|
|
21699
|
+
"type": "array",
|
|
21700
|
+
"items": {
|
|
21701
|
+
"type": "object",
|
|
21702
|
+
"properties": {
|
|
21703
|
+
"trustListId": {
|
|
21704
|
+
"description": "Optional trust list id reference.",
|
|
21705
|
+
"type": "string"
|
|
21706
|
+
},
|
|
21707
|
+
"url": {
|
|
21708
|
+
"description": "Optional trust list URL reference.",
|
|
21709
|
+
"anyOf": [
|
|
21710
|
+
{
|
|
21711
|
+
"type": "string",
|
|
21712
|
+
"format": "uri"
|
|
21713
|
+
},
|
|
21714
|
+
{
|
|
21715
|
+
"type": "string",
|
|
21716
|
+
"pattern": "^<TENANT_URL>(?:\\/.*)?$"
|
|
21717
|
+
}
|
|
21718
|
+
]
|
|
21719
|
+
},
|
|
21720
|
+
"verifierKey": {
|
|
21721
|
+
"description": "Optional verifier key material.",
|
|
21722
|
+
"type": "object",
|
|
21723
|
+
"propertyNames": {
|
|
21724
|
+
"type": "string"
|
|
21725
|
+
},
|
|
21726
|
+
"additionalProperties": {}
|
|
21727
|
+
},
|
|
21728
|
+
"verifierX509Der": {
|
|
21729
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
21730
|
+
"type": "string"
|
|
21731
|
+
}
|
|
21732
|
+
},
|
|
21733
|
+
"additionalProperties": false
|
|
21734
|
+
},
|
|
21735
|
+
"description": "Trust list references for ETSI TL verification."
|
|
21736
|
+
}
|
|
21737
|
+
},
|
|
21738
|
+
"required": [
|
|
21739
|
+
"type",
|
|
21740
|
+
"values"
|
|
21741
|
+
],
|
|
21742
|
+
"additionalProperties": false
|
|
21743
|
+
},
|
|
21744
|
+
{
|
|
21745
|
+
"type": "object",
|
|
21746
|
+
"properties": {
|
|
21747
|
+
"type": {
|
|
21748
|
+
"type": "string",
|
|
21749
|
+
"const": "openid_federation",
|
|
21750
|
+
"description": "Trusted authority type discriminator for OpenID Federation."
|
|
21751
|
+
},
|
|
21752
|
+
"values": {
|
|
21753
|
+
"type": "array",
|
|
21754
|
+
"items": {
|
|
21755
|
+
"type": "string"
|
|
21756
|
+
},
|
|
21757
|
+
"description": "OpenID Federation authority identifiers."
|
|
21758
|
+
}
|
|
21759
|
+
},
|
|
21760
|
+
"required": [
|
|
21761
|
+
"type",
|
|
21762
|
+
"values"
|
|
21763
|
+
],
|
|
21764
|
+
"additionalProperties": false
|
|
21765
|
+
}
|
|
21766
|
+
]
|
|
21767
|
+
}
|
|
21768
|
+
},
|
|
21769
|
+
"format": {
|
|
21770
|
+
"type": "string",
|
|
21771
|
+
"const": "dc+sd-jwt",
|
|
21772
|
+
"description": "Credential format discriminator."
|
|
21773
|
+
},
|
|
21774
|
+
"meta": {
|
|
21775
|
+
"type": "object",
|
|
21776
|
+
"properties": {
|
|
21777
|
+
"vct_values": {
|
|
21778
|
+
"minItems": 1,
|
|
21779
|
+
"type": "array",
|
|
21780
|
+
"items": {
|
|
21781
|
+
"type": "string"
|
|
21782
|
+
},
|
|
21783
|
+
"description": "Accepted VCT values."
|
|
21784
|
+
}
|
|
21785
|
+
},
|
|
21786
|
+
"required": [
|
|
21787
|
+
"vct_values"
|
|
21788
|
+
],
|
|
21789
|
+
"additionalProperties": false
|
|
21790
|
+
},
|
|
21791
|
+
"claims": {
|
|
21792
|
+
"description": "Optional claim-level constraints.",
|
|
21793
|
+
"type": "array",
|
|
21794
|
+
"items": {
|
|
21795
|
+
"type": "object",
|
|
21796
|
+
"properties": {
|
|
21797
|
+
"id": {
|
|
21798
|
+
"description": "Optional claim query id.",
|
|
21799
|
+
"type": "string"
|
|
21800
|
+
},
|
|
21801
|
+
"path": {
|
|
21802
|
+
"type": "array",
|
|
21803
|
+
"items": {
|
|
21804
|
+
"type": [
|
|
21805
|
+
"string",
|
|
21806
|
+
"number"
|
|
21807
|
+
]
|
|
21808
|
+
},
|
|
21809
|
+
"description": "Path to the claim value in presented credentials."
|
|
21810
|
+
},
|
|
21811
|
+
"values": {
|
|
21812
|
+
"description": "Optional allowed values for the claim.",
|
|
21813
|
+
"type": "array",
|
|
21814
|
+
"items": {
|
|
21815
|
+
"type": "string"
|
|
21816
|
+
}
|
|
21817
|
+
}
|
|
21818
|
+
},
|
|
21819
|
+
"required": [
|
|
21820
|
+
"path"
|
|
21821
|
+
],
|
|
21822
|
+
"additionalProperties": false
|
|
21823
|
+
}
|
|
21824
|
+
}
|
|
21825
|
+
},
|
|
21826
|
+
"required": [
|
|
21827
|
+
"id",
|
|
21828
|
+
"format",
|
|
21829
|
+
"meta"
|
|
21830
|
+
],
|
|
21831
|
+
"additionalProperties": false
|
|
21832
|
+
},
|
|
21833
|
+
{
|
|
21834
|
+
"type": "object",
|
|
21835
|
+
"properties": {
|
|
21836
|
+
"id": {
|
|
21837
|
+
"type": "string",
|
|
21838
|
+
"minLength": 1,
|
|
21839
|
+
"pattern": "^[A-Za-z0-9_-]+$",
|
|
21840
|
+
"description": "Credential query identifier."
|
|
21841
|
+
},
|
|
21842
|
+
"multiple": {
|
|
21843
|
+
"description": "Allow multiple matching credentials.",
|
|
21844
|
+
"type": "boolean"
|
|
21845
|
+
},
|
|
21846
|
+
"claim_sets": {
|
|
21847
|
+
"description": "Optional claim set constraints.",
|
|
21848
|
+
"type": "array",
|
|
21849
|
+
"items": {
|
|
21850
|
+
"type": "array",
|
|
20853
21851
|
"items": {
|
|
20854
21852
|
"type": "string"
|
|
20855
|
-
}
|
|
21853
|
+
}
|
|
21854
|
+
}
|
|
21855
|
+
},
|
|
21856
|
+
"trusted_authorities": {
|
|
21857
|
+
"description": "Optional trusted authority constraints.",
|
|
21858
|
+
"type": "array",
|
|
21859
|
+
"items": {
|
|
21860
|
+
"oneOf": [
|
|
21861
|
+
{
|
|
21862
|
+
"type": "object",
|
|
21863
|
+
"properties": {
|
|
21864
|
+
"type": {
|
|
21865
|
+
"type": "string",
|
|
21866
|
+
"const": "etsi_tl",
|
|
21867
|
+
"description": "Trusted authority type discriminator for ETSI trust lists."
|
|
21868
|
+
},
|
|
21869
|
+
"values": {
|
|
21870
|
+
"type": "array",
|
|
21871
|
+
"items": {
|
|
21872
|
+
"type": "object",
|
|
21873
|
+
"properties": {
|
|
21874
|
+
"trustListId": {
|
|
21875
|
+
"description": "Optional trust list id reference.",
|
|
21876
|
+
"type": "string"
|
|
21877
|
+
},
|
|
21878
|
+
"url": {
|
|
21879
|
+
"description": "Optional trust list URL reference.",
|
|
21880
|
+
"anyOf": [
|
|
21881
|
+
{
|
|
21882
|
+
"type": "string",
|
|
21883
|
+
"format": "uri"
|
|
21884
|
+
},
|
|
21885
|
+
{
|
|
21886
|
+
"type": "string",
|
|
21887
|
+
"pattern": "^<TENANT_URL>(?:\\/.*)?$"
|
|
21888
|
+
}
|
|
21889
|
+
]
|
|
21890
|
+
},
|
|
21891
|
+
"verifierKey": {
|
|
21892
|
+
"description": "Optional verifier key material.",
|
|
21893
|
+
"type": "object",
|
|
21894
|
+
"propertyNames": {
|
|
21895
|
+
"type": "string"
|
|
21896
|
+
},
|
|
21897
|
+
"additionalProperties": {}
|
|
21898
|
+
},
|
|
21899
|
+
"verifierX509Der": {
|
|
21900
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
21901
|
+
"type": "string"
|
|
21902
|
+
}
|
|
21903
|
+
},
|
|
21904
|
+
"additionalProperties": false
|
|
21905
|
+
},
|
|
21906
|
+
"description": "Trust list references for ETSI TL verification."
|
|
21907
|
+
}
|
|
21908
|
+
},
|
|
21909
|
+
"required": [
|
|
21910
|
+
"type",
|
|
21911
|
+
"values"
|
|
21912
|
+
],
|
|
21913
|
+
"additionalProperties": false
|
|
21914
|
+
},
|
|
21915
|
+
{
|
|
21916
|
+
"type": "object",
|
|
21917
|
+
"properties": {
|
|
21918
|
+
"type": {
|
|
21919
|
+
"type": "string",
|
|
21920
|
+
"const": "openid_federation",
|
|
21921
|
+
"description": "Trusted authority type discriminator for OpenID Federation."
|
|
21922
|
+
},
|
|
21923
|
+
"values": {
|
|
21924
|
+
"type": "array",
|
|
21925
|
+
"items": {
|
|
21926
|
+
"type": "string"
|
|
21927
|
+
},
|
|
21928
|
+
"description": "OpenID Federation authority identifiers."
|
|
21929
|
+
}
|
|
21930
|
+
},
|
|
21931
|
+
"required": [
|
|
21932
|
+
"type",
|
|
21933
|
+
"values"
|
|
21934
|
+
],
|
|
21935
|
+
"additionalProperties": false
|
|
21936
|
+
}
|
|
21937
|
+
]
|
|
21938
|
+
}
|
|
21939
|
+
},
|
|
21940
|
+
"format": {
|
|
21941
|
+
"type": "string",
|
|
21942
|
+
"const": "mso_mdoc",
|
|
21943
|
+
"description": "Credential format discriminator."
|
|
21944
|
+
},
|
|
21945
|
+
"meta": {
|
|
21946
|
+
"type": "object",
|
|
21947
|
+
"properties": {
|
|
21948
|
+
"doctype_value": {
|
|
21949
|
+
"type": "string",
|
|
21950
|
+
"minLength": 1,
|
|
21951
|
+
"description": "Expected mDoc doctype value."
|
|
21952
|
+
}
|
|
21953
|
+
},
|
|
21954
|
+
"required": [
|
|
21955
|
+
"doctype_value"
|
|
21956
|
+
],
|
|
21957
|
+
"additionalProperties": false
|
|
21958
|
+
},
|
|
21959
|
+
"claims": {
|
|
21960
|
+
"description": "Optional mDoc claim-level constraints.",
|
|
21961
|
+
"type": "array",
|
|
21962
|
+
"items": {
|
|
21963
|
+
"type": "object",
|
|
21964
|
+
"properties": {
|
|
21965
|
+
"id": {
|
|
21966
|
+
"description": "Optional claim query id.",
|
|
21967
|
+
"type": "string"
|
|
21968
|
+
},
|
|
21969
|
+
"path": {
|
|
21970
|
+
"type": "array",
|
|
21971
|
+
"items": {
|
|
21972
|
+
"type": [
|
|
21973
|
+
"string",
|
|
21974
|
+
"number"
|
|
21975
|
+
]
|
|
21976
|
+
},
|
|
21977
|
+
"description": "Path to the claim value in presented credentials."
|
|
21978
|
+
},
|
|
21979
|
+
"values": {
|
|
21980
|
+
"description": "Optional allowed values for the claim.",
|
|
21981
|
+
"type": "array",
|
|
21982
|
+
"items": {
|
|
21983
|
+
"type": "string"
|
|
21984
|
+
}
|
|
21985
|
+
},
|
|
21986
|
+
"intent_to_retain": {
|
|
21987
|
+
"description": "Whether relying party intends to retain the claim.",
|
|
21988
|
+
"type": "boolean"
|
|
21989
|
+
}
|
|
21990
|
+
},
|
|
21991
|
+
"required": [
|
|
21992
|
+
"path"
|
|
21993
|
+
],
|
|
21994
|
+
"additionalProperties": false
|
|
21995
|
+
}
|
|
21996
|
+
}
|
|
21997
|
+
},
|
|
21998
|
+
"required": [
|
|
21999
|
+
"id",
|
|
22000
|
+
"format",
|
|
22001
|
+
"meta"
|
|
22002
|
+
],
|
|
22003
|
+
"additionalProperties": false
|
|
22004
|
+
}
|
|
22005
|
+
]
|
|
22006
|
+
},
|
|
22007
|
+
"description": "Credential queries requested by the verifier."
|
|
22008
|
+
},
|
|
22009
|
+
"credential_sets": {
|
|
22010
|
+
"description": "Optional higher-level credential set requirements.",
|
|
22011
|
+
"type": "array",
|
|
22012
|
+
"items": {
|
|
22013
|
+
"type": "object",
|
|
22014
|
+
"properties": {
|
|
22015
|
+
"options": {
|
|
22016
|
+
"minItems": 1,
|
|
22017
|
+
"type": "array",
|
|
22018
|
+
"items": {
|
|
22019
|
+
"minItems": 1,
|
|
22020
|
+
"type": "array",
|
|
22021
|
+
"items": {
|
|
22022
|
+
"type": "string"
|
|
22023
|
+
}
|
|
22024
|
+
},
|
|
22025
|
+
"description": "Alternative credential query id combinations."
|
|
22026
|
+
},
|
|
22027
|
+
"required": {
|
|
22028
|
+
"description": "Whether this credential set is mandatory.",
|
|
22029
|
+
"type": "boolean"
|
|
22030
|
+
}
|
|
22031
|
+
},
|
|
22032
|
+
"required": [
|
|
22033
|
+
"options"
|
|
22034
|
+
],
|
|
22035
|
+
"additionalProperties": false
|
|
22036
|
+
}
|
|
22037
|
+
}
|
|
22038
|
+
},
|
|
22039
|
+
"required": [
|
|
22040
|
+
"credentials"
|
|
22041
|
+
],
|
|
22042
|
+
"additionalProperties": false,
|
|
22043
|
+
"description": "DCQL query defining requested credentials and claims."
|
|
22044
|
+
},
|
|
22045
|
+
"transaction_data": {
|
|
22046
|
+
"description": "Optional transaction data descriptors.",
|
|
22047
|
+
"anyOf": [
|
|
22048
|
+
{
|
|
22049
|
+
"type": "array",
|
|
22050
|
+
"items": {
|
|
22051
|
+
"type": "object",
|
|
22052
|
+
"properties": {
|
|
22053
|
+
"type": {
|
|
22054
|
+
"type": "string",
|
|
22055
|
+
"description": "Transaction data type identifier."
|
|
22056
|
+
},
|
|
22057
|
+
"credential_ids": {
|
|
22058
|
+
"type": "array",
|
|
22059
|
+
"items": {
|
|
22060
|
+
"type": "string"
|
|
22061
|
+
},
|
|
22062
|
+
"description": "Credential query ids this transaction data applies to."
|
|
22063
|
+
},
|
|
22064
|
+
"payload": {
|
|
22065
|
+
"description": "Transaction details. Required for TS12 SCA transaction data."
|
|
22066
|
+
}
|
|
22067
|
+
},
|
|
22068
|
+
"required": [
|
|
22069
|
+
"type",
|
|
22070
|
+
"credential_ids"
|
|
22071
|
+
],
|
|
22072
|
+
"additionalProperties": {}
|
|
22073
|
+
}
|
|
22074
|
+
},
|
|
22075
|
+
{
|
|
22076
|
+
"type": "null"
|
|
22077
|
+
}
|
|
22078
|
+
]
|
|
22079
|
+
},
|
|
22080
|
+
"registration_cert": {
|
|
22081
|
+
"description": "Optional registration certificate request settings.",
|
|
22082
|
+
"anyOf": [
|
|
22083
|
+
{
|
|
22084
|
+
"type": "object",
|
|
22085
|
+
"properties": {
|
|
22086
|
+
"id": {
|
|
22087
|
+
"type": "string"
|
|
22088
|
+
},
|
|
22089
|
+
"body": {
|
|
22090
|
+
"type": "object",
|
|
22091
|
+
"properties": {
|
|
22092
|
+
"privacy_policy": {
|
|
22093
|
+
"type": "string"
|
|
22094
|
+
},
|
|
22095
|
+
"support_uri": {
|
|
22096
|
+
"type": "string"
|
|
22097
|
+
},
|
|
22098
|
+
"intermediary": {
|
|
22099
|
+
"type": "string"
|
|
22100
|
+
},
|
|
22101
|
+
"purpose": {
|
|
22102
|
+
"type": "array",
|
|
22103
|
+
"items": {
|
|
22104
|
+
"type": "object",
|
|
22105
|
+
"properties": {
|
|
22106
|
+
"lang": {
|
|
22107
|
+
"type": "string"
|
|
22108
|
+
},
|
|
22109
|
+
"content": {
|
|
22110
|
+
"type": "string"
|
|
22111
|
+
}
|
|
22112
|
+
},
|
|
22113
|
+
"required": [
|
|
22114
|
+
"lang",
|
|
22115
|
+
"content"
|
|
22116
|
+
],
|
|
22117
|
+
"additionalProperties": false
|
|
22118
|
+
}
|
|
22119
|
+
},
|
|
22120
|
+
"credentials": {
|
|
22121
|
+
"type": "array",
|
|
22122
|
+
"items": {
|
|
22123
|
+
"type": "object",
|
|
22124
|
+
"propertyNames": {
|
|
22125
|
+
"type": "string"
|
|
22126
|
+
},
|
|
22127
|
+
"additionalProperties": {}
|
|
22128
|
+
}
|
|
22129
|
+
},
|
|
22130
|
+
"provides_attestations": {
|
|
22131
|
+
"type": "array",
|
|
22132
|
+
"items": {
|
|
22133
|
+
"type": "string",
|
|
22134
|
+
"minLength": 1
|
|
22135
|
+
}
|
|
22136
|
+
}
|
|
22137
|
+
},
|
|
22138
|
+
"additionalProperties": false
|
|
22139
|
+
},
|
|
22140
|
+
"jwt": {
|
|
22141
|
+
"type": "string"
|
|
22142
|
+
}
|
|
22143
|
+
},
|
|
22144
|
+
"additionalProperties": false
|
|
22145
|
+
},
|
|
22146
|
+
{
|
|
22147
|
+
"type": "null"
|
|
22148
|
+
}
|
|
22149
|
+
]
|
|
22150
|
+
},
|
|
22151
|
+
"registrationCertImportJwt": {
|
|
22152
|
+
"description": "Optional imported registration certificate JWT.",
|
|
22153
|
+
"type": [
|
|
22154
|
+
"string",
|
|
22155
|
+
"null"
|
|
22156
|
+
]
|
|
22157
|
+
},
|
|
22158
|
+
"registrationCertImportId": {
|
|
22159
|
+
"description": "Optional registrar-side registration certificate id.",
|
|
22160
|
+
"type": [
|
|
22161
|
+
"string",
|
|
22162
|
+
"null"
|
|
22163
|
+
]
|
|
22164
|
+
},
|
|
22165
|
+
"registrationCertBodyPrivacyPolicy": {
|
|
22166
|
+
"description": "Optional registration certificate privacy policy URI.",
|
|
22167
|
+
"type": [
|
|
22168
|
+
"string",
|
|
22169
|
+
"null"
|
|
22170
|
+
]
|
|
22171
|
+
},
|
|
22172
|
+
"registrationCertBodySupportUri": {
|
|
22173
|
+
"description": "Optional registration certificate support URI.",
|
|
22174
|
+
"type": [
|
|
22175
|
+
"string",
|
|
22176
|
+
"null"
|
|
22177
|
+
]
|
|
22178
|
+
},
|
|
22179
|
+
"registrationCertBodyIntermediary": {
|
|
22180
|
+
"description": "Optional registration certificate intermediary.",
|
|
22181
|
+
"type": [
|
|
22182
|
+
"string",
|
|
22183
|
+
"null"
|
|
22184
|
+
]
|
|
22185
|
+
},
|
|
22186
|
+
"registrationCertBodyPurpose": {
|
|
22187
|
+
"description": "Optional registration certificate purpose entries.",
|
|
22188
|
+
"anyOf": [
|
|
22189
|
+
{
|
|
22190
|
+
"type": "array",
|
|
22191
|
+
"items": {
|
|
22192
|
+
"type": "object",
|
|
22193
|
+
"properties": {
|
|
22194
|
+
"lang": {
|
|
22195
|
+
"type": "string"
|
|
22196
|
+
},
|
|
22197
|
+
"content": {
|
|
22198
|
+
"type": "string"
|
|
22199
|
+
}
|
|
22200
|
+
},
|
|
22201
|
+
"additionalProperties": false
|
|
22202
|
+
}
|
|
22203
|
+
},
|
|
22204
|
+
{
|
|
22205
|
+
"type": "null"
|
|
22206
|
+
}
|
|
22207
|
+
]
|
|
22208
|
+
},
|
|
22209
|
+
"webhookEndpointId": {
|
|
22210
|
+
"description": "Optional webhook endpoint id for presentation callbacks.",
|
|
22211
|
+
"type": [
|
|
22212
|
+
"string",
|
|
22213
|
+
"null"
|
|
22214
|
+
]
|
|
22215
|
+
},
|
|
22216
|
+
"attached": {
|
|
22217
|
+
"description": "Optional attachments included with presentation requests.",
|
|
22218
|
+
"anyOf": [
|
|
22219
|
+
{
|
|
22220
|
+
"type": "array",
|
|
22221
|
+
"items": {
|
|
22222
|
+
"type": "object",
|
|
22223
|
+
"properties": {
|
|
22224
|
+
"format": {
|
|
22225
|
+
"type": "string",
|
|
22226
|
+
"description": "Attachment format identifier."
|
|
22227
|
+
},
|
|
22228
|
+
"data": {
|
|
22229
|
+
"description": "Attachment payload."
|
|
22230
|
+
},
|
|
22231
|
+
"credential_ids": {
|
|
22232
|
+
"description": "Optional credential query ids bound to this attachment.",
|
|
22233
|
+
"type": "array",
|
|
22234
|
+
"items": {
|
|
22235
|
+
"type": "string"
|
|
22236
|
+
}
|
|
22237
|
+
}
|
|
22238
|
+
},
|
|
22239
|
+
"required": [
|
|
22240
|
+
"format",
|
|
22241
|
+
"data"
|
|
22242
|
+
],
|
|
22243
|
+
"additionalProperties": false
|
|
22244
|
+
}
|
|
22245
|
+
},
|
|
22246
|
+
{
|
|
22247
|
+
"type": "null"
|
|
22248
|
+
}
|
|
22249
|
+
]
|
|
22250
|
+
},
|
|
22251
|
+
"redirectUri": {
|
|
22252
|
+
"description": "Optional redirect URI after presentation completion.",
|
|
22253
|
+
"type": [
|
|
22254
|
+
"string",
|
|
22255
|
+
"null"
|
|
22256
|
+
]
|
|
22257
|
+
},
|
|
22258
|
+
"accessKeyChainId": {
|
|
22259
|
+
"description": "Optional key chain id for access token/auth operations.",
|
|
22260
|
+
"type": [
|
|
22261
|
+
"string",
|
|
22262
|
+
"null"
|
|
22263
|
+
]
|
|
22264
|
+
},
|
|
22265
|
+
"readerAuth": {
|
|
22266
|
+
"description": "Whether reader authentication is required for mDoc requests.",
|
|
22267
|
+
"type": [
|
|
22268
|
+
"boolean",
|
|
22269
|
+
"null"
|
|
22270
|
+
]
|
|
22271
|
+
}
|
|
22272
|
+
},
|
|
22273
|
+
"required": [
|
|
22274
|
+
"id",
|
|
22275
|
+
"dcql_query"
|
|
22276
|
+
],
|
|
22277
|
+
"additionalProperties": false,
|
|
22278
|
+
"title": "PresentationConfigCreateDto"
|
|
22279
|
+
}
|
|
22280
|
+
}
|
|
22281
|
+
},
|
|
22282
|
+
{
|
|
22283
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
22284
|
+
"$id": "https://eudiplo.dev/schemas/v3/IssuanceConfigFile.schema.json",
|
|
22285
|
+
"title": "IssuanceConfigFile",
|
|
22286
|
+
"type": "object",
|
|
22287
|
+
"properties": {
|
|
22288
|
+
"$schema": {
|
|
22289
|
+
"type": "string",
|
|
22290
|
+
"const": "https://eudiplo.dev/schemas/v3/IssuanceConfigFile.schema.json"
|
|
22291
|
+
},
|
|
22292
|
+
"metadata": {
|
|
22293
|
+
"type": "object",
|
|
22294
|
+
"properties": {
|
|
22295
|
+
"generation": {
|
|
22296
|
+
"type": "integer",
|
|
22297
|
+
"minimum": 1,
|
|
22298
|
+
"description": "Monotonically increasing configuration generation."
|
|
22299
|
+
},
|
|
22300
|
+
"ownership": {
|
|
22301
|
+
"type": "string",
|
|
22302
|
+
"enum": [
|
|
22303
|
+
"unmanaged",
|
|
22304
|
+
"file-managed"
|
|
22305
|
+
],
|
|
22306
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
22307
|
+
}
|
|
22308
|
+
},
|
|
22309
|
+
"additionalProperties": false
|
|
22310
|
+
},
|
|
22311
|
+
"spec": {
|
|
22312
|
+
"$ref": "#/$defs/IssuanceConfig"
|
|
22313
|
+
}
|
|
22314
|
+
},
|
|
22315
|
+
"required": [
|
|
22316
|
+
"$schema",
|
|
22317
|
+
"spec"
|
|
22318
|
+
],
|
|
22319
|
+
"additionalProperties": false,
|
|
22320
|
+
"$defs": {
|
|
22321
|
+
"IssuanceConfig": {
|
|
22322
|
+
"type": "object",
|
|
22323
|
+
"properties": {
|
|
22324
|
+
"batchSize": {
|
|
22325
|
+
"description": "Optional issuance batch size.",
|
|
22326
|
+
"type": "integer",
|
|
22327
|
+
"minimum": 1,
|
|
22328
|
+
"maximum": 9007199254740991
|
|
22329
|
+
},
|
|
22330
|
+
"dPopRequired": {
|
|
22331
|
+
"description": "Require DPoP proofs for issuance endpoints.",
|
|
22332
|
+
"type": "boolean"
|
|
22333
|
+
},
|
|
22334
|
+
"walletAttestationRequired": {
|
|
22335
|
+
"description": "Default wallet attestation requirement for managed authorization servers.",
|
|
22336
|
+
"type": "boolean"
|
|
22337
|
+
},
|
|
22338
|
+
"walletProviderTrustLists": {
|
|
22339
|
+
"description": "Shared wallet provider trust lists for key attestations and default authorization server wallet authentication.",
|
|
22340
|
+
"type": "array",
|
|
22341
|
+
"items": {
|
|
22342
|
+
"type": "object",
|
|
22343
|
+
"properties": {
|
|
22344
|
+
"trustListId": {
|
|
22345
|
+
"type": "string",
|
|
22346
|
+
"minLength": 1
|
|
22347
|
+
},
|
|
22348
|
+
"url": {
|
|
22349
|
+
"description": "URL of the wallet provider trust list.",
|
|
22350
|
+
"type": "string",
|
|
22351
|
+
"format": "uri"
|
|
22352
|
+
},
|
|
22353
|
+
"verifierKey": {
|
|
22354
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
22355
|
+
"type": "object",
|
|
22356
|
+
"propertyNames": {
|
|
22357
|
+
"type": "string"
|
|
22358
|
+
},
|
|
22359
|
+
"additionalProperties": {}
|
|
22360
|
+
},
|
|
22361
|
+
"verifierKeyPem": {
|
|
22362
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
22363
|
+
"type": "string",
|
|
22364
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
22365
|
+
},
|
|
22366
|
+
"verifierX509Der": {
|
|
22367
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
22368
|
+
"type": "string"
|
|
22369
|
+
}
|
|
22370
|
+
},
|
|
22371
|
+
"additionalProperties": false
|
|
22372
|
+
}
|
|
22373
|
+
},
|
|
22374
|
+
"signingKeyId": {
|
|
22375
|
+
"description": "Default signing key chain id for credential issuance.",
|
|
22376
|
+
"type": "string",
|
|
22377
|
+
"minLength": 1
|
|
22378
|
+
},
|
|
22379
|
+
"authorizationServers": {
|
|
22380
|
+
"minItems": 1,
|
|
22381
|
+
"type": "array",
|
|
22382
|
+
"items": {
|
|
22383
|
+
"oneOf": [
|
|
22384
|
+
{
|
|
22385
|
+
"type": "object",
|
|
22386
|
+
"properties": {
|
|
22387
|
+
"type": {
|
|
22388
|
+
"type": "string",
|
|
22389
|
+
"const": "external",
|
|
22390
|
+
"description": "Use an externally managed authorization server."
|
|
22391
|
+
},
|
|
22392
|
+
"id": {
|
|
22393
|
+
"type": "string",
|
|
22394
|
+
"minLength": 1,
|
|
22395
|
+
"description": "Authorization server identifier."
|
|
22396
|
+
},
|
|
22397
|
+
"issuer": {
|
|
22398
|
+
"type": "string",
|
|
22399
|
+
"format": "uri",
|
|
22400
|
+
"description": "Issuer URL for the external authorization server."
|
|
22401
|
+
},
|
|
22402
|
+
"sessionBinding": {
|
|
22403
|
+
"description": "Explicit mapping from an external access-token claim to an existing issuance session.",
|
|
22404
|
+
"type": "object",
|
|
22405
|
+
"properties": {
|
|
22406
|
+
"method": {
|
|
22407
|
+
"type": "string",
|
|
22408
|
+
"const": "access_token_claim",
|
|
22409
|
+
"description": "Read the correlation value from a configured access-token claim."
|
|
22410
|
+
},
|
|
22411
|
+
"claim": {
|
|
22412
|
+
"type": "string",
|
|
22413
|
+
"minLength": 1,
|
|
22414
|
+
"description": "Claim name that contains the issuance-session correlation value."
|
|
22415
|
+
}
|
|
22416
|
+
},
|
|
22417
|
+
"required": [
|
|
22418
|
+
"method",
|
|
22419
|
+
"claim"
|
|
22420
|
+
],
|
|
22421
|
+
"additionalProperties": false
|
|
22422
|
+
},
|
|
22423
|
+
"label": {
|
|
22424
|
+
"description": "Optional display label for UI selection.",
|
|
22425
|
+
"type": "string"
|
|
22426
|
+
},
|
|
22427
|
+
"enabled": {
|
|
22428
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
22429
|
+
"type": "boolean"
|
|
22430
|
+
}
|
|
22431
|
+
},
|
|
22432
|
+
"required": [
|
|
22433
|
+
"type",
|
|
22434
|
+
"id",
|
|
22435
|
+
"issuer"
|
|
22436
|
+
],
|
|
22437
|
+
"additionalProperties": false
|
|
22438
|
+
},
|
|
22439
|
+
{
|
|
22440
|
+
"type": "object",
|
|
22441
|
+
"properties": {
|
|
22442
|
+
"type": {
|
|
22443
|
+
"type": "string",
|
|
22444
|
+
"const": "oid4vp",
|
|
22445
|
+
"description": "Use OID4VP-based authorization server chaining."
|
|
22446
|
+
},
|
|
22447
|
+
"id": {
|
|
22448
|
+
"type": "string",
|
|
22449
|
+
"minLength": 1,
|
|
22450
|
+
"description": "Authorization server identifier."
|
|
22451
|
+
},
|
|
22452
|
+
"presentationConfigId": {
|
|
22453
|
+
"type": "string",
|
|
22454
|
+
"minLength": 1,
|
|
22455
|
+
"description": "Presentation configuration id used during authorization."
|
|
22456
|
+
},
|
|
22457
|
+
"immediateWalletRedirect": {
|
|
22458
|
+
"description": "Redirect wallets immediately after authorization response creation.",
|
|
22459
|
+
"type": "boolean"
|
|
22460
|
+
},
|
|
22461
|
+
"token": {
|
|
22462
|
+
"description": "Optional token issuance settings.",
|
|
22463
|
+
"type": "object",
|
|
22464
|
+
"properties": {
|
|
22465
|
+
"lifetimeSeconds": {
|
|
22466
|
+
"description": "Access token lifetime in seconds.",
|
|
22467
|
+
"type": "number",
|
|
22468
|
+
"minimum": 60
|
|
22469
|
+
},
|
|
22470
|
+
"signingKeyId": {
|
|
22471
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
22472
|
+
"type": "string",
|
|
22473
|
+
"minLength": 1
|
|
22474
|
+
},
|
|
22475
|
+
"refreshTokenEnabled": {
|
|
22476
|
+
"description": "Enable issuing refresh tokens.",
|
|
22477
|
+
"type": "boolean"
|
|
22478
|
+
},
|
|
22479
|
+
"refreshTokenExpiresInSeconds": {
|
|
22480
|
+
"description": "Refresh token lifetime in seconds.",
|
|
22481
|
+
"type": "number",
|
|
22482
|
+
"minimum": 60
|
|
22483
|
+
}
|
|
22484
|
+
},
|
|
22485
|
+
"additionalProperties": false
|
|
22486
|
+
},
|
|
22487
|
+
"requireDPoP": {
|
|
22488
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
22489
|
+
"type": "boolean"
|
|
22490
|
+
},
|
|
22491
|
+
"walletAttestationRequired": {
|
|
22492
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
22493
|
+
"type": "boolean"
|
|
22494
|
+
},
|
|
22495
|
+
"walletProviderTrustLists": {
|
|
22496
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
22497
|
+
"type": "array",
|
|
22498
|
+
"items": {
|
|
22499
|
+
"type": "object",
|
|
22500
|
+
"properties": {
|
|
22501
|
+
"trustListId": {
|
|
22502
|
+
"type": "string",
|
|
22503
|
+
"minLength": 1
|
|
22504
|
+
},
|
|
22505
|
+
"url": {
|
|
22506
|
+
"description": "URL of the wallet provider trust list.",
|
|
22507
|
+
"type": "string",
|
|
22508
|
+
"format": "uri"
|
|
22509
|
+
},
|
|
22510
|
+
"verifierKey": {
|
|
22511
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
22512
|
+
"type": "object",
|
|
22513
|
+
"propertyNames": {
|
|
22514
|
+
"type": "string"
|
|
22515
|
+
},
|
|
22516
|
+
"additionalProperties": {}
|
|
22517
|
+
},
|
|
22518
|
+
"verifierKeyPem": {
|
|
22519
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
22520
|
+
"type": "string",
|
|
22521
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
22522
|
+
},
|
|
22523
|
+
"verifierX509Der": {
|
|
22524
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
22525
|
+
"type": "string"
|
|
20856
22526
|
}
|
|
20857
22527
|
},
|
|
20858
|
-
"
|
|
20859
|
-
|
|
20860
|
-
|
|
20861
|
-
|
|
20862
|
-
|
|
20863
|
-
|
|
20864
|
-
|
|
20865
|
-
|
|
20866
|
-
|
|
20867
|
-
|
|
20868
|
-
|
|
20869
|
-
|
|
20870
|
-
|
|
20871
|
-
|
|
20872
|
-
|
|
20873
|
-
|
|
20874
|
-
|
|
20875
|
-
|
|
20876
|
-
|
|
20877
|
-
|
|
20878
|
-
|
|
20879
|
-
|
|
20880
|
-
|
|
20881
|
-
|
|
20882
|
-
|
|
20883
|
-
|
|
20884
|
-
|
|
20885
|
-
|
|
20886
|
-
|
|
20887
|
-
|
|
20888
|
-
|
|
20889
|
-
|
|
20890
|
-
|
|
20891
|
-
|
|
20892
|
-
|
|
20893
|
-
|
|
20894
|
-
|
|
20895
|
-
|
|
20896
|
-
|
|
20897
|
-
"type": "string"
|
|
20898
|
-
},
|
|
20899
|
-
"additionalProperties": {}
|
|
20900
|
-
},
|
|
20901
|
-
"verifierX509Der": {
|
|
20902
|
-
"description": "Optional verifier certificate in DER/base64 form.",
|
|
20903
|
-
"type": "string"
|
|
20904
|
-
}
|
|
20905
|
-
},
|
|
20906
|
-
"additionalProperties": false
|
|
20907
|
-
},
|
|
20908
|
-
"description": "Trust list references for ETSI TL verification."
|
|
20909
|
-
}
|
|
20910
|
-
},
|
|
20911
|
-
"required": [
|
|
20912
|
-
"type",
|
|
20913
|
-
"values"
|
|
20914
|
-
],
|
|
20915
|
-
"additionalProperties": false
|
|
20916
|
-
},
|
|
20917
|
-
{
|
|
20918
|
-
"type": "object",
|
|
20919
|
-
"properties": {
|
|
20920
|
-
"type": {
|
|
20921
|
-
"type": "string",
|
|
20922
|
-
"const": "openid_federation",
|
|
20923
|
-
"description": "Trusted authority type discriminator for OpenID Federation."
|
|
20924
|
-
},
|
|
20925
|
-
"values": {
|
|
20926
|
-
"type": "array",
|
|
20927
|
-
"items": {
|
|
20928
|
-
"type": "string"
|
|
20929
|
-
},
|
|
20930
|
-
"description": "OpenID Federation authority identifiers."
|
|
20931
|
-
}
|
|
20932
|
-
},
|
|
20933
|
-
"required": [
|
|
20934
|
-
"type",
|
|
20935
|
-
"values"
|
|
20936
|
-
],
|
|
20937
|
-
"additionalProperties": false
|
|
20938
|
-
}
|
|
20939
|
-
]
|
|
20940
|
-
}
|
|
22528
|
+
"additionalProperties": false
|
|
22529
|
+
}
|
|
22530
|
+
},
|
|
22531
|
+
"label": {
|
|
22532
|
+
"description": "Optional display label for UI selection.",
|
|
22533
|
+
"type": "string"
|
|
22534
|
+
},
|
|
22535
|
+
"enabled": {
|
|
22536
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
22537
|
+
"type": "boolean"
|
|
22538
|
+
}
|
|
22539
|
+
},
|
|
22540
|
+
"required": [
|
|
22541
|
+
"type",
|
|
22542
|
+
"id",
|
|
22543
|
+
"presentationConfigId"
|
|
22544
|
+
],
|
|
22545
|
+
"additionalProperties": false
|
|
22546
|
+
},
|
|
22547
|
+
{
|
|
22548
|
+
"type": "object",
|
|
22549
|
+
"properties": {
|
|
22550
|
+
"type": {
|
|
22551
|
+
"type": "string",
|
|
22552
|
+
"const": "chained",
|
|
22553
|
+
"description": "Use upstream OIDC as authorization source."
|
|
22554
|
+
},
|
|
22555
|
+
"id": {
|
|
22556
|
+
"type": "string",
|
|
22557
|
+
"minLength": 1,
|
|
22558
|
+
"description": "Authorization server identifier."
|
|
22559
|
+
},
|
|
22560
|
+
"upstream": {
|
|
22561
|
+
"type": "object",
|
|
22562
|
+
"properties": {
|
|
22563
|
+
"issuer": {
|
|
22564
|
+
"type": "string",
|
|
22565
|
+
"format": "uri",
|
|
22566
|
+
"description": "Upstream OIDC issuer URL."
|
|
20941
22567
|
},
|
|
20942
|
-
"
|
|
22568
|
+
"clientId": {
|
|
20943
22569
|
"type": "string",
|
|
20944
|
-
"
|
|
20945
|
-
"description": "
|
|
22570
|
+
"minLength": 1,
|
|
22571
|
+
"description": "Client id for upstream OIDC authentication."
|
|
20946
22572
|
},
|
|
20947
|
-
"
|
|
20948
|
-
"
|
|
20949
|
-
"
|
|
20950
|
-
|
|
20951
|
-
"minItems": 1,
|
|
20952
|
-
"type": "array",
|
|
20953
|
-
"items": {
|
|
20954
|
-
"type": "string"
|
|
20955
|
-
},
|
|
20956
|
-
"description": "Accepted VCT values."
|
|
20957
|
-
}
|
|
20958
|
-
},
|
|
20959
|
-
"required": [
|
|
20960
|
-
"vct_values"
|
|
20961
|
-
],
|
|
20962
|
-
"additionalProperties": false
|
|
22573
|
+
"clientSecret": {
|
|
22574
|
+
"description": "Optional client secret for upstream OIDC authentication.",
|
|
22575
|
+
"type": "string",
|
|
22576
|
+
"minLength": 1
|
|
20963
22577
|
},
|
|
20964
|
-
"
|
|
20965
|
-
"description": "Optional
|
|
22578
|
+
"scopes": {
|
|
22579
|
+
"description": "Optional scopes requested from the upstream issuer.",
|
|
20966
22580
|
"type": "array",
|
|
20967
22581
|
"items": {
|
|
20968
|
-
"type": "
|
|
20969
|
-
"
|
|
20970
|
-
"id": {
|
|
20971
|
-
"description": "Optional claim query id.",
|
|
20972
|
-
"type": "string"
|
|
20973
|
-
},
|
|
20974
|
-
"path": {
|
|
20975
|
-
"type": "array",
|
|
20976
|
-
"items": {
|
|
20977
|
-
"type": [
|
|
20978
|
-
"string",
|
|
20979
|
-
"number"
|
|
20980
|
-
]
|
|
20981
|
-
},
|
|
20982
|
-
"description": "Path to the claim value in presented credentials."
|
|
20983
|
-
},
|
|
20984
|
-
"values": {
|
|
20985
|
-
"description": "Optional allowed values for the claim.",
|
|
20986
|
-
"type": "array",
|
|
20987
|
-
"items": {
|
|
20988
|
-
"type": "string"
|
|
20989
|
-
}
|
|
20990
|
-
}
|
|
20991
|
-
},
|
|
20992
|
-
"required": [
|
|
20993
|
-
"path"
|
|
20994
|
-
],
|
|
20995
|
-
"additionalProperties": false
|
|
22582
|
+
"type": "string",
|
|
22583
|
+
"minLength": 1
|
|
20996
22584
|
}
|
|
20997
22585
|
}
|
|
20998
22586
|
},
|
|
20999
22587
|
"required": [
|
|
21000
|
-
"
|
|
21001
|
-
"
|
|
21002
|
-
"meta"
|
|
22588
|
+
"issuer",
|
|
22589
|
+
"clientId"
|
|
21003
22590
|
],
|
|
21004
|
-
"additionalProperties": false
|
|
22591
|
+
"additionalProperties": false,
|
|
22592
|
+
"description": "Upstream OIDC connection settings."
|
|
21005
22593
|
},
|
|
21006
|
-
{
|
|
22594
|
+
"token": {
|
|
22595
|
+
"description": "Optional token issuance settings.",
|
|
21007
22596
|
"type": "object",
|
|
21008
22597
|
"properties": {
|
|
21009
|
-
"
|
|
21010
|
-
"
|
|
21011
|
-
"
|
|
21012
|
-
"
|
|
21013
|
-
"description": "Credential query identifier."
|
|
21014
|
-
},
|
|
21015
|
-
"multiple": {
|
|
21016
|
-
"description": "Allow multiple matching credentials.",
|
|
21017
|
-
"type": "boolean"
|
|
21018
|
-
},
|
|
21019
|
-
"claim_sets": {
|
|
21020
|
-
"description": "Optional claim set constraints.",
|
|
21021
|
-
"type": "array",
|
|
21022
|
-
"items": {
|
|
21023
|
-
"type": "array",
|
|
21024
|
-
"items": {
|
|
21025
|
-
"type": "string"
|
|
21026
|
-
}
|
|
21027
|
-
}
|
|
21028
|
-
},
|
|
21029
|
-
"trusted_authorities": {
|
|
21030
|
-
"description": "Optional trusted authority constraints.",
|
|
21031
|
-
"type": "array",
|
|
21032
|
-
"items": {
|
|
21033
|
-
"oneOf": [
|
|
21034
|
-
{
|
|
21035
|
-
"type": "object",
|
|
21036
|
-
"properties": {
|
|
21037
|
-
"type": {
|
|
21038
|
-
"type": "string",
|
|
21039
|
-
"const": "etsi_tl",
|
|
21040
|
-
"description": "Trusted authority type discriminator for ETSI trust lists."
|
|
21041
|
-
},
|
|
21042
|
-
"values": {
|
|
21043
|
-
"type": "array",
|
|
21044
|
-
"items": {
|
|
21045
|
-
"type": "object",
|
|
21046
|
-
"properties": {
|
|
21047
|
-
"trustListId": {
|
|
21048
|
-
"description": "Optional trust list id reference.",
|
|
21049
|
-
"type": "string"
|
|
21050
|
-
},
|
|
21051
|
-
"url": {
|
|
21052
|
-
"description": "Optional trust list URL reference.",
|
|
21053
|
-
"anyOf": [
|
|
21054
|
-
{
|
|
21055
|
-
"type": "string",
|
|
21056
|
-
"format": "uri"
|
|
21057
|
-
},
|
|
21058
|
-
{
|
|
21059
|
-
"type": "string",
|
|
21060
|
-
"pattern": "^<TENANT_URL>(?:\\/.*)?$"
|
|
21061
|
-
}
|
|
21062
|
-
]
|
|
21063
|
-
},
|
|
21064
|
-
"verifierKey": {
|
|
21065
|
-
"description": "Optional verifier key material.",
|
|
21066
|
-
"type": "object",
|
|
21067
|
-
"propertyNames": {
|
|
21068
|
-
"type": "string"
|
|
21069
|
-
},
|
|
21070
|
-
"additionalProperties": {}
|
|
21071
|
-
},
|
|
21072
|
-
"verifierX509Der": {
|
|
21073
|
-
"description": "Optional verifier certificate in DER/base64 form.",
|
|
21074
|
-
"type": "string"
|
|
21075
|
-
}
|
|
21076
|
-
},
|
|
21077
|
-
"additionalProperties": false
|
|
21078
|
-
},
|
|
21079
|
-
"description": "Trust list references for ETSI TL verification."
|
|
21080
|
-
}
|
|
21081
|
-
},
|
|
21082
|
-
"required": [
|
|
21083
|
-
"type",
|
|
21084
|
-
"values"
|
|
21085
|
-
],
|
|
21086
|
-
"additionalProperties": false
|
|
21087
|
-
},
|
|
21088
|
-
{
|
|
21089
|
-
"type": "object",
|
|
21090
|
-
"properties": {
|
|
21091
|
-
"type": {
|
|
21092
|
-
"type": "string",
|
|
21093
|
-
"const": "openid_federation",
|
|
21094
|
-
"description": "Trusted authority type discriminator for OpenID Federation."
|
|
21095
|
-
},
|
|
21096
|
-
"values": {
|
|
21097
|
-
"type": "array",
|
|
21098
|
-
"items": {
|
|
21099
|
-
"type": "string"
|
|
21100
|
-
},
|
|
21101
|
-
"description": "OpenID Federation authority identifiers."
|
|
21102
|
-
}
|
|
21103
|
-
},
|
|
21104
|
-
"required": [
|
|
21105
|
-
"type",
|
|
21106
|
-
"values"
|
|
21107
|
-
],
|
|
21108
|
-
"additionalProperties": false
|
|
21109
|
-
}
|
|
21110
|
-
]
|
|
21111
|
-
}
|
|
22598
|
+
"lifetimeSeconds": {
|
|
22599
|
+
"description": "Access token lifetime in seconds.",
|
|
22600
|
+
"type": "number",
|
|
22601
|
+
"minimum": 60
|
|
21112
22602
|
},
|
|
21113
|
-
"
|
|
22603
|
+
"signingKeyId": {
|
|
22604
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
21114
22605
|
"type": "string",
|
|
21115
|
-
"
|
|
21116
|
-
"description": "Credential format discriminator."
|
|
22606
|
+
"minLength": 1
|
|
21117
22607
|
},
|
|
21118
|
-
"
|
|
21119
|
-
"
|
|
21120
|
-
"
|
|
21121
|
-
"doctype_value": {
|
|
21122
|
-
"type": "string",
|
|
21123
|
-
"minLength": 1,
|
|
21124
|
-
"description": "Expected mDoc doctype value."
|
|
21125
|
-
}
|
|
21126
|
-
},
|
|
21127
|
-
"required": [
|
|
21128
|
-
"doctype_value"
|
|
21129
|
-
],
|
|
21130
|
-
"additionalProperties": false
|
|
22608
|
+
"refreshTokenEnabled": {
|
|
22609
|
+
"description": "Enable issuing refresh tokens.",
|
|
22610
|
+
"type": "boolean"
|
|
21131
22611
|
},
|
|
21132
|
-
"
|
|
21133
|
-
"description": "
|
|
21134
|
-
"type": "
|
|
21135
|
-
"
|
|
21136
|
-
|
|
21137
|
-
|
|
21138
|
-
"id": {
|
|
21139
|
-
"description": "Optional claim query id.",
|
|
21140
|
-
"type": "string"
|
|
21141
|
-
},
|
|
21142
|
-
"path": {
|
|
21143
|
-
"type": "array",
|
|
21144
|
-
"items": {
|
|
21145
|
-
"type": [
|
|
21146
|
-
"string",
|
|
21147
|
-
"number"
|
|
21148
|
-
]
|
|
21149
|
-
},
|
|
21150
|
-
"description": "Path to the claim value in presented credentials."
|
|
21151
|
-
},
|
|
21152
|
-
"values": {
|
|
21153
|
-
"description": "Optional allowed values for the claim.",
|
|
21154
|
-
"type": "array",
|
|
21155
|
-
"items": {
|
|
21156
|
-
"type": "string"
|
|
21157
|
-
}
|
|
21158
|
-
},
|
|
21159
|
-
"intent_to_retain": {
|
|
21160
|
-
"description": "Whether relying party intends to retain the claim.",
|
|
21161
|
-
"type": "boolean"
|
|
21162
|
-
}
|
|
21163
|
-
},
|
|
21164
|
-
"required": [
|
|
21165
|
-
"path"
|
|
21166
|
-
],
|
|
21167
|
-
"additionalProperties": false
|
|
21168
|
-
}
|
|
21169
|
-
}
|
|
21170
|
-
},
|
|
21171
|
-
"required": [
|
|
21172
|
-
"id",
|
|
21173
|
-
"format",
|
|
21174
|
-
"meta"
|
|
21175
|
-
],
|
|
22612
|
+
"refreshTokenExpiresInSeconds": {
|
|
22613
|
+
"description": "Refresh token lifetime in seconds.",
|
|
22614
|
+
"type": "number",
|
|
22615
|
+
"minimum": 60
|
|
22616
|
+
}
|
|
22617
|
+
},
|
|
21176
22618
|
"additionalProperties": false
|
|
21177
|
-
}
|
|
21178
|
-
|
|
21179
|
-
|
|
21180
|
-
|
|
21181
|
-
|
|
21182
|
-
|
|
21183
|
-
|
|
21184
|
-
|
|
21185
|
-
|
|
21186
|
-
|
|
21187
|
-
|
|
21188
|
-
"options": {
|
|
21189
|
-
"minItems": 1,
|
|
22619
|
+
},
|
|
22620
|
+
"requireDPoP": {
|
|
22621
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
22622
|
+
"type": "boolean"
|
|
22623
|
+
},
|
|
22624
|
+
"walletAttestationRequired": {
|
|
22625
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
22626
|
+
"type": "boolean"
|
|
22627
|
+
},
|
|
22628
|
+
"walletProviderTrustLists": {
|
|
22629
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
21190
22630
|
"type": "array",
|
|
21191
22631
|
"items": {
|
|
21192
|
-
"
|
|
21193
|
-
"
|
|
21194
|
-
|
|
21195
|
-
|
|
21196
|
-
|
|
21197
|
-
|
|
21198
|
-
|
|
22632
|
+
"type": "object",
|
|
22633
|
+
"properties": {
|
|
22634
|
+
"trustListId": {
|
|
22635
|
+
"type": "string",
|
|
22636
|
+
"minLength": 1
|
|
22637
|
+
},
|
|
22638
|
+
"url": {
|
|
22639
|
+
"description": "URL of the wallet provider trust list.",
|
|
22640
|
+
"type": "string",
|
|
22641
|
+
"format": "uri"
|
|
22642
|
+
},
|
|
22643
|
+
"verifierKey": {
|
|
22644
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
22645
|
+
"type": "object",
|
|
22646
|
+
"propertyNames": {
|
|
22647
|
+
"type": "string"
|
|
22648
|
+
},
|
|
22649
|
+
"additionalProperties": {}
|
|
22650
|
+
},
|
|
22651
|
+
"verifierKeyPem": {
|
|
22652
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
22653
|
+
"type": "string",
|
|
22654
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
22655
|
+
},
|
|
22656
|
+
"verifierX509Der": {
|
|
22657
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
22658
|
+
"type": "string"
|
|
22659
|
+
}
|
|
22660
|
+
},
|
|
22661
|
+
"additionalProperties": false
|
|
22662
|
+
}
|
|
21199
22663
|
},
|
|
21200
|
-
"
|
|
21201
|
-
"description": "
|
|
22664
|
+
"label": {
|
|
22665
|
+
"description": "Optional display label for UI selection.",
|
|
22666
|
+
"type": "string"
|
|
22667
|
+
},
|
|
22668
|
+
"enabled": {
|
|
22669
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
21202
22670
|
"type": "boolean"
|
|
21203
22671
|
}
|
|
21204
22672
|
},
|
|
21205
22673
|
"required": [
|
|
21206
|
-
"
|
|
22674
|
+
"type",
|
|
22675
|
+
"id",
|
|
22676
|
+
"upstream"
|
|
21207
22677
|
],
|
|
21208
22678
|
"additionalProperties": false
|
|
21209
|
-
}
|
|
21210
|
-
|
|
21211
|
-
},
|
|
21212
|
-
"required": [
|
|
21213
|
-
"credentials"
|
|
21214
|
-
],
|
|
21215
|
-
"additionalProperties": false,
|
|
21216
|
-
"description": "DCQL query defining requested credentials and claims."
|
|
21217
|
-
},
|
|
21218
|
-
"transaction_data": {
|
|
21219
|
-
"description": "Optional transaction data descriptors.",
|
|
21220
|
-
"anyOf": [
|
|
21221
|
-
{
|
|
21222
|
-
"type": "array",
|
|
21223
|
-
"items": {
|
|
22679
|
+
},
|
|
22680
|
+
{
|
|
21224
22681
|
"type": "object",
|
|
21225
22682
|
"properties": {
|
|
21226
22683
|
"type": {
|
|
21227
22684
|
"type": "string",
|
|
21228
|
-
"
|
|
22685
|
+
"const": "built-in",
|
|
22686
|
+
"description": "Use EUDIPLO built-in authorization server."
|
|
21229
22687
|
},
|
|
21230
|
-
"
|
|
22688
|
+
"id": {
|
|
22689
|
+
"type": "string",
|
|
22690
|
+
"minLength": 1,
|
|
22691
|
+
"description": "Authorization server identifier."
|
|
22692
|
+
},
|
|
22693
|
+
"token": {
|
|
22694
|
+
"description": "Optional token issuance settings.",
|
|
22695
|
+
"type": "object",
|
|
22696
|
+
"properties": {
|
|
22697
|
+
"lifetimeSeconds": {
|
|
22698
|
+
"description": "Access token lifetime in seconds.",
|
|
22699
|
+
"type": "number",
|
|
22700
|
+
"minimum": 60
|
|
22701
|
+
},
|
|
22702
|
+
"signingKeyId": {
|
|
22703
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
22704
|
+
"type": "string",
|
|
22705
|
+
"minLength": 1
|
|
22706
|
+
},
|
|
22707
|
+
"refreshTokenEnabled": {
|
|
22708
|
+
"description": "Enable issuing refresh tokens.",
|
|
22709
|
+
"type": "boolean"
|
|
22710
|
+
},
|
|
22711
|
+
"refreshTokenExpiresInSeconds": {
|
|
22712
|
+
"description": "Refresh token lifetime in seconds.",
|
|
22713
|
+
"type": "number",
|
|
22714
|
+
"minimum": 60
|
|
22715
|
+
}
|
|
22716
|
+
},
|
|
22717
|
+
"additionalProperties": false
|
|
22718
|
+
},
|
|
22719
|
+
"requireDPoP": {
|
|
22720
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
22721
|
+
"type": "boolean"
|
|
22722
|
+
},
|
|
22723
|
+
"walletAttestationRequired": {
|
|
22724
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
22725
|
+
"type": "boolean"
|
|
22726
|
+
},
|
|
22727
|
+
"walletProviderTrustLists": {
|
|
22728
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
21231
22729
|
"type": "array",
|
|
21232
22730
|
"items": {
|
|
21233
|
-
"type": "
|
|
21234
|
-
|
|
21235
|
-
|
|
22731
|
+
"type": "object",
|
|
22732
|
+
"properties": {
|
|
22733
|
+
"trustListId": {
|
|
22734
|
+
"type": "string",
|
|
22735
|
+
"minLength": 1
|
|
22736
|
+
},
|
|
22737
|
+
"url": {
|
|
22738
|
+
"description": "URL of the wallet provider trust list.",
|
|
22739
|
+
"type": "string",
|
|
22740
|
+
"format": "uri"
|
|
22741
|
+
},
|
|
22742
|
+
"verifierKey": {
|
|
22743
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
22744
|
+
"type": "object",
|
|
22745
|
+
"propertyNames": {
|
|
22746
|
+
"type": "string"
|
|
22747
|
+
},
|
|
22748
|
+
"additionalProperties": {}
|
|
22749
|
+
},
|
|
22750
|
+
"verifierKeyPem": {
|
|
22751
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
22752
|
+
"type": "string",
|
|
22753
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
22754
|
+
},
|
|
22755
|
+
"verifierX509Der": {
|
|
22756
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
22757
|
+
"type": "string"
|
|
22758
|
+
}
|
|
22759
|
+
},
|
|
22760
|
+
"additionalProperties": false
|
|
22761
|
+
}
|
|
21236
22762
|
},
|
|
21237
|
-
"
|
|
21238
|
-
"description": "
|
|
22763
|
+
"label": {
|
|
22764
|
+
"description": "Optional display label for UI selection.",
|
|
22765
|
+
"type": "string"
|
|
22766
|
+
},
|
|
22767
|
+
"enabled": {
|
|
22768
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
22769
|
+
"type": "boolean"
|
|
21239
22770
|
}
|
|
21240
22771
|
},
|
|
21241
22772
|
"required": [
|
|
21242
22773
|
"type",
|
|
21243
|
-
"
|
|
22774
|
+
"id"
|
|
21244
22775
|
],
|
|
21245
|
-
"additionalProperties":
|
|
22776
|
+
"additionalProperties": false
|
|
21246
22777
|
}
|
|
21247
|
-
|
|
21248
|
-
|
|
21249
|
-
|
|
21250
|
-
|
|
21251
|
-
]
|
|
22778
|
+
],
|
|
22779
|
+
"description": "Supported authorization server configurations."
|
|
22780
|
+
},
|
|
22781
|
+
"description": "Configured authorization server entries."
|
|
21252
22782
|
},
|
|
21253
|
-
"
|
|
21254
|
-
"description": "Optional
|
|
22783
|
+
"federation": {
|
|
22784
|
+
"description": "Optional OpenID Federation settings.",
|
|
21255
22785
|
"anyOf": [
|
|
21256
22786
|
{
|
|
21257
22787
|
"type": "object",
|
|
21258
22788
|
"properties": {
|
|
21259
|
-
"
|
|
21260
|
-
"
|
|
22789
|
+
"role": {
|
|
22790
|
+
"description": "Federation role for this issuer.",
|
|
22791
|
+
"type": "string",
|
|
22792
|
+
"enum": [
|
|
22793
|
+
"trust_anchor",
|
|
22794
|
+
"intermediate",
|
|
22795
|
+
"leaf"
|
|
22796
|
+
]
|
|
21261
22797
|
},
|
|
21262
|
-
"
|
|
21263
|
-
"
|
|
21264
|
-
"
|
|
21265
|
-
|
|
21266
|
-
|
|
21267
|
-
|
|
21268
|
-
|
|
21269
|
-
|
|
21270
|
-
|
|
21271
|
-
|
|
21272
|
-
|
|
21273
|
-
|
|
21274
|
-
|
|
21275
|
-
|
|
21276
|
-
|
|
21277
|
-
|
|
21278
|
-
|
|
21279
|
-
|
|
21280
|
-
|
|
21281
|
-
|
|
21282
|
-
|
|
21283
|
-
|
|
21284
|
-
|
|
21285
|
-
|
|
21286
|
-
|
|
21287
|
-
|
|
21288
|
-
|
|
21289
|
-
|
|
21290
|
-
"additionalProperties": false
|
|
21291
|
-
}
|
|
21292
|
-
},
|
|
21293
|
-
"credentials": {
|
|
21294
|
-
"type": "array",
|
|
21295
|
-
"items": {
|
|
21296
|
-
"type": "object",
|
|
21297
|
-
"propertyNames": {
|
|
21298
|
-
"type": "string"
|
|
21299
|
-
},
|
|
21300
|
-
"additionalProperties": {}
|
|
21301
|
-
}
|
|
21302
|
-
},
|
|
21303
|
-
"provides_attestations": {
|
|
21304
|
-
"type": "array",
|
|
21305
|
-
"items": {
|
|
22798
|
+
"mode": {
|
|
22799
|
+
"description": "Federation operation mode.",
|
|
22800
|
+
"type": "string",
|
|
22801
|
+
"enum": [
|
|
22802
|
+
"federation-only",
|
|
22803
|
+
"hybrid"
|
|
22804
|
+
]
|
|
22805
|
+
},
|
|
22806
|
+
"entityId": {
|
|
22807
|
+
"description": "Optional local federation entity id.",
|
|
22808
|
+
"type": "string"
|
|
22809
|
+
},
|
|
22810
|
+
"enforceSigningPolicy": {
|
|
22811
|
+
"description": "Enforce strict signing policy checks.",
|
|
22812
|
+
"type": "boolean"
|
|
22813
|
+
},
|
|
22814
|
+
"cacheTtlSeconds": {
|
|
22815
|
+
"description": "Cache time-to-live for federation metadata in seconds.",
|
|
22816
|
+
"type": "integer",
|
|
22817
|
+
"minimum": 1,
|
|
22818
|
+
"maximum": 9007199254740991
|
|
22819
|
+
},
|
|
22820
|
+
"trustAnchors": {
|
|
22821
|
+
"type": "array",
|
|
22822
|
+
"items": {
|
|
22823
|
+
"type": "object",
|
|
22824
|
+
"properties": {
|
|
22825
|
+
"entityId": {
|
|
21306
22826
|
"type": "string",
|
|
21307
|
-
"minLength": 1
|
|
22827
|
+
"minLength": 1,
|
|
22828
|
+
"description": "Federation trust anchor entity id."
|
|
22829
|
+
},
|
|
22830
|
+
"entityConfigurationUri": {
|
|
22831
|
+
"type": "string",
|
|
22832
|
+
"format": "uri",
|
|
22833
|
+
"description": "Entity configuration URI for the trust anchor."
|
|
21308
22834
|
}
|
|
21309
|
-
}
|
|
22835
|
+
},
|
|
22836
|
+
"required": [
|
|
22837
|
+
"entityId",
|
|
22838
|
+
"entityConfigurationUri"
|
|
22839
|
+
],
|
|
22840
|
+
"additionalProperties": false
|
|
21310
22841
|
},
|
|
21311
|
-
"
|
|
21312
|
-
},
|
|
21313
|
-
"jwt": {
|
|
21314
|
-
"type": "string"
|
|
22842
|
+
"description": "Federation trust anchors."
|
|
21315
22843
|
}
|
|
21316
22844
|
},
|
|
22845
|
+
"required": [
|
|
22846
|
+
"trustAnchors"
|
|
22847
|
+
],
|
|
21317
22848
|
"additionalProperties": false
|
|
21318
22849
|
},
|
|
21319
22850
|
{
|
|
@@ -21321,134 +22852,125 @@ var CONFIG_SCHEMAS = [
|
|
|
21321
22852
|
}
|
|
21322
22853
|
]
|
|
21323
22854
|
},
|
|
21324
|
-
"
|
|
21325
|
-
"description": "Optional
|
|
21326
|
-
"type": [
|
|
21327
|
-
"string",
|
|
21328
|
-
"null"
|
|
21329
|
-
]
|
|
21330
|
-
},
|
|
21331
|
-
"registrationCertImportId": {
|
|
21332
|
-
"description": "Optional registrar-side registration certificate id.",
|
|
21333
|
-
"type": [
|
|
21334
|
-
"string",
|
|
21335
|
-
"null"
|
|
21336
|
-
]
|
|
21337
|
-
},
|
|
21338
|
-
"registrationCertBodyPrivacyPolicy": {
|
|
21339
|
-
"description": "Optional registration certificate privacy policy URI.",
|
|
21340
|
-
"type": [
|
|
21341
|
-
"string",
|
|
21342
|
-
"null"
|
|
21343
|
-
]
|
|
21344
|
-
},
|
|
21345
|
-
"registrationCertBodySupportUri": {
|
|
21346
|
-
"description": "Optional registration certificate support URI.",
|
|
21347
|
-
"type": [
|
|
21348
|
-
"string",
|
|
21349
|
-
"null"
|
|
21350
|
-
]
|
|
21351
|
-
},
|
|
21352
|
-
"registrationCertBodyIntermediary": {
|
|
21353
|
-
"description": "Optional registration certificate intermediary.",
|
|
21354
|
-
"type": [
|
|
21355
|
-
"string",
|
|
21356
|
-
"null"
|
|
21357
|
-
]
|
|
21358
|
-
},
|
|
21359
|
-
"registrationCertBodyPurpose": {
|
|
21360
|
-
"description": "Optional registration certificate purpose entries.",
|
|
22855
|
+
"registrationCertificate": {
|
|
22856
|
+
"description": "Optional registration certificate settings.",
|
|
21361
22857
|
"anyOf": [
|
|
21362
22858
|
{
|
|
21363
|
-
"type": "
|
|
21364
|
-
"
|
|
21365
|
-
"
|
|
21366
|
-
|
|
21367
|
-
"
|
|
21368
|
-
"type": "string"
|
|
21369
|
-
},
|
|
21370
|
-
"content": {
|
|
21371
|
-
"type": "string"
|
|
21372
|
-
}
|
|
22859
|
+
"type": "object",
|
|
22860
|
+
"properties": {
|
|
22861
|
+
"enabled": {
|
|
22862
|
+
"description": "Enable issuer registration certificate support.",
|
|
22863
|
+
"type": "boolean"
|
|
21373
22864
|
},
|
|
21374
|
-
"
|
|
21375
|
-
|
|
22865
|
+
"mode": {
|
|
22866
|
+
"description": "How registration certificate data is provided.",
|
|
22867
|
+
"type": "string",
|
|
22868
|
+
"enum": [
|
|
22869
|
+
"import",
|
|
22870
|
+
"generate"
|
|
22871
|
+
]
|
|
22872
|
+
},
|
|
22873
|
+
"jwt": {
|
|
22874
|
+
"description": "Optional registration certificate JWT when using import mode.",
|
|
22875
|
+
"type": "string"
|
|
22876
|
+
},
|
|
22877
|
+
"privacyPolicy": {
|
|
22878
|
+
"description": "Optional privacy policy URI.",
|
|
22879
|
+
"type": "string"
|
|
22880
|
+
},
|
|
22881
|
+
"supportUri": {
|
|
22882
|
+
"description": "Optional support URI.",
|
|
22883
|
+
"type": "string"
|
|
22884
|
+
}
|
|
22885
|
+
},
|
|
22886
|
+
"additionalProperties": false
|
|
21376
22887
|
},
|
|
21377
22888
|
{
|
|
21378
22889
|
"type": "null"
|
|
21379
22890
|
}
|
|
21380
22891
|
]
|
|
21381
22892
|
},
|
|
21382
|
-
"
|
|
21383
|
-
"description": "
|
|
21384
|
-
"type":
|
|
21385
|
-
|
|
21386
|
-
"
|
|
21387
|
-
|
|
21388
|
-
|
|
21389
|
-
|
|
21390
|
-
|
|
21391
|
-
|
|
21392
|
-
|
|
21393
|
-
|
|
21394
|
-
|
|
22893
|
+
"display": {
|
|
22894
|
+
"description": "Localized issuer metadata shown to wallets.",
|
|
22895
|
+
"type": "array",
|
|
22896
|
+
"items": {
|
|
22897
|
+
"type": "object",
|
|
22898
|
+
"properties": {
|
|
22899
|
+
"name": {
|
|
22900
|
+
"description": "Issuer display name.",
|
|
22901
|
+
"type": "string"
|
|
22902
|
+
},
|
|
22903
|
+
"locale": {
|
|
22904
|
+
"description": "Locale tag for this display entry.",
|
|
22905
|
+
"type": "string"
|
|
22906
|
+
},
|
|
22907
|
+
"logo": {
|
|
22908
|
+
"description": "Optional issuer logo metadata.",
|
|
21395
22909
|
"type": "object",
|
|
21396
22910
|
"properties": {
|
|
21397
|
-
"
|
|
22911
|
+
"uri": {
|
|
21398
22912
|
"type": "string",
|
|
21399
|
-
"
|
|
21400
|
-
|
|
21401
|
-
"data": {
|
|
21402
|
-
"description": "Attachment payload."
|
|
22913
|
+
"minLength": 1,
|
|
22914
|
+
"description": "Logo URI."
|
|
21403
22915
|
},
|
|
21404
|
-
"
|
|
21405
|
-
"description": "Optional
|
|
21406
|
-
"type": "
|
|
21407
|
-
"items": {
|
|
21408
|
-
"type": "string"
|
|
21409
|
-
}
|
|
22916
|
+
"alt_text": {
|
|
22917
|
+
"description": "Optional localized alternative text.",
|
|
22918
|
+
"type": "string"
|
|
21410
22919
|
}
|
|
21411
22920
|
},
|
|
21412
22921
|
"required": [
|
|
21413
|
-
"
|
|
21414
|
-
"data"
|
|
22922
|
+
"uri"
|
|
21415
22923
|
],
|
|
21416
|
-
"additionalProperties":
|
|
22924
|
+
"additionalProperties": {}
|
|
21417
22925
|
}
|
|
21418
22926
|
},
|
|
22927
|
+
"additionalProperties": {}
|
|
22928
|
+
}
|
|
22929
|
+
},
|
|
22930
|
+
"notificationEndpointEnabled": {
|
|
22931
|
+
"description": "Whether the OID4VCI notification endpoint is exposed for this issuance configuration.",
|
|
22932
|
+
"type": "boolean"
|
|
22933
|
+
},
|
|
22934
|
+
"credentialResponseEncryption": {
|
|
22935
|
+
"description": "Enable encrypted credential responses.",
|
|
22936
|
+
"type": "boolean"
|
|
22937
|
+
},
|
|
22938
|
+
"credentialRequestEncryption": {
|
|
22939
|
+
"description": "Require encrypted credential requests.",
|
|
22940
|
+
"type": "boolean"
|
|
22941
|
+
},
|
|
22942
|
+
"txCodeMaxAttempts": {
|
|
22943
|
+
"description": "Maximum verification attempts for transaction codes. Null resets to defaults.",
|
|
22944
|
+
"anyOf": [
|
|
22945
|
+
{
|
|
22946
|
+
"type": "integer",
|
|
22947
|
+
"minimum": 1,
|
|
22948
|
+
"maximum": 9007199254740991
|
|
22949
|
+
},
|
|
21419
22950
|
{
|
|
21420
22951
|
"type": "null"
|
|
21421
22952
|
}
|
|
21422
22953
|
]
|
|
21423
22954
|
},
|
|
21424
|
-
"
|
|
21425
|
-
"description": "
|
|
21426
|
-
"
|
|
21427
|
-
|
|
21428
|
-
|
|
21429
|
-
|
|
21430
|
-
|
|
21431
|
-
|
|
21432
|
-
|
|
21433
|
-
|
|
21434
|
-
|
|
21435
|
-
"null"
|
|
21436
|
-
]
|
|
21437
|
-
},
|
|
21438
|
-
"readerAuth": {
|
|
21439
|
-
"description": "Whether reader authentication is required for mDoc requests.",
|
|
21440
|
-
"type": [
|
|
21441
|
-
"boolean",
|
|
21442
|
-
"null"
|
|
22955
|
+
"offerLifetimeSeconds": {
|
|
22956
|
+
"description": "Default lifetime of credential offers in seconds. Can be overridden per offer request. Null or unset: offers do not expire.",
|
|
22957
|
+
"anyOf": [
|
|
22958
|
+
{
|
|
22959
|
+
"type": "integer",
|
|
22960
|
+
"minimum": 1,
|
|
22961
|
+
"maximum": 9007199254740991
|
|
22962
|
+
},
|
|
22963
|
+
{
|
|
22964
|
+
"type": "null"
|
|
22965
|
+
}
|
|
21443
22966
|
]
|
|
21444
22967
|
}
|
|
21445
22968
|
},
|
|
21446
22969
|
"required": [
|
|
21447
|
-
"
|
|
21448
|
-
"dcql_query"
|
|
22970
|
+
"authorizationServers"
|
|
21449
22971
|
],
|
|
21450
22972
|
"additionalProperties": false,
|
|
21451
|
-
"title": "
|
|
22973
|
+
"title": "IssuanceConfig"
|
|
21452
22974
|
}
|
|
21453
22975
|
}
|
|
21454
22976
|
},
|
|
@@ -23723,7 +25245,10 @@ function createTenantCommand(context, setExitCode) {
|
|
|
23723
25245
|
|
|
23724
25246
|
// src/commands/config/validate/index.ts
|
|
23725
25247
|
function createValidateCommand(context, setExitCode) {
|
|
23726
|
-
return new Command("validate").description("Validate CLI or tenant config-import files").argument(
|
|
25248
|
+
return new Command("validate").description("Validate CLI or tenant config-import files").argument(
|
|
25249
|
+
"[scope]",
|
|
25250
|
+
'"tenant" for one tenant folder or "tenants" for a folder of tenant folders; omit it to validate the CLI config file'
|
|
25251
|
+
).argument("[path]", "the folder to validate (required with a scope)").addOption(
|
|
23727
25252
|
new Option("--format <text|json>", "tenant report format").choices(["text", "json"]).default("text")
|
|
23728
25253
|
).action(async (scope, path2, options) => {
|
|
23729
25254
|
const state = await loadCliState(context);
|
|
@@ -23842,9 +25367,9 @@ function buildComposeLogsArgs(service, options = {}) {
|
|
|
23842
25367
|
}
|
|
23843
25368
|
return args;
|
|
23844
25369
|
}
|
|
23845
|
-
function buildComposePullArgs(
|
|
25370
|
+
function buildComposePullArgs(services) {
|
|
23846
25371
|
const args = ["pull"];
|
|
23847
|
-
|
|
25372
|
+
for (const service of typeof services === "string" ? [services] : services ?? []) {
|
|
23848
25373
|
assertServiceName(service);
|
|
23849
25374
|
args.push(service);
|
|
23850
25375
|
}
|
|
@@ -23882,23 +25407,28 @@ function parseContainerStates(stdout) {
|
|
|
23882
25407
|
return entries.map((entry) => {
|
|
23883
25408
|
const record = entry;
|
|
23884
25409
|
const names = record.Names;
|
|
25410
|
+
const status = String(record.Status ?? "");
|
|
25411
|
+
const exitCode2 = typeof record.ExitCode === "number" ? record.ExitCode : /^Exited \((\d+)\)/.exec(status)?.[1];
|
|
23885
25412
|
return {
|
|
23886
25413
|
name: Array.isArray(names) ? String(names[0] ?? "") : String(names ?? record.Name ?? ""),
|
|
23887
25414
|
state: String(record.State ?? ""),
|
|
23888
|
-
status
|
|
25415
|
+
status,
|
|
25416
|
+
exitCode: exitCode2 === void 0 ? void 0 : Number(exitCode2)
|
|
23889
25417
|
};
|
|
23890
25418
|
});
|
|
23891
25419
|
}
|
|
23892
25420
|
function summarizeContainerStates(containers, projectName) {
|
|
23893
25421
|
const name = "service containers";
|
|
23894
|
-
|
|
25422
|
+
const services = containers.filter((container) => !hasCompleted(container));
|
|
25423
|
+
const completed = containers.length - services.length;
|
|
25424
|
+
if (services.length === 0) {
|
|
23895
25425
|
return {
|
|
23896
25426
|
name,
|
|
23897
25427
|
status: "warn",
|
|
23898
25428
|
message: `No containers found for project ${projectName}. Start it with eudiplo up.`
|
|
23899
25429
|
};
|
|
23900
25430
|
}
|
|
23901
|
-
const unhealthy =
|
|
25431
|
+
const unhealthy = services.filter(
|
|
23902
25432
|
(container) => container.status.toLowerCase().includes("unhealthy")
|
|
23903
25433
|
);
|
|
23904
25434
|
if (unhealthy.length > 0) {
|
|
@@ -23908,25 +25438,28 @@ function summarizeContainerStates(containers, projectName) {
|
|
|
23908
25438
|
message: `Unhealthy: ${describe(unhealthy)}`
|
|
23909
25439
|
};
|
|
23910
25440
|
}
|
|
23911
|
-
const notRunning =
|
|
25441
|
+
const notRunning = services.filter(
|
|
23912
25442
|
(container) => container.state.toLowerCase() !== "running"
|
|
23913
25443
|
);
|
|
23914
25444
|
if (notRunning.length > 0) {
|
|
23915
25445
|
return {
|
|
23916
25446
|
name,
|
|
23917
25447
|
status: "warn",
|
|
23918
|
-
message: `${
|
|
25448
|
+
message: `${services.length - notRunning.length}/${services.length} running. Not running: ${describe(notRunning)}`
|
|
23919
25449
|
};
|
|
23920
25450
|
}
|
|
23921
|
-
const starting =
|
|
25451
|
+
const starting = services.filter(
|
|
23922
25452
|
(container) => container.status.toLowerCase().includes("starting")
|
|
23923
25453
|
).length;
|
|
23924
25454
|
return {
|
|
23925
25455
|
name,
|
|
23926
25456
|
status: "pass",
|
|
23927
|
-
message: `${
|
|
25457
|
+
message: `${services.length} container(s) running${starting > 0 ? `, ${starting} still starting` : ""}${completed > 0 ? `, ${completed} completed` : ""}.`
|
|
23928
25458
|
};
|
|
23929
25459
|
}
|
|
25460
|
+
function hasCompleted(container) {
|
|
25461
|
+
return container.state.toLowerCase() === "exited" && container.exitCode === 0;
|
|
25462
|
+
}
|
|
23930
25463
|
function asArray(value) {
|
|
23931
25464
|
return Array.isArray(value) ? value : [];
|
|
23932
25465
|
}
|
|
@@ -24860,11 +26393,57 @@ async function runDriverCommand(config, command, parsed, context) {
|
|
|
24860
26393
|
});
|
|
24861
26394
|
}
|
|
24862
26395
|
|
|
26396
|
+
// src/commands/deployment/pass-through.ts
|
|
26397
|
+
function runtimeArguments(command, args) {
|
|
26398
|
+
const options = command.options.flatMap((option) => option.long ?? []);
|
|
26399
|
+
for (const arg of args) {
|
|
26400
|
+
if (!arg.startsWith("--") || arg === "--") {
|
|
26401
|
+
continue;
|
|
26402
|
+
}
|
|
26403
|
+
const flag = arg.split("=", 1)[0];
|
|
26404
|
+
const similar = options.filter(
|
|
26405
|
+
(option) => option !== flag && editDistance2(flag, option) <= 2
|
|
26406
|
+
);
|
|
26407
|
+
if (similar.length > 0) {
|
|
26408
|
+
const suggestion = similar.length === 1 ? similar[0] : `one of ${similar.join(", ")}`;
|
|
26409
|
+
command.error(
|
|
26410
|
+
`error: unknown option '${arg}'
|
|
26411
|
+
(Did you mean ${suggestion}?)`,
|
|
26412
|
+
{ code: "commander.unknownOption" }
|
|
26413
|
+
);
|
|
26414
|
+
}
|
|
26415
|
+
}
|
|
26416
|
+
const separator = args.indexOf("--");
|
|
26417
|
+
return separator === -1 ? args : [...args.slice(0, separator), ...args.slice(separator + 1)];
|
|
26418
|
+
}
|
|
26419
|
+
function editDistance2(a, b) {
|
|
26420
|
+
const distances = Array.from(
|
|
26421
|
+
{ length: a.length + 1 },
|
|
26422
|
+
(_, i2) => Array.from({ length: b.length + 1 }, (_2, j) => Math.max(i2, j))
|
|
26423
|
+
);
|
|
26424
|
+
for (let i2 = 1; i2 <= a.length; i2++) {
|
|
26425
|
+
for (let j = 1; j <= b.length; j++) {
|
|
26426
|
+
distances[i2][j] = Math.min(
|
|
26427
|
+
distances[i2 - 1][j] + 1,
|
|
26428
|
+
distances[i2][j - 1] + 1,
|
|
26429
|
+
distances[i2 - 1][j - 1] + (a[i2 - 1] === b[j - 1] ? 0 : 1)
|
|
26430
|
+
);
|
|
26431
|
+
if (i2 > 1 && j > 1 && a[i2 - 1] === b[j - 2] && a[i2 - 2] === b[j - 1]) {
|
|
26432
|
+
distances[i2][j] = Math.min(
|
|
26433
|
+
distances[i2][j],
|
|
26434
|
+
distances[i2 - 2][j - 2] + 1
|
|
26435
|
+
);
|
|
26436
|
+
}
|
|
26437
|
+
}
|
|
26438
|
+
}
|
|
26439
|
+
return distances[a.length][b.length];
|
|
26440
|
+
}
|
|
26441
|
+
|
|
24863
26442
|
// src/commands/deployment/index.ts
|
|
24864
26443
|
var descriptions = {
|
|
24865
26444
|
up: "Start the selected Compose deployment",
|
|
24866
26445
|
down: "Stop the selected Compose deployment",
|
|
24867
|
-
logs: "
|
|
26446
|
+
logs: "Print the logs of the selected deployment, or stream them with --follow",
|
|
24868
26447
|
ps: "List the running containers or pods for the selected deployment",
|
|
24869
26448
|
restart: "Restart the workloads of the selected deployment",
|
|
24870
26449
|
pull: "Download the configured images without changing configuration"
|
|
@@ -24879,8 +26458,8 @@ function createDeploymentCommands(context, setExitCode) {
|
|
|
24879
26458
|
(name) => {
|
|
24880
26459
|
const command = new Command(name).description(descriptions[name]).argument(
|
|
24881
26460
|
"[args...]",
|
|
24882
|
-
"additional arguments passed to the deployment runtime"
|
|
24883
|
-
).option("--instance <name>", "select a configured instance");
|
|
26461
|
+
"additional arguments and options passed to the deployment runtime"
|
|
26462
|
+
).allowUnknownOption().option("--instance <name>", "select a configured instance");
|
|
24884
26463
|
if (serviceScoped.has(name)) {
|
|
24885
26464
|
command.option(
|
|
24886
26465
|
"--service <name>",
|
|
@@ -24900,12 +26479,13 @@ function createDeploymentCommands(context, setExitCode) {
|
|
|
24900
26479
|
);
|
|
24901
26480
|
}
|
|
24902
26481
|
return command.action(async (args, options) => {
|
|
26482
|
+
const runtimeArgs = runtimeArguments(command, args);
|
|
24903
26483
|
const { config } = await loadCliState(context);
|
|
24904
26484
|
setExitCode(
|
|
24905
26485
|
await runDriverCommand(
|
|
24906
26486
|
config,
|
|
24907
26487
|
name,
|
|
24908
|
-
parsedArgs(name, void 0,
|
|
26488
|
+
parsedArgs(name, void 0, runtimeArgs, options),
|
|
24909
26489
|
context
|
|
24910
26490
|
)
|
|
24911
26491
|
);
|
|
@@ -24917,7 +26497,7 @@ function createDeploymentCommands(context, setExitCode) {
|
|
|
24917
26497
|
// package.json
|
|
24918
26498
|
var package_default = {
|
|
24919
26499
|
name: "@eudiplo/cli",
|
|
24920
|
-
version: "9.0.
|
|
26500
|
+
version: "9.1.0-main.021024e",
|
|
24921
26501
|
description: "Deployment-aware command line tools for EUDIPLO",
|
|
24922
26502
|
private: false,
|
|
24923
26503
|
type: "module",
|
|
@@ -24977,12 +26557,12 @@ var package_default = {
|
|
|
24977
26557
|
"jsonc-parser": "^3.3.1"
|
|
24978
26558
|
},
|
|
24979
26559
|
devDependencies: {
|
|
24980
|
-
"@biomejs/biome": "2.5.
|
|
24981
|
-
"@types/node": "^26.4
|
|
26560
|
+
"@biomejs/biome": "2.5.15",
|
|
26561
|
+
"@types/node": "^26.6.4",
|
|
24982
26562
|
esbuild: "^0.28.2",
|
|
24983
|
-
tsx: "^4.23.
|
|
26563
|
+
tsx: "^4.23.15",
|
|
24984
26564
|
typescript: "^7.0.2",
|
|
24985
|
-
vitest: "5.0.
|
|
26565
|
+
vitest: "5.0.3"
|
|
24986
26566
|
}
|
|
24987
26567
|
};
|
|
24988
26568
|
|
|
@@ -25360,6 +26940,13 @@ var kmsHealthCheck = {
|
|
|
25360
26940
|
message: "This backend does not expose the KMS provider health endpoint."
|
|
25361
26941
|
};
|
|
25362
26942
|
}
|
|
26943
|
+
if (response.status === 401 || response.status === 403) {
|
|
26944
|
+
return {
|
|
26945
|
+
name: "KMS providers",
|
|
26946
|
+
status: "skip",
|
|
26947
|
+
message: `Needs a tenant client with issuance:manage or presentation:manage (${response.reason}).`
|
|
26948
|
+
};
|
|
26949
|
+
}
|
|
25363
26950
|
return {
|
|
25364
26951
|
name: "KMS providers",
|
|
25365
26952
|
status: "fail",
|
|
@@ -26270,6 +27857,10 @@ var managedImages = {
|
|
|
26270
27857
|
EUDIPLO_IMAGE: "ghcr.io/eudiplo/eudiplo",
|
|
26271
27858
|
EUDIPLO_CLIENT_IMAGE: "ghcr.io/eudiplo/eudiplo-client"
|
|
26272
27859
|
};
|
|
27860
|
+
var managedServices = {
|
|
27861
|
+
EUDIPLO_IMAGE: "eudiplo",
|
|
27862
|
+
EUDIPLO_CLIENT_IMAGE: "eudiplo-client"
|
|
27863
|
+
};
|
|
26273
27864
|
var legacyImages = {
|
|
26274
27865
|
EUDIPLO_IMAGE: "ghcr.io/openwallet-foundation/eudiplo",
|
|
26275
27866
|
EUDIPLO_CLIENT_IMAGE: "ghcr.io/openwallet-foundation/eudiplo-client"
|
|
@@ -26436,7 +28027,12 @@ async function runUpgradeCommand(config, parsed, context) {
|
|
|
26436
28027
|
return 0;
|
|
26437
28028
|
}
|
|
26438
28029
|
await writeFile6(envPath, plan.content, "utf8");
|
|
26439
|
-
const pulled = await runCompose(
|
|
28030
|
+
const pulled = await runCompose(
|
|
28031
|
+
buildComposePullArgs(
|
|
28032
|
+
plan.changes.map((change) => managedServices[change.key])
|
|
28033
|
+
),
|
|
28034
|
+
options
|
|
28035
|
+
);
|
|
26440
28036
|
if (pulled !== 0) {
|
|
26441
28037
|
await writeFile6(envPath, original, "utf8");
|
|
26442
28038
|
context.stderr.write(
|