@eudiplo/cli 9.1.0-main.892d49e → 9.1.0-main.8be8b4e
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/completion/action.js +3 -1
- package/dist/commands/completion/action.js.map +1 -1
- package/dist/commands/config/portability/migrations.spec.js +5 -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 +7 -8
- package/dist/commands/config/portability/upgrade.js.map +1 -1
- package/dist/commands/config/tenant/action.d.ts.map +1 -1
- package/dist/commands/config/tenant/action.js +3 -2
- package/dist/commands/config/tenant/action.js.map +1 -1
- package/dist/commands/config/validate/action.d.ts.map +1 -1
- package/dist/commands/config/validate/action.js +2 -1
- package/dist/commands/config/validate/action.js.map +1 -1
- package/dist/commands/config/validate/registry.json +21 -0
- package/dist/commands/init/action.d.ts.map +1 -1
- package/dist/commands/init/action.js +1 -11
- package/dist/commands/init/action.js.map +1 -1
- package/dist/commands/instance/action.d.ts +2 -0
- package/dist/commands/instance/action.d.ts.map +1 -1
- package/dist/commands/instance/action.js +68 -12
- package/dist/commands/instance/action.js.map +1 -1
- package/dist/commands/instance/index.d.ts.map +1 -1
- package/dist/commands/instance/index.js +21 -3
- package/dist/commands/instance/index.js.map +1 -1
- package/dist/commands/open/action.d.ts.map +1 -1
- package/dist/commands/open/action.js +13 -2
- package/dist/commands/open/action.js.map +1 -1
- package/dist/commands/status/action.d.ts.map +1 -1
- package/dist/commands/status/action.js +2 -1
- package/dist/commands/status/action.js.map +1 -1
- package/dist/index.js +21395 -5631
- package/dist/services/api-auth.d.ts.map +1 -1
- package/dist/services/api-auth.js +3 -2
- package/dist/services/api-auth.js.map +1 -1
- package/dist/services/browser.d.ts.map +1 -1
- package/dist/services/browser.js +3 -2
- package/dist/services/browser.js.map +1 -1
- package/dist/services/cli-config.d.ts +41 -1
- package/dist/services/cli-config.d.ts.map +1 -1
- package/dist/services/cli-config.js +217 -29
- package/dist/services/cli-config.js.map +1 -1
- package/dist/services/compose-project.d.ts +6 -0
- package/dist/services/compose-project.d.ts.map +1 -1
- package/dist/services/compose-project.js +13 -2
- package/dist/services/compose-project.js.map +1 -1
- package/dist/services/diagnostics.d.ts.map +1 -1
- package/dist/services/diagnostics.js +9 -8
- package/dist/services/diagnostics.js.map +1 -1
- package/dist/services/instance-selection.d.ts.map +1 -1
- package/dist/services/instance-selection.js +2 -5
- package/dist/services/instance-selection.js.map +1 -1
- package/dist/services/url.d.ts +21 -0
- package/dist/services/url.d.ts.map +1 -0
- package/dist/services/url.js +61 -0
- package/dist/services/url.js.map +1 -0
- package/package.json +6 -5
- package/templates/demo-config/clients/presentation-test.json +1 -1
- package/templates/demo-config/clients/test.json +7 -2
- package/templates/demo-config/info.json +1 -1
- package/templates/demo-config/issuance/credentials/citizen.json +1 -1
- package/templates/demo-config/issuance/credentials/pid-key.json +1 -1
- package/templates/demo-config/issuance/credentials/pid-mdoc.json +1 -1
- package/templates/demo-config/issuance/credentials/pid.json +1 -1
- package/templates/demo-config/issuance/issuance.json +1 -1
- package/templates/demo-config/key-chains/access.json +1 -1
- package/templates/demo-config/key-chains/attestation.json +3 -2
- package/templates/demo-config/key-chains/status-list.json +6 -5
- package/templates/demo-config/key-chains/trust-list.json +1 -1
- package/templates/demo-config/presentation/age-over-18.json +1 -1
- package/templates/demo-config/presentation/pid.json +1 -1
- package/templates/docker-compose.yml +2 -2
- package/templates/schemas/ClientConfigFile.schema.json +134 -1
- package/templates/schemas/CreateClientDto.schema.json +5 -1
- package/templates/schemas/CreateFederationTrustAnchorDto.schema.json +82 -0
- package/templates/schemas/CreateRegistrarConfigDto.schema.json +29 -0
- package/templates/schemas/CreateTenantDto.schema.json +8 -4
- package/templates/schemas/CredentialConfigCreate.schema.json +242 -11
- package/templates/schemas/CredentialConfigFile.schema.json +1592 -1
- package/templates/schemas/FederationTrustAnchorConfigFile.schema.json +60 -0
- package/templates/schemas/IssuanceConfig.schema.json +122 -9
- package/templates/schemas/IssuanceConfigFile.schema.json +2247 -1
- package/templates/schemas/KeyChainConfigFile.schema.json +875 -119
- package/templates/schemas/KeyChainCreateDto.schema.json +12 -1
- package/templates/schemas/KeyChainDefaultsConfigFile.schema.json +123 -0
- package/templates/schemas/KeyChainImportDto.schema.json +10 -0
- package/templates/schemas/KmsConfigDto.schema.json +186 -0
- package/templates/schemas/KmsConfigFile.schema.json +1026 -1
- package/templates/schemas/PresentationConfigCreateDto.schema.json +16 -0
- package/templates/schemas/PresentationConfigFile.schema.json +746 -1
- package/templates/schemas/RegistrarConfigFile.schema.json +101 -1
- package/templates/schemas/RotationPolicyCreateDto.schema.json +1 -1
- package/templates/schemas/TenantConfigFile.schema.json +334 -64
- package/templates/schemas/UpdateClientDto.schema.json +5 -1
- package/templates/schemas/UpdateFederationTrustAnchorDto.schema.json +70 -0
- package/templates/schemas/UpdateStatusListConfigDto.schema.json +5 -5
- package/templates/schemas.manifest.json +4 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import packageJson from "../../package.json" with { type: "json" };
|
|
2
2
|
import { fetchAuthenticated, requestAccessToken, withTrailingSlash, } from "./api-auth.js";
|
|
3
3
|
import { compareVersions, readBackendVersion, readProviderHealth, summarizeProviderHealth, } from "./backend-checks.js";
|
|
4
|
+
import { describeRequestError, redactUrl } from "./url.js";
|
|
4
5
|
import { checkTlsCertificate, readPeerCertificate, } from "./tls-expiry.js";
|
|
5
6
|
const publicUrlCheck = {
|
|
6
7
|
id: "public-url",
|
|
@@ -9,15 +10,15 @@ const publicUrlCheck = {
|
|
|
9
10
|
return {
|
|
10
11
|
name: "public URL",
|
|
11
12
|
status: "fail",
|
|
12
|
-
message: `${instance.url} is not a valid absolute URL`,
|
|
13
|
+
message: `${redactUrl(instance.url)} is not a valid absolute URL`,
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
return {
|
|
16
17
|
name: "public URL",
|
|
17
18
|
status: baseUrl.protocol === "https:" ? "pass" : "warn",
|
|
18
19
|
message: baseUrl.protocol === "https:"
|
|
19
|
-
? `${baseUrl.href} uses HTTPS`
|
|
20
|
-
: `${baseUrl.href} does not use HTTPS`,
|
|
20
|
+
? `${redactUrl(baseUrl.href)} uses HTTPS`
|
|
21
|
+
: `${redactUrl(baseUrl.href)} does not use HTTPS`,
|
|
21
22
|
};
|
|
22
23
|
},
|
|
23
24
|
};
|
|
@@ -62,7 +63,7 @@ const clientConnectivityCheck = {
|
|
|
62
63
|
return {
|
|
63
64
|
name: "client connectivity",
|
|
64
65
|
status: "fail",
|
|
65
|
-
message: `${instance.clientUrl} is not a valid absolute URL`,
|
|
66
|
+
message: `${redactUrl(instance.clientUrl)} is not a valid absolute URL`,
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
return checkEndpoint("client connectivity", clientUrl, "", context);
|
|
@@ -127,7 +128,7 @@ const kmsHealthCheck = {
|
|
|
127
128
|
return {
|
|
128
129
|
name: "KMS providers",
|
|
129
130
|
status: "skip",
|
|
130
|
-
message: `Needs a tenant client with issuance:manage or
|
|
131
|
+
message: `Needs a tenant client with issuance:manage, presentation:manage or keys:manage (${response.reason}).`,
|
|
131
132
|
};
|
|
132
133
|
}
|
|
133
134
|
return {
|
|
@@ -248,20 +249,20 @@ async function checkEndpoint(name, baseUrl, path, context) {
|
|
|
248
249
|
return {
|
|
249
250
|
name,
|
|
250
251
|
status: "pass",
|
|
251
|
-
message: `${url.href} returned HTTP ${response.status}`,
|
|
252
|
+
message: `${redactUrl(url.href)} returned HTTP ${response.status}`,
|
|
252
253
|
};
|
|
253
254
|
}
|
|
254
255
|
return {
|
|
255
256
|
name,
|
|
256
257
|
status: "fail",
|
|
257
|
-
message: `${url.href} returned HTTP ${response.status}`,
|
|
258
|
+
message: `${redactUrl(url.href)} returned HTTP ${response.status}`,
|
|
258
259
|
};
|
|
259
260
|
}
|
|
260
261
|
catch (error) {
|
|
261
262
|
return {
|
|
262
263
|
name,
|
|
263
264
|
status: "fail",
|
|
264
|
-
message: `${url.href} could not be reached: ${
|
|
265
|
+
message: `${redactUrl(url.href)} could not be reached: ${describeRequestError(error, url)}`,
|
|
265
266
|
};
|
|
266
267
|
}
|
|
267
268
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/services/diagnostics.ts"],"names":[],"mappings":"AAMA,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAElB,iBAAiB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,mBAAmB,EACnB,mBAAmB,GACtB,MAAM,iBAAiB,CAAC;AAoCzB,MAAM,cAAc,GAA0B;IAC1C,EAAE,EAAE,YAAY;IAChB,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO;gBACH,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,8BAA8B;
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/services/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-selection.d.ts","sourceRoot":"","sources":["../../src/services/instance-selection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"instance-selection.d.ts","sourceRoot":"","sources":["../../src/services/instance-selection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzD,wBAAgB,eAAe,CAC3B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,GACnB,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAS1C"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { readStringFlag } from "../options.js";
|
|
2
|
+
import { getInstance } from "./cli-config.js";
|
|
2
3
|
export function resolveInstance(config, parsed) {
|
|
3
4
|
const name = readStringFlag(parsed.flags, "instance") ?? config.defaultInstance;
|
|
4
5
|
if (!name) {
|
|
5
6
|
throw new Error("No instance selected. Use --instance or add an instance first.");
|
|
6
7
|
}
|
|
7
|
-
|
|
8
|
-
if (!instance) {
|
|
9
|
-
throw new Error(`Unknown instance: ${name}`);
|
|
10
|
-
}
|
|
11
|
-
return [name, instance];
|
|
8
|
+
return [name, getInstance(config, name)];
|
|
12
9
|
}
|
|
13
10
|
//# sourceMappingURL=instance-selection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-selection.js","sourceRoot":"","sources":["../../src/services/instance-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"instance-selection.js","sourceRoot":"","sources":["../../src/services/instance-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,UAAU,eAAe,CAC3B,MAAiB,EACjB,MAAkB;IAElB,MAAM,IAAI,GACN,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,eAAe,CAAC;IACvE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CACX,gEAAgE,CACnE,CAAC;IACN,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Throws unless `value` is an absolute HTTP(S) URL, as config loading requires. */
|
|
2
|
+
export declare function validateHttpUrl(value: string, label: string): void;
|
|
3
|
+
/** True when a URL carries user info such as `user:password@`. */
|
|
4
|
+
export declare function hasUserInfo(value: string): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Hides user info such as `user:password@` in a URL before it is printed.
|
|
7
|
+
* URLs without user info are returned exactly as configured. The masked form
|
|
8
|
+
* is built from the parsed URL, so spellings the URL parser accepts without
|
|
9
|
+
* `//`, such as `https:user:secret@host`, are masked too. A value that is not
|
|
10
|
+
* a URL is hidden entirely if it could contain user info.
|
|
11
|
+
*/
|
|
12
|
+
export declare function redactUrl(value: string): string;
|
|
13
|
+
/** Returns the URL without user info, for handing it to another program. */
|
|
14
|
+
export declare function stripUserInfo(url: URL): URL;
|
|
15
|
+
/**
|
|
16
|
+
* Describes a failed request without the user info of its URL. Node's fetch
|
|
17
|
+
* repeats the full URL in some errors, for example "Request cannot be
|
|
18
|
+
* constructed from a URL that includes credentials: <url>".
|
|
19
|
+
*/
|
|
20
|
+
export declare function describeRequestError(error: unknown, url: URL): string;
|
|
21
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/services/url.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASlE;AAED,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAa/C;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAK3C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAGrE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** Throws unless `value` is an absolute HTTP(S) URL, as config loading requires. */
|
|
2
|
+
export function validateHttpUrl(value, label) {
|
|
3
|
+
try {
|
|
4
|
+
const url = new URL(value);
|
|
5
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") {
|
|
6
|
+
throw new Error("Unsupported URL protocol.");
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
throw new Error(`${label} must be an absolute HTTP(S) URL.`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** True when a URL carries user info such as `user:password@`. */
|
|
14
|
+
export function hasUserInfo(value) {
|
|
15
|
+
try {
|
|
16
|
+
const url = new URL(value);
|
|
17
|
+
return url.username !== "" || url.password !== "";
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Hides user info such as `user:password@` in a URL before it is printed.
|
|
25
|
+
* URLs without user info are returned exactly as configured. The masked form
|
|
26
|
+
* is built from the parsed URL, so spellings the URL parser accepts without
|
|
27
|
+
* `//`, such as `https:user:secret@host`, are masked too. A value that is not
|
|
28
|
+
* a URL is hidden entirely if it could contain user info.
|
|
29
|
+
*/
|
|
30
|
+
export function redactUrl(value) {
|
|
31
|
+
let url;
|
|
32
|
+
try {
|
|
33
|
+
url = new URL(value);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return value.includes("@") ? "***" : value;
|
|
37
|
+
}
|
|
38
|
+
if (url.username === "" && url.password === "") {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
url.username = "***";
|
|
42
|
+
url.password = "";
|
|
43
|
+
return url.href;
|
|
44
|
+
}
|
|
45
|
+
/** Returns the URL without user info, for handing it to another program. */
|
|
46
|
+
export function stripUserInfo(url) {
|
|
47
|
+
const stripped = new URL(url.href);
|
|
48
|
+
stripped.username = "";
|
|
49
|
+
stripped.password = "";
|
|
50
|
+
return stripped;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Describes a failed request without the user info of its URL. Node's fetch
|
|
54
|
+
* repeats the full URL in some errors, for example "Request cannot be
|
|
55
|
+
* constructed from a URL that includes credentials: <url>".
|
|
56
|
+
*/
|
|
57
|
+
export function describeRequestError(error, url) {
|
|
58
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
59
|
+
return message.replaceAll(url.href, redactUrl(url.href));
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/services/url.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAa;IACxD,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,mCAAmC,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,WAAW,CAAC,KAAa;IACrC,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACnC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACD,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;IACrB,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;IAClB,OAAO,GAAG,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,GAAQ;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,GAAQ;IACzD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eudiplo/cli",
|
|
3
|
-
"version": "9.1.0-main.
|
|
3
|
+
"version": "9.1.0-main.8be8b4e",
|
|
4
4
|
"description": "Deployment-aware command line tools for EUDIPLO",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -15,11 +15,12 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"assets:sync": "node scripts/sync-cli-assets.cjs",
|
|
17
17
|
"assets:check": "node scripts/check-cli-assets.cjs",
|
|
18
|
+
"build:deps": "pnpm --silent --filter \"@eudiplo/cli^...\" build",
|
|
18
19
|
"build": "pnpm assets:sync && pnpm assets:check && tsc -p tsconfig.json",
|
|
19
20
|
"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",
|
|
20
21
|
"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",
|
|
21
22
|
"build:sea": "node scripts/build-cli-sea.mjs",
|
|
22
|
-
"dev": "tsx src/index.ts",
|
|
23
|
+
"dev": "pnpm -s build:deps && tsx src/index.ts",
|
|
23
24
|
"test": "vitest run --root ../.. --project cli",
|
|
24
25
|
"lint": "biome lint .",
|
|
25
26
|
"format": "biome format --write .",
|
|
@@ -59,11 +60,11 @@
|
|
|
59
60
|
"jsonc-parser": "^3.3.1"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
|
-
"@biomejs/biome": "2.
|
|
63
|
-
"@types/node": "^26.6.
|
|
63
|
+
"@biomejs/biome": "2.6.3",
|
|
64
|
+
"@types/node": "^26.6.5",
|
|
64
65
|
"esbuild": "^0.28.2",
|
|
65
66
|
"tsx": "^4.23.15",
|
|
66
67
|
"typescript": "^7.0.2",
|
|
67
|
-
"vitest": "5.0.
|
|
68
|
+
"vitest": "5.0.5"
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://eudiplo.dev/schemas/
|
|
2
|
+
"$schema": "https://eudiplo.dev/schemas/v2/ClientConfigFile.schema.json",
|
|
3
3
|
"metadata": {
|
|
4
4
|
"generation": 1
|
|
5
5
|
},
|
|
@@ -12,7 +12,12 @@
|
|
|
12
12
|
"issuance:offer",
|
|
13
13
|
"issuance:manage",
|
|
14
14
|
"presentation:request",
|
|
15
|
-
"presentation:manage"
|
|
15
|
+
"presentation:manage",
|
|
16
|
+
"registrar:manage",
|
|
17
|
+
"sessions:read",
|
|
18
|
+
"credentials:status",
|
|
19
|
+
"audit:read",
|
|
20
|
+
"keys:manage"
|
|
16
21
|
]
|
|
17
22
|
}
|
|
18
23
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://eudiplo.dev/schemas/
|
|
2
|
+
"$schema": "https://eudiplo.dev/schemas/v4/KeyChainConfigFile.schema.json",
|
|
3
3
|
"metadata": {
|
|
4
4
|
"generation": 1
|
|
5
5
|
},
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"kmsProvider": "db",
|
|
22
22
|
"rotationPolicy": {
|
|
23
23
|
"certValidityDays": 30,
|
|
24
|
-
"enabled": true
|
|
24
|
+
"enabled": true,
|
|
25
|
+
"intervalDays": 20
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://eudiplo.dev/schemas/
|
|
2
|
+
"$schema": "https://eudiplo.dev/schemas/v4/KeyChainConfigFile.schema.json",
|
|
3
3
|
"metadata": {
|
|
4
4
|
"generation": 1
|
|
5
5
|
},
|
|
@@ -11,17 +11,18 @@
|
|
|
11
11
|
"type": "private-jwk",
|
|
12
12
|
"jwk": {
|
|
13
13
|
"crv": "P-256",
|
|
14
|
-
"d": "
|
|
14
|
+
"d": "iAUEObUwUI-QDXsFYH9SLm7D-yuEUsOD73YG_jBgLGk",
|
|
15
15
|
"kty": "EC",
|
|
16
|
-
"x": "
|
|
17
|
-
"y": "
|
|
16
|
+
"x": "sSdNHYiCOK0E8lNE9rUQLUN3MbVeDnxjRwVwRiI9BqY",
|
|
17
|
+
"y": "xRP83r38x_MYGsteGhUW25Q0XVXA-ZRXlP38a8URPDg",
|
|
18
18
|
"alg": "ES256"
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
"kmsProvider": "db",
|
|
22
22
|
"rotationPolicy": {
|
|
23
23
|
"certValidityDays": 30,
|
|
24
|
-
"enabled": true
|
|
24
|
+
"enabled": true,
|
|
25
|
+
"intervalDays": 20
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
}
|
|
@@ -89,7 +89,7 @@ services:
|
|
|
89
89
|
- eudiplo-network
|
|
90
90
|
|
|
91
91
|
rustfs:
|
|
92
|
-
image: rustfs/rustfs:1.0.
|
|
92
|
+
image: rustfs/rustfs:1.0.3
|
|
93
93
|
restart: always
|
|
94
94
|
profiles: ['s3', 'standard', 'full']
|
|
95
95
|
ports:
|
|
@@ -114,7 +114,7 @@ services:
|
|
|
114
114
|
|
|
115
115
|
# S3 bucket initialization using the AWS CLI
|
|
116
116
|
rustfs-init:
|
|
117
|
-
image: amazon/aws-cli:2.
|
|
117
|
+
image: amazon/aws-cli:2.38.5
|
|
118
118
|
profiles: ['s3', 'standard', 'full']
|
|
119
119
|
depends_on:
|
|
120
120
|
rustfs:
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"properties": {
|
|
10
10
|
"$schema": {
|
|
11
11
|
"type": "string",
|
|
12
|
-
"const": "https://eudiplo.dev/schemas/
|
|
12
|
+
"const": "https://eudiplo.dev/schemas/v2/ClientConfigFile.schema.json"
|
|
13
13
|
},
|
|
14
14
|
"metadata": {
|
|
15
15
|
"type": "object",
|
|
@@ -55,6 +55,139 @@
|
|
|
55
55
|
"spec"
|
|
56
56
|
],
|
|
57
57
|
"additionalProperties": false
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
61
|
+
"$id": "https://eudiplo.dev/schemas/v1/ClientConfigFile.schema.json",
|
|
62
|
+
"title": "ClientConfigFile",
|
|
63
|
+
"type": "object",
|
|
64
|
+
"properties": {
|
|
65
|
+
"$schema": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"const": "https://eudiplo.dev/schemas/v1/ClientConfigFile.schema.json"
|
|
68
|
+
},
|
|
69
|
+
"metadata": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"properties": {
|
|
72
|
+
"generation": {
|
|
73
|
+
"type": "integer",
|
|
74
|
+
"minimum": 1,
|
|
75
|
+
"description": "Monotonically increasing configuration generation."
|
|
76
|
+
},
|
|
77
|
+
"ownership": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"enum": [
|
|
80
|
+
"unmanaged",
|
|
81
|
+
"file-managed"
|
|
82
|
+
],
|
|
83
|
+
"description": "Requested ownership recorded when the document is applied."
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"additionalProperties": false
|
|
87
|
+
},
|
|
88
|
+
"spec": {
|
|
89
|
+
"allOf": [
|
|
90
|
+
{
|
|
91
|
+
"$ref": "#/$defs/CreateClientDto"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"type": "object",
|
|
95
|
+
"required": [
|
|
96
|
+
"clientId"
|
|
97
|
+
],
|
|
98
|
+
"properties": {
|
|
99
|
+
"clientId": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"minLength": 1
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": [
|
|
109
|
+
"$schema",
|
|
110
|
+
"spec"
|
|
111
|
+
],
|
|
112
|
+
"additionalProperties": false,
|
|
113
|
+
"$defs": {
|
|
114
|
+
"CreateClientDto": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"properties": {
|
|
117
|
+
"clientId": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"minLength": 1,
|
|
120
|
+
"pattern": "^[A-Za-z0-9._:-]+$",
|
|
121
|
+
"description": "Unique client identifier."
|
|
122
|
+
},
|
|
123
|
+
"secret": {
|
|
124
|
+
"description": "Optional client secret for confidential clients.",
|
|
125
|
+
"type": "string",
|
|
126
|
+
"minLength": 1
|
|
127
|
+
},
|
|
128
|
+
"description": {
|
|
129
|
+
"description": "Optional human-readable client description.",
|
|
130
|
+
"type": "string",
|
|
131
|
+
"minLength": 1
|
|
132
|
+
},
|
|
133
|
+
"roles": {
|
|
134
|
+
"minItems": 1,
|
|
135
|
+
"type": "array",
|
|
136
|
+
"items": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"enum": [
|
|
139
|
+
"presentation:manage",
|
|
140
|
+
"presentation:request",
|
|
141
|
+
"issuance:manage",
|
|
142
|
+
"issuance:offer",
|
|
143
|
+
"clients:manage",
|
|
144
|
+
"users:manage",
|
|
145
|
+
"tenants:manage",
|
|
146
|
+
"tenant:admin",
|
|
147
|
+
"registrar:manage"
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
"description": "Roles assigned to the client. At least one role is required."
|
|
151
|
+
},
|
|
152
|
+
"allowedPresentationConfigs": {
|
|
153
|
+
"description": "Optional allow-list of presentation config ids this client can use.",
|
|
154
|
+
"anyOf": [
|
|
155
|
+
{
|
|
156
|
+
"type": "array",
|
|
157
|
+
"items": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"minLength": 1
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"type": "null"
|
|
164
|
+
}
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
"allowedIssuanceConfigs": {
|
|
168
|
+
"description": "Optional allow-list of issuance config ids this client can use.",
|
|
169
|
+
"anyOf": [
|
|
170
|
+
{
|
|
171
|
+
"type": "array",
|
|
172
|
+
"items": {
|
|
173
|
+
"type": "string",
|
|
174
|
+
"minLength": 1
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"type": "null"
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"required": [
|
|
184
|
+
"clientId",
|
|
185
|
+
"roles"
|
|
186
|
+
],
|
|
187
|
+
"additionalProperties": false,
|
|
188
|
+
"title": "CreateClientDto"
|
|
189
|
+
}
|
|
190
|
+
}
|
|
58
191
|
}
|
|
59
192
|
]
|
|
60
193
|
}
|
|
@@ -32,7 +32,11 @@
|
|
|
32
32
|
"users:manage",
|
|
33
33
|
"tenants:manage",
|
|
34
34
|
"tenant:admin",
|
|
35
|
-
"registrar:manage"
|
|
35
|
+
"registrar:manage",
|
|
36
|
+
"audit:read",
|
|
37
|
+
"sessions:read",
|
|
38
|
+
"credentials:status",
|
|
39
|
+
"keys:manage"
|
|
36
40
|
]
|
|
37
41
|
},
|
|
38
42
|
"description": "Roles assigned to the client. At least one role is required."
|