@eudiplo/cli 9.1.0-main.52a85b9 → 9.1.0-main.54c58b8
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/portability/upgrade.d.ts.map +1 -1
- package/dist/commands/config/portability/upgrade.js +2 -7
- package/dist/commands/config/portability/upgrade.js.map +1 -1
- package/dist/commands/config/validate/registry.json +21 -0
- package/dist/index.js +2563 -594
- package/package.json +6 -5
- package/templates/demo-config/key-chains/status-list.json +3 -3
- package/templates/schemas/CreateFederationTrustAnchorDto.schema.json +82 -0
- package/templates/schemas/FederationTrustAnchorConfigFile.schema.json +60 -0
- package/templates/schemas/IssuanceConfig.schema.json +77 -2
- package/templates/schemas/IssuanceConfigFile.schema.json +739 -1
- package/templates/schemas/KeyChainConfigFile.schema.json +370 -1
- package/templates/schemas/KeyChainCreateDto.schema.json +1 -0
- package/templates/schemas/KeyChainDefaultsConfigFile.schema.json +65 -0
- package/templates/schemas/KeyChainImportDto.schema.json +1 -0
- package/templates/schemas/TenantConfigFile.schema.json +395 -0
- package/templates/schemas/UpdateFederationTrustAnchorDto.schema.json +70 -0
- package/templates/schemas.manifest.json +4 -0
package/dist/index.js
CHANGED
|
@@ -3099,9 +3099,9 @@ 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.9/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.9/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);
|
|
@@ -3333,6 +3333,37 @@ var require_utils = __commonJS({
|
|
|
3333
3333
|
}
|
|
3334
3334
|
return output.join("");
|
|
3335
3335
|
}
|
|
3336
|
+
function removeDotSegmentsRelative(path2) {
|
|
3337
|
+
if (path2 === "" || path2[0] === "/") {
|
|
3338
|
+
return removeDotSegments(path2);
|
|
3339
|
+
}
|
|
3340
|
+
const segments = path2.split("/");
|
|
3341
|
+
const last = segments.length - 1;
|
|
3342
|
+
const output = [];
|
|
3343
|
+
let trailingDirectory = false;
|
|
3344
|
+
for (let i2 = 0; i2 <= last; i2++) {
|
|
3345
|
+
const segment = segments[i2];
|
|
3346
|
+
if (segment === "." || segment === "..") {
|
|
3347
|
+
if (segment === "..") {
|
|
3348
|
+
if (output.length !== 0 && output[output.length - 1] !== "..") {
|
|
3349
|
+
output.pop();
|
|
3350
|
+
} else {
|
|
3351
|
+
output.push("..");
|
|
3352
|
+
}
|
|
3353
|
+
}
|
|
3354
|
+
trailingDirectory = i2 === last;
|
|
3355
|
+
} else {
|
|
3356
|
+
output.push(segment);
|
|
3357
|
+
}
|
|
3358
|
+
}
|
|
3359
|
+
if (trailingDirectory && output[output.length - 1] !== "..") {
|
|
3360
|
+
output.push("");
|
|
3361
|
+
}
|
|
3362
|
+
if (output.length === 0 || output[0] === "" || output[0].includes(":")) {
|
|
3363
|
+
output.unshift(".");
|
|
3364
|
+
}
|
|
3365
|
+
return output.join("/");
|
|
3366
|
+
}
|
|
3336
3367
|
var HOST_DELIMS = { "@": "%40", "/": "%2F", "?": "%3F", "#": "%23", ":": "%3A" };
|
|
3337
3368
|
var HOST_DELIM_RE = /[@/?#:]/g;
|
|
3338
3369
|
var HOST_DELIM_NO_COLON_RE = /[@/?#]/g;
|
|
@@ -3593,6 +3624,7 @@ var require_utils = __commonJS({
|
|
|
3593
3624
|
encodeFragment,
|
|
3594
3625
|
escapePreservingEscapes,
|
|
3595
3626
|
removeDotSegments,
|
|
3627
|
+
removeDotSegmentsRelative,
|
|
3596
3628
|
isIPv4,
|
|
3597
3629
|
isUUID,
|
|
3598
3630
|
normalizeIPv6,
|
|
@@ -3601,9 +3633,9 @@ var require_utils = __commonJS({
|
|
|
3601
3633
|
}
|
|
3602
3634
|
});
|
|
3603
3635
|
|
|
3604
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3636
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.9/node_modules/fast-uri/lib/schemes.js
|
|
3605
3637
|
var require_schemes = __commonJS({
|
|
3606
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3638
|
+
"../../node_modules/.pnpm/fast-uri@3.1.9/node_modules/fast-uri/lib/schemes.js"(exports, module) {
|
|
3607
3639
|
"use strict";
|
|
3608
3640
|
var { isUUID } = require_utils();
|
|
3609
3641
|
var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
|
|
@@ -3812,20 +3844,22 @@ var require_schemes = __commonJS({
|
|
|
3812
3844
|
}
|
|
3813
3845
|
});
|
|
3814
3846
|
|
|
3815
|
-
// ../../node_modules/.pnpm/fast-uri@3.1.
|
|
3847
|
+
// ../../node_modules/.pnpm/fast-uri@3.1.9/node_modules/fast-uri/index.js
|
|
3816
3848
|
var require_fast_uri = __commonJS({
|
|
3817
|
-
"../../node_modules/.pnpm/fast-uri@3.1.
|
|
3849
|
+
"../../node_modules/.pnpm/fast-uri@3.1.9/node_modules/fast-uri/index.js"(exports, module) {
|
|
3818
3850
|
"use strict";
|
|
3819
|
-
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
3851
|
+
var { normalizeIPv6, removeDotSegments, removeDotSegmentsRelative, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
3820
3852
|
var { SCHEMES, getSchemeHandler } = require_schemes();
|
|
3821
3853
|
var VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
|
|
3822
3854
|
var MALFORMED_SCHEME_ERROR = "URI scheme is malformed.";
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3855
|
+
var MALFORMED_HOST_ERROR = "URI host is malformed.";
|
|
3856
|
+
var FORBIDDEN_DOMAIN_HOST_CHARACTER = /[\0-\x20"#/:<>?@[\\\]^`{|}\x7F]/u;
|
|
3857
|
+
function validateScheme(scheme) {
|
|
3858
|
+
const stringScheme = String(scheme);
|
|
3859
|
+
if (!VALID_SCHEME.test(stringScheme)) {
|
|
3826
3860
|
throw new TypeError(MALFORMED_SCHEME_ERROR);
|
|
3827
3861
|
}
|
|
3828
|
-
return
|
|
3862
|
+
return stringScheme;
|
|
3829
3863
|
}
|
|
3830
3864
|
function normalize(uri, options) {
|
|
3831
3865
|
if (typeof uri === "string") {
|
|
@@ -3862,6 +3896,9 @@ var require_fast_uri = __commonJS({
|
|
|
3862
3896
|
const resolvedSchemeHandler = getSchemeHandler(options && options.scheme || resolved.scheme);
|
|
3863
3897
|
const resolvedHost = resolved.host;
|
|
3864
3898
|
const resolvedHostIsIP = resolvedHost !== void 0 && resolvedHost !== "" && (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6);
|
|
3899
|
+
if (hasForbiddenDomainHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP)) {
|
|
3900
|
+
throw new Error(MALFORMED_HOST_ERROR);
|
|
3901
|
+
}
|
|
3865
3902
|
canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP);
|
|
3866
3903
|
const encodedASCIIHost = resolvedHost && resolvedHost.indexOf("%") !== -1 && !new RegExp("\\P{ASCII}", "u").test(resolvedHost);
|
|
3867
3904
|
if (resolved.error && !encodedASCIIHost) {
|
|
@@ -3903,14 +3940,15 @@ var require_fast_uri = __commonJS({
|
|
|
3903
3940
|
if (relative3.path[0] === "/") {
|
|
3904
3941
|
target.path = removeDotSegments(relative3.path);
|
|
3905
3942
|
} else {
|
|
3906
|
-
|
|
3943
|
+
const baseHasAuthority = base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0;
|
|
3944
|
+
if (baseHasAuthority && !base.path) {
|
|
3907
3945
|
target.path = "/" + relative3.path;
|
|
3908
3946
|
} else if (!base.path) {
|
|
3909
3947
|
target.path = relative3.path;
|
|
3910
3948
|
} else {
|
|
3911
3949
|
target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative3.path;
|
|
3912
3950
|
}
|
|
3913
|
-
target.path = removeDotSegments(target.path);
|
|
3951
|
+
target.path = base.scheme === void 0 && !baseHasAuthority && target.path[0] !== "/" ? removeDotSegmentsRelative(target.path) : removeDotSegments(target.path);
|
|
3914
3952
|
}
|
|
3915
3953
|
target.query = relative3.query;
|
|
3916
3954
|
}
|
|
@@ -3948,12 +3986,13 @@ var require_fast_uri = __commonJS({
|
|
|
3948
3986
|
const options = Object.assign({}, opts);
|
|
3949
3987
|
const uriTokens = [];
|
|
3950
3988
|
if (component.scheme) {
|
|
3951
|
-
component.scheme =
|
|
3989
|
+
component.scheme = validateScheme(component.scheme);
|
|
3952
3990
|
}
|
|
3953
3991
|
const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
|
|
3954
3992
|
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
|
|
3955
3993
|
const hasAuthority = component.userinfo !== void 0 || component.host !== void 0 || component.port !== void 0;
|
|
3956
|
-
const
|
|
3994
|
+
const schemelessReference = (component.scheme === void 0 || options.reference === "suffix") && !hasAuthority;
|
|
3995
|
+
const pathNoScheme = !options.skipEscape && schemelessReference;
|
|
3957
3996
|
if (component.path !== void 0) {
|
|
3958
3997
|
if (!options.skipEscape) {
|
|
3959
3998
|
component.path = serializePathEncoding(component.path, pathNoScheme);
|
|
@@ -3962,7 +4001,7 @@ var require_fast_uri = __commonJS({
|
|
|
3962
4001
|
}
|
|
3963
4002
|
}
|
|
3964
4003
|
if (options.reference !== "suffix" && component.scheme) {
|
|
3965
|
-
component.scheme =
|
|
4004
|
+
component.scheme = validateScheme(component.scheme);
|
|
3966
4005
|
uriTokens.push(component.scheme, ":");
|
|
3967
4006
|
}
|
|
3968
4007
|
const authority = recomposeAuthority(component);
|
|
@@ -3978,9 +4017,9 @@ var require_fast_uri = __commonJS({
|
|
|
3978
4017
|
if (component.path !== void 0) {
|
|
3979
4018
|
let s = component.path;
|
|
3980
4019
|
if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
|
|
3981
|
-
s = removeDotSegments(s);
|
|
4020
|
+
s = schemelessReference && s[0] !== "/" ? removeDotSegmentsRelative(s) : removeDotSegments(s);
|
|
3982
4021
|
}
|
|
3983
|
-
if (
|
|
4022
|
+
if (schemelessReference) {
|
|
3984
4023
|
s = serializePathEncoding(s, true);
|
|
3985
4024
|
}
|
|
3986
4025
|
if (authority === void 0 && s[0] === "/" && s[1] === "/") {
|
|
@@ -4027,16 +4066,34 @@ var require_fast_uri = __commonJS({
|
|
|
4027
4066
|
return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !isIPLiteral(host) && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
|
|
4028
4067
|
}
|
|
4029
4068
|
function canonicalizeHost(parsed, options, schemeHandler, isIP) {
|
|
4069
|
+
if (hasForbiddenDomainHost(parsed, options, schemeHandler, isIP)) {
|
|
4070
|
+
parsed.error = parsed.error || MALFORMED_HOST_ERROR;
|
|
4071
|
+
return true;
|
|
4072
|
+
}
|
|
4030
4073
|
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && !isIPLiteral(parsed.host) && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
4074
|
+
let url;
|
|
4031
4075
|
try {
|
|
4032
|
-
|
|
4076
|
+
url = new URL("http://" + parsed.host);
|
|
4033
4077
|
} catch (e) {
|
|
4034
4078
|
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
4035
4079
|
return true;
|
|
4036
4080
|
}
|
|
4081
|
+
if (!isHostOnlyURL(url)) {
|
|
4082
|
+
parsed.error = parsed.error || MALFORMED_HOST_ERROR;
|
|
4083
|
+
return true;
|
|
4084
|
+
}
|
|
4085
|
+
parsed.host = url.hostname;
|
|
4037
4086
|
}
|
|
4038
4087
|
return false;
|
|
4039
4088
|
}
|
|
4089
|
+
function hasForbiddenDomainHost(parsed, options, schemeHandler, isIP) {
|
|
4090
|
+
return Boolean(
|
|
4091
|
+
parsed.host && isIP === false && !isIPLiteral(parsed.host) && (options.domainHost || schemeHandler && schemeHandler.domainHost) && FORBIDDEN_DOMAIN_HOST_CHARACTER.test(parsed.host)
|
|
4092
|
+
);
|
|
4093
|
+
}
|
|
4094
|
+
function isHostOnlyURL(url) {
|
|
4095
|
+
return url.username === "" && url.password === "" && url.port === "" && url.pathname === "/" && url.search === "" && url.hash === "" && url.hostname !== "";
|
|
4096
|
+
}
|
|
4040
4097
|
function parseWithStatus(uri, opts) {
|
|
4041
4098
|
const options = Object.assign({}, opts);
|
|
4042
4099
|
const parsed = {
|
|
@@ -4091,9 +4148,8 @@ var require_fast_uri = __commonJS({
|
|
|
4091
4148
|
parsed.query = matches[7];
|
|
4092
4149
|
parsed.fragment = matches[8];
|
|
4093
4150
|
if (parsed.scheme !== void 0) {
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
parsed.scheme = decodedScheme.toLowerCase();
|
|
4151
|
+
if (VALID_SCHEME.test(parsed.scheme)) {
|
|
4152
|
+
parsed.scheme = parsed.scheme.toLowerCase();
|
|
4097
4153
|
} else {
|
|
4098
4154
|
parsed.error = parsed.error || MALFORMED_SCHEME_ERROR;
|
|
4099
4155
|
malformedScheme = true;
|
|
@@ -4121,7 +4177,7 @@ var require_fast_uri = __commonJS({
|
|
|
4121
4177
|
malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true);
|
|
4122
4178
|
parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
|
|
4123
4179
|
if (malformedIPLiteral) {
|
|
4124
|
-
parsed.error = parsed.error ||
|
|
4180
|
+
parsed.error = parsed.error || MALFORMED_HOST_ERROR;
|
|
4125
4181
|
malformedAuthorityOrPort = true;
|
|
4126
4182
|
}
|
|
4127
4183
|
} else {
|
|
@@ -4149,7 +4205,7 @@ var require_fast_uri = __commonJS({
|
|
|
4149
4205
|
if (!isIP) {
|
|
4150
4206
|
host = normalizePercentEncoding(host.toLowerCase());
|
|
4151
4207
|
}
|
|
4152
|
-
parsed.host = reescapeHostDelimiters(host, isIP);
|
|
4208
|
+
parsed.host = isIP || options.scheme !== "null" ? reescapeHostDelimiters(host, isIP) : host;
|
|
4153
4209
|
}
|
|
4154
4210
|
if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
|
|
4155
4211
|
if (parsed.path) {
|
|
@@ -13695,6 +13751,17 @@ var registry_default = [
|
|
|
13695
13751
|
"/apps/backend/test/fixtures/*/info.json"
|
|
13696
13752
|
]
|
|
13697
13753
|
},
|
|
13754
|
+
{
|
|
13755
|
+
kind: "file",
|
|
13756
|
+
file: "key-chain-defaults.json",
|
|
13757
|
+
resourceType: "key chain defaults",
|
|
13758
|
+
schemaFile: "KeyChainDefaultsConfigFile.schema.json",
|
|
13759
|
+
required: false,
|
|
13760
|
+
fileMatch: [
|
|
13761
|
+
"/assets/config/*/key-chain-defaults.json",
|
|
13762
|
+
"/apps/backend/test/fixtures/*/key-chain-defaults.json"
|
|
13763
|
+
]
|
|
13764
|
+
},
|
|
13698
13765
|
{
|
|
13699
13766
|
kind: "file",
|
|
13700
13767
|
file: "registrar.json",
|
|
@@ -13749,6 +13816,16 @@ var registry_default = [
|
|
|
13749
13816
|
"/apps/backend/test/fixtures/*/attribute-providers/*.json"
|
|
13750
13817
|
]
|
|
13751
13818
|
},
|
|
13819
|
+
{
|
|
13820
|
+
kind: "directory",
|
|
13821
|
+
subfolder: "federation-trust-anchors",
|
|
13822
|
+
resourceType: "federation trust anchor",
|
|
13823
|
+
schemaFile: "FederationTrustAnchorConfigFile.schema.json",
|
|
13824
|
+
fileMatch: [
|
|
13825
|
+
"/assets/config/*/federation-trust-anchors/*.json",
|
|
13826
|
+
"/apps/backend/test/fixtures/*/federation-trust-anchors/*.json"
|
|
13827
|
+
]
|
|
13828
|
+
},
|
|
13752
13829
|
{
|
|
13753
13830
|
kind: "directory",
|
|
13754
13831
|
subfolder: "webhook-endpoints",
|
|
@@ -15081,10 +15158,15 @@ function unzipSync(data, opts) {
|
|
|
15081
15158
|
|
|
15082
15159
|
// ../../packages/eudiplo-config-format/dist/config-format.js
|
|
15083
15160
|
var CONFIG_FORMATS = {
|
|
15084
|
-
Tenant: { slug: "tenant", file: "TenantConfigFile", version:
|
|
15161
|
+
Tenant: { slug: "tenant", file: "TenantConfigFile", version: 4 },
|
|
15085
15162
|
Client: { slug: "client", file: "ClientConfigFile", version: 2 },
|
|
15086
15163
|
KmsConfig: { slug: "kms-config", file: "KmsConfigFile", version: 2 },
|
|
15087
|
-
KeyChain: { slug: "key-chain", file: "KeyChainConfigFile", version:
|
|
15164
|
+
KeyChain: { slug: "key-chain", file: "KeyChainConfigFile", version: 3 },
|
|
15165
|
+
KeyChainDefaults: {
|
|
15166
|
+
slug: "key-chain-defaults",
|
|
15167
|
+
file: "KeyChainDefaultsConfigFile",
|
|
15168
|
+
version: 1
|
|
15169
|
+
},
|
|
15088
15170
|
RegistrarConfig: {
|
|
15089
15171
|
slug: "registrar-config",
|
|
15090
15172
|
file: "RegistrarConfigFile",
|
|
@@ -15093,7 +15175,7 @@ var CONFIG_FORMATS = {
|
|
|
15093
15175
|
IssuanceConfig: {
|
|
15094
15176
|
slug: "issuance-config",
|
|
15095
15177
|
file: "IssuanceConfigFile",
|
|
15096
|
-
version:
|
|
15178
|
+
version: 5
|
|
15097
15179
|
},
|
|
15098
15180
|
CredentialConfig: {
|
|
15099
15181
|
slug: "credential-config",
|
|
@@ -15116,6 +15198,11 @@ var CONFIG_FORMATS = {
|
|
|
15116
15198
|
version: 1
|
|
15117
15199
|
},
|
|
15118
15200
|
TrustList: { slug: "trust-list", file: "TrustListConfigFile", version: 1 },
|
|
15201
|
+
FederationTrustAnchor: {
|
|
15202
|
+
slug: "federation-trust-anchor",
|
|
15203
|
+
file: "FederationTrustAnchorConfigFile",
|
|
15204
|
+
version: 1
|
|
15205
|
+
},
|
|
15119
15206
|
StatusList: {
|
|
15120
15207
|
slug: "status-list",
|
|
15121
15208
|
file: "StatusListConfigFile",
|
|
@@ -15128,7 +15215,8 @@ var CONFIG_SINGLETON_IDS = {
|
|
|
15128
15215
|
Tenant: "tenant",
|
|
15129
15216
|
KmsConfig: "kms",
|
|
15130
15217
|
RegistrarConfig: "registrar",
|
|
15131
|
-
IssuanceConfig: "issuance"
|
|
15218
|
+
IssuanceConfig: "issuance",
|
|
15219
|
+
KeyChainDefaults: "defaults"
|
|
15132
15220
|
};
|
|
15133
15221
|
function resourceId(input) {
|
|
15134
15222
|
const { kind } = resolveConfigIdentity(input);
|
|
@@ -15143,16 +15231,74 @@ function resourceId(input) {
|
|
|
15143
15231
|
return id;
|
|
15144
15232
|
}
|
|
15145
15233
|
function bareFileVersion(kind, spec) {
|
|
15146
|
-
if (kind === "KeyChain")
|
|
15234
|
+
if (kind === "KeyChain") {
|
|
15235
|
+
if (spec.usageType === "federation")
|
|
15236
|
+
return 3;
|
|
15147
15237
|
return "type" in spec ? 2 : 1;
|
|
15238
|
+
}
|
|
15148
15239
|
if (kind === "RegistrarConfig")
|
|
15149
15240
|
return "relyingPartyContact" in spec ? 2 : 1;
|
|
15241
|
+
if (kind === "Tenant") {
|
|
15242
|
+
if ("defaultKeyChains" in spec)
|
|
15243
|
+
return 3;
|
|
15244
|
+
return "defaultAccessKeyChainId" in spec ? 2 : 1;
|
|
15245
|
+
}
|
|
15150
15246
|
if (kind === "KmsConfig") {
|
|
15151
15247
|
const providers = Array.isArray(spec.providers) ? spec.providers : [];
|
|
15152
15248
|
return providers.some((provider) => typeof provider === "object" && provider !== null && ("algorithms" in provider || "defaultAlgorithm" in provider)) ? 2 : 1;
|
|
15153
15249
|
}
|
|
15154
15250
|
return 1;
|
|
15155
15251
|
}
|
|
15252
|
+
var issuanceConfigV4ToV5 = {
|
|
15253
|
+
id: "issuance-config-v5-federation-entity",
|
|
15254
|
+
kind: "IssuanceConfig",
|
|
15255
|
+
from: 4,
|
|
15256
|
+
to: 5,
|
|
15257
|
+
migrate(spec) {
|
|
15258
|
+
const federation = spec.federation;
|
|
15259
|
+
const problem = object(federation) && typeof federation.entityId === "string" && federation.entityId !== "" ? federationEntityIdProblem(federation.entityId, {
|
|
15260
|
+
allowHttp: true
|
|
15261
|
+
}) : void 0;
|
|
15262
|
+
if (!problem)
|
|
15263
|
+
return { spec };
|
|
15264
|
+
return {
|
|
15265
|
+
spec,
|
|
15266
|
+
issues: [
|
|
15267
|
+
{
|
|
15268
|
+
severity: "required-input",
|
|
15269
|
+
code: "FEDERATION_ENTITY_ID_INVALID",
|
|
15270
|
+
path: "/spec/federation/entityId",
|
|
15271
|
+
message: `${problem}: set an https URL with a host and without query or fragment, usually <PUBLIC_URL>/issuers/<tenant>`
|
|
15272
|
+
}
|
|
15273
|
+
]
|
|
15274
|
+
};
|
|
15275
|
+
}
|
|
15276
|
+
};
|
|
15277
|
+
function federationEntityIdProblem(entityId, options) {
|
|
15278
|
+
const value = `federation.entityId '${JSON.stringify(entityId).slice(1, -1)}'`;
|
|
15279
|
+
if (/[\s\u0000-\u001f\u007f]/.test(entityId)) {
|
|
15280
|
+
return `${value} must not contain whitespace or control characters`;
|
|
15281
|
+
}
|
|
15282
|
+
if (entityId.includes("?") || entityId.includes("#")) {
|
|
15283
|
+
return `${value} must not have a query or fragment`;
|
|
15284
|
+
}
|
|
15285
|
+
let url;
|
|
15286
|
+
try {
|
|
15287
|
+
url = new URL(entityId);
|
|
15288
|
+
} catch {
|
|
15289
|
+
return `${value} is not a URL`;
|
|
15290
|
+
}
|
|
15291
|
+
if (url.protocol !== "https:" && !(options.allowHttp && url.protocol === "http:")) {
|
|
15292
|
+
return options.allowHttp ? `${value} must be an https or http URL` : `${value} must be an https URL (http only with OUTBOUND_URL_ALLOW_HTTP=true)`;
|
|
15293
|
+
}
|
|
15294
|
+
if (url.href !== entityId && url.href !== `${entityId}/`) {
|
|
15295
|
+
return `${value} must be written as the URL it stands for: ${url.href}`;
|
|
15296
|
+
}
|
|
15297
|
+
if (url.username || url.password) {
|
|
15298
|
+
return `${value} must not contain credentials`;
|
|
15299
|
+
}
|
|
15300
|
+
return void 0;
|
|
15301
|
+
}
|
|
15156
15302
|
var presentationConfigV1ToV2 = {
|
|
15157
15303
|
id: "presentation-config-v2-provides-attestations",
|
|
15158
15304
|
kind: "PresentationConfig",
|
|
@@ -15177,6 +15323,32 @@ var presentationConfigV1ToV2 = {
|
|
|
15177
15323
|
};
|
|
15178
15324
|
}
|
|
15179
15325
|
};
|
|
15326
|
+
var tenantConfigV3ToV4 = {
|
|
15327
|
+
id: "tenant-v4-key-chain-defaults",
|
|
15328
|
+
kind: "Tenant",
|
|
15329
|
+
from: 3,
|
|
15330
|
+
to: 4,
|
|
15331
|
+
// v4 moves the tenant's default key chains to their own resource,
|
|
15332
|
+
// KeyChainDefaults (key-chain-defaults.json). Only development builds of
|
|
15333
|
+
// 10.0 wrote defaultKeyChains, so the step drops it with a warning instead
|
|
15334
|
+
// of creating that document.
|
|
15335
|
+
migrate(spec) {
|
|
15336
|
+
if (!("defaultKeyChains" in spec))
|
|
15337
|
+
return { spec };
|
|
15338
|
+
const { defaultKeyChains: _, ...rest } = spec;
|
|
15339
|
+
return {
|
|
15340
|
+
spec: rest,
|
|
15341
|
+
issues: [
|
|
15342
|
+
{
|
|
15343
|
+
severity: "warning",
|
|
15344
|
+
code: "DEFAULT_KEY_CHAINS_MOVED",
|
|
15345
|
+
path: "/spec/defaultKeyChains",
|
|
15346
|
+
message: 'defaultKeyChains is no longer part of the tenant settings and was removed. Set the default key chains in key-chain-defaults.json (KeyChainDefaults), for example { "access": "<key chain ID>" }.'
|
|
15347
|
+
}
|
|
15348
|
+
]
|
|
15349
|
+
};
|
|
15350
|
+
}
|
|
15351
|
+
};
|
|
15180
15352
|
var CONFIG_MIGRATIONS = [
|
|
15181
15353
|
{
|
|
15182
15354
|
id: "issuance-config-v2-offer-lifetime",
|
|
@@ -15206,6 +15378,7 @@ var CONFIG_MIGRATIONS = [
|
|
|
15206
15378
|
// a valid v4 spec.
|
|
15207
15379
|
migrate: (spec) => ({ spec })
|
|
15208
15380
|
},
|
|
15381
|
+
issuanceConfigV4ToV5,
|
|
15209
15382
|
{
|
|
15210
15383
|
id: "client-v2-read-and-status-roles",
|
|
15211
15384
|
kind: "Client",
|
|
@@ -15235,6 +15408,36 @@ var CONFIG_MIGRATIONS = [
|
|
|
15235
15408
|
// as before.
|
|
15236
15409
|
migrate: (spec) => ({ spec })
|
|
15237
15410
|
},
|
|
15411
|
+
{
|
|
15412
|
+
id: "tenant-v2-default-access-key-chain",
|
|
15413
|
+
kind: "Tenant",
|
|
15414
|
+
from: 1,
|
|
15415
|
+
to: 2,
|
|
15416
|
+
// v2 only adds the optional defaultAccessKeyChainId: a v1 spec is a
|
|
15417
|
+
// valid v2 spec, whose tenant keeps picking its access key chain by
|
|
15418
|
+
// rule.
|
|
15419
|
+
migrate: (spec) => ({ spec })
|
|
15420
|
+
},
|
|
15421
|
+
{
|
|
15422
|
+
id: "tenant-v3-default-key-chains",
|
|
15423
|
+
kind: "Tenant",
|
|
15424
|
+
from: 2,
|
|
15425
|
+
to: 3,
|
|
15426
|
+
// v3 keeps the tenant's default key chains in a map by usage type:
|
|
15427
|
+
// defaultAccessKeyChainId becomes defaultKeyChains.access.
|
|
15428
|
+
migrate: (spec) => {
|
|
15429
|
+
const { defaultAccessKeyChainId, ...rest } = spec;
|
|
15430
|
+
return {
|
|
15431
|
+
spec: typeof defaultAccessKeyChainId === "string" ? {
|
|
15432
|
+
...rest,
|
|
15433
|
+
defaultKeyChains: {
|
|
15434
|
+
access: defaultAccessKeyChainId
|
|
15435
|
+
}
|
|
15436
|
+
} : rest
|
|
15437
|
+
};
|
|
15438
|
+
}
|
|
15439
|
+
},
|
|
15440
|
+
tenantConfigV3ToV4,
|
|
15238
15441
|
{
|
|
15239
15442
|
id: "key-chain-v2-type",
|
|
15240
15443
|
kind: "KeyChain",
|
|
@@ -15244,6 +15447,15 @@ var CONFIG_MIGRATIONS = [
|
|
|
15244
15447
|
// spec, imported as before.
|
|
15245
15448
|
migrate: (spec) => ({ spec })
|
|
15246
15449
|
},
|
|
15450
|
+
{
|
|
15451
|
+
id: "key-chain-v3-federation-usage",
|
|
15452
|
+
kind: "KeyChain",
|
|
15453
|
+
from: 2,
|
|
15454
|
+
to: 3,
|
|
15455
|
+
// v3 only adds the usage type `federation`: a v2 spec is a valid v3
|
|
15456
|
+
// spec.
|
|
15457
|
+
migrate: (spec) => ({ spec })
|
|
15458
|
+
},
|
|
15247
15459
|
{
|
|
15248
15460
|
id: "credential-config-v2-x509-trusted-authority",
|
|
15249
15461
|
kind: "CredentialConfig",
|
|
@@ -16806,6 +17018,143 @@ var CONFIG_SCHEMAS = [
|
|
|
16806
17018
|
}
|
|
16807
17019
|
}
|
|
16808
17020
|
},
|
|
17021
|
+
{
|
|
17022
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
17023
|
+
"$id": "https://eudiplo.dev/schemas/v1/FederationTrustAnchorConfigFile.schema.json",
|
|
17024
|
+
"title": "FederationTrustAnchorConfigFile",
|
|
17025
|
+
"type": "object",
|
|
17026
|
+
"properties": {
|
|
17027
|
+
"$schema": {
|
|
17028
|
+
"type": "string",
|
|
17029
|
+
"const": "https://eudiplo.dev/schemas/v1/FederationTrustAnchorConfigFile.schema.json"
|
|
17030
|
+
},
|
|
17031
|
+
"metadata": {
|
|
17032
|
+
"type": "object",
|
|
17033
|
+
"properties": {
|
|
17034
|
+
"generation": {
|
|
17035
|
+
"type": "integer",
|
|
17036
|
+
"minimum": 1,
|
|
17037
|
+
"description": "Monotonically increasing configuration generation."
|
|
17038
|
+
},
|
|
17039
|
+
"ownership": {
|
|
17040
|
+
"type": "string",
|
|
17041
|
+
"enum": [
|
|
17042
|
+
"unmanaged",
|
|
17043
|
+
"file-managed"
|
|
17044
|
+
],
|
|
17045
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
17046
|
+
}
|
|
17047
|
+
},
|
|
17048
|
+
"additionalProperties": false
|
|
17049
|
+
},
|
|
17050
|
+
"spec": {
|
|
17051
|
+
"allOf": [
|
|
17052
|
+
{
|
|
17053
|
+
"$ref": "#/$defs/CreateFederationTrustAnchorDto"
|
|
17054
|
+
},
|
|
17055
|
+
{
|
|
17056
|
+
"type": "object",
|
|
17057
|
+
"required": [
|
|
17058
|
+
"id"
|
|
17059
|
+
],
|
|
17060
|
+
"properties": {
|
|
17061
|
+
"id": {
|
|
17062
|
+
"type": "string",
|
|
17063
|
+
"minLength": 1
|
|
17064
|
+
}
|
|
17065
|
+
}
|
|
17066
|
+
}
|
|
17067
|
+
]
|
|
17068
|
+
}
|
|
17069
|
+
},
|
|
17070
|
+
"required": [
|
|
17071
|
+
"$schema",
|
|
17072
|
+
"spec"
|
|
17073
|
+
],
|
|
17074
|
+
"additionalProperties": false,
|
|
17075
|
+
"$defs": {
|
|
17076
|
+
"CreateFederationTrustAnchorDto": {
|
|
17077
|
+
"type": "object",
|
|
17078
|
+
"properties": {
|
|
17079
|
+
"id": {
|
|
17080
|
+
"type": "string",
|
|
17081
|
+
"minLength": 1,
|
|
17082
|
+
"maxLength": 255,
|
|
17083
|
+
"pattern": "^[A-Za-z0-9._-]+$",
|
|
17084
|
+
"description": "Unique identifier of the trust anchor in the tenant."
|
|
17085
|
+
},
|
|
17086
|
+
"entityId": {
|
|
17087
|
+
"type": "string",
|
|
17088
|
+
"minLength": 1,
|
|
17089
|
+
"maxLength": 2048,
|
|
17090
|
+
"description": "Entity identifier of the trust anchor, exactly as configured in `federation.trustAnchors` and DCQL `openid_federation` values."
|
|
17091
|
+
},
|
|
17092
|
+
"description": {
|
|
17093
|
+
"anyOf": [
|
|
17094
|
+
{
|
|
17095
|
+
"type": "string",
|
|
17096
|
+
"minLength": 1,
|
|
17097
|
+
"maxLength": 1e3
|
|
17098
|
+
},
|
|
17099
|
+
{
|
|
17100
|
+
"type": "null"
|
|
17101
|
+
}
|
|
17102
|
+
],
|
|
17103
|
+
"description": "Optional description of the trust anchor."
|
|
17104
|
+
},
|
|
17105
|
+
"jwks": {
|
|
17106
|
+
"type": "object",
|
|
17107
|
+
"properties": {
|
|
17108
|
+
"keys": {
|
|
17109
|
+
"minItems": 1,
|
|
17110
|
+
"maxItems": 20,
|
|
17111
|
+
"type": "array",
|
|
17112
|
+
"items": {
|
|
17113
|
+
"type": "object",
|
|
17114
|
+
"properties": {
|
|
17115
|
+
"kty": {
|
|
17116
|
+
"type": "string",
|
|
17117
|
+
"enum": [
|
|
17118
|
+
"EC",
|
|
17119
|
+
"RSA",
|
|
17120
|
+
"OKP"
|
|
17121
|
+
],
|
|
17122
|
+
"description": "Key type of the public federation key."
|
|
17123
|
+
},
|
|
17124
|
+
"kid": {
|
|
17125
|
+
"type": "string",
|
|
17126
|
+
"minLength": 1,
|
|
17127
|
+
"maxLength": 256,
|
|
17128
|
+
"description": "Key ID. Federation statements name their signing key with `kid`."
|
|
17129
|
+
}
|
|
17130
|
+
},
|
|
17131
|
+
"required": [
|
|
17132
|
+
"kty",
|
|
17133
|
+
"kid"
|
|
17134
|
+
],
|
|
17135
|
+
"additionalProperties": {},
|
|
17136
|
+
"description": "Public federation key of the trust anchor as a JWK."
|
|
17137
|
+
},
|
|
17138
|
+
"description": "The trust anchor's federation keys."
|
|
17139
|
+
}
|
|
17140
|
+
},
|
|
17141
|
+
"required": [
|
|
17142
|
+
"keys"
|
|
17143
|
+
],
|
|
17144
|
+
"additionalProperties": false,
|
|
17145
|
+
"description": "JWK set with the federation keys of the trust anchor, obtained out of band (OpenID Federation 1.0 Section 10.2)."
|
|
17146
|
+
}
|
|
17147
|
+
},
|
|
17148
|
+
"required": [
|
|
17149
|
+
"id",
|
|
17150
|
+
"entityId",
|
|
17151
|
+
"jwks"
|
|
17152
|
+
],
|
|
17153
|
+
"additionalProperties": false,
|
|
17154
|
+
"title": "CreateFederationTrustAnchorDto"
|
|
17155
|
+
}
|
|
17156
|
+
}
|
|
17157
|
+
},
|
|
16809
17158
|
{
|
|
16810
17159
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
16811
17160
|
"$id": "https://eudiplo.dev/schemas/v1/IssuanceConfigFile.schema.json",
|
|
@@ -17827,6 +18176,54 @@ var CONFIG_SCHEMAS = [
|
|
|
17827
18176
|
],
|
|
17828
18177
|
"additionalProperties": false
|
|
17829
18178
|
},
|
|
18179
|
+
{
|
|
18180
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
18181
|
+
"$id": "https://eudiplo.dev/schemas/v1/KeyChainDefaultsConfigFile.schema.json",
|
|
18182
|
+
"title": "KeyChainDefaultsConfigFile",
|
|
18183
|
+
"type": "object",
|
|
18184
|
+
"properties": {
|
|
18185
|
+
"$schema": {
|
|
18186
|
+
"type": "string",
|
|
18187
|
+
"const": "https://eudiplo.dev/schemas/v1/KeyChainDefaultsConfigFile.schema.json"
|
|
18188
|
+
},
|
|
18189
|
+
"metadata": {
|
|
18190
|
+
"type": "object",
|
|
18191
|
+
"properties": {
|
|
18192
|
+
"generation": {
|
|
18193
|
+
"type": "integer",
|
|
18194
|
+
"minimum": 1,
|
|
18195
|
+
"maximum": 9007199254740991
|
|
18196
|
+
},
|
|
18197
|
+
"ownership": {
|
|
18198
|
+
"type": "string",
|
|
18199
|
+
"enum": [
|
|
18200
|
+
"unmanaged",
|
|
18201
|
+
"file-managed"
|
|
18202
|
+
]
|
|
18203
|
+
}
|
|
18204
|
+
},
|
|
18205
|
+
"additionalProperties": false
|
|
18206
|
+
},
|
|
18207
|
+
"spec": {
|
|
18208
|
+
"type": "object",
|
|
18209
|
+
"properties": {
|
|
18210
|
+
"access": {
|
|
18211
|
+
"description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
|
|
18212
|
+
"type": "string",
|
|
18213
|
+
"minLength": 1
|
|
18214
|
+
}
|
|
18215
|
+
},
|
|
18216
|
+
"additionalProperties": false,
|
|
18217
|
+
"description": "The tenant's key chain per usage type, used where no configuration names one. A usage type without an entry uses a key chain picked by rule."
|
|
18218
|
+
}
|
|
18219
|
+
},
|
|
18220
|
+
"required": [
|
|
18221
|
+
"$schema",
|
|
18222
|
+
"metadata",
|
|
18223
|
+
"spec"
|
|
18224
|
+
],
|
|
18225
|
+
"additionalProperties": false
|
|
18226
|
+
},
|
|
17830
18227
|
{
|
|
17831
18228
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
17832
18229
|
"$id": "https://eudiplo.dev/schemas/v1/KmsConfigFile.schema.json",
|
|
@@ -24368,13 +24765,13 @@ var CONFIG_SCHEMAS = [
|
|
|
24368
24765
|
},
|
|
24369
24766
|
{
|
|
24370
24767
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
24371
|
-
"$id": "https://eudiplo.dev/schemas/
|
|
24372
|
-
"title": "
|
|
24768
|
+
"$id": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json",
|
|
24769
|
+
"title": "TenantConfigFile",
|
|
24373
24770
|
"type": "object",
|
|
24374
24771
|
"properties": {
|
|
24375
24772
|
"$schema": {
|
|
24376
24773
|
"type": "string",
|
|
24377
|
-
"const": "https://eudiplo.dev/schemas/
|
|
24774
|
+
"const": "https://eudiplo.dev/schemas/v2/TenantConfigFile.schema.json"
|
|
24378
24775
|
},
|
|
24379
24776
|
"metadata": {
|
|
24380
24777
|
"type": "object",
|
|
@@ -24382,37 +24779,168 @@ var CONFIG_SCHEMAS = [
|
|
|
24382
24779
|
"generation": {
|
|
24383
24780
|
"type": "integer",
|
|
24384
24781
|
"minimum": 1,
|
|
24385
|
-
"
|
|
24782
|
+
"maximum": 9007199254740991
|
|
24386
24783
|
},
|
|
24387
24784
|
"ownership": {
|
|
24388
24785
|
"type": "string",
|
|
24389
24786
|
"enum": [
|
|
24390
24787
|
"unmanaged",
|
|
24391
24788
|
"file-managed"
|
|
24392
|
-
]
|
|
24393
|
-
"description": "Requested ownership recorded when the document is applied."
|
|
24789
|
+
]
|
|
24394
24790
|
}
|
|
24395
24791
|
},
|
|
24396
24792
|
"additionalProperties": false
|
|
24397
24793
|
},
|
|
24398
24794
|
"spec": {
|
|
24399
|
-
"$ref": "#/$defs/IssuanceConfig"
|
|
24400
|
-
}
|
|
24401
|
-
},
|
|
24402
|
-
"required": [
|
|
24403
|
-
"$schema",
|
|
24404
|
-
"spec"
|
|
24405
|
-
],
|
|
24406
|
-
"additionalProperties": false,
|
|
24407
|
-
"$defs": {
|
|
24408
|
-
"IssuanceConfig": {
|
|
24409
24795
|
"type": "object",
|
|
24410
24796
|
"properties": {
|
|
24411
|
-
"
|
|
24412
|
-
"
|
|
24413
|
-
"
|
|
24414
|
-
"
|
|
24415
|
-
"
|
|
24797
|
+
"name": {
|
|
24798
|
+
"default": "EUDIPLO",
|
|
24799
|
+
"description": "Display name of the tenant.",
|
|
24800
|
+
"type": "string",
|
|
24801
|
+
"minLength": 1
|
|
24802
|
+
},
|
|
24803
|
+
"description": {
|
|
24804
|
+
"description": "Optional tenant description.",
|
|
24805
|
+
"type": "string",
|
|
24806
|
+
"minLength": 1
|
|
24807
|
+
},
|
|
24808
|
+
"sessionConfig": {
|
|
24809
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
24810
|
+
"type": "object",
|
|
24811
|
+
"properties": {
|
|
24812
|
+
"ttlSeconds": {
|
|
24813
|
+
"description": "Session time-to-live in seconds.",
|
|
24814
|
+
"type": "integer",
|
|
24815
|
+
"minimum": 60,
|
|
24816
|
+
"maximum": 9007199254740991
|
|
24817
|
+
},
|
|
24818
|
+
"cleanupMode": {
|
|
24819
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
24820
|
+
"type": "string",
|
|
24821
|
+
"enum": [
|
|
24822
|
+
"full",
|
|
24823
|
+
"anonymize"
|
|
24824
|
+
]
|
|
24825
|
+
}
|
|
24826
|
+
},
|
|
24827
|
+
"additionalProperties": false
|
|
24828
|
+
},
|
|
24829
|
+
"statusListConfig": {
|
|
24830
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
24831
|
+
"type": "object",
|
|
24832
|
+
"properties": {
|
|
24833
|
+
"capacity": {
|
|
24834
|
+
"description": "Default status list capacity.",
|
|
24835
|
+
"type": "integer",
|
|
24836
|
+
"minimum": 100,
|
|
24837
|
+
"maximum": 9007199254740991
|
|
24838
|
+
},
|
|
24839
|
+
"bits": {
|
|
24840
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
24841
|
+
"anyOf": [
|
|
24842
|
+
{
|
|
24843
|
+
"type": "number",
|
|
24844
|
+
"const": 1
|
|
24845
|
+
},
|
|
24846
|
+
{
|
|
24847
|
+
"type": "number",
|
|
24848
|
+
"const": 2
|
|
24849
|
+
},
|
|
24850
|
+
{
|
|
24851
|
+
"type": "number",
|
|
24852
|
+
"const": 4
|
|
24853
|
+
},
|
|
24854
|
+
{
|
|
24855
|
+
"type": "number",
|
|
24856
|
+
"const": 8
|
|
24857
|
+
}
|
|
24858
|
+
]
|
|
24859
|
+
},
|
|
24860
|
+
"ttl": {
|
|
24861
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
24862
|
+
"type": "integer",
|
|
24863
|
+
"minimum": 60,
|
|
24864
|
+
"maximum": 9007199254740991
|
|
24865
|
+
},
|
|
24866
|
+
"immediateUpdate": {
|
|
24867
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
24868
|
+
"type": "boolean"
|
|
24869
|
+
},
|
|
24870
|
+
"enableAggregation": {
|
|
24871
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
24872
|
+
"type": "boolean"
|
|
24873
|
+
}
|
|
24874
|
+
},
|
|
24875
|
+
"additionalProperties": false
|
|
24876
|
+
},
|
|
24877
|
+
"defaultAccessKeyChainId": {
|
|
24878
|
+
"description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
|
|
24879
|
+
"type": "string",
|
|
24880
|
+
"minLength": 1
|
|
24881
|
+
}
|
|
24882
|
+
},
|
|
24883
|
+
"required": [
|
|
24884
|
+
"name"
|
|
24885
|
+
],
|
|
24886
|
+
"additionalProperties": false,
|
|
24887
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
24888
|
+
}
|
|
24889
|
+
},
|
|
24890
|
+
"required": [
|
|
24891
|
+
"$schema",
|
|
24892
|
+
"metadata",
|
|
24893
|
+
"spec"
|
|
24894
|
+
],
|
|
24895
|
+
"additionalProperties": false
|
|
24896
|
+
},
|
|
24897
|
+
{
|
|
24898
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
24899
|
+
"$id": "https://eudiplo.dev/schemas/v3/IssuanceConfigFile.schema.json",
|
|
24900
|
+
"title": "IssuanceConfigFile",
|
|
24901
|
+
"type": "object",
|
|
24902
|
+
"properties": {
|
|
24903
|
+
"$schema": {
|
|
24904
|
+
"type": "string",
|
|
24905
|
+
"const": "https://eudiplo.dev/schemas/v3/IssuanceConfigFile.schema.json"
|
|
24906
|
+
},
|
|
24907
|
+
"metadata": {
|
|
24908
|
+
"type": "object",
|
|
24909
|
+
"properties": {
|
|
24910
|
+
"generation": {
|
|
24911
|
+
"type": "integer",
|
|
24912
|
+
"minimum": 1,
|
|
24913
|
+
"description": "Monotonically increasing configuration generation."
|
|
24914
|
+
},
|
|
24915
|
+
"ownership": {
|
|
24916
|
+
"type": "string",
|
|
24917
|
+
"enum": [
|
|
24918
|
+
"unmanaged",
|
|
24919
|
+
"file-managed"
|
|
24920
|
+
],
|
|
24921
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
24922
|
+
}
|
|
24923
|
+
},
|
|
24924
|
+
"additionalProperties": false
|
|
24925
|
+
},
|
|
24926
|
+
"spec": {
|
|
24927
|
+
"$ref": "#/$defs/IssuanceConfig"
|
|
24928
|
+
}
|
|
24929
|
+
},
|
|
24930
|
+
"required": [
|
|
24931
|
+
"$schema",
|
|
24932
|
+
"spec"
|
|
24933
|
+
],
|
|
24934
|
+
"additionalProperties": false,
|
|
24935
|
+
"$defs": {
|
|
24936
|
+
"IssuanceConfig": {
|
|
24937
|
+
"type": "object",
|
|
24938
|
+
"properties": {
|
|
24939
|
+
"batchSize": {
|
|
24940
|
+
"description": "Optional issuance batch size.",
|
|
24941
|
+
"type": "integer",
|
|
24942
|
+
"minimum": 1,
|
|
24943
|
+
"maximum": 9007199254740991
|
|
24416
24944
|
},
|
|
24417
24945
|
"dPopRequired": {
|
|
24418
24946
|
"description": "Require DPoP proofs for issuance endpoints.",
|
|
@@ -25063,13 +25591,13 @@ var CONFIG_SCHEMAS = [
|
|
|
25063
25591
|
},
|
|
25064
25592
|
{
|
|
25065
25593
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
25066
|
-
"$id": "https://eudiplo.dev/schemas/v3/
|
|
25067
|
-
"title": "
|
|
25594
|
+
"$id": "https://eudiplo.dev/schemas/v3/KeyChainConfigFile.schema.json",
|
|
25595
|
+
"title": "KeyChainConfigFile",
|
|
25068
25596
|
"type": "object",
|
|
25069
25597
|
"properties": {
|
|
25070
25598
|
"$schema": {
|
|
25071
25599
|
"type": "string",
|
|
25072
|
-
"const": "https://eudiplo.dev/schemas/v3/
|
|
25600
|
+
"const": "https://eudiplo.dev/schemas/v3/KeyChainConfigFile.schema.json"
|
|
25073
25601
|
},
|
|
25074
25602
|
"metadata": {
|
|
25075
25603
|
"type": "object",
|
|
@@ -25077,118 +25605,670 @@ var CONFIG_SCHEMAS = [
|
|
|
25077
25605
|
"generation": {
|
|
25078
25606
|
"type": "integer",
|
|
25079
25607
|
"minimum": 1,
|
|
25080
|
-
"
|
|
25608
|
+
"maximum": 9007199254740991
|
|
25081
25609
|
},
|
|
25082
25610
|
"ownership": {
|
|
25083
25611
|
"type": "string",
|
|
25084
25612
|
"enum": [
|
|
25085
25613
|
"unmanaged",
|
|
25086
25614
|
"file-managed"
|
|
25087
|
-
]
|
|
25088
|
-
"description": "Requested ownership recorded when the document is applied."
|
|
25615
|
+
]
|
|
25089
25616
|
}
|
|
25090
25617
|
},
|
|
25091
25618
|
"additionalProperties": false
|
|
25092
25619
|
},
|
|
25093
25620
|
"spec": {
|
|
25094
|
-
"allOf": [
|
|
25095
|
-
{
|
|
25096
|
-
"$ref": "#/$defs/PresentationConfigCreateDto"
|
|
25097
|
-
},
|
|
25098
|
-
{
|
|
25099
|
-
"type": "object",
|
|
25100
|
-
"required": [
|
|
25101
|
-
"id"
|
|
25102
|
-
],
|
|
25103
|
-
"properties": {
|
|
25104
|
-
"id": {
|
|
25105
|
-
"type": "string",
|
|
25106
|
-
"minLength": 1
|
|
25107
|
-
}
|
|
25108
|
-
}
|
|
25109
|
-
}
|
|
25110
|
-
]
|
|
25111
|
-
}
|
|
25112
|
-
},
|
|
25113
|
-
"required": [
|
|
25114
|
-
"$schema",
|
|
25115
|
-
"spec"
|
|
25116
|
-
],
|
|
25117
|
-
"additionalProperties": false,
|
|
25118
|
-
"$defs": {
|
|
25119
|
-
"PresentationConfigCreateDto": {
|
|
25120
25621
|
"type": "object",
|
|
25121
25622
|
"properties": {
|
|
25122
25623
|
"id": {
|
|
25123
|
-
"type": "string"
|
|
25124
|
-
"minLength": 1,
|
|
25125
|
-
"description": "Presentation configuration identifier."
|
|
25624
|
+
"type": "string"
|
|
25126
25625
|
},
|
|
25127
25626
|
"description": {
|
|
25128
|
-
"
|
|
25129
|
-
"type": [
|
|
25130
|
-
"string",
|
|
25131
|
-
"null"
|
|
25132
|
-
]
|
|
25133
|
-
},
|
|
25134
|
-
"lifeTime": {
|
|
25135
|
-
"description": "Presentation request lifetime in seconds.",
|
|
25136
|
-
"type": "integer",
|
|
25137
|
-
"minimum": 1,
|
|
25138
|
-
"maximum": 9007199254740991
|
|
25627
|
+
"type": "string"
|
|
25139
25628
|
},
|
|
25140
|
-
"
|
|
25141
|
-
"
|
|
25142
|
-
"
|
|
25143
|
-
|
|
25144
|
-
|
|
25629
|
+
"usageType": {
|
|
25630
|
+
"type": "string",
|
|
25631
|
+
"enum": [
|
|
25632
|
+
"access",
|
|
25633
|
+
"attestation",
|
|
25634
|
+
"trustList",
|
|
25635
|
+
"statusList",
|
|
25636
|
+
"federation",
|
|
25637
|
+
"encrypt"
|
|
25638
|
+
]
|
|
25145
25639
|
},
|
|
25146
|
-
"
|
|
25147
|
-
"description": "
|
|
25640
|
+
"type": {
|
|
25641
|
+
"description": "Key chain type. For a `private-jwk` key source without `activeJwk`, `standalone` makes `jwk` the signing key and `crt` its chain, leaf first; `internalChain` makes `jwk` a CA key and the last `crt` entry its CA certificate (created if `crt` is omitted), and the import generates a new signing key with a certificate issued by it. Without `type`, `jwk` is a CA key only if `rotationPolicy.enabled` is true and `crt` is not a single self-signed certificate that is not a CA. For `regenerate`, it is the type of the new key chain and must equal `keySource.keyChainType` if both are set. For the other key sources, it must match the key chain they describe.",
|
|
25148
25642
|
"type": "string",
|
|
25149
25643
|
"enum": [
|
|
25150
|
-
"
|
|
25151
|
-
"
|
|
25152
|
-
"disabled"
|
|
25644
|
+
"standalone",
|
|
25645
|
+
"internalChain"
|
|
25153
25646
|
]
|
|
25154
25647
|
},
|
|
25155
|
-
"
|
|
25156
|
-
"
|
|
25157
|
-
|
|
25158
|
-
|
|
25159
|
-
"
|
|
25160
|
-
|
|
25161
|
-
|
|
25162
|
-
|
|
25163
|
-
|
|
25164
|
-
|
|
25165
|
-
|
|
25166
|
-
|
|
25167
|
-
|
|
25168
|
-
|
|
25169
|
-
|
|
25170
|
-
|
|
25171
|
-
|
|
25172
|
-
"
|
|
25173
|
-
|
|
25174
|
-
|
|
25175
|
-
|
|
25176
|
-
"
|
|
25177
|
-
|
|
25178
|
-
|
|
25179
|
-
|
|
25180
|
-
|
|
25181
|
-
|
|
25182
|
-
|
|
25183
|
-
|
|
25184
|
-
|
|
25185
|
-
|
|
25186
|
-
|
|
25187
|
-
|
|
25188
|
-
|
|
25189
|
-
|
|
25190
|
-
|
|
25191
|
-
|
|
25648
|
+
"keySource": {
|
|
25649
|
+
"oneOf": [
|
|
25650
|
+
{
|
|
25651
|
+
"type": "object",
|
|
25652
|
+
"properties": {
|
|
25653
|
+
"type": {
|
|
25654
|
+
"type": "string",
|
|
25655
|
+
"const": "private-jwk"
|
|
25656
|
+
},
|
|
25657
|
+
"jwk": {
|
|
25658
|
+
"type": "object",
|
|
25659
|
+
"properties": {
|
|
25660
|
+
"kty": {
|
|
25661
|
+
"type": "string",
|
|
25662
|
+
"description": "Key type (for example EC)."
|
|
25663
|
+
},
|
|
25664
|
+
"x": {
|
|
25665
|
+
"type": "string",
|
|
25666
|
+
"description": "Elliptic curve public x coordinate."
|
|
25667
|
+
},
|
|
25668
|
+
"y": {
|
|
25669
|
+
"type": "string",
|
|
25670
|
+
"description": "Elliptic curve public y coordinate."
|
|
25671
|
+
},
|
|
25672
|
+
"crv": {
|
|
25673
|
+
"type": "string",
|
|
25674
|
+
"description": "Elliptic curve name."
|
|
25675
|
+
},
|
|
25676
|
+
"d": {
|
|
25677
|
+
"type": "string",
|
|
25678
|
+
"description": "Private key value."
|
|
25679
|
+
},
|
|
25680
|
+
"alg": {
|
|
25681
|
+
"description": "Optional algorithm hint.",
|
|
25682
|
+
"type": "string"
|
|
25683
|
+
},
|
|
25684
|
+
"kid": {
|
|
25685
|
+
"description": "Optional key identifier.",
|
|
25686
|
+
"type": "string"
|
|
25687
|
+
}
|
|
25688
|
+
},
|
|
25689
|
+
"required": [
|
|
25690
|
+
"kty",
|
|
25691
|
+
"x",
|
|
25692
|
+
"y",
|
|
25693
|
+
"crv",
|
|
25694
|
+
"d"
|
|
25695
|
+
],
|
|
25696
|
+
"additionalProperties": false
|
|
25697
|
+
},
|
|
25698
|
+
"activeJwk": {
|
|
25699
|
+
"type": "object",
|
|
25700
|
+
"properties": {
|
|
25701
|
+
"kty": {
|
|
25702
|
+
"type": "string",
|
|
25703
|
+
"description": "Key type (for example EC)."
|
|
25704
|
+
},
|
|
25705
|
+
"x": {
|
|
25706
|
+
"type": "string",
|
|
25707
|
+
"description": "Elliptic curve public x coordinate."
|
|
25708
|
+
},
|
|
25709
|
+
"y": {
|
|
25710
|
+
"type": "string",
|
|
25711
|
+
"description": "Elliptic curve public y coordinate."
|
|
25712
|
+
},
|
|
25713
|
+
"crv": {
|
|
25714
|
+
"type": "string",
|
|
25715
|
+
"description": "Elliptic curve name."
|
|
25716
|
+
},
|
|
25717
|
+
"d": {
|
|
25718
|
+
"type": "string",
|
|
25719
|
+
"description": "Private key value."
|
|
25720
|
+
},
|
|
25721
|
+
"alg": {
|
|
25722
|
+
"description": "Optional algorithm hint.",
|
|
25723
|
+
"type": "string"
|
|
25724
|
+
},
|
|
25725
|
+
"kid": {
|
|
25726
|
+
"description": "Optional key identifier.",
|
|
25727
|
+
"type": "string"
|
|
25728
|
+
}
|
|
25729
|
+
},
|
|
25730
|
+
"required": [
|
|
25731
|
+
"kty",
|
|
25732
|
+
"x",
|
|
25733
|
+
"y",
|
|
25734
|
+
"crv",
|
|
25735
|
+
"d"
|
|
25736
|
+
],
|
|
25737
|
+
"additionalProperties": false
|
|
25738
|
+
}
|
|
25739
|
+
},
|
|
25740
|
+
"required": [
|
|
25741
|
+
"type",
|
|
25742
|
+
"jwk"
|
|
25743
|
+
],
|
|
25744
|
+
"additionalProperties": false
|
|
25745
|
+
},
|
|
25746
|
+
{
|
|
25747
|
+
"type": "object",
|
|
25748
|
+
"properties": {
|
|
25749
|
+
"type": {
|
|
25750
|
+
"type": "string",
|
|
25751
|
+
"const": "external-reference"
|
|
25752
|
+
},
|
|
25753
|
+
"provider": {
|
|
25754
|
+
"type": "string"
|
|
25755
|
+
},
|
|
25756
|
+
"externalKeyId": {
|
|
25757
|
+
"type": "string"
|
|
25758
|
+
},
|
|
25759
|
+
"publicJwk": {
|
|
25760
|
+
"type": "object",
|
|
25761
|
+
"properties": {
|
|
25762
|
+
"kty": {
|
|
25763
|
+
"type": "string"
|
|
25764
|
+
},
|
|
25765
|
+
"x": {
|
|
25766
|
+
"type": "string"
|
|
25767
|
+
},
|
|
25768
|
+
"y": {
|
|
25769
|
+
"type": "string"
|
|
25770
|
+
},
|
|
25771
|
+
"crv": {
|
|
25772
|
+
"type": "string"
|
|
25773
|
+
},
|
|
25774
|
+
"alg": {
|
|
25775
|
+
"type": "string"
|
|
25776
|
+
},
|
|
25777
|
+
"kid": {
|
|
25778
|
+
"type": "string"
|
|
25779
|
+
}
|
|
25780
|
+
},
|
|
25781
|
+
"required": [
|
|
25782
|
+
"kty",
|
|
25783
|
+
"x",
|
|
25784
|
+
"y",
|
|
25785
|
+
"crv"
|
|
25786
|
+
],
|
|
25787
|
+
"additionalProperties": false
|
|
25788
|
+
},
|
|
25789
|
+
"activeExternalKeyId": {
|
|
25790
|
+
"type": "string"
|
|
25791
|
+
},
|
|
25792
|
+
"activePublicJwk": {
|
|
25793
|
+
"type": "object",
|
|
25794
|
+
"properties": {
|
|
25795
|
+
"kty": {
|
|
25796
|
+
"type": "string"
|
|
25797
|
+
},
|
|
25798
|
+
"x": {
|
|
25799
|
+
"type": "string"
|
|
25800
|
+
},
|
|
25801
|
+
"y": {
|
|
25802
|
+
"type": "string"
|
|
25803
|
+
},
|
|
25804
|
+
"crv": {
|
|
25805
|
+
"type": "string"
|
|
25806
|
+
},
|
|
25807
|
+
"alg": {
|
|
25808
|
+
"type": "string"
|
|
25809
|
+
},
|
|
25810
|
+
"kid": {
|
|
25811
|
+
"type": "string"
|
|
25812
|
+
}
|
|
25813
|
+
},
|
|
25814
|
+
"required": [
|
|
25815
|
+
"kty",
|
|
25816
|
+
"x",
|
|
25817
|
+
"y",
|
|
25818
|
+
"crv"
|
|
25819
|
+
],
|
|
25820
|
+
"additionalProperties": false
|
|
25821
|
+
}
|
|
25822
|
+
},
|
|
25823
|
+
"required": [
|
|
25824
|
+
"type",
|
|
25825
|
+
"provider",
|
|
25826
|
+
"externalKeyId",
|
|
25827
|
+
"publicJwk"
|
|
25828
|
+
],
|
|
25829
|
+
"additionalProperties": false
|
|
25830
|
+
},
|
|
25831
|
+
{
|
|
25832
|
+
"type": "object",
|
|
25833
|
+
"properties": {
|
|
25834
|
+
"type": {
|
|
25835
|
+
"type": "string",
|
|
25836
|
+
"const": "required"
|
|
25837
|
+
},
|
|
25838
|
+
"publicJwk": {
|
|
25839
|
+
"type": "object",
|
|
25840
|
+
"properties": {
|
|
25841
|
+
"kty": {
|
|
25842
|
+
"type": "string"
|
|
25843
|
+
},
|
|
25844
|
+
"x": {
|
|
25845
|
+
"type": "string"
|
|
25846
|
+
},
|
|
25847
|
+
"y": {
|
|
25848
|
+
"type": "string"
|
|
25849
|
+
},
|
|
25850
|
+
"crv": {
|
|
25851
|
+
"type": "string"
|
|
25852
|
+
},
|
|
25853
|
+
"alg": {
|
|
25854
|
+
"type": "string"
|
|
25855
|
+
},
|
|
25856
|
+
"kid": {
|
|
25857
|
+
"type": "string"
|
|
25858
|
+
}
|
|
25859
|
+
},
|
|
25860
|
+
"required": [
|
|
25861
|
+
"kty",
|
|
25862
|
+
"x",
|
|
25863
|
+
"y",
|
|
25864
|
+
"crv"
|
|
25865
|
+
],
|
|
25866
|
+
"additionalProperties": false
|
|
25867
|
+
}
|
|
25868
|
+
},
|
|
25869
|
+
"required": [
|
|
25870
|
+
"type"
|
|
25871
|
+
],
|
|
25872
|
+
"additionalProperties": false
|
|
25873
|
+
},
|
|
25874
|
+
{
|
|
25875
|
+
"type": "object",
|
|
25876
|
+
"properties": {
|
|
25877
|
+
"type": {
|
|
25878
|
+
"type": "string",
|
|
25879
|
+
"const": "regenerate"
|
|
25880
|
+
},
|
|
25881
|
+
"keyChainType": {
|
|
25882
|
+
"type": "string",
|
|
25883
|
+
"enum": [
|
|
25884
|
+
"standalone",
|
|
25885
|
+
"internalChain"
|
|
25886
|
+
]
|
|
25887
|
+
}
|
|
25888
|
+
},
|
|
25889
|
+
"required": [
|
|
25890
|
+
"type"
|
|
25891
|
+
],
|
|
25892
|
+
"additionalProperties": false
|
|
25893
|
+
}
|
|
25894
|
+
]
|
|
25895
|
+
},
|
|
25896
|
+
"crt": {
|
|
25897
|
+
"type": "array",
|
|
25898
|
+
"items": {
|
|
25899
|
+
"type": "string"
|
|
25900
|
+
}
|
|
25901
|
+
},
|
|
25902
|
+
"activeCertificate": {
|
|
25903
|
+
"description": "Active certificate for an internal key chain.",
|
|
25904
|
+
"type": "string"
|
|
25905
|
+
},
|
|
25906
|
+
"kmsProvider": {
|
|
25907
|
+
"type": "string"
|
|
25908
|
+
},
|
|
25909
|
+
"rotationPolicy": {
|
|
25910
|
+
"type": "object",
|
|
25911
|
+
"properties": {
|
|
25912
|
+
"enabled": {
|
|
25913
|
+
"type": "boolean"
|
|
25914
|
+
},
|
|
25915
|
+
"intervalDays": {
|
|
25916
|
+
"anyOf": [
|
|
25917
|
+
{
|
|
25918
|
+
"type": "number",
|
|
25919
|
+
"minimum": 1,
|
|
25920
|
+
"maximum": 3650
|
|
25921
|
+
},
|
|
25922
|
+
{
|
|
25923
|
+
"type": "null"
|
|
25924
|
+
}
|
|
25925
|
+
]
|
|
25926
|
+
},
|
|
25927
|
+
"certValidityDays": {
|
|
25928
|
+
"anyOf": [
|
|
25929
|
+
{
|
|
25930
|
+
"type": "number",
|
|
25931
|
+
"minimum": 1,
|
|
25932
|
+
"maximum": 3650
|
|
25933
|
+
},
|
|
25934
|
+
{
|
|
25935
|
+
"type": "null"
|
|
25936
|
+
}
|
|
25937
|
+
]
|
|
25938
|
+
}
|
|
25939
|
+
},
|
|
25940
|
+
"required": [
|
|
25941
|
+
"enabled"
|
|
25942
|
+
],
|
|
25943
|
+
"additionalProperties": false
|
|
25944
|
+
}
|
|
25945
|
+
},
|
|
25946
|
+
"required": [
|
|
25947
|
+
"usageType",
|
|
25948
|
+
"keySource"
|
|
25949
|
+
],
|
|
25950
|
+
"additionalProperties": false
|
|
25951
|
+
}
|
|
25952
|
+
},
|
|
25953
|
+
"required": [
|
|
25954
|
+
"$schema",
|
|
25955
|
+
"metadata",
|
|
25956
|
+
"spec"
|
|
25957
|
+
],
|
|
25958
|
+
"additionalProperties": false
|
|
25959
|
+
},
|
|
25960
|
+
{
|
|
25961
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
25962
|
+
"$id": "https://eudiplo.dev/schemas/v3/PresentationConfigFile.schema.json",
|
|
25963
|
+
"title": "PresentationConfigFile",
|
|
25964
|
+
"type": "object",
|
|
25965
|
+
"properties": {
|
|
25966
|
+
"$schema": {
|
|
25967
|
+
"type": "string",
|
|
25968
|
+
"const": "https://eudiplo.dev/schemas/v3/PresentationConfigFile.schema.json"
|
|
25969
|
+
},
|
|
25970
|
+
"metadata": {
|
|
25971
|
+
"type": "object",
|
|
25972
|
+
"properties": {
|
|
25973
|
+
"generation": {
|
|
25974
|
+
"type": "integer",
|
|
25975
|
+
"minimum": 1,
|
|
25976
|
+
"description": "Monotonically increasing configuration generation."
|
|
25977
|
+
},
|
|
25978
|
+
"ownership": {
|
|
25979
|
+
"type": "string",
|
|
25980
|
+
"enum": [
|
|
25981
|
+
"unmanaged",
|
|
25982
|
+
"file-managed"
|
|
25983
|
+
],
|
|
25984
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
25985
|
+
}
|
|
25986
|
+
},
|
|
25987
|
+
"additionalProperties": false
|
|
25988
|
+
},
|
|
25989
|
+
"spec": {
|
|
25990
|
+
"allOf": [
|
|
25991
|
+
{
|
|
25992
|
+
"$ref": "#/$defs/PresentationConfigCreateDto"
|
|
25993
|
+
},
|
|
25994
|
+
{
|
|
25995
|
+
"type": "object",
|
|
25996
|
+
"required": [
|
|
25997
|
+
"id"
|
|
25998
|
+
],
|
|
25999
|
+
"properties": {
|
|
26000
|
+
"id": {
|
|
26001
|
+
"type": "string",
|
|
26002
|
+
"minLength": 1
|
|
26003
|
+
}
|
|
26004
|
+
}
|
|
26005
|
+
}
|
|
26006
|
+
]
|
|
26007
|
+
}
|
|
26008
|
+
},
|
|
26009
|
+
"required": [
|
|
26010
|
+
"$schema",
|
|
26011
|
+
"spec"
|
|
26012
|
+
],
|
|
26013
|
+
"additionalProperties": false,
|
|
26014
|
+
"$defs": {
|
|
26015
|
+
"PresentationConfigCreateDto": {
|
|
26016
|
+
"type": "object",
|
|
26017
|
+
"properties": {
|
|
26018
|
+
"id": {
|
|
26019
|
+
"type": "string",
|
|
26020
|
+
"minLength": 1,
|
|
26021
|
+
"description": "Presentation configuration identifier."
|
|
26022
|
+
},
|
|
26023
|
+
"description": {
|
|
26024
|
+
"description": "Optional presentation configuration description.",
|
|
26025
|
+
"type": [
|
|
26026
|
+
"string",
|
|
26027
|
+
"null"
|
|
26028
|
+
]
|
|
26029
|
+
},
|
|
26030
|
+
"lifeTime": {
|
|
26031
|
+
"description": "Presentation request lifetime in seconds.",
|
|
26032
|
+
"type": "integer",
|
|
26033
|
+
"minimum": 1,
|
|
26034
|
+
"maximum": 9007199254740991
|
|
26035
|
+
},
|
|
26036
|
+
"skewSeconds": {
|
|
26037
|
+
"description": "Clock skew tolerance in seconds.",
|
|
26038
|
+
"type": "integer",
|
|
26039
|
+
"minimum": 0,
|
|
26040
|
+
"maximum": 9007199254740991
|
|
26041
|
+
},
|
|
26042
|
+
"statusCheckMode": {
|
|
26043
|
+
"description": "Revocation/status check mode.",
|
|
26044
|
+
"type": "string",
|
|
26045
|
+
"enum": [
|
|
26046
|
+
"strict",
|
|
26047
|
+
"best_effort",
|
|
26048
|
+
"disabled"
|
|
26049
|
+
]
|
|
26050
|
+
},
|
|
26051
|
+
"dcql_query": {
|
|
26052
|
+
"type": "object",
|
|
26053
|
+
"properties": {
|
|
26054
|
+
"credentials": {
|
|
26055
|
+
"minItems": 1,
|
|
26056
|
+
"type": "array",
|
|
26057
|
+
"items": {
|
|
26058
|
+
"oneOf": [
|
|
26059
|
+
{
|
|
26060
|
+
"type": "object",
|
|
26061
|
+
"properties": {
|
|
26062
|
+
"id": {
|
|
26063
|
+
"type": "string",
|
|
26064
|
+
"minLength": 1,
|
|
26065
|
+
"pattern": "^[A-Za-z0-9_-]+$",
|
|
26066
|
+
"description": "Credential query identifier."
|
|
26067
|
+
},
|
|
26068
|
+
"multiple": {
|
|
26069
|
+
"description": "Allow multiple matching credentials.",
|
|
26070
|
+
"type": "boolean"
|
|
26071
|
+
},
|
|
26072
|
+
"claim_sets": {
|
|
26073
|
+
"description": "Optional claim set constraints.",
|
|
26074
|
+
"type": "array",
|
|
26075
|
+
"items": {
|
|
26076
|
+
"type": "array",
|
|
26077
|
+
"items": {
|
|
26078
|
+
"type": "string"
|
|
26079
|
+
}
|
|
26080
|
+
}
|
|
26081
|
+
},
|
|
26082
|
+
"trusted_authorities": {
|
|
26083
|
+
"description": "Optional trusted authority constraints.",
|
|
26084
|
+
"type": "array",
|
|
26085
|
+
"items": {
|
|
26086
|
+
"oneOf": [
|
|
26087
|
+
{
|
|
26088
|
+
"type": "object",
|
|
26089
|
+
"properties": {
|
|
26090
|
+
"type": {
|
|
26091
|
+
"type": "string",
|
|
26092
|
+
"const": "etsi_tl",
|
|
26093
|
+
"description": "Trusted authority type discriminator for ETSI trust lists."
|
|
26094
|
+
},
|
|
26095
|
+
"values": {
|
|
26096
|
+
"type": "array",
|
|
26097
|
+
"items": {
|
|
26098
|
+
"type": "object",
|
|
26099
|
+
"properties": {
|
|
26100
|
+
"trustListId": {
|
|
26101
|
+
"description": "Optional trust list id reference.",
|
|
26102
|
+
"type": "string"
|
|
26103
|
+
},
|
|
26104
|
+
"url": {
|
|
26105
|
+
"description": "Optional trust list URL reference.",
|
|
26106
|
+
"anyOf": [
|
|
26107
|
+
{
|
|
26108
|
+
"type": "string",
|
|
26109
|
+
"format": "uri"
|
|
26110
|
+
},
|
|
26111
|
+
{
|
|
26112
|
+
"type": "string",
|
|
26113
|
+
"pattern": "^<TENANT_URL>(?:\\/.*)?$"
|
|
26114
|
+
}
|
|
26115
|
+
]
|
|
26116
|
+
},
|
|
26117
|
+
"verifierKey": {
|
|
26118
|
+
"description": "Optional verifier key material.",
|
|
26119
|
+
"type": "object",
|
|
26120
|
+
"propertyNames": {
|
|
26121
|
+
"type": "string"
|
|
26122
|
+
},
|
|
26123
|
+
"additionalProperties": {}
|
|
26124
|
+
},
|
|
26125
|
+
"verifierX509Der": {
|
|
26126
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
26127
|
+
"type": "string"
|
|
26128
|
+
}
|
|
26129
|
+
},
|
|
26130
|
+
"additionalProperties": false
|
|
26131
|
+
},
|
|
26132
|
+
"description": "Trust list references for ETSI TL verification."
|
|
26133
|
+
}
|
|
26134
|
+
},
|
|
26135
|
+
"required": [
|
|
26136
|
+
"type",
|
|
26137
|
+
"values"
|
|
26138
|
+
],
|
|
26139
|
+
"additionalProperties": false
|
|
26140
|
+
},
|
|
26141
|
+
{
|
|
26142
|
+
"type": "object",
|
|
26143
|
+
"properties": {
|
|
26144
|
+
"type": {
|
|
26145
|
+
"type": "string",
|
|
26146
|
+
"const": "openid_federation",
|
|
26147
|
+
"description": "Trusted authority type discriminator for OpenID Federation."
|
|
26148
|
+
},
|
|
26149
|
+
"values": {
|
|
26150
|
+
"type": "array",
|
|
26151
|
+
"items": {
|
|
26152
|
+
"type": "string"
|
|
26153
|
+
},
|
|
26154
|
+
"description": "OpenID Federation authority identifiers."
|
|
26155
|
+
}
|
|
26156
|
+
},
|
|
26157
|
+
"required": [
|
|
26158
|
+
"type",
|
|
26159
|
+
"values"
|
|
26160
|
+
],
|
|
26161
|
+
"additionalProperties": false
|
|
26162
|
+
}
|
|
26163
|
+
]
|
|
26164
|
+
}
|
|
26165
|
+
},
|
|
26166
|
+
"format": {
|
|
26167
|
+
"type": "string",
|
|
26168
|
+
"const": "dc+sd-jwt",
|
|
26169
|
+
"description": "Credential format discriminator."
|
|
26170
|
+
},
|
|
26171
|
+
"meta": {
|
|
26172
|
+
"type": "object",
|
|
26173
|
+
"properties": {
|
|
26174
|
+
"vct_values": {
|
|
26175
|
+
"minItems": 1,
|
|
26176
|
+
"type": "array",
|
|
26177
|
+
"items": {
|
|
26178
|
+
"type": "string"
|
|
26179
|
+
},
|
|
26180
|
+
"description": "Accepted VCT values."
|
|
26181
|
+
}
|
|
26182
|
+
},
|
|
26183
|
+
"required": [
|
|
26184
|
+
"vct_values"
|
|
26185
|
+
],
|
|
26186
|
+
"additionalProperties": false
|
|
26187
|
+
},
|
|
26188
|
+
"claims": {
|
|
26189
|
+
"description": "Optional claim-level constraints.",
|
|
26190
|
+
"type": "array",
|
|
26191
|
+
"items": {
|
|
26192
|
+
"type": "object",
|
|
26193
|
+
"properties": {
|
|
26194
|
+
"id": {
|
|
26195
|
+
"description": "Optional claim query id.",
|
|
26196
|
+
"type": "string"
|
|
26197
|
+
},
|
|
26198
|
+
"path": {
|
|
26199
|
+
"type": "array",
|
|
26200
|
+
"items": {
|
|
26201
|
+
"type": [
|
|
26202
|
+
"string",
|
|
26203
|
+
"number"
|
|
26204
|
+
]
|
|
26205
|
+
},
|
|
26206
|
+
"description": "Path to the claim value in presented credentials."
|
|
26207
|
+
},
|
|
26208
|
+
"values": {
|
|
26209
|
+
"description": "Optional allowed values for the claim. A disclosed value must equal one of them in type and value.",
|
|
26210
|
+
"minItems": 1,
|
|
26211
|
+
"type": "array",
|
|
26212
|
+
"items": {
|
|
26213
|
+
"anyOf": [
|
|
26214
|
+
{
|
|
26215
|
+
"type": "string"
|
|
26216
|
+
},
|
|
26217
|
+
{
|
|
26218
|
+
"type": "integer",
|
|
26219
|
+
"minimum": -9007199254740991,
|
|
26220
|
+
"maximum": 9007199254740991
|
|
26221
|
+
},
|
|
26222
|
+
{
|
|
26223
|
+
"type": "boolean"
|
|
26224
|
+
}
|
|
26225
|
+
]
|
|
26226
|
+
}
|
|
26227
|
+
}
|
|
26228
|
+
},
|
|
26229
|
+
"required": [
|
|
26230
|
+
"path"
|
|
26231
|
+
],
|
|
26232
|
+
"additionalProperties": false
|
|
26233
|
+
}
|
|
26234
|
+
}
|
|
26235
|
+
},
|
|
26236
|
+
"required": [
|
|
26237
|
+
"id",
|
|
26238
|
+
"format",
|
|
26239
|
+
"meta"
|
|
26240
|
+
],
|
|
26241
|
+
"additionalProperties": false
|
|
26242
|
+
},
|
|
26243
|
+
{
|
|
26244
|
+
"type": "object",
|
|
26245
|
+
"properties": {
|
|
26246
|
+
"id": {
|
|
26247
|
+
"type": "string",
|
|
26248
|
+
"minLength": 1,
|
|
26249
|
+
"pattern": "^[A-Za-z0-9_-]+$",
|
|
26250
|
+
"description": "Credential query identifier."
|
|
26251
|
+
},
|
|
26252
|
+
"multiple": {
|
|
26253
|
+
"description": "Allow multiple matching credentials.",
|
|
26254
|
+
"type": "boolean"
|
|
26255
|
+
},
|
|
26256
|
+
"claim_sets": {
|
|
26257
|
+
"description": "Optional claim set constraints.",
|
|
26258
|
+
"type": "array",
|
|
26259
|
+
"items": {
|
|
26260
|
+
"type": "array",
|
|
26261
|
+
"items": {
|
|
26262
|
+
"type": "string"
|
|
26263
|
+
}
|
|
26264
|
+
}
|
|
26265
|
+
},
|
|
26266
|
+
"trusted_authorities": {
|
|
26267
|
+
"description": "Optional trusted authority constraints.",
|
|
26268
|
+
"type": "array",
|
|
26269
|
+
"items": {
|
|
26270
|
+
"oneOf": [
|
|
26271
|
+
{
|
|
25192
26272
|
"type": "object",
|
|
25193
26273
|
"properties": {
|
|
25194
26274
|
"type": {
|
|
@@ -25269,402 +26349,1141 @@ var CONFIG_SCHEMAS = [
|
|
|
25269
26349
|
},
|
|
25270
26350
|
"format": {
|
|
25271
26351
|
"type": "string",
|
|
25272
|
-
"const": "
|
|
25273
|
-
"description": "Credential format discriminator."
|
|
25274
|
-
},
|
|
25275
|
-
"meta": {
|
|
25276
|
-
"type": "object",
|
|
25277
|
-
"properties": {
|
|
25278
|
-
"
|
|
25279
|
-
"
|
|
25280
|
-
"
|
|
25281
|
-
"
|
|
25282
|
-
|
|
25283
|
-
|
|
25284
|
-
|
|
25285
|
-
|
|
25286
|
-
|
|
25287
|
-
"
|
|
25288
|
-
|
|
25289
|
-
|
|
25290
|
-
"
|
|
26352
|
+
"const": "mso_mdoc",
|
|
26353
|
+
"description": "Credential format discriminator."
|
|
26354
|
+
},
|
|
26355
|
+
"meta": {
|
|
26356
|
+
"type": "object",
|
|
26357
|
+
"properties": {
|
|
26358
|
+
"doctype_value": {
|
|
26359
|
+
"type": "string",
|
|
26360
|
+
"minLength": 1,
|
|
26361
|
+
"description": "Expected mDoc doctype value."
|
|
26362
|
+
}
|
|
26363
|
+
},
|
|
26364
|
+
"required": [
|
|
26365
|
+
"doctype_value"
|
|
26366
|
+
],
|
|
26367
|
+
"additionalProperties": false
|
|
26368
|
+
},
|
|
26369
|
+
"claims": {
|
|
26370
|
+
"description": "Optional mDoc claim-level constraints.",
|
|
26371
|
+
"type": "array",
|
|
26372
|
+
"items": {
|
|
26373
|
+
"type": "object",
|
|
26374
|
+
"properties": {
|
|
26375
|
+
"id": {
|
|
26376
|
+
"description": "Optional claim query id.",
|
|
26377
|
+
"type": "string"
|
|
26378
|
+
},
|
|
26379
|
+
"path": {
|
|
26380
|
+
"type": "array",
|
|
26381
|
+
"items": {
|
|
26382
|
+
"type": [
|
|
26383
|
+
"string",
|
|
26384
|
+
"number"
|
|
26385
|
+
]
|
|
26386
|
+
},
|
|
26387
|
+
"description": "Path to the claim value in presented credentials."
|
|
26388
|
+
},
|
|
26389
|
+
"values": {
|
|
26390
|
+
"description": "Optional allowed values for the claim. A disclosed value must equal one of them in type and value.",
|
|
26391
|
+
"minItems": 1,
|
|
26392
|
+
"type": "array",
|
|
26393
|
+
"items": {
|
|
26394
|
+
"anyOf": [
|
|
26395
|
+
{
|
|
26396
|
+
"type": "string"
|
|
26397
|
+
},
|
|
26398
|
+
{
|
|
26399
|
+
"type": "integer",
|
|
26400
|
+
"minimum": -9007199254740991,
|
|
26401
|
+
"maximum": 9007199254740991
|
|
26402
|
+
},
|
|
26403
|
+
{
|
|
26404
|
+
"type": "boolean"
|
|
26405
|
+
}
|
|
26406
|
+
]
|
|
26407
|
+
}
|
|
26408
|
+
},
|
|
26409
|
+
"intent_to_retain": {
|
|
26410
|
+
"description": "Whether relying party intends to retain the claim.",
|
|
26411
|
+
"type": "boolean"
|
|
26412
|
+
}
|
|
26413
|
+
},
|
|
26414
|
+
"required": [
|
|
26415
|
+
"path"
|
|
26416
|
+
],
|
|
26417
|
+
"additionalProperties": false
|
|
26418
|
+
}
|
|
26419
|
+
}
|
|
26420
|
+
},
|
|
26421
|
+
"required": [
|
|
26422
|
+
"id",
|
|
26423
|
+
"format",
|
|
26424
|
+
"meta"
|
|
26425
|
+
],
|
|
26426
|
+
"additionalProperties": false
|
|
26427
|
+
}
|
|
26428
|
+
]
|
|
26429
|
+
},
|
|
26430
|
+
"description": "Credential queries requested by the verifier."
|
|
26431
|
+
},
|
|
26432
|
+
"credential_sets": {
|
|
26433
|
+
"description": "Optional higher-level credential set requirements.",
|
|
26434
|
+
"type": "array",
|
|
26435
|
+
"items": {
|
|
26436
|
+
"type": "object",
|
|
26437
|
+
"properties": {
|
|
26438
|
+
"options": {
|
|
26439
|
+
"minItems": 1,
|
|
26440
|
+
"type": "array",
|
|
26441
|
+
"items": {
|
|
26442
|
+
"minItems": 1,
|
|
26443
|
+
"type": "array",
|
|
26444
|
+
"items": {
|
|
26445
|
+
"type": "string"
|
|
26446
|
+
}
|
|
26447
|
+
},
|
|
26448
|
+
"description": "Alternative credential query id combinations."
|
|
26449
|
+
},
|
|
26450
|
+
"required": {
|
|
26451
|
+
"description": "Whether this credential set is mandatory.",
|
|
26452
|
+
"type": "boolean"
|
|
26453
|
+
}
|
|
26454
|
+
},
|
|
26455
|
+
"required": [
|
|
26456
|
+
"options"
|
|
26457
|
+
],
|
|
26458
|
+
"additionalProperties": false
|
|
26459
|
+
}
|
|
26460
|
+
}
|
|
26461
|
+
},
|
|
26462
|
+
"required": [
|
|
26463
|
+
"credentials"
|
|
26464
|
+
],
|
|
26465
|
+
"additionalProperties": false,
|
|
26466
|
+
"description": "DCQL query defining requested credentials and claims."
|
|
26467
|
+
},
|
|
26468
|
+
"transaction_data": {
|
|
26469
|
+
"description": "Optional transaction data descriptors.",
|
|
26470
|
+
"anyOf": [
|
|
26471
|
+
{
|
|
26472
|
+
"type": "array",
|
|
26473
|
+
"items": {
|
|
26474
|
+
"type": "object",
|
|
26475
|
+
"properties": {
|
|
26476
|
+
"type": {
|
|
26477
|
+
"type": "string",
|
|
26478
|
+
"description": "Transaction data type identifier."
|
|
26479
|
+
},
|
|
26480
|
+
"credential_ids": {
|
|
26481
|
+
"type": "array",
|
|
26482
|
+
"items": {
|
|
26483
|
+
"type": "string"
|
|
26484
|
+
},
|
|
26485
|
+
"description": "Credential query ids this transaction data applies to."
|
|
26486
|
+
},
|
|
26487
|
+
"payload": {
|
|
26488
|
+
"description": "Transaction details. Required for TS12 SCA transaction data."
|
|
26489
|
+
}
|
|
26490
|
+
},
|
|
26491
|
+
"required": [
|
|
26492
|
+
"type",
|
|
26493
|
+
"credential_ids"
|
|
26494
|
+
],
|
|
26495
|
+
"additionalProperties": {}
|
|
26496
|
+
}
|
|
26497
|
+
},
|
|
26498
|
+
{
|
|
26499
|
+
"type": "null"
|
|
26500
|
+
}
|
|
26501
|
+
]
|
|
26502
|
+
},
|
|
26503
|
+
"registration_cert": {
|
|
26504
|
+
"description": "Optional registration certificate request settings.",
|
|
26505
|
+
"anyOf": [
|
|
26506
|
+
{
|
|
26507
|
+
"type": "object",
|
|
26508
|
+
"properties": {
|
|
26509
|
+
"id": {
|
|
26510
|
+
"type": "string"
|
|
26511
|
+
},
|
|
26512
|
+
"body": {
|
|
26513
|
+
"type": "object",
|
|
26514
|
+
"properties": {
|
|
26515
|
+
"privacy_policy": {
|
|
26516
|
+
"type": "string"
|
|
26517
|
+
},
|
|
26518
|
+
"support_uri": {
|
|
26519
|
+
"type": "string"
|
|
26520
|
+
},
|
|
26521
|
+
"intermediary": {
|
|
26522
|
+
"type": "string"
|
|
26523
|
+
},
|
|
26524
|
+
"purpose": {
|
|
26525
|
+
"type": "array",
|
|
26526
|
+
"items": {
|
|
26527
|
+
"type": "object",
|
|
26528
|
+
"properties": {
|
|
26529
|
+
"lang": {
|
|
26530
|
+
"type": "string"
|
|
26531
|
+
},
|
|
26532
|
+
"content": {
|
|
26533
|
+
"type": "string"
|
|
26534
|
+
}
|
|
26535
|
+
},
|
|
26536
|
+
"required": [
|
|
26537
|
+
"lang",
|
|
26538
|
+
"content"
|
|
26539
|
+
],
|
|
26540
|
+
"additionalProperties": false
|
|
26541
|
+
}
|
|
26542
|
+
},
|
|
26543
|
+
"credentials": {
|
|
26544
|
+
"type": "array",
|
|
26545
|
+
"items": {
|
|
26546
|
+
"type": "object",
|
|
26547
|
+
"propertyNames": {
|
|
26548
|
+
"type": "string"
|
|
26549
|
+
},
|
|
26550
|
+
"additionalProperties": {}
|
|
26551
|
+
}
|
|
26552
|
+
},
|
|
26553
|
+
"provides_attestations": {
|
|
26554
|
+
"type": "array",
|
|
26555
|
+
"items": {
|
|
26556
|
+
"type": "string",
|
|
26557
|
+
"minLength": 1
|
|
26558
|
+
}
|
|
26559
|
+
}
|
|
26560
|
+
},
|
|
26561
|
+
"additionalProperties": false
|
|
26562
|
+
},
|
|
26563
|
+
"jwt": {
|
|
26564
|
+
"type": "string"
|
|
26565
|
+
}
|
|
26566
|
+
},
|
|
26567
|
+
"additionalProperties": false
|
|
26568
|
+
},
|
|
26569
|
+
{
|
|
26570
|
+
"type": "null"
|
|
26571
|
+
}
|
|
26572
|
+
]
|
|
26573
|
+
},
|
|
26574
|
+
"registrationCertImportJwt": {
|
|
26575
|
+
"description": "Optional imported registration certificate JWT.",
|
|
26576
|
+
"type": [
|
|
26577
|
+
"string",
|
|
26578
|
+
"null"
|
|
26579
|
+
]
|
|
26580
|
+
},
|
|
26581
|
+
"registrationCertImportId": {
|
|
26582
|
+
"description": "Optional registrar-side registration certificate id.",
|
|
26583
|
+
"type": [
|
|
26584
|
+
"string",
|
|
26585
|
+
"null"
|
|
26586
|
+
]
|
|
26587
|
+
},
|
|
26588
|
+
"registrationCertBodyPrivacyPolicy": {
|
|
26589
|
+
"description": "Optional registration certificate privacy policy URI.",
|
|
26590
|
+
"type": [
|
|
26591
|
+
"string",
|
|
26592
|
+
"null"
|
|
26593
|
+
]
|
|
26594
|
+
},
|
|
26595
|
+
"registrationCertBodySupportUri": {
|
|
26596
|
+
"description": "Optional registration certificate support URI.",
|
|
26597
|
+
"type": [
|
|
26598
|
+
"string",
|
|
26599
|
+
"null"
|
|
26600
|
+
]
|
|
26601
|
+
},
|
|
26602
|
+
"registrationCertBodyIntermediary": {
|
|
26603
|
+
"description": "Optional registration certificate intermediary.",
|
|
26604
|
+
"type": [
|
|
26605
|
+
"string",
|
|
26606
|
+
"null"
|
|
26607
|
+
]
|
|
26608
|
+
},
|
|
26609
|
+
"registrationCertBodyPurpose": {
|
|
26610
|
+
"description": "Optional registration certificate purpose entries.",
|
|
26611
|
+
"anyOf": [
|
|
26612
|
+
{
|
|
26613
|
+
"type": "array",
|
|
26614
|
+
"items": {
|
|
26615
|
+
"type": "object",
|
|
26616
|
+
"properties": {
|
|
26617
|
+
"lang": {
|
|
26618
|
+
"type": "string"
|
|
26619
|
+
},
|
|
26620
|
+
"content": {
|
|
26621
|
+
"type": "string"
|
|
26622
|
+
}
|
|
26623
|
+
},
|
|
26624
|
+
"additionalProperties": false
|
|
26625
|
+
}
|
|
26626
|
+
},
|
|
26627
|
+
{
|
|
26628
|
+
"type": "null"
|
|
26629
|
+
}
|
|
26630
|
+
]
|
|
26631
|
+
},
|
|
26632
|
+
"webhookEndpointId": {
|
|
26633
|
+
"description": "Optional webhook endpoint id for presentation callbacks.",
|
|
26634
|
+
"type": [
|
|
26635
|
+
"string",
|
|
26636
|
+
"null"
|
|
26637
|
+
]
|
|
26638
|
+
},
|
|
26639
|
+
"attached": {
|
|
26640
|
+
"description": "Optional attachments included with presentation requests.",
|
|
26641
|
+
"anyOf": [
|
|
26642
|
+
{
|
|
26643
|
+
"type": "array",
|
|
26644
|
+
"items": {
|
|
26645
|
+
"type": "object",
|
|
26646
|
+
"properties": {
|
|
26647
|
+
"format": {
|
|
26648
|
+
"type": "string",
|
|
26649
|
+
"description": "Attachment format identifier."
|
|
26650
|
+
},
|
|
26651
|
+
"data": {
|
|
26652
|
+
"description": "Attachment payload."
|
|
26653
|
+
},
|
|
26654
|
+
"credential_ids": {
|
|
26655
|
+
"description": "Optional credential query ids bound to this attachment.",
|
|
26656
|
+
"type": "array",
|
|
26657
|
+
"items": {
|
|
26658
|
+
"type": "string"
|
|
26659
|
+
}
|
|
26660
|
+
}
|
|
26661
|
+
},
|
|
26662
|
+
"required": [
|
|
26663
|
+
"format",
|
|
26664
|
+
"data"
|
|
26665
|
+
],
|
|
26666
|
+
"additionalProperties": false
|
|
26667
|
+
}
|
|
26668
|
+
},
|
|
26669
|
+
{
|
|
26670
|
+
"type": "null"
|
|
26671
|
+
}
|
|
26672
|
+
]
|
|
26673
|
+
},
|
|
26674
|
+
"redirectUri": {
|
|
26675
|
+
"description": "Optional redirect URI after presentation completion.",
|
|
26676
|
+
"type": [
|
|
26677
|
+
"string",
|
|
26678
|
+
"null"
|
|
26679
|
+
]
|
|
26680
|
+
},
|
|
26681
|
+
"accessKeyChainId": {
|
|
26682
|
+
"description": "Optional key chain id for access token/auth operations.",
|
|
26683
|
+
"type": [
|
|
26684
|
+
"string",
|
|
26685
|
+
"null"
|
|
26686
|
+
]
|
|
26687
|
+
},
|
|
26688
|
+
"readerAuth": {
|
|
26689
|
+
"description": "Whether reader authentication is required for mDoc requests.",
|
|
26690
|
+
"type": [
|
|
26691
|
+
"boolean",
|
|
26692
|
+
"null"
|
|
26693
|
+
]
|
|
26694
|
+
}
|
|
26695
|
+
},
|
|
26696
|
+
"required": [
|
|
26697
|
+
"id",
|
|
26698
|
+
"dcql_query"
|
|
26699
|
+
],
|
|
26700
|
+
"additionalProperties": false,
|
|
26701
|
+
"title": "PresentationConfigCreateDto"
|
|
26702
|
+
}
|
|
26703
|
+
}
|
|
26704
|
+
},
|
|
26705
|
+
{
|
|
26706
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
26707
|
+
"$id": "https://eudiplo.dev/schemas/v3/TenantConfigFile.schema.json",
|
|
26708
|
+
"title": "TenantConfigFile",
|
|
26709
|
+
"type": "object",
|
|
26710
|
+
"properties": {
|
|
26711
|
+
"$schema": {
|
|
26712
|
+
"type": "string",
|
|
26713
|
+
"const": "https://eudiplo.dev/schemas/v3/TenantConfigFile.schema.json"
|
|
26714
|
+
},
|
|
26715
|
+
"metadata": {
|
|
26716
|
+
"type": "object",
|
|
26717
|
+
"properties": {
|
|
26718
|
+
"generation": {
|
|
26719
|
+
"type": "integer",
|
|
26720
|
+
"minimum": 1,
|
|
26721
|
+
"maximum": 9007199254740991
|
|
26722
|
+
},
|
|
26723
|
+
"ownership": {
|
|
26724
|
+
"type": "string",
|
|
26725
|
+
"enum": [
|
|
26726
|
+
"unmanaged",
|
|
26727
|
+
"file-managed"
|
|
26728
|
+
]
|
|
26729
|
+
}
|
|
26730
|
+
},
|
|
26731
|
+
"additionalProperties": false
|
|
26732
|
+
},
|
|
26733
|
+
"spec": {
|
|
26734
|
+
"type": "object",
|
|
26735
|
+
"properties": {
|
|
26736
|
+
"name": {
|
|
26737
|
+
"default": "EUDIPLO",
|
|
26738
|
+
"description": "Display name of the tenant.",
|
|
26739
|
+
"type": "string",
|
|
26740
|
+
"minLength": 1
|
|
26741
|
+
},
|
|
26742
|
+
"description": {
|
|
26743
|
+
"description": "Optional tenant description.",
|
|
26744
|
+
"type": "string",
|
|
26745
|
+
"minLength": 1
|
|
26746
|
+
},
|
|
26747
|
+
"sessionConfig": {
|
|
26748
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
26749
|
+
"type": "object",
|
|
26750
|
+
"properties": {
|
|
26751
|
+
"ttlSeconds": {
|
|
26752
|
+
"description": "Session time-to-live in seconds.",
|
|
26753
|
+
"type": "integer",
|
|
26754
|
+
"minimum": 60,
|
|
26755
|
+
"maximum": 9007199254740991
|
|
26756
|
+
},
|
|
26757
|
+
"cleanupMode": {
|
|
26758
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
26759
|
+
"type": "string",
|
|
26760
|
+
"enum": [
|
|
26761
|
+
"full",
|
|
26762
|
+
"anonymize"
|
|
26763
|
+
]
|
|
26764
|
+
}
|
|
26765
|
+
},
|
|
26766
|
+
"additionalProperties": false
|
|
26767
|
+
},
|
|
26768
|
+
"statusListConfig": {
|
|
26769
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
26770
|
+
"type": "object",
|
|
26771
|
+
"properties": {
|
|
26772
|
+
"capacity": {
|
|
26773
|
+
"description": "Default status list capacity.",
|
|
26774
|
+
"type": "integer",
|
|
26775
|
+
"minimum": 100,
|
|
26776
|
+
"maximum": 9007199254740991
|
|
26777
|
+
},
|
|
26778
|
+
"bits": {
|
|
26779
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
26780
|
+
"anyOf": [
|
|
26781
|
+
{
|
|
26782
|
+
"type": "number",
|
|
26783
|
+
"const": 1
|
|
26784
|
+
},
|
|
26785
|
+
{
|
|
26786
|
+
"type": "number",
|
|
26787
|
+
"const": 2
|
|
26788
|
+
},
|
|
26789
|
+
{
|
|
26790
|
+
"type": "number",
|
|
26791
|
+
"const": 4
|
|
26792
|
+
},
|
|
26793
|
+
{
|
|
26794
|
+
"type": "number",
|
|
26795
|
+
"const": 8
|
|
26796
|
+
}
|
|
26797
|
+
]
|
|
26798
|
+
},
|
|
26799
|
+
"ttl": {
|
|
26800
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
26801
|
+
"type": "integer",
|
|
26802
|
+
"minimum": 60,
|
|
26803
|
+
"maximum": 9007199254740991
|
|
26804
|
+
},
|
|
26805
|
+
"immediateUpdate": {
|
|
26806
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
26807
|
+
"type": "boolean"
|
|
26808
|
+
},
|
|
26809
|
+
"enableAggregation": {
|
|
26810
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
26811
|
+
"type": "boolean"
|
|
26812
|
+
}
|
|
26813
|
+
},
|
|
26814
|
+
"additionalProperties": false
|
|
26815
|
+
},
|
|
26816
|
+
"defaultKeyChains": {
|
|
26817
|
+
"type": "object",
|
|
26818
|
+
"properties": {
|
|
26819
|
+
"access": {
|
|
26820
|
+
"description": "ID of the access key chain used where no configuration names one: presentation requests of configurations without accessKeyChainId and the signed issuer metadata. Without it, EUDIPLO picks one of the tenant's access key chains by rule.",
|
|
26821
|
+
"type": "string",
|
|
26822
|
+
"minLength": 1
|
|
26823
|
+
}
|
|
26824
|
+
},
|
|
26825
|
+
"additionalProperties": false,
|
|
26826
|
+
"description": "The tenant's key chain per usage type, used where no configuration names one. A usage type without an entry uses a key chain picked by rule."
|
|
26827
|
+
}
|
|
26828
|
+
},
|
|
26829
|
+
"required": [
|
|
26830
|
+
"name"
|
|
26831
|
+
],
|
|
26832
|
+
"additionalProperties": false,
|
|
26833
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
26834
|
+
}
|
|
26835
|
+
},
|
|
26836
|
+
"required": [
|
|
26837
|
+
"$schema",
|
|
26838
|
+
"metadata",
|
|
26839
|
+
"spec"
|
|
26840
|
+
],
|
|
26841
|
+
"additionalProperties": false
|
|
26842
|
+
},
|
|
26843
|
+
{
|
|
26844
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
26845
|
+
"$id": "https://eudiplo.dev/schemas/v4/IssuanceConfigFile.schema.json",
|
|
26846
|
+
"title": "IssuanceConfigFile",
|
|
26847
|
+
"type": "object",
|
|
26848
|
+
"properties": {
|
|
26849
|
+
"$schema": {
|
|
26850
|
+
"type": "string",
|
|
26851
|
+
"const": "https://eudiplo.dev/schemas/v4/IssuanceConfigFile.schema.json"
|
|
26852
|
+
},
|
|
26853
|
+
"metadata": {
|
|
26854
|
+
"type": "object",
|
|
26855
|
+
"properties": {
|
|
26856
|
+
"generation": {
|
|
26857
|
+
"type": "integer",
|
|
26858
|
+
"minimum": 1,
|
|
26859
|
+
"description": "Monotonically increasing configuration generation."
|
|
26860
|
+
},
|
|
26861
|
+
"ownership": {
|
|
26862
|
+
"type": "string",
|
|
26863
|
+
"enum": [
|
|
26864
|
+
"unmanaged",
|
|
26865
|
+
"file-managed"
|
|
26866
|
+
],
|
|
26867
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
26868
|
+
}
|
|
26869
|
+
},
|
|
26870
|
+
"additionalProperties": false
|
|
26871
|
+
},
|
|
26872
|
+
"spec": {
|
|
26873
|
+
"$ref": "#/$defs/IssuanceConfig"
|
|
26874
|
+
}
|
|
26875
|
+
},
|
|
26876
|
+
"required": [
|
|
26877
|
+
"$schema",
|
|
26878
|
+
"spec"
|
|
26879
|
+
],
|
|
26880
|
+
"additionalProperties": false,
|
|
26881
|
+
"$defs": {
|
|
26882
|
+
"IssuanceConfig": {
|
|
26883
|
+
"type": "object",
|
|
26884
|
+
"properties": {
|
|
26885
|
+
"batchSize": {
|
|
26886
|
+
"description": "Optional issuance batch size.",
|
|
26887
|
+
"type": "integer",
|
|
26888
|
+
"minimum": 1,
|
|
26889
|
+
"maximum": 9007199254740991
|
|
26890
|
+
},
|
|
26891
|
+
"dPopRequired": {
|
|
26892
|
+
"description": "Require DPoP proofs for issuance endpoints.",
|
|
26893
|
+
"type": "boolean"
|
|
26894
|
+
},
|
|
26895
|
+
"walletAttestationRequired": {
|
|
26896
|
+
"description": "Default wallet attestation requirement for managed authorization servers.",
|
|
26897
|
+
"type": "boolean"
|
|
26898
|
+
},
|
|
26899
|
+
"walletProviderTrustLists": {
|
|
26900
|
+
"description": "Shared wallet provider trust lists for key attestations and default authorization server wallet authentication.",
|
|
26901
|
+
"type": "array",
|
|
26902
|
+
"items": {
|
|
26903
|
+
"type": "object",
|
|
26904
|
+
"properties": {
|
|
26905
|
+
"trustListId": {
|
|
26906
|
+
"type": "string",
|
|
26907
|
+
"minLength": 1
|
|
26908
|
+
},
|
|
26909
|
+
"url": {
|
|
26910
|
+
"description": "URL of the wallet provider trust list.",
|
|
26911
|
+
"type": "string",
|
|
26912
|
+
"format": "uri"
|
|
26913
|
+
},
|
|
26914
|
+
"verifierKey": {
|
|
26915
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
26916
|
+
"type": "object",
|
|
26917
|
+
"propertyNames": {
|
|
26918
|
+
"type": "string"
|
|
26919
|
+
},
|
|
26920
|
+
"additionalProperties": {}
|
|
26921
|
+
},
|
|
26922
|
+
"verifierKeyPem": {
|
|
26923
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
26924
|
+
"type": "string",
|
|
26925
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
26926
|
+
},
|
|
26927
|
+
"verifierX509Der": {
|
|
26928
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
26929
|
+
"type": "string"
|
|
26930
|
+
}
|
|
26931
|
+
},
|
|
26932
|
+
"additionalProperties": false
|
|
26933
|
+
}
|
|
26934
|
+
},
|
|
26935
|
+
"walletAttestationStatusCheckMode": {
|
|
26936
|
+
"description": "Default status check mode for wallet attestations at managed authorization servers: strict, best_effort (default) or disabled.",
|
|
26937
|
+
"anyOf": [
|
|
26938
|
+
{
|
|
26939
|
+
"type": "string",
|
|
26940
|
+
"enum": [
|
|
26941
|
+
"strict",
|
|
26942
|
+
"best_effort",
|
|
26943
|
+
"disabled"
|
|
26944
|
+
]
|
|
26945
|
+
},
|
|
26946
|
+
{
|
|
26947
|
+
"type": "null"
|
|
26948
|
+
}
|
|
26949
|
+
]
|
|
26950
|
+
},
|
|
26951
|
+
"signingKeyId": {
|
|
26952
|
+
"description": "Default signing key chain id for credential issuance.",
|
|
26953
|
+
"type": "string",
|
|
26954
|
+
"minLength": 1
|
|
26955
|
+
},
|
|
26956
|
+
"authorizationServers": {
|
|
26957
|
+
"minItems": 1,
|
|
26958
|
+
"type": "array",
|
|
26959
|
+
"items": {
|
|
26960
|
+
"oneOf": [
|
|
26961
|
+
{
|
|
26962
|
+
"type": "object",
|
|
26963
|
+
"properties": {
|
|
26964
|
+
"type": {
|
|
26965
|
+
"type": "string",
|
|
26966
|
+
"const": "external",
|
|
26967
|
+
"description": "Use an externally managed authorization server."
|
|
26968
|
+
},
|
|
26969
|
+
"id": {
|
|
26970
|
+
"type": "string",
|
|
26971
|
+
"minLength": 1,
|
|
26972
|
+
"description": "Authorization server identifier."
|
|
26973
|
+
},
|
|
26974
|
+
"issuer": {
|
|
26975
|
+
"type": "string",
|
|
26976
|
+
"format": "uri",
|
|
26977
|
+
"description": "Issuer URL for the external authorization server."
|
|
26978
|
+
},
|
|
26979
|
+
"sessionBinding": {
|
|
26980
|
+
"description": "Explicit mapping from an external access-token claim to an existing issuance session.",
|
|
26981
|
+
"type": "object",
|
|
26982
|
+
"properties": {
|
|
26983
|
+
"method": {
|
|
26984
|
+
"type": "string",
|
|
26985
|
+
"const": "access_token_claim",
|
|
26986
|
+
"description": "Read the correlation value from a configured access-token claim."
|
|
25291
26987
|
},
|
|
25292
|
-
"
|
|
25293
|
-
"
|
|
25294
|
-
"
|
|
25295
|
-
"
|
|
25296
|
-
"type": "object",
|
|
25297
|
-
"properties": {
|
|
25298
|
-
"id": {
|
|
25299
|
-
"description": "Optional claim query id.",
|
|
25300
|
-
"type": "string"
|
|
25301
|
-
},
|
|
25302
|
-
"path": {
|
|
25303
|
-
"type": "array",
|
|
25304
|
-
"items": {
|
|
25305
|
-
"type": [
|
|
25306
|
-
"string",
|
|
25307
|
-
"number"
|
|
25308
|
-
]
|
|
25309
|
-
},
|
|
25310
|
-
"description": "Path to the claim value in presented credentials."
|
|
25311
|
-
},
|
|
25312
|
-
"values": {
|
|
25313
|
-
"description": "Optional allowed values for the claim. A disclosed value must equal one of them in type and value.",
|
|
25314
|
-
"minItems": 1,
|
|
25315
|
-
"type": "array",
|
|
25316
|
-
"items": {
|
|
25317
|
-
"anyOf": [
|
|
25318
|
-
{
|
|
25319
|
-
"type": "string"
|
|
25320
|
-
},
|
|
25321
|
-
{
|
|
25322
|
-
"type": "integer",
|
|
25323
|
-
"minimum": -9007199254740991,
|
|
25324
|
-
"maximum": 9007199254740991
|
|
25325
|
-
},
|
|
25326
|
-
{
|
|
25327
|
-
"type": "boolean"
|
|
25328
|
-
}
|
|
25329
|
-
]
|
|
25330
|
-
}
|
|
25331
|
-
}
|
|
25332
|
-
},
|
|
25333
|
-
"required": [
|
|
25334
|
-
"path"
|
|
25335
|
-
],
|
|
25336
|
-
"additionalProperties": false
|
|
25337
|
-
}
|
|
26988
|
+
"claim": {
|
|
26989
|
+
"type": "string",
|
|
26990
|
+
"minLength": 1,
|
|
26991
|
+
"description": "Claim name that contains the issuance-session correlation value."
|
|
25338
26992
|
}
|
|
25339
26993
|
},
|
|
25340
26994
|
"required": [
|
|
25341
|
-
"
|
|
25342
|
-
"
|
|
25343
|
-
"meta"
|
|
26995
|
+
"method",
|
|
26996
|
+
"claim"
|
|
25344
26997
|
],
|
|
25345
26998
|
"additionalProperties": false
|
|
25346
26999
|
},
|
|
25347
|
-
{
|
|
27000
|
+
"label": {
|
|
27001
|
+
"description": "Optional display label for UI selection.",
|
|
27002
|
+
"type": "string"
|
|
27003
|
+
},
|
|
27004
|
+
"enabled": {
|
|
27005
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
27006
|
+
"type": "boolean"
|
|
27007
|
+
}
|
|
27008
|
+
},
|
|
27009
|
+
"required": [
|
|
27010
|
+
"type",
|
|
27011
|
+
"id",
|
|
27012
|
+
"issuer"
|
|
27013
|
+
],
|
|
27014
|
+
"additionalProperties": false
|
|
27015
|
+
},
|
|
27016
|
+
{
|
|
27017
|
+
"type": "object",
|
|
27018
|
+
"properties": {
|
|
27019
|
+
"type": {
|
|
27020
|
+
"type": "string",
|
|
27021
|
+
"const": "oid4vp",
|
|
27022
|
+
"description": "Use OID4VP-based authorization server chaining."
|
|
27023
|
+
},
|
|
27024
|
+
"id": {
|
|
27025
|
+
"type": "string",
|
|
27026
|
+
"minLength": 1,
|
|
27027
|
+
"description": "Authorization server identifier."
|
|
27028
|
+
},
|
|
27029
|
+
"presentationConfigId": {
|
|
27030
|
+
"type": "string",
|
|
27031
|
+
"minLength": 1,
|
|
27032
|
+
"description": "Presentation configuration id used during authorization."
|
|
27033
|
+
},
|
|
27034
|
+
"immediateWalletRedirect": {
|
|
27035
|
+
"description": "Redirect wallets immediately after authorization response creation.",
|
|
27036
|
+
"type": "boolean"
|
|
27037
|
+
},
|
|
27038
|
+
"token": {
|
|
27039
|
+
"description": "Optional token issuance settings.",
|
|
25348
27040
|
"type": "object",
|
|
25349
27041
|
"properties": {
|
|
25350
|
-
"
|
|
27042
|
+
"lifetimeSeconds": {
|
|
27043
|
+
"description": "Access token lifetime in seconds.",
|
|
27044
|
+
"type": "number",
|
|
27045
|
+
"minimum": 60
|
|
27046
|
+
},
|
|
27047
|
+
"signingKeyId": {
|
|
27048
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
25351
27049
|
"type": "string",
|
|
25352
|
-
"minLength": 1
|
|
25353
|
-
"pattern": "^[A-Za-z0-9_-]+$",
|
|
25354
|
-
"description": "Credential query identifier."
|
|
27050
|
+
"minLength": 1
|
|
25355
27051
|
},
|
|
25356
|
-
"
|
|
25357
|
-
"description": "
|
|
27052
|
+
"refreshTokenEnabled": {
|
|
27053
|
+
"description": "Enable issuing refresh tokens.",
|
|
25358
27054
|
"type": "boolean"
|
|
25359
27055
|
},
|
|
25360
|
-
"
|
|
25361
|
-
"description": "
|
|
25362
|
-
"type": "
|
|
25363
|
-
"
|
|
25364
|
-
|
|
25365
|
-
|
|
27056
|
+
"refreshTokenExpiresInSeconds": {
|
|
27057
|
+
"description": "Refresh token lifetime in seconds.",
|
|
27058
|
+
"type": "number",
|
|
27059
|
+
"minimum": 60
|
|
27060
|
+
}
|
|
27061
|
+
},
|
|
27062
|
+
"additionalProperties": false
|
|
27063
|
+
},
|
|
27064
|
+
"requireDPoP": {
|
|
27065
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
27066
|
+
"type": "boolean"
|
|
27067
|
+
},
|
|
27068
|
+
"walletAttestationRequired": {
|
|
27069
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
27070
|
+
"type": "boolean"
|
|
27071
|
+
},
|
|
27072
|
+
"walletProviderTrustLists": {
|
|
27073
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
27074
|
+
"type": "array",
|
|
27075
|
+
"items": {
|
|
27076
|
+
"type": "object",
|
|
27077
|
+
"properties": {
|
|
27078
|
+
"trustListId": {
|
|
27079
|
+
"type": "string",
|
|
27080
|
+
"minLength": 1
|
|
27081
|
+
},
|
|
27082
|
+
"url": {
|
|
27083
|
+
"description": "URL of the wallet provider trust list.",
|
|
27084
|
+
"type": "string",
|
|
27085
|
+
"format": "uri"
|
|
27086
|
+
},
|
|
27087
|
+
"verifierKey": {
|
|
27088
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
27089
|
+
"type": "object",
|
|
27090
|
+
"propertyNames": {
|
|
25366
27091
|
"type": "string"
|
|
25367
|
-
}
|
|
27092
|
+
},
|
|
27093
|
+
"additionalProperties": {}
|
|
27094
|
+
},
|
|
27095
|
+
"verifierKeyPem": {
|
|
27096
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
27097
|
+
"type": "string",
|
|
27098
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
27099
|
+
},
|
|
27100
|
+
"verifierX509Der": {
|
|
27101
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
27102
|
+
"type": "string"
|
|
25368
27103
|
}
|
|
25369
27104
|
},
|
|
25370
|
-
"
|
|
25371
|
-
|
|
25372
|
-
|
|
25373
|
-
|
|
25374
|
-
|
|
25375
|
-
|
|
25376
|
-
|
|
25377
|
-
|
|
25378
|
-
|
|
25379
|
-
|
|
25380
|
-
|
|
25381
|
-
|
|
25382
|
-
|
|
25383
|
-
|
|
25384
|
-
|
|
25385
|
-
|
|
25386
|
-
|
|
25387
|
-
|
|
25388
|
-
|
|
25389
|
-
|
|
25390
|
-
|
|
25391
|
-
|
|
25392
|
-
|
|
25393
|
-
|
|
25394
|
-
|
|
25395
|
-
|
|
25396
|
-
|
|
25397
|
-
|
|
25398
|
-
|
|
25399
|
-
|
|
25400
|
-
|
|
25401
|
-
|
|
25402
|
-
|
|
25403
|
-
|
|
25404
|
-
|
|
25405
|
-
|
|
25406
|
-
|
|
25407
|
-
|
|
25408
|
-
|
|
25409
|
-
|
|
25410
|
-
|
|
25411
|
-
|
|
25412
|
-
|
|
25413
|
-
|
|
25414
|
-
|
|
25415
|
-
|
|
25416
|
-
|
|
25417
|
-
|
|
25418
|
-
"additionalProperties": false
|
|
25419
|
-
},
|
|
25420
|
-
"description": "Trust list references for ETSI TL verification."
|
|
25421
|
-
}
|
|
25422
|
-
},
|
|
25423
|
-
"required": [
|
|
25424
|
-
"type",
|
|
25425
|
-
"values"
|
|
25426
|
-
],
|
|
25427
|
-
"additionalProperties": false
|
|
25428
|
-
},
|
|
25429
|
-
{
|
|
25430
|
-
"type": "object",
|
|
25431
|
-
"properties": {
|
|
25432
|
-
"type": {
|
|
25433
|
-
"type": "string",
|
|
25434
|
-
"const": "openid_federation",
|
|
25435
|
-
"description": "Trusted authority type discriminator for OpenID Federation."
|
|
25436
|
-
},
|
|
25437
|
-
"values": {
|
|
25438
|
-
"type": "array",
|
|
25439
|
-
"items": {
|
|
25440
|
-
"type": "string"
|
|
25441
|
-
},
|
|
25442
|
-
"description": "OpenID Federation authority identifiers."
|
|
25443
|
-
}
|
|
25444
|
-
},
|
|
25445
|
-
"required": [
|
|
25446
|
-
"type",
|
|
25447
|
-
"values"
|
|
25448
|
-
],
|
|
25449
|
-
"additionalProperties": false
|
|
25450
|
-
}
|
|
25451
|
-
]
|
|
25452
|
-
}
|
|
27105
|
+
"additionalProperties": false
|
|
27106
|
+
}
|
|
27107
|
+
},
|
|
27108
|
+
"walletAttestationStatusCheckMode": {
|
|
27109
|
+
"description": "Status check mode for wallet attestations at this authorization server. Omit to inherit the issuance default.",
|
|
27110
|
+
"type": "string",
|
|
27111
|
+
"enum": [
|
|
27112
|
+
"strict",
|
|
27113
|
+
"best_effort",
|
|
27114
|
+
"disabled"
|
|
27115
|
+
]
|
|
27116
|
+
},
|
|
27117
|
+
"label": {
|
|
27118
|
+
"description": "Optional display label for UI selection.",
|
|
27119
|
+
"type": "string"
|
|
27120
|
+
},
|
|
27121
|
+
"enabled": {
|
|
27122
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
27123
|
+
"type": "boolean"
|
|
27124
|
+
}
|
|
27125
|
+
},
|
|
27126
|
+
"required": [
|
|
27127
|
+
"type",
|
|
27128
|
+
"id",
|
|
27129
|
+
"presentationConfigId"
|
|
27130
|
+
],
|
|
27131
|
+
"additionalProperties": false
|
|
27132
|
+
},
|
|
27133
|
+
{
|
|
27134
|
+
"type": "object",
|
|
27135
|
+
"properties": {
|
|
27136
|
+
"type": {
|
|
27137
|
+
"type": "string",
|
|
27138
|
+
"const": "chained",
|
|
27139
|
+
"description": "Use upstream OIDC as authorization source."
|
|
27140
|
+
},
|
|
27141
|
+
"id": {
|
|
27142
|
+
"type": "string",
|
|
27143
|
+
"minLength": 1,
|
|
27144
|
+
"description": "Authorization server identifier."
|
|
27145
|
+
},
|
|
27146
|
+
"upstream": {
|
|
27147
|
+
"type": "object",
|
|
27148
|
+
"properties": {
|
|
27149
|
+
"issuer": {
|
|
27150
|
+
"type": "string",
|
|
27151
|
+
"format": "uri",
|
|
27152
|
+
"description": "Upstream OIDC issuer URL."
|
|
25453
27153
|
},
|
|
25454
|
-
"
|
|
27154
|
+
"clientId": {
|
|
25455
27155
|
"type": "string",
|
|
25456
|
-
"
|
|
25457
|
-
"description": "
|
|
27156
|
+
"minLength": 1,
|
|
27157
|
+
"description": "Client id for upstream OIDC authentication."
|
|
25458
27158
|
},
|
|
25459
|
-
"
|
|
25460
|
-
"
|
|
25461
|
-
"
|
|
25462
|
-
|
|
25463
|
-
"type": "string",
|
|
25464
|
-
"minLength": 1,
|
|
25465
|
-
"description": "Expected mDoc doctype value."
|
|
25466
|
-
}
|
|
25467
|
-
},
|
|
25468
|
-
"required": [
|
|
25469
|
-
"doctype_value"
|
|
25470
|
-
],
|
|
25471
|
-
"additionalProperties": false
|
|
27159
|
+
"clientSecret": {
|
|
27160
|
+
"description": "Optional client secret for upstream OIDC authentication.",
|
|
27161
|
+
"type": "string",
|
|
27162
|
+
"minLength": 1
|
|
25472
27163
|
},
|
|
25473
|
-
"
|
|
25474
|
-
"description": "Optional
|
|
27164
|
+
"scopes": {
|
|
27165
|
+
"description": "Optional scopes requested from the upstream issuer.",
|
|
25475
27166
|
"type": "array",
|
|
25476
27167
|
"items": {
|
|
25477
|
-
"type": "
|
|
25478
|
-
"
|
|
25479
|
-
"id": {
|
|
25480
|
-
"description": "Optional claim query id.",
|
|
25481
|
-
"type": "string"
|
|
25482
|
-
},
|
|
25483
|
-
"path": {
|
|
25484
|
-
"type": "array",
|
|
25485
|
-
"items": {
|
|
25486
|
-
"type": [
|
|
25487
|
-
"string",
|
|
25488
|
-
"number"
|
|
25489
|
-
]
|
|
25490
|
-
},
|
|
25491
|
-
"description": "Path to the claim value in presented credentials."
|
|
25492
|
-
},
|
|
25493
|
-
"values": {
|
|
25494
|
-
"description": "Optional allowed values for the claim. A disclosed value must equal one of them in type and value.",
|
|
25495
|
-
"minItems": 1,
|
|
25496
|
-
"type": "array",
|
|
25497
|
-
"items": {
|
|
25498
|
-
"anyOf": [
|
|
25499
|
-
{
|
|
25500
|
-
"type": "string"
|
|
25501
|
-
},
|
|
25502
|
-
{
|
|
25503
|
-
"type": "integer",
|
|
25504
|
-
"minimum": -9007199254740991,
|
|
25505
|
-
"maximum": 9007199254740991
|
|
25506
|
-
},
|
|
25507
|
-
{
|
|
25508
|
-
"type": "boolean"
|
|
25509
|
-
}
|
|
25510
|
-
]
|
|
25511
|
-
}
|
|
25512
|
-
},
|
|
25513
|
-
"intent_to_retain": {
|
|
25514
|
-
"description": "Whether relying party intends to retain the claim.",
|
|
25515
|
-
"type": "boolean"
|
|
25516
|
-
}
|
|
25517
|
-
},
|
|
25518
|
-
"required": [
|
|
25519
|
-
"path"
|
|
25520
|
-
],
|
|
25521
|
-
"additionalProperties": false
|
|
27168
|
+
"type": "string",
|
|
27169
|
+
"minLength": 1
|
|
25522
27170
|
}
|
|
25523
27171
|
}
|
|
25524
27172
|
},
|
|
25525
27173
|
"required": [
|
|
25526
|
-
"
|
|
25527
|
-
"
|
|
25528
|
-
"meta"
|
|
27174
|
+
"issuer",
|
|
27175
|
+
"clientId"
|
|
25529
27176
|
],
|
|
27177
|
+
"additionalProperties": false,
|
|
27178
|
+
"description": "Upstream OIDC connection settings."
|
|
27179
|
+
},
|
|
27180
|
+
"token": {
|
|
27181
|
+
"description": "Optional token issuance settings.",
|
|
27182
|
+
"type": "object",
|
|
27183
|
+
"properties": {
|
|
27184
|
+
"lifetimeSeconds": {
|
|
27185
|
+
"description": "Access token lifetime in seconds.",
|
|
27186
|
+
"type": "number",
|
|
27187
|
+
"minimum": 60
|
|
27188
|
+
},
|
|
27189
|
+
"signingKeyId": {
|
|
27190
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
27191
|
+
"type": "string",
|
|
27192
|
+
"minLength": 1
|
|
27193
|
+
},
|
|
27194
|
+
"refreshTokenEnabled": {
|
|
27195
|
+
"description": "Enable issuing refresh tokens.",
|
|
27196
|
+
"type": "boolean"
|
|
27197
|
+
},
|
|
27198
|
+
"refreshTokenExpiresInSeconds": {
|
|
27199
|
+
"description": "Refresh token lifetime in seconds.",
|
|
27200
|
+
"type": "number",
|
|
27201
|
+
"minimum": 60
|
|
27202
|
+
}
|
|
27203
|
+
},
|
|
25530
27204
|
"additionalProperties": false
|
|
27205
|
+
},
|
|
27206
|
+
"requireDPoP": {
|
|
27207
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
27208
|
+
"type": "boolean"
|
|
27209
|
+
},
|
|
27210
|
+
"walletAttestationRequired": {
|
|
27211
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
27212
|
+
"type": "boolean"
|
|
27213
|
+
},
|
|
27214
|
+
"walletProviderTrustLists": {
|
|
27215
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
27216
|
+
"type": "array",
|
|
27217
|
+
"items": {
|
|
27218
|
+
"type": "object",
|
|
27219
|
+
"properties": {
|
|
27220
|
+
"trustListId": {
|
|
27221
|
+
"type": "string",
|
|
27222
|
+
"minLength": 1
|
|
27223
|
+
},
|
|
27224
|
+
"url": {
|
|
27225
|
+
"description": "URL of the wallet provider trust list.",
|
|
27226
|
+
"type": "string",
|
|
27227
|
+
"format": "uri"
|
|
27228
|
+
},
|
|
27229
|
+
"verifierKey": {
|
|
27230
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
27231
|
+
"type": "object",
|
|
27232
|
+
"propertyNames": {
|
|
27233
|
+
"type": "string"
|
|
27234
|
+
},
|
|
27235
|
+
"additionalProperties": {}
|
|
27236
|
+
},
|
|
27237
|
+
"verifierKeyPem": {
|
|
27238
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
27239
|
+
"type": "string",
|
|
27240
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
27241
|
+
},
|
|
27242
|
+
"verifierX509Der": {
|
|
27243
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
27244
|
+
"type": "string"
|
|
27245
|
+
}
|
|
27246
|
+
},
|
|
27247
|
+
"additionalProperties": false
|
|
27248
|
+
}
|
|
27249
|
+
},
|
|
27250
|
+
"walletAttestationStatusCheckMode": {
|
|
27251
|
+
"description": "Status check mode for wallet attestations at this authorization server. Omit to inherit the issuance default.",
|
|
27252
|
+
"type": "string",
|
|
27253
|
+
"enum": [
|
|
27254
|
+
"strict",
|
|
27255
|
+
"best_effort",
|
|
27256
|
+
"disabled"
|
|
27257
|
+
]
|
|
27258
|
+
},
|
|
27259
|
+
"label": {
|
|
27260
|
+
"description": "Optional display label for UI selection.",
|
|
27261
|
+
"type": "string"
|
|
27262
|
+
},
|
|
27263
|
+
"enabled": {
|
|
27264
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
27265
|
+
"type": "boolean"
|
|
25531
27266
|
}
|
|
25532
|
-
|
|
27267
|
+
},
|
|
27268
|
+
"required": [
|
|
27269
|
+
"type",
|
|
27270
|
+
"id",
|
|
27271
|
+
"upstream"
|
|
27272
|
+
],
|
|
27273
|
+
"additionalProperties": false
|
|
25533
27274
|
},
|
|
25534
|
-
|
|
25535
|
-
},
|
|
25536
|
-
"credential_sets": {
|
|
25537
|
-
"description": "Optional higher-level credential set requirements.",
|
|
25538
|
-
"type": "array",
|
|
25539
|
-
"items": {
|
|
27275
|
+
{
|
|
25540
27276
|
"type": "object",
|
|
25541
27277
|
"properties": {
|
|
25542
|
-
"
|
|
25543
|
-
"
|
|
25544
|
-
"
|
|
25545
|
-
"
|
|
25546
|
-
|
|
25547
|
-
|
|
25548
|
-
|
|
25549
|
-
|
|
27278
|
+
"type": {
|
|
27279
|
+
"type": "string",
|
|
27280
|
+
"const": "built-in",
|
|
27281
|
+
"description": "Use EUDIPLO built-in authorization server."
|
|
27282
|
+
},
|
|
27283
|
+
"id": {
|
|
27284
|
+
"type": "string",
|
|
27285
|
+
"minLength": 1,
|
|
27286
|
+
"description": "Authorization server identifier."
|
|
27287
|
+
},
|
|
27288
|
+
"token": {
|
|
27289
|
+
"description": "Optional token issuance settings.",
|
|
27290
|
+
"type": "object",
|
|
27291
|
+
"properties": {
|
|
27292
|
+
"lifetimeSeconds": {
|
|
27293
|
+
"description": "Access token lifetime in seconds.",
|
|
27294
|
+
"type": "number",
|
|
27295
|
+
"minimum": 60
|
|
27296
|
+
},
|
|
27297
|
+
"signingKeyId": {
|
|
27298
|
+
"description": "Optional key chain id used to sign issued tokens.",
|
|
27299
|
+
"type": "string",
|
|
27300
|
+
"minLength": 1
|
|
27301
|
+
},
|
|
27302
|
+
"refreshTokenEnabled": {
|
|
27303
|
+
"description": "Enable issuing refresh tokens.",
|
|
27304
|
+
"type": "boolean"
|
|
27305
|
+
},
|
|
27306
|
+
"refreshTokenExpiresInSeconds": {
|
|
27307
|
+
"description": "Refresh token lifetime in seconds.",
|
|
27308
|
+
"type": "number",
|
|
27309
|
+
"minimum": 60
|
|
25550
27310
|
}
|
|
25551
27311
|
},
|
|
25552
|
-
"
|
|
27312
|
+
"additionalProperties": false
|
|
27313
|
+
},
|
|
27314
|
+
"requireDPoP": {
|
|
27315
|
+
"description": "Require DPoP proofs for token/credential requests.",
|
|
27316
|
+
"type": "boolean"
|
|
27317
|
+
},
|
|
27318
|
+
"walletAttestationRequired": {
|
|
27319
|
+
"description": "Require wallet attestation for this authorization server.",
|
|
27320
|
+
"type": "boolean"
|
|
27321
|
+
},
|
|
27322
|
+
"walletProviderTrustLists": {
|
|
27323
|
+
"description": "Optional wallet provider trust list references for this authorization server.",
|
|
27324
|
+
"type": "array",
|
|
27325
|
+
"items": {
|
|
27326
|
+
"type": "object",
|
|
27327
|
+
"properties": {
|
|
27328
|
+
"trustListId": {
|
|
27329
|
+
"type": "string",
|
|
27330
|
+
"minLength": 1
|
|
27331
|
+
},
|
|
27332
|
+
"url": {
|
|
27333
|
+
"description": "URL of the wallet provider trust list.",
|
|
27334
|
+
"type": "string",
|
|
27335
|
+
"format": "uri"
|
|
27336
|
+
},
|
|
27337
|
+
"verifierKey": {
|
|
27338
|
+
"description": "Optional verifier key material used for trust list verification.",
|
|
27339
|
+
"type": "object",
|
|
27340
|
+
"propertyNames": {
|
|
27341
|
+
"type": "string"
|
|
27342
|
+
},
|
|
27343
|
+
"additionalProperties": {}
|
|
27344
|
+
},
|
|
27345
|
+
"verifierKeyPem": {
|
|
27346
|
+
"description": "Optional verifier public key in SPKI PEM form (-----BEGIN PUBLIC KEY-----).",
|
|
27347
|
+
"type": "string",
|
|
27348
|
+
"pattern": "^\\s*-----BEGIN PUBLIC KEY-----[A-Za-z0-9+/=\\s]+-----END PUBLIC KEY-----\\s*$"
|
|
27349
|
+
},
|
|
27350
|
+
"verifierX509Der": {
|
|
27351
|
+
"description": "Optional verifier certificate in DER/base64 form.",
|
|
27352
|
+
"type": "string"
|
|
27353
|
+
}
|
|
27354
|
+
},
|
|
27355
|
+
"additionalProperties": false
|
|
27356
|
+
}
|
|
27357
|
+
},
|
|
27358
|
+
"walletAttestationStatusCheckMode": {
|
|
27359
|
+
"description": "Status check mode for wallet attestations at this authorization server. Omit to inherit the issuance default.",
|
|
27360
|
+
"type": "string",
|
|
27361
|
+
"enum": [
|
|
27362
|
+
"strict",
|
|
27363
|
+
"best_effort",
|
|
27364
|
+
"disabled"
|
|
27365
|
+
]
|
|
25553
27366
|
},
|
|
25554
|
-
"
|
|
25555
|
-
"description": "
|
|
27367
|
+
"label": {
|
|
27368
|
+
"description": "Optional display label for UI selection.",
|
|
27369
|
+
"type": "string"
|
|
27370
|
+
},
|
|
27371
|
+
"enabled": {
|
|
27372
|
+
"description": "Whether this authorization server entry is enabled.",
|
|
25556
27373
|
"type": "boolean"
|
|
25557
27374
|
}
|
|
25558
27375
|
},
|
|
25559
27376
|
"required": [
|
|
25560
|
-
"
|
|
27377
|
+
"type",
|
|
27378
|
+
"id"
|
|
25561
27379
|
],
|
|
25562
27380
|
"additionalProperties": false
|
|
25563
27381
|
}
|
|
25564
|
-
|
|
27382
|
+
],
|
|
27383
|
+
"description": "Supported authorization server configurations."
|
|
25565
27384
|
},
|
|
25566
|
-
"
|
|
25567
|
-
"credentials"
|
|
25568
|
-
],
|
|
25569
|
-
"additionalProperties": false,
|
|
25570
|
-
"description": "DCQL query defining requested credentials and claims."
|
|
27385
|
+
"description": "Configured authorization server entries."
|
|
25571
27386
|
},
|
|
25572
|
-
"
|
|
25573
|
-
"description": "Optional
|
|
27387
|
+
"federation": {
|
|
27388
|
+
"description": "Optional OpenID Federation settings.",
|
|
25574
27389
|
"anyOf": [
|
|
25575
27390
|
{
|
|
25576
|
-
"type": "
|
|
25577
|
-
"
|
|
25578
|
-
"
|
|
25579
|
-
|
|
25580
|
-
"type":
|
|
25581
|
-
|
|
25582
|
-
"
|
|
25583
|
-
|
|
25584
|
-
|
|
25585
|
-
|
|
25586
|
-
|
|
25587
|
-
|
|
27391
|
+
"type": "object",
|
|
27392
|
+
"properties": {
|
|
27393
|
+
"role": {
|
|
27394
|
+
"description": "Federation role for this issuer.",
|
|
27395
|
+
"type": "string",
|
|
27396
|
+
"enum": [
|
|
27397
|
+
"trust_anchor",
|
|
27398
|
+
"intermediate",
|
|
27399
|
+
"leaf"
|
|
27400
|
+
]
|
|
27401
|
+
},
|
|
27402
|
+
"mode": {
|
|
27403
|
+
"description": "Federation operation mode.",
|
|
27404
|
+
"type": "string",
|
|
27405
|
+
"enum": [
|
|
27406
|
+
"federation-only",
|
|
27407
|
+
"hybrid"
|
|
27408
|
+
]
|
|
27409
|
+
},
|
|
27410
|
+
"entityId": {
|
|
27411
|
+
"description": "Optional local federation entity id.",
|
|
27412
|
+
"type": "string"
|
|
27413
|
+
},
|
|
27414
|
+
"enforceSigningPolicy": {
|
|
27415
|
+
"description": "Enforce strict signing policy checks.",
|
|
27416
|
+
"type": "boolean"
|
|
27417
|
+
},
|
|
27418
|
+
"cacheTtlSeconds": {
|
|
27419
|
+
"description": "Cache time-to-live for federation metadata in seconds.",
|
|
27420
|
+
"type": "integer",
|
|
27421
|
+
"minimum": 1,
|
|
27422
|
+
"maximum": 9007199254740991
|
|
27423
|
+
},
|
|
27424
|
+
"trustAnchors": {
|
|
27425
|
+
"type": "array",
|
|
27426
|
+
"items": {
|
|
27427
|
+
"type": "object",
|
|
27428
|
+
"properties": {
|
|
27429
|
+
"entityId": {
|
|
27430
|
+
"type": "string",
|
|
27431
|
+
"minLength": 1,
|
|
27432
|
+
"description": "Federation trust anchor entity id."
|
|
27433
|
+
},
|
|
27434
|
+
"entityConfigurationUri": {
|
|
27435
|
+
"type": "string",
|
|
27436
|
+
"format": "uri",
|
|
27437
|
+
"description": "Entity configuration URI for the trust anchor."
|
|
27438
|
+
}
|
|
25588
27439
|
},
|
|
25589
|
-
"
|
|
27440
|
+
"required": [
|
|
27441
|
+
"entityId",
|
|
27442
|
+
"entityConfigurationUri"
|
|
27443
|
+
],
|
|
27444
|
+
"additionalProperties": false
|
|
25590
27445
|
},
|
|
25591
|
-
"
|
|
25592
|
-
|
|
25593
|
-
|
|
25594
|
-
|
|
25595
|
-
"
|
|
25596
|
-
|
|
25597
|
-
|
|
25598
|
-
],
|
|
25599
|
-
"additionalProperties": {}
|
|
25600
|
-
}
|
|
27446
|
+
"description": "Federation trust anchors."
|
|
27447
|
+
}
|
|
27448
|
+
},
|
|
27449
|
+
"required": [
|
|
27450
|
+
"trustAnchors"
|
|
27451
|
+
],
|
|
27452
|
+
"additionalProperties": false
|
|
25601
27453
|
},
|
|
25602
27454
|
{
|
|
25603
27455
|
"type": "null"
|
|
25604
27456
|
}
|
|
25605
27457
|
]
|
|
25606
27458
|
},
|
|
25607
|
-
"
|
|
25608
|
-
"description": "Optional registration certificate
|
|
27459
|
+
"registrationCertificate": {
|
|
27460
|
+
"description": "Optional registration certificate settings.",
|
|
25609
27461
|
"anyOf": [
|
|
25610
27462
|
{
|
|
25611
27463
|
"type": "object",
|
|
25612
27464
|
"properties": {
|
|
25613
|
-
"
|
|
25614
|
-
"
|
|
27465
|
+
"enabled": {
|
|
27466
|
+
"description": "Enable issuer registration certificate support.",
|
|
27467
|
+
"type": "boolean"
|
|
25615
27468
|
},
|
|
25616
|
-
"
|
|
25617
|
-
"
|
|
25618
|
-
"
|
|
25619
|
-
|
|
25620
|
-
|
|
25621
|
-
|
|
25622
|
-
|
|
25623
|
-
"type": "string"
|
|
25624
|
-
},
|
|
25625
|
-
"intermediary": {
|
|
25626
|
-
"type": "string"
|
|
25627
|
-
},
|
|
25628
|
-
"purpose": {
|
|
25629
|
-
"type": "array",
|
|
25630
|
-
"items": {
|
|
25631
|
-
"type": "object",
|
|
25632
|
-
"properties": {
|
|
25633
|
-
"lang": {
|
|
25634
|
-
"type": "string"
|
|
25635
|
-
},
|
|
25636
|
-
"content": {
|
|
25637
|
-
"type": "string"
|
|
25638
|
-
}
|
|
25639
|
-
},
|
|
25640
|
-
"required": [
|
|
25641
|
-
"lang",
|
|
25642
|
-
"content"
|
|
25643
|
-
],
|
|
25644
|
-
"additionalProperties": false
|
|
25645
|
-
}
|
|
25646
|
-
},
|
|
25647
|
-
"credentials": {
|
|
25648
|
-
"type": "array",
|
|
25649
|
-
"items": {
|
|
25650
|
-
"type": "object",
|
|
25651
|
-
"propertyNames": {
|
|
25652
|
-
"type": "string"
|
|
25653
|
-
},
|
|
25654
|
-
"additionalProperties": {}
|
|
25655
|
-
}
|
|
25656
|
-
},
|
|
25657
|
-
"provides_attestations": {
|
|
25658
|
-
"type": "array",
|
|
25659
|
-
"items": {
|
|
25660
|
-
"type": "string",
|
|
25661
|
-
"minLength": 1
|
|
25662
|
-
}
|
|
25663
|
-
}
|
|
25664
|
-
},
|
|
25665
|
-
"additionalProperties": false
|
|
27469
|
+
"mode": {
|
|
27470
|
+
"description": "How registration certificate data is provided.",
|
|
27471
|
+
"type": "string",
|
|
27472
|
+
"enum": [
|
|
27473
|
+
"import",
|
|
27474
|
+
"generate"
|
|
27475
|
+
]
|
|
25666
27476
|
},
|
|
25667
27477
|
"jwt": {
|
|
27478
|
+
"description": "Optional registration certificate JWT when using import mode.",
|
|
27479
|
+
"type": "string"
|
|
27480
|
+
},
|
|
27481
|
+
"privacyPolicy": {
|
|
27482
|
+
"description": "Optional privacy policy URI.",
|
|
27483
|
+
"type": "string"
|
|
27484
|
+
},
|
|
27485
|
+
"supportUri": {
|
|
27486
|
+
"description": "Optional support URI.",
|
|
25668
27487
|
"type": "string"
|
|
25669
27488
|
}
|
|
25670
27489
|
},
|
|
@@ -25675,146 +27494,225 @@ var CONFIG_SCHEMAS = [
|
|
|
25675
27494
|
}
|
|
25676
27495
|
]
|
|
25677
27496
|
},
|
|
25678
|
-
"
|
|
25679
|
-
"description": "
|
|
25680
|
-
"type":
|
|
25681
|
-
|
|
25682
|
-
"
|
|
25683
|
-
|
|
25684
|
-
|
|
25685
|
-
|
|
25686
|
-
|
|
25687
|
-
|
|
25688
|
-
|
|
25689
|
-
|
|
25690
|
-
|
|
27497
|
+
"display": {
|
|
27498
|
+
"description": "Localized issuer metadata shown to wallets.",
|
|
27499
|
+
"type": "array",
|
|
27500
|
+
"items": {
|
|
27501
|
+
"type": "object",
|
|
27502
|
+
"properties": {
|
|
27503
|
+
"name": {
|
|
27504
|
+
"description": "Issuer display name.",
|
|
27505
|
+
"type": "string"
|
|
27506
|
+
},
|
|
27507
|
+
"locale": {
|
|
27508
|
+
"description": "Locale tag for this display entry.",
|
|
27509
|
+
"type": "string"
|
|
27510
|
+
},
|
|
27511
|
+
"logo": {
|
|
27512
|
+
"description": "Optional issuer logo metadata.",
|
|
27513
|
+
"type": "object",
|
|
27514
|
+
"properties": {
|
|
27515
|
+
"uri": {
|
|
27516
|
+
"type": "string",
|
|
27517
|
+
"minLength": 1,
|
|
27518
|
+
"description": "Logo URI."
|
|
27519
|
+
},
|
|
27520
|
+
"alt_text": {
|
|
27521
|
+
"description": "Optional localized alternative text.",
|
|
27522
|
+
"type": "string"
|
|
27523
|
+
}
|
|
27524
|
+
},
|
|
27525
|
+
"required": [
|
|
27526
|
+
"uri"
|
|
27527
|
+
],
|
|
27528
|
+
"additionalProperties": {}
|
|
27529
|
+
}
|
|
27530
|
+
},
|
|
27531
|
+
"additionalProperties": {}
|
|
27532
|
+
}
|
|
25691
27533
|
},
|
|
25692
|
-
"
|
|
25693
|
-
"description": "
|
|
25694
|
-
"type":
|
|
25695
|
-
"string",
|
|
25696
|
-
"null"
|
|
25697
|
-
]
|
|
27534
|
+
"notificationEndpointEnabled": {
|
|
27535
|
+
"description": "Whether the OID4VCI notification endpoint is exposed for this issuance configuration.",
|
|
27536
|
+
"type": "boolean"
|
|
25698
27537
|
},
|
|
25699
|
-
"
|
|
25700
|
-
"description": "
|
|
25701
|
-
"type":
|
|
25702
|
-
"string",
|
|
25703
|
-
"null"
|
|
25704
|
-
]
|
|
27538
|
+
"credentialResponseEncryption": {
|
|
27539
|
+
"description": "Enable encrypted credential responses.",
|
|
27540
|
+
"type": "boolean"
|
|
25705
27541
|
},
|
|
25706
|
-
"
|
|
25707
|
-
"description": "
|
|
25708
|
-
"type":
|
|
25709
|
-
"string",
|
|
25710
|
-
"null"
|
|
25711
|
-
]
|
|
27542
|
+
"credentialRequestEncryption": {
|
|
27543
|
+
"description": "Require encrypted credential requests.",
|
|
27544
|
+
"type": "boolean"
|
|
25712
27545
|
},
|
|
25713
|
-
"
|
|
25714
|
-
"description": "
|
|
27546
|
+
"txCodeMaxAttempts": {
|
|
27547
|
+
"description": "Maximum verification attempts for transaction codes. Null resets to defaults.",
|
|
25715
27548
|
"anyOf": [
|
|
25716
27549
|
{
|
|
25717
|
-
"type": "
|
|
25718
|
-
"
|
|
25719
|
-
|
|
25720
|
-
"properties": {
|
|
25721
|
-
"lang": {
|
|
25722
|
-
"type": "string"
|
|
25723
|
-
},
|
|
25724
|
-
"content": {
|
|
25725
|
-
"type": "string"
|
|
25726
|
-
}
|
|
25727
|
-
},
|
|
25728
|
-
"additionalProperties": false
|
|
25729
|
-
}
|
|
27550
|
+
"type": "integer",
|
|
27551
|
+
"minimum": 1,
|
|
27552
|
+
"maximum": 9007199254740991
|
|
25730
27553
|
},
|
|
25731
27554
|
{
|
|
25732
27555
|
"type": "null"
|
|
25733
27556
|
}
|
|
25734
27557
|
]
|
|
25735
27558
|
},
|
|
25736
|
-
"
|
|
25737
|
-
"description": "
|
|
25738
|
-
"type": [
|
|
25739
|
-
"string",
|
|
25740
|
-
"null"
|
|
25741
|
-
]
|
|
25742
|
-
},
|
|
25743
|
-
"attached": {
|
|
25744
|
-
"description": "Optional attachments included with presentation requests.",
|
|
27559
|
+
"offerLifetimeSeconds": {
|
|
27560
|
+
"description": "Default lifetime of credential offers in seconds. Can be overridden per offer request. Null or unset: offers do not expire.",
|
|
25745
27561
|
"anyOf": [
|
|
25746
27562
|
{
|
|
25747
|
-
"type": "
|
|
25748
|
-
"
|
|
25749
|
-
|
|
25750
|
-
"properties": {
|
|
25751
|
-
"format": {
|
|
25752
|
-
"type": "string",
|
|
25753
|
-
"description": "Attachment format identifier."
|
|
25754
|
-
},
|
|
25755
|
-
"data": {
|
|
25756
|
-
"description": "Attachment payload."
|
|
25757
|
-
},
|
|
25758
|
-
"credential_ids": {
|
|
25759
|
-
"description": "Optional credential query ids bound to this attachment.",
|
|
25760
|
-
"type": "array",
|
|
25761
|
-
"items": {
|
|
25762
|
-
"type": "string"
|
|
25763
|
-
}
|
|
25764
|
-
}
|
|
25765
|
-
},
|
|
25766
|
-
"required": [
|
|
25767
|
-
"format",
|
|
25768
|
-
"data"
|
|
25769
|
-
],
|
|
25770
|
-
"additionalProperties": false
|
|
25771
|
-
}
|
|
27563
|
+
"type": "integer",
|
|
27564
|
+
"minimum": 1,
|
|
27565
|
+
"maximum": 9007199254740991
|
|
25772
27566
|
},
|
|
25773
27567
|
{
|
|
25774
27568
|
"type": "null"
|
|
25775
27569
|
}
|
|
25776
27570
|
]
|
|
27571
|
+
}
|
|
27572
|
+
},
|
|
27573
|
+
"required": [
|
|
27574
|
+
"authorizationServers"
|
|
27575
|
+
],
|
|
27576
|
+
"additionalProperties": false,
|
|
27577
|
+
"title": "IssuanceConfig"
|
|
27578
|
+
}
|
|
27579
|
+
}
|
|
27580
|
+
},
|
|
27581
|
+
{
|
|
27582
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
27583
|
+
"$id": "https://eudiplo.dev/schemas/v4/TenantConfigFile.schema.json",
|
|
27584
|
+
"title": "TenantConfigFile",
|
|
27585
|
+
"type": "object",
|
|
27586
|
+
"properties": {
|
|
27587
|
+
"$schema": {
|
|
27588
|
+
"type": "string",
|
|
27589
|
+
"const": "https://eudiplo.dev/schemas/v4/TenantConfigFile.schema.json"
|
|
27590
|
+
},
|
|
27591
|
+
"metadata": {
|
|
27592
|
+
"type": "object",
|
|
27593
|
+
"properties": {
|
|
27594
|
+
"generation": {
|
|
27595
|
+
"type": "integer",
|
|
27596
|
+
"minimum": 1,
|
|
27597
|
+
"maximum": 9007199254740991
|
|
25777
27598
|
},
|
|
25778
|
-
"
|
|
25779
|
-
"
|
|
25780
|
-
"
|
|
25781
|
-
"
|
|
25782
|
-
"
|
|
27599
|
+
"ownership": {
|
|
27600
|
+
"type": "string",
|
|
27601
|
+
"enum": [
|
|
27602
|
+
"unmanaged",
|
|
27603
|
+
"file-managed"
|
|
25783
27604
|
]
|
|
27605
|
+
}
|
|
27606
|
+
},
|
|
27607
|
+
"additionalProperties": false
|
|
27608
|
+
},
|
|
27609
|
+
"spec": {
|
|
27610
|
+
"type": "object",
|
|
27611
|
+
"properties": {
|
|
27612
|
+
"name": {
|
|
27613
|
+
"default": "EUDIPLO",
|
|
27614
|
+
"description": "Display name of the tenant.",
|
|
27615
|
+
"type": "string",
|
|
27616
|
+
"minLength": 1
|
|
25784
27617
|
},
|
|
25785
|
-
"
|
|
25786
|
-
"description": "Optional
|
|
25787
|
-
"type":
|
|
25788
|
-
|
|
25789
|
-
"null"
|
|
25790
|
-
]
|
|
27618
|
+
"description": {
|
|
27619
|
+
"description": "Optional tenant description.",
|
|
27620
|
+
"type": "string",
|
|
27621
|
+
"minLength": 1
|
|
25791
27622
|
},
|
|
25792
|
-
"
|
|
25793
|
-
"description": "
|
|
25794
|
-
"type":
|
|
25795
|
-
|
|
25796
|
-
"
|
|
25797
|
-
|
|
27623
|
+
"sessionConfig": {
|
|
27624
|
+
"description": "Optional tenant-specific session storage configuration.",
|
|
27625
|
+
"type": "object",
|
|
27626
|
+
"properties": {
|
|
27627
|
+
"ttlSeconds": {
|
|
27628
|
+
"description": "Session time-to-live in seconds.",
|
|
27629
|
+
"type": "integer",
|
|
27630
|
+
"minimum": 60,
|
|
27631
|
+
"maximum": 9007199254740991
|
|
27632
|
+
},
|
|
27633
|
+
"cleanupMode": {
|
|
27634
|
+
"description": "Whether to fully delete or anonymize expired sessions.",
|
|
27635
|
+
"type": "string",
|
|
27636
|
+
"enum": [
|
|
27637
|
+
"full",
|
|
27638
|
+
"anonymize"
|
|
27639
|
+
]
|
|
27640
|
+
}
|
|
27641
|
+
},
|
|
27642
|
+
"additionalProperties": false
|
|
27643
|
+
},
|
|
27644
|
+
"statusListConfig": {
|
|
27645
|
+
"description": "Optional tenant-specific status list defaults.",
|
|
27646
|
+
"type": "object",
|
|
27647
|
+
"properties": {
|
|
27648
|
+
"capacity": {
|
|
27649
|
+
"description": "Default status list capacity.",
|
|
27650
|
+
"type": "integer",
|
|
27651
|
+
"minimum": 100,
|
|
27652
|
+
"maximum": 9007199254740991
|
|
27653
|
+
},
|
|
27654
|
+
"bits": {
|
|
27655
|
+
"description": "Bits-per-status setting (1, 2, 4, or 8).",
|
|
27656
|
+
"anyOf": [
|
|
27657
|
+
{
|
|
27658
|
+
"type": "number",
|
|
27659
|
+
"const": 1
|
|
27660
|
+
},
|
|
27661
|
+
{
|
|
27662
|
+
"type": "number",
|
|
27663
|
+
"const": 2
|
|
27664
|
+
},
|
|
27665
|
+
{
|
|
27666
|
+
"type": "number",
|
|
27667
|
+
"const": 4
|
|
27668
|
+
},
|
|
27669
|
+
{
|
|
27670
|
+
"type": "number",
|
|
27671
|
+
"const": 8
|
|
27672
|
+
}
|
|
27673
|
+
]
|
|
27674
|
+
},
|
|
27675
|
+
"ttl": {
|
|
27676
|
+
"description": "JWT TTL for status list tokens in seconds.",
|
|
27677
|
+
"type": "integer",
|
|
27678
|
+
"minimum": 60,
|
|
27679
|
+
"maximum": 9007199254740991
|
|
27680
|
+
},
|
|
27681
|
+
"immediateUpdate": {
|
|
27682
|
+
"description": "Regenerate status list JWTs immediately after status updates.",
|
|
27683
|
+
"type": "boolean"
|
|
27684
|
+
},
|
|
27685
|
+
"enableAggregation": {
|
|
27686
|
+
"description": "Include aggregation_uri in generated status list JWTs.",
|
|
27687
|
+
"type": "boolean"
|
|
27688
|
+
}
|
|
27689
|
+
},
|
|
27690
|
+
"additionalProperties": false
|
|
25798
27691
|
}
|
|
25799
27692
|
},
|
|
25800
27693
|
"required": [
|
|
25801
|
-
"
|
|
25802
|
-
"dcql_query"
|
|
27694
|
+
"name"
|
|
25803
27695
|
],
|
|
25804
27696
|
"additionalProperties": false,
|
|
25805
|
-
"
|
|
27697
|
+
"description": "Payload used when importing tenant metadata from config files."
|
|
25806
27698
|
}
|
|
25807
|
-
}
|
|
27699
|
+
},
|
|
27700
|
+
"required": [
|
|
27701
|
+
"$schema",
|
|
27702
|
+
"metadata",
|
|
27703
|
+
"spec"
|
|
27704
|
+
],
|
|
27705
|
+
"additionalProperties": false
|
|
25808
27706
|
},
|
|
25809
27707
|
{
|
|
25810
27708
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
25811
|
-
"$id": "https://eudiplo.dev/schemas/
|
|
27709
|
+
"$id": "https://eudiplo.dev/schemas/v5/IssuanceConfigFile.schema.json",
|
|
25812
27710
|
"title": "IssuanceConfigFile",
|
|
25813
27711
|
"type": "object",
|
|
25814
27712
|
"properties": {
|
|
25815
27713
|
"$schema": {
|
|
25816
27714
|
"type": "string",
|
|
25817
|
-
"const": "https://eudiplo.dev/schemas/
|
|
27715
|
+
"const": "https://eudiplo.dev/schemas/v5/IssuanceConfigFile.schema.json"
|
|
25818
27716
|
},
|
|
25819
27717
|
"metadata": {
|
|
25820
27718
|
"type": "object",
|
|
@@ -26374,8 +28272,9 @@ var CONFIG_SCHEMAS = [
|
|
|
26374
28272
|
]
|
|
26375
28273
|
},
|
|
26376
28274
|
"entityId": {
|
|
26377
|
-
"description": "
|
|
26378
|
-
"type": "string"
|
|
28275
|
+
"description": "Entity Identifier of the tenant's federation entity, usually {PUBLIC_URL}/issuers/{tenantId}: an https URL with a host and without query or fragment (OpenID Federation 1.0 Section 1.2). http is accepted only when OUTBOUND_URL_ALLOW_HTTP is true.",
|
|
28276
|
+
"type": "string",
|
|
28277
|
+
"pattern": "^(https?:\\/\\/[^\\s?#]+)?$"
|
|
26379
28278
|
},
|
|
26380
28279
|
"enforceSigningPolicy": {
|
|
26381
28280
|
"description": "Enforce strict signing policy checks.",
|
|
@@ -26410,6 +28309,80 @@ var CONFIG_SCHEMAS = [
|
|
|
26410
28309
|
"additionalProperties": false
|
|
26411
28310
|
},
|
|
26412
28311
|
"description": "Federation trust anchors."
|
|
28312
|
+
},
|
|
28313
|
+
"entityTypes": {
|
|
28314
|
+
"description": "Roles the entity configuration publishes metadata for. Defaults to openid_credential_issuer.",
|
|
28315
|
+
"minItems": 1,
|
|
28316
|
+
"type": "array",
|
|
28317
|
+
"items": {
|
|
28318
|
+
"type": "string",
|
|
28319
|
+
"enum": [
|
|
28320
|
+
"openid_credential_issuer",
|
|
28321
|
+
"openid_credential_verifier"
|
|
28322
|
+
]
|
|
28323
|
+
}
|
|
28324
|
+
},
|
|
28325
|
+
"authorityHints": {
|
|
28326
|
+
"description": "authority_hints of the entity configuration: the superiors that issue a subordinate statement about this entity. Defaults to the trust anchor entity ids.",
|
|
28327
|
+
"type": "array",
|
|
28328
|
+
"items": {
|
|
28329
|
+
"type": "string",
|
|
28330
|
+
"format": "uri"
|
|
28331
|
+
}
|
|
28332
|
+
},
|
|
28333
|
+
"entityKeyChainId": {
|
|
28334
|
+
"description": "Key chain with usage type 'federation' that signs the entity configuration. Without it, a federation key chain of the tenant is used; set it when the tenant has several.",
|
|
28335
|
+
"type": "string",
|
|
28336
|
+
"minLength": 1
|
|
28337
|
+
},
|
|
28338
|
+
"entityConfigurationLifetimeSeconds": {
|
|
28339
|
+
"description": "Lifetime (exp - iat) of the entity configuration in seconds. Defaults to 86400.",
|
|
28340
|
+
"type": "integer",
|
|
28341
|
+
"minimum": 60,
|
|
28342
|
+
"maximum": 31536e3
|
|
28343
|
+
},
|
|
28344
|
+
"trustMarks": {
|
|
28345
|
+
"description": "Trust mark JWTs issued to this entity, published in the entity configuration.",
|
|
28346
|
+
"type": "array",
|
|
28347
|
+
"items": {
|
|
28348
|
+
"type": "string",
|
|
28349
|
+
"minLength": 1
|
|
28350
|
+
}
|
|
28351
|
+
},
|
|
28352
|
+
"entityMetadata": {
|
|
28353
|
+
"description": "Informational federation_entity metadata of the entity configuration.",
|
|
28354
|
+
"type": "object",
|
|
28355
|
+
"properties": {
|
|
28356
|
+
"organization_name": {
|
|
28357
|
+
"type": "string",
|
|
28358
|
+
"minLength": 1
|
|
28359
|
+
},
|
|
28360
|
+
"contacts": {
|
|
28361
|
+
"minItems": 1,
|
|
28362
|
+
"type": "array",
|
|
28363
|
+
"items": {
|
|
28364
|
+
"type": "string",
|
|
28365
|
+
"minLength": 1
|
|
28366
|
+
}
|
|
28367
|
+
},
|
|
28368
|
+
"logo_uri": {
|
|
28369
|
+
"type": "string",
|
|
28370
|
+
"format": "uri"
|
|
28371
|
+
},
|
|
28372
|
+
"policy_uri": {
|
|
28373
|
+
"type": "string",
|
|
28374
|
+
"format": "uri"
|
|
28375
|
+
},
|
|
28376
|
+
"homepage_uri": {
|
|
28377
|
+
"type": "string",
|
|
28378
|
+
"format": "uri"
|
|
28379
|
+
}
|
|
28380
|
+
},
|
|
28381
|
+
"additionalProperties": false
|
|
28382
|
+
},
|
|
28383
|
+
"includeTrustChain": {
|
|
28384
|
+
"description": "Add the trust chain of this entity as trust_chain header to federation SD-JWT VCs and OID4VP request objects.",
|
|
28385
|
+
"type": "boolean"
|
|
26413
28386
|
}
|
|
26414
28387
|
},
|
|
26415
28388
|
"required": [
|
|
@@ -26669,12 +28642,7 @@ function inferredKind(path2) {
|
|
|
26669
28642
|
function wrapBare(kind, input, path2) {
|
|
26670
28643
|
if (!input || typeof input !== "object" || Array.isArray(input))
|
|
26671
28644
|
throw new Error(`${path2}: configuration must be an object`);
|
|
26672
|
-
const singleton =
|
|
26673
|
-
Tenant: "tenant",
|
|
26674
|
-
KmsConfig: "kms",
|
|
26675
|
-
RegistrarConfig: "registrar",
|
|
26676
|
-
IssuanceConfig: "issuance"
|
|
26677
|
-
};
|
|
28645
|
+
const singleton = CONFIG_SINGLETON_IDS;
|
|
26678
28646
|
const spec = structuredClone(input);
|
|
26679
28647
|
if (kind === "KeyChain" && spec.key && !spec.keySource) {
|
|
26680
28648
|
spec.keySource = { type: "private-jwk", jwk: spec.key };
|
|
@@ -29324,7 +31292,7 @@ function createDeploymentCommands(context, setExitCode) {
|
|
|
29324
31292
|
// package.json
|
|
29325
31293
|
var package_default = {
|
|
29326
31294
|
name: "@eudiplo/cli",
|
|
29327
|
-
version: "9.1.0-main.
|
|
31295
|
+
version: "9.1.0-main.54c58b8",
|
|
29328
31296
|
description: "Deployment-aware command line tools for EUDIPLO",
|
|
29329
31297
|
private: false,
|
|
29330
31298
|
type: "module",
|
|
@@ -29339,11 +31307,12 @@ var package_default = {
|
|
|
29339
31307
|
scripts: {
|
|
29340
31308
|
"assets:sync": "node scripts/sync-cli-assets.cjs",
|
|
29341
31309
|
"assets:check": "node scripts/check-cli-assets.cjs",
|
|
31310
|
+
"build:deps": 'pnpm --silent --filter "@eudiplo/cli^..." build',
|
|
29342
31311
|
build: "pnpm assets:sync && pnpm assets:check && tsc -p tsconfig.json",
|
|
29343
31312
|
"build:publish": "pnpm build && esbuild src/index.ts --bundle --platform=node --format=esm --target=node22.12 --alias:jsonc-parser=jsonc-parser/lib/esm/main.js --outfile=dist/index.js",
|
|
29344
31313
|
"build:sea:bundle": "pnpm assets:sync && pnpm assets:check && esbuild src/index.ts --bundle --platform=node --format=esm --target=node22.12 --alias:jsonc-parser=jsonc-parser/lib/esm/main.js --outfile=dist-sea/index.js",
|
|
29345
31314
|
"build:sea": "node scripts/build-cli-sea.mjs",
|
|
29346
|
-
dev: "tsx src/index.ts",
|
|
31315
|
+
dev: "pnpm -s build:deps && tsx src/index.ts",
|
|
29347
31316
|
test: "vitest run --root ../.. --project cli",
|
|
29348
31317
|
lint: "biome lint .",
|
|
29349
31318
|
format: "biome format --write .",
|
|
@@ -29384,12 +31353,12 @@ var package_default = {
|
|
|
29384
31353
|
"jsonc-parser": "^3.3.1"
|
|
29385
31354
|
},
|
|
29386
31355
|
devDependencies: {
|
|
29387
|
-
"@biomejs/biome": "2.
|
|
29388
|
-
"@types/node": "^26.6.
|
|
31356
|
+
"@biomejs/biome": "2.6.3",
|
|
31357
|
+
"@types/node": "^26.6.5",
|
|
29389
31358
|
esbuild: "^0.28.2",
|
|
29390
31359
|
tsx: "^4.23.15",
|
|
29391
31360
|
typescript: "^7.0.2",
|
|
29392
|
-
vitest: "5.0.
|
|
31361
|
+
vitest: "5.0.5"
|
|
29393
31362
|
}
|
|
29394
31363
|
};
|
|
29395
31364
|
|