@eudiplo/cli 8.0.2-main.e4bc4d4 → 8.1.0-main.05183ed
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/README.md +2 -2
- package/dist/commands/config/portability/migrations.spec.js +5 -3
- package/dist/commands/config/portability/migrations.spec.js.map +1 -1
- package/dist/commands/doctor/action.d.ts +2 -1
- package/dist/commands/doctor/action.d.ts.map +1 -1
- package/dist/commands/doctor/action.js +25 -7
- package/dist/commands/doctor/action.js.map +1 -1
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +2 -0
- package/dist/commands/doctor/index.js.map +1 -1
- package/dist/index.js +2500 -467
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/services/api-auth.d.ts +31 -0
- package/dist/services/api-auth.d.ts.map +1 -0
- package/dist/services/api-auth.js +78 -0
- package/dist/services/api-auth.js.map +1 -0
- package/dist/services/backend-checks.d.ts +24 -0
- package/dist/services/backend-checks.d.ts.map +1 -0
- package/dist/services/backend-checks.js +105 -0
- package/dist/services/backend-checks.js.map +1 -0
- package/dist/services/compose-project.js +6 -6
- package/dist/services/compose-project.js.map +1 -1
- package/dist/services/compose-upgrade.js +1 -1
- package/dist/services/compose-upgrade.js.map +1 -1
- package/dist/services/container-state.d.ts +14 -0
- package/dist/services/container-state.d.ts.map +1 -0
- package/dist/services/container-state.js +70 -0
- package/dist/services/container-state.js.map +1 -0
- package/dist/services/deployment-drivers.d.ts.map +1 -1
- package/dist/services/deployment-drivers.js +77 -0
- package/dist/services/deployment-drivers.js.map +1 -1
- package/dist/services/diagnostics.d.ts +19 -2
- package/dist/services/diagnostics.d.ts.map +1 -1
- package/dist/services/diagnostics.js +219 -50
- package/dist/services/diagnostics.js.map +1 -1
- package/dist/services/tls-expiry.d.ts +16 -0
- package/dist/services/tls-expiry.d.ts.map +1 -0
- package/dist/services/tls-expiry.js +80 -0
- package/dist/services/tls-expiry.js.map +1 -0
- package/dist/types.d.ts +4 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/templates/demo-config/trust-lists/trustlist-580831bc-ef11-43f4-a3be-a2b6bf1b29a3-config.json +1 -97
- package/templates/docker-compose.yml +35 -28
- package/templates/schemas/IssuanceConfig.schema.json +13 -0
- package/templates/schemas/IssuanceConfigFile.schema.json +663 -1
- package/templates/schemas/PresentationConfigCreateDto.schema.json +3 -6
- package/templates/schemas/PresentationConfigFile.schema.json +723 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ The EUDIPLO CLI provides deployment-neutral commands for inspecting an EUDIPLO
|
|
|
4
4
|
instance and deployment-driver commands for local Compose demos.
|
|
5
5
|
|
|
6
6
|
For installation, command reference, configuration validation, standalone
|
|
7
|
-
releases, and local development, see the [CLI documentation](../docs/docs/
|
|
7
|
+
releases, and local development, see the [CLI documentation](../docs/docs/operate/cli.md).
|
|
8
8
|
|
|
9
9
|
## Quick Start
|
|
10
10
|
|
|
@@ -112,7 +112,7 @@ Interactive `demo` runs use the same directory prompt. Pass a positional
|
|
|
112
112
|
directory, `--directory`, or `--yes` to skip it.
|
|
113
113
|
|
|
114
114
|
`init --preset minimal` writes a local `.eudiplo.env` using SQLite and local
|
|
115
|
-
storage. `standard` provisions PostgreSQL and
|
|
115
|
+
storage. `standard` provisions PostgreSQL and RustFS, while `full` additionally
|
|
116
116
|
provisions Vault. Arbitrary combinations are supported through the component
|
|
117
117
|
flags.
|
|
118
118
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
2
|
import { upgradeDocument } from "./migrations.js";
|
|
3
3
|
describe("offline configuration migrations", () => {
|
|
4
|
-
it("upgrades a v1 document without retaining metadata.id", () => {
|
|
4
|
+
it("upgrades a v1 issuance document to v2 without retaining metadata.id", () => {
|
|
5
5
|
const result = upgradeDocument({
|
|
6
6
|
$schema: "https://eudiplo.dev/schemas/v1/IssuanceConfigFile.schema.json",
|
|
7
7
|
metadata: { generation: 1 },
|
|
@@ -12,11 +12,13 @@ describe("offline configuration migrations", () => {
|
|
|
12
12
|
],
|
|
13
13
|
},
|
|
14
14
|
});
|
|
15
|
-
expect(result.document.$schema).toBe("https://eudiplo.dev/schemas/
|
|
15
|
+
expect(result.document.$schema).toBe("https://eudiplo.dev/schemas/v2/IssuanceConfigFile.schema.json");
|
|
16
16
|
expect(result.document.spec.walletProviderTrustLists).toEqual([
|
|
17
17
|
{ url: "https://example.com/trust-list" },
|
|
18
18
|
]);
|
|
19
|
-
expect(result.migrations).toEqual([
|
|
19
|
+
expect(result.migrations).toEqual([
|
|
20
|
+
"issuance-config-v2-offer-lifetime",
|
|
21
|
+
]);
|
|
20
22
|
expect(result.issues).toEqual([]);
|
|
21
23
|
});
|
|
22
24
|
it("refuses to guess when a document is newer than the CLI", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.spec.js","sourceRoot":"","sources":["../../../../src/commands/config/portability/migrations.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"migrations.spec.js","sourceRoot":"","sources":["../../../../src/commands/config/portability/migrations.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC3E,MAAM,MAAM,GAAG,eAAe,CAAC;YAC3B,OAAO,EACH,+DAA+D;YACnE,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;YAC3B,IAAI,EAAE;gBACF,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;gBAC1D,wBAAwB,EAAE;oBACtB,EAAE,GAAG,EAAE,gCAAgC,EAAE;iBAC5C;aACJ;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAChC,+DAA+D,CAClE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,OAAO,CAAC;YAC1D,EAAE,GAAG,EAAE,gCAAgC,EAAE;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;YAC9B,mCAAmC;SACtC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,GAAG,EAAE,CACR,eAAe,CAAC;YACZ,OAAO,EACH,oEAAoE;YACxE,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,EAAE;SACX,CAAC,CACL,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type DoctorOptions } from "../../services/diagnostics.js";
|
|
1
2
|
import type { CliConfig, CommandContext, ParsedArgs } from "../../types.js";
|
|
2
|
-
export declare function runDoctorCommand(config: CliConfig, parsed: ParsedArgs, context: CommandContext): Promise<number>;
|
|
3
|
+
export declare function runDoctorCommand(config: CliConfig, parsed: ParsedArgs, context: CommandContext, options?: DoctorOptions): Promise<number>;
|
|
3
4
|
//# sourceMappingURL=action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/action.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/action.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,aAAa,EAMrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACR,SAAS,EACT,cAAc,EAEd,UAAU,EACb,MAAM,gBAAgB,CAAC;AAExB,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
|
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
import { drivers } from "../../services/deployment-drivers.js";
|
|
2
|
-
import { formatChecks, hasFailedChecks, runDoctor, } from "../../services/diagnostics.js";
|
|
2
|
+
import { formatChecks, formatSummary, hasFailedChecks, runDoctor, summarizeChecks, } from "../../services/diagnostics.js";
|
|
3
3
|
import { resolveInstance } from "../../services/instance-selection.js";
|
|
4
|
-
export async function runDoctorCommand(config, parsed, context) {
|
|
5
|
-
const
|
|
4
|
+
export async function runDoctorCommand(config, parsed, context, options = {}) {
|
|
5
|
+
const strict = parsed.flags.strict === true;
|
|
6
|
+
const instances = parsed.flags.all === true
|
|
7
|
+
? Object.keys(config.instances)
|
|
8
|
+
: [resolveInstance(config, parsed)[0]];
|
|
9
|
+
if (instances.length === 0) {
|
|
10
|
+
throw new Error("No instances are configured.");
|
|
11
|
+
}
|
|
12
|
+
let failed = false;
|
|
13
|
+
for (const [index, instanceName] of instances.entries()) {
|
|
14
|
+
const instance = config.instances[instanceName];
|
|
15
|
+
if (index > 0) {
|
|
16
|
+
context.stdout.write("\n");
|
|
17
|
+
}
|
|
18
|
+
const checks = await runDiagnostics(instance, context, options);
|
|
19
|
+
context.stdout.write(`Doctor for ${instanceName} (${instance.target})\n`);
|
|
20
|
+
context.stdout.write(`${formatChecks(checks)}\n`);
|
|
21
|
+
context.stdout.write(`${formatSummary(summarizeChecks(checks))}\n`);
|
|
22
|
+
failed = hasFailedChecks(checks, strict) || failed;
|
|
23
|
+
}
|
|
24
|
+
return failed ? 1 : 0;
|
|
25
|
+
}
|
|
26
|
+
async function runDiagnostics(instance, context, options) {
|
|
6
27
|
const driver = drivers[instance.target];
|
|
7
|
-
|
|
8
|
-
context.stdout.write(`Doctor for ${instanceName} (${instance.target})\n`);
|
|
9
|
-
context.stdout.write(`${formatChecks(checks)}\n`);
|
|
10
|
-
return hasFailedChecks(checks) ? 1 : 0;
|
|
28
|
+
return runDoctor(instance, context, await driver.diagnostics(instance, context), options);
|
|
11
29
|
}
|
|
12
30
|
//# sourceMappingURL=action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/doctor/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/doctor/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAEH,YAAY,EACZ,aAAa,EACb,eAAe,EACf,SAAS,EACT,eAAe,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAQvE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAAiB,EACjB,MAAkB,EAClB,OAAuB,EACvB,OAAO,GAAkB,EAAE;IAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;IAC5C,MAAM,SAAS,GACX,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI;QACrB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC/B,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAChB,cAAc,YAAY,KAAK,QAAQ,CAAC,MAAM,KAAK,CACtD,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC;IACvD,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,cAAc,CACzB,QAAwC,EACxC,OAAuB,EACvB,OAAsB;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,SAAS,CACZ,QAAQ,EACR,OAAO,EACP,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC3C,OAAO,CACV,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAG1E,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAG1E,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,CAmBT"}
|
|
@@ -5,6 +5,8 @@ export function createDoctorCommand(context, setExitCode) {
|
|
|
5
5
|
return new Command("doctor")
|
|
6
6
|
.description("Run deployment diagnostics")
|
|
7
7
|
.option("--instance <name>", "select a configured instance")
|
|
8
|
+
.option("--all", "run the checks for every configured instance")
|
|
9
|
+
.option("--strict", "treat warnings as failures (skipped checks never fail)")
|
|
8
10
|
.action(async (options) => {
|
|
9
11
|
const { config } = await loadCliState(context);
|
|
10
12
|
setExitCode(await runDoctorCommand(config, parsedArgs("doctor", undefined, [], options), context));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,mBAAmB,CAC/B,OAAuB,EACvB,WAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACvB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,WAAW,CACP,MAAM,gBAAgB,CAClB,MAAM,EACN,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAC5C,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,mBAAmB,CAC/B,OAAuB,EACvB,WAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACvB,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,OAAO,EAAE,8CAA8C,CAAC;SAC/D,MAAM,CACH,UAAU,EACV,wDAAwD,CAC3D;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,WAAW,CACP,MAAM,gBAAgB,CAClB,MAAM,EACN,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAC5C,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC"}
|