@eudiplo/cli 8.0.2 → 8.1.0-main.1c091cc
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 +7 -3
- package/dist/commands/completion/action.js +1 -1
- package/dist/commands/completion/action.js.map +1 -1
- package/dist/commands/completion/index.d.ts.map +1 -1
- package/dist/commands/completion/index.js +6 -1
- package/dist/commands/completion/index.js.map +1 -1
- package/dist/commands/config/action.d.ts.map +1 -1
- package/dist/commands/config/action.js.map +1 -1
- package/dist/commands/config/portability/migrations.spec.js +5 -3
- package/dist/commands/config/portability/migrations.spec.js.map +1 -1
- package/dist/commands/config/validate/schemas.js.map +1 -1
- package/dist/commands/config/validate/validator.js +7 -4
- package/dist/commands/config/validate/validator.js.map +1 -1
- package/dist/commands/deployment/action.d.ts +1 -1
- package/dist/commands/deployment/action.d.ts.map +1 -1
- package/dist/commands/deployment/action.js.map +1 -1
- package/dist/commands/deployment/index.d.ts.map +1 -1
- package/dist/commands/deployment/index.js +7 -4
- package/dist/commands/deployment/index.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/commands/instance/action.d.ts.map +1 -1
- package/dist/commands/instance/action.js.map +1 -1
- package/dist/commands/open/action.d.ts +9 -0
- package/dist/commands/open/action.d.ts.map +1 -0
- package/dist/commands/open/action.js +41 -0
- package/dist/commands/open/action.js.map +1 -0
- package/dist/commands/open/index.d.ts +5 -0
- package/dist/commands/open/index.d.ts.map +1 -0
- package/dist/commands/open/index.js +15 -0
- package/dist/commands/open/index.js.map +1 -0
- package/dist/commands/upgrade/action.d.ts +3 -0
- package/dist/commands/upgrade/action.d.ts.map +1 -0
- package/dist/commands/upgrade/action.js +95 -0
- package/dist/commands/upgrade/action.js.map +1 -0
- package/dist/commands/upgrade/index.d.ts +5 -0
- package/dist/commands/upgrade/index.d.ts.map +1 -0
- package/dist/commands/upgrade/index.js +15 -0
- package/dist/commands/upgrade/index.js.map +1 -0
- package/dist/index.js +3948 -593
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +5 -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/browser.d.ts +30 -0
- package/dist/services/browser.d.ts.map +1 -0
- package/dist/services/browser.js +102 -0
- package/dist/services/browser.js.map +1 -0
- package/dist/services/cli-config.d.ts.map +1 -1
- package/dist/services/cli-config.js +5 -2
- package/dist/services/cli-config.js.map +1 -1
- package/dist/services/compose-args.d.ts +28 -0
- package/dist/services/compose-args.d.ts.map +1 -0
- package/dist/services/compose-args.js +117 -0
- package/dist/services/compose-args.js.map +1 -0
- package/dist/services/compose-project.d.ts.map +1 -1
- package/dist/services/compose-project.js +18 -13
- package/dist/services/compose-project.js.map +1 -1
- package/dist/services/compose-upgrade.d.ts +40 -0
- package/dist/services/compose-upgrade.d.ts.map +1 -0
- package/dist/services/compose-upgrade.js +102 -0
- package/dist/services/compose-upgrade.js.map +1 -0
- 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 +8 -1
- package/dist/services/deployment-drivers.d.ts.map +1 -1
- package/dist/services/deployment-drivers.js +162 -19
- 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/kubectl.d.ts.map +1 -1
- package/dist/services/kubectl.js +1 -6
- package/dist/services/kubectl.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 +5 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -4
- 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/DCQL.schema.json +30 -4
- package/templates/schemas/IssuanceConfig.schema.json +13 -0
- package/templates/schemas/IssuanceConfigFile.schema.json +663 -1
- package/templates/schemas/KeyChainConfigFile.schema.json +7 -3
- package/templates/schemas/KeyChainImportDto.schema.json +7 -3
- package/templates/schemas/PresentationConfigCreateDto.schema.json +33 -10
- package/templates/schemas/PresentationConfigFile.schema.json +1442 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { readStringFlag } from "../../options.js";
|
|
4
|
+
import { buildComposePullArgs, buildComposeUpArgs, } from "../../services/compose-args.js";
|
|
5
|
+
import { migrationNotes, planImageUpgrade, } from "../../services/compose-upgrade.js";
|
|
6
|
+
import { assertWritable, runCompose, unsupportedCommand, } from "../../services/deployment-drivers.js";
|
|
7
|
+
import { resolveInstance } from "../../services/instance-selection.js";
|
|
8
|
+
import { createPrompter } from "../shared.js";
|
|
9
|
+
export async function runUpgradeCommand(config, parsed, context) {
|
|
10
|
+
const [instanceName, instance] = resolveInstance(config, parsed);
|
|
11
|
+
if (instance.target !== "compose") {
|
|
12
|
+
throw new Error(unsupportedCommand("upgrade", instance.target));
|
|
13
|
+
}
|
|
14
|
+
const options = {
|
|
15
|
+
instanceName,
|
|
16
|
+
instance,
|
|
17
|
+
args: [],
|
|
18
|
+
flags: parsed.flags,
|
|
19
|
+
context,
|
|
20
|
+
};
|
|
21
|
+
assertWritable(options);
|
|
22
|
+
const tag = readStringFlag(parsed.flags, "image-tag");
|
|
23
|
+
if (!tag) {
|
|
24
|
+
throw new Error("upgrade requires --image-tag <tag>.");
|
|
25
|
+
}
|
|
26
|
+
if (!instance.envFile) {
|
|
27
|
+
throw new Error(`Instance ${instanceName} has no env file, so its images are not managed by the CLI.`);
|
|
28
|
+
}
|
|
29
|
+
const envPath = resolve(instance.projectDirectory ?? context.cwd, instance.envFile);
|
|
30
|
+
const original = await readEnvFile(envPath);
|
|
31
|
+
const plan = planImageUpgrade(original, tag);
|
|
32
|
+
if (plan.changes.length === 0) {
|
|
33
|
+
context.stdout.write(`${instanceName} already uses image tag ${tag}.\n`);
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
context.stdout.write(`Upgrade ${instanceName}:\n`);
|
|
37
|
+
for (const change of plan.changes) {
|
|
38
|
+
context.stdout.write(` ${change.repository}: ${change.from} -> ${change.to}\n`);
|
|
39
|
+
}
|
|
40
|
+
const notes = new Set(plan.changes.flatMap((change) => migrationNotes(change.from, change.to)));
|
|
41
|
+
for (const note of notes) {
|
|
42
|
+
context.stdout.write(`Note: ${note}\n`);
|
|
43
|
+
}
|
|
44
|
+
if (!(await confirmUpgrade(parsed, context))) {
|
|
45
|
+
context.stdout.write("Upgrade cancelled. Nothing was changed.\n");
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
// Writing to the existing path keeps its owner-only permissions.
|
|
49
|
+
await writeFile(envPath, plan.content, "utf8");
|
|
50
|
+
const pulled = await runCompose(buildComposePullArgs(undefined), options);
|
|
51
|
+
if (pulled !== 0) {
|
|
52
|
+
await writeFile(envPath, original, "utf8");
|
|
53
|
+
context.stderr.write(`Pulling the new images failed. Restored the previous image tags in ${envPath}.\n`);
|
|
54
|
+
return pulled;
|
|
55
|
+
}
|
|
56
|
+
const recreated = await runCompose(buildComposeUpArgs(), options);
|
|
57
|
+
if (recreated !== 0) {
|
|
58
|
+
context.stderr.write(`The new images were pulled and ${envPath} now uses ${tag}, but recreating the services failed. Fix the error above and run eudiplo up.\n`);
|
|
59
|
+
return recreated;
|
|
60
|
+
}
|
|
61
|
+
context.stdout.write(`Upgraded ${instanceName} to ${tag}.\n`);
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
async function readEnvFile(path) {
|
|
65
|
+
try {
|
|
66
|
+
return await readFile(path, "utf8");
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error instanceof Error &&
|
|
70
|
+
"code" in error &&
|
|
71
|
+
error.code === "ENOENT") {
|
|
72
|
+
throw new Error(`Env file not found: ${path}`);
|
|
73
|
+
}
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async function confirmUpgrade(parsed, context) {
|
|
78
|
+
if (parsed.flags.yes === true) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
if (context.interactive !== true) {
|
|
82
|
+
throw new Error("upgrade requires --yes in non-interactive mode.");
|
|
83
|
+
}
|
|
84
|
+
const prompter = createPrompter(context);
|
|
85
|
+
try {
|
|
86
|
+
const answer = (await prompter.ask("Continue? [y/N]: "))
|
|
87
|
+
.trim()
|
|
88
|
+
.toLowerCase();
|
|
89
|
+
return answer === "y" || answer === "yes";
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
prompter.close();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import type { CommandContext } from "../../types.js";
|
|
3
|
+
import { type SetExitCode } from "../shared.js";
|
|
4
|
+
export declare function createUpgradeCommand(context: CommandContext, setExitCode: SetExitCode): Command;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/upgrade/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,oBAAoB,CAChC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,CAkBT"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { loadCliState, parsedArgs } from "../shared.js";
|
|
3
|
+
import { runUpgradeCommand } from "./action.js";
|
|
4
|
+
export function createUpgradeCommand(context, setExitCode) {
|
|
5
|
+
return new Command("upgrade")
|
|
6
|
+
.description("Upgrade the EUDIPLO application images of a Compose deployment")
|
|
7
|
+
.requiredOption("--image-tag <tag>", "image tag to upgrade to")
|
|
8
|
+
.option("--instance <name>", "select a configured instance")
|
|
9
|
+
.option("--yes", "upgrade without asking for confirmation")
|
|
10
|
+
.action(async (options) => {
|
|
11
|
+
const { config } = await loadCliState(context);
|
|
12
|
+
setExitCode(await runUpgradeCommand(config, parsedArgs("upgrade", undefined, [], options), context));
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/upgrade/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,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,UAAU,oBAAoB,CAChC,OAAuB,EACvB,WAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;SACxB,WAAW,CACR,gEAAgE,CACnE;SACA,cAAc,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SAC9D,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;SAC3D,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACtB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,WAAW,CACP,MAAM,iBAAiB,CACnB,MAAM,EACN,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAC7C,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC"}
|