@eudiplo/cli 9.0.0-main.455da95 → 9.0.0-main.5ec002c

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.
Files changed (35) hide show
  1. package/dist/commands/config/validate/index.d.ts.map +1 -1
  2. package/dist/commands/config/validate/index.js +2 -2
  3. package/dist/commands/config/validate/index.js.map +1 -1
  4. package/dist/commands/deployment/index.d.ts.map +1 -1
  5. package/dist/commands/deployment/index.js +8 -3
  6. package/dist/commands/deployment/index.js.map +1 -1
  7. package/dist/commands/deployment/pass-through.d.ts +15 -0
  8. package/dist/commands/deployment/pass-through.d.ts.map +1 -0
  9. package/dist/commands/deployment/pass-through.js +52 -0
  10. package/dist/commands/deployment/pass-through.js.map +1 -0
  11. package/dist/commands/upgrade/action.d.ts.map +1 -1
  12. package/dist/commands/upgrade/action.js +5 -2
  13. package/dist/commands/upgrade/action.js.map +1 -1
  14. package/dist/index.js +124 -38
  15. package/dist/services/compose-args.d.ts +1 -1
  16. package/dist/services/compose-args.d.ts.map +1 -1
  17. package/dist/services/compose-args.js +4 -2
  18. package/dist/services/compose-args.js.map +1 -1
  19. package/dist/services/compose-upgrade.d.ts +2 -0
  20. package/dist/services/compose-upgrade.d.ts.map +1 -1
  21. package/dist/services/compose-upgrade.js +5 -0
  22. package/dist/services/compose-upgrade.js.map +1 -1
  23. package/dist/services/container-state.d.ts +4 -1
  24. package/dist/services/container-state.d.ts.map +1 -1
  25. package/dist/services/container-state.js +21 -8
  26. package/dist/services/container-state.js.map +1 -1
  27. package/dist/services/diagnostics.d.ts.map +1 -1
  28. package/dist/services/diagnostics.js +10 -0
  29. package/dist/services/diagnostics.js.map +1 -1
  30. package/package.json +5 -5
  31. package/templates/demo-config/presentation/pid.json +1 -2
  32. package/templates/demo-config.manifest.json +1 -3
  33. package/templates/docker-compose.yml +11 -6
  34. package/templates/demo-config/attribute-providers/claims-provider.json +0 -15
  35. package/templates/demo-config/webhook-endpoints/notification.json +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7E,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,CAwBT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG7E,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,CA2BT"}
@@ -4,8 +4,8 @@ import { runValidate } from "./action.js";
4
4
  export function createValidateCommand(context, setExitCode) {
5
5
  return new Command("validate")
6
6
  .description("Validate CLI or tenant config-import files")
7
- .argument("[scope]")
8
- .argument("[path]")
7
+ .argument("[scope]", '"tenant" for one tenant folder or "tenants" for a folder of tenant folders; omit it to validate the CLI config file')
8
+ .argument("[path]", "the folder to validate (required with a scope)")
9
9
  .addOption(new Option("--format <text|json>", "tenant report format")
10
10
  .choices(["text", "json"])
11
11
  .default("text"))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CACjC,OAAuB,EACvB,WAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;SACzB,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,SAAS,CAAC;SACnB,QAAQ,CAAC,QAAQ,CAAC;SAClB,SAAS,CACN,IAAI,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACrD,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzB,OAAO,CAAC,MAAM,CAAC,CACvB;SACA,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CACpC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACxD,CAAC;QACF,WAAW,CACP,MAAM,WAAW,CACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,EACtD,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/validate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,qBAAqB,CACjC,OAAuB,EACvB,WAAwB;IAExB,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;SACzB,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CACL,SAAS,EACT,qHAAqH,CACxH;SACA,QAAQ,CAAC,QAAQ,EAAE,gDAAgD,CAAC;SACpE,SAAS,CACN,IAAI,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACrD,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzB,OAAO,CAAC,MAAM,CAAC,CACvB;SACA,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CACpC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACxD,CAAC;QACF,WAAW,CACP,MAAM,WAAW,CACb,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,MAAM,EACZ,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,EACtD,OAAO,CACV,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/deployment/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;AAqB1E,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,EAAE,CA4CX"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/deployment/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;AAsB1E,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,WAAW,GACzB,OAAO,EAAE,CAgDX"}
@@ -1,10 +1,11 @@
1
1
  import { Command } from "commander";
2
2
  import { loadCliState, parsedArgs } from "../shared.js";
3
3
  import { runDriverCommand } from "./action.js";
4
+ import { runtimeArguments } from "./pass-through.js";
4
5
  const descriptions = {
5
6
  up: "Start the selected Compose deployment",
6
7
  down: "Stop the selected Compose deployment",
7
- logs: "Stream logs for the selected deployment",
8
+ logs: "Print the logs of the selected deployment, or stream them with --follow",
8
9
  ps: "List the running containers or pods for the selected deployment",
9
10
  restart: "Restart the workloads of the selected deployment",
10
11
  pull: "Download the configured images without changing configuration",
@@ -19,7 +20,10 @@ export function createDeploymentCommands(context, setExitCode) {
19
20
  return ["up", "down", "logs", "ps", "restart", "pull"].map((name) => {
20
21
  const command = new Command(name)
21
22
  .description(descriptions[name])
22
- .argument("[args...]", "additional arguments passed to the deployment runtime")
23
+ .argument("[args...]", "additional arguments and options passed to the deployment runtime")
24
+ // Options this command does not define belong to Compose or
25
+ // kubectl; runtimeArguments still rejects misspelled ones.
26
+ .allowUnknownOption()
23
27
  .option("--instance <name>", "select a configured instance");
24
28
  if (serviceScoped.has(name)) {
25
29
  command.option("--service <name>", "select a single service (Compose) or configured workload (Kubernetes)");
@@ -34,8 +38,9 @@ export function createDeploymentCommands(context, setExitCode) {
34
38
  command.option("--no-wait", "return without waiting for the rollout to finish (Kubernetes instances)");
35
39
  }
36
40
  return command.action(async (args, options) => {
41
+ const runtimeArgs = runtimeArguments(command, args);
37
42
  const { config } = await loadCliState(context);
38
- setExitCode(await runDriverCommand(config, name, parsedArgs(name, undefined, args, options), context));
43
+ setExitCode(await runDriverCommand(config, name, parsedArgs(name, undefined, runtimeArgs, options), context));
39
44
  });
40
45
  });
41
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/deployment/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;AAI/C,MAAM,YAAY,GAAkC;IAChD,EAAE,EAAE,uCAAuC;IAC3C,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,yCAAyC;IAC/C,EAAE,EAAE,iEAAiE;IACrE,OAAO,EAAE,kDAAkD;IAC3D,IAAI,EAAE,+DAA+D;CACxE,CAAC;AAEF,2EAA2E;AAC3E,MAAM,aAAa,GAA+B,IAAI,GAAG,CAAC;IACtD,MAAM;IACN,SAAS;IACT,MAAM;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,wBAAwB,CACpC,OAAuB,EACvB,WAAwB;IAExB,OAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAW,CAAC,GAAG,CACjE,CAAC,IAAI,EAAE,EAAE;QACL,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;aAC5B,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC/B,QAAQ,CACL,WAAW,EACX,uDAAuD,CAC1D;aACA,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC;QACjE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CACV,kBAAkB,EAClB,uEAAuE,CAC1E,CAAC;QACN,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAClB,OAAO;iBACF,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;iBACrD,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;iBAC1D,MAAM,CACH,gBAAgB,EAChB,uEAAuE,CAC1E,CAAC;QACV,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CACV,WAAW,EACX,yEAAyE,CAC5E,CAAC;QACN,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/C,WAAW,CACP,MAAM,gBAAgB,CAClB,MAAM,EACN,IAAI,EACJ,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,EAC1C,OAAO,CACV,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/deployment/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;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIrD,MAAM,YAAY,GAAkC;IAChD,EAAE,EAAE,uCAAuC;IAC3C,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,yEAAyE;IAC/E,EAAE,EAAE,iEAAiE;IACrE,OAAO,EAAE,kDAAkD;IAC3D,IAAI,EAAE,+DAA+D;CACxE,CAAC;AAEF,2EAA2E;AAC3E,MAAM,aAAa,GAA+B,IAAI,GAAG,CAAC;IACtD,MAAM;IACN,SAAS;IACT,MAAM;CACT,CAAC,CAAC;AAEH,MAAM,UAAU,wBAAwB,CACpC,OAAuB,EACvB,WAAwB;IAExB,OAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAW,CAAC,GAAG,CACjE,CAAC,IAAI,EAAE,EAAE;QACL,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;aAC5B,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC/B,QAAQ,CACL,WAAW,EACX,mEAAmE,CACtE;YACD,4DAA4D;YAC5D,2DAA2D;aAC1D,kBAAkB,EAAE;aACpB,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC,CAAC;QACjE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CACV,kBAAkB,EAClB,uEAAuE,CAC1E,CAAC;QACN,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YAClB,OAAO;iBACF,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;iBACrD,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;iBAC1D,MAAM,CACH,gBAAgB,EAChB,uEAAuE,CAC1E,CAAC;QACV,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CACV,WAAW,EACX,yEAAyE,CAC5E,CAAC;QACN,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC1C,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC/C,WAAW,CACP,MAAM,gBAAgB,CAClB,MAAM,EACN,IAAI,EACJ,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EACjD,OAAO,CACV,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Command } from "commander";
2
+ /**
3
+ * The driver commands pass the options they do not define to Compose or
4
+ * kubectl, as in `eudiplo down --volumes`. Commander then no longer rejects a
5
+ * misspelled option of the command itself, which would reach the runtime
6
+ * while the command acts on the default instance. An unknown option within
7
+ * two edits of one of the command's options is rejected here instead, with
8
+ * the message Commander gives for unknown options of other commands. No
9
+ * Compose or kubectl flag is that close to an option of these commands.
10
+ *
11
+ * Commander drops a leading "--" but keeps one that follows an unknown
12
+ * option. That one is dropped here, so "--" never reaches the runtime.
13
+ */
14
+ export declare function runtimeArguments(command: Command, args: string[]): string[];
15
+ //# sourceMappingURL=pass-through.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-through.d.ts","sourceRoot":"","sources":["../../../src/commands/deployment/pass-through.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAyB3E"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The driver commands pass the options they do not define to Compose or
3
+ * kubectl, as in `eudiplo down --volumes`. Commander then no longer rejects a
4
+ * misspelled option of the command itself, which would reach the runtime
5
+ * while the command acts on the default instance. An unknown option within
6
+ * two edits of one of the command's options is rejected here instead, with
7
+ * the message Commander gives for unknown options of other commands. No
8
+ * Compose or kubectl flag is that close to an option of these commands.
9
+ *
10
+ * Commander drops a leading "--" but keeps one that follows an unknown
11
+ * option. That one is dropped here, so "--" never reaches the runtime.
12
+ */
13
+ export function runtimeArguments(command, args) {
14
+ const options = command.options.flatMap((option) => option.long ?? []);
15
+ for (const arg of args) {
16
+ if (!arg.startsWith("--") || arg === "--") {
17
+ continue;
18
+ }
19
+ const flag = arg.split("=", 1)[0];
20
+ const similar = options.filter((option) => option !== flag && editDistance(flag, option) <= 2);
21
+ if (similar.length > 0) {
22
+ const suggestion = similar.length === 1
23
+ ? similar[0]
24
+ : `one of ${similar.join(", ")}`;
25
+ command.error(`error: unknown option '${arg}'\n(Did you mean ${suggestion}?)`, { code: "commander.unknownOption" });
26
+ }
27
+ }
28
+ const separator = args.indexOf("--");
29
+ return separator === -1
30
+ ? args
31
+ : [...args.slice(0, separator), ...args.slice(separator + 1)];
32
+ }
33
+ /**
34
+ * Optimal string alignment distance: insertions, deletions, substitutions
35
+ * and swaps of adjacent characters, as in Commander's own suggestions.
36
+ */
37
+ function editDistance(a, b) {
38
+ const distances = Array.from({ length: a.length + 1 }, (_, i) => Array.from({ length: b.length + 1 }, (_, j) => Math.max(i, j)));
39
+ for (let i = 1; i <= a.length; i++) {
40
+ for (let j = 1; j <= b.length; j++) {
41
+ distances[i][j] = Math.min(distances[i - 1][j] + 1, distances[i][j - 1] + 1, distances[i - 1][j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1));
42
+ if (i > 1 &&
43
+ j > 1 &&
44
+ a[i - 1] === b[j - 2] &&
45
+ a[i - 2] === b[j - 1]) {
46
+ distances[i][j] = Math.min(distances[i][j], distances[i - 2][j - 2] + 1);
47
+ }
48
+ }
49
+ }
50
+ return distances[a.length][b.length];
51
+ }
52
+ //# sourceMappingURL=pass-through.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-through.js","sourceRoot":"","sources":["../../../src/commands/deployment/pass-through.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACR,SAAS,EACT,cAAc,EAEd,UAAU,EACb,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAiFjB"}
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACR,SAAS,EACT,cAAc,EAEd,UAAU,EACb,MAAM,gBAAgB,CAAC;AAGxB,wBAAsB,iBAAiB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAyFjB"}
@@ -2,7 +2,7 @@ import { readFile, writeFile } from "node:fs/promises";
2
2
  import { resolve } from "node:path";
3
3
  import { readStringFlag } from "../../options.js";
4
4
  import { buildComposePullArgs, buildComposeUpArgs, } from "../../services/compose-args.js";
5
- import { migrationNotes, planImageUpgrade, } from "../../services/compose-upgrade.js";
5
+ import { managedServices, migrationNotes, planImageUpgrade, } from "../../services/compose-upgrade.js";
6
6
  import { assertWritable, runCompose, unsupportedCommand, } from "../../services/deployment-drivers.js";
7
7
  import { resolveInstance } from "../../services/instance-selection.js";
8
8
  import { createPrompter } from "../shared.js";
@@ -49,7 +49,10 @@ export async function runUpgradeCommand(config, parsed, context) {
49
49
  }
50
50
  // Writing to the existing path keeps its owner-only permissions.
51
51
  await writeFile(envPath, plan.content, "utf8");
52
- const pulled = await runCompose(buildComposePullArgs(undefined), options);
52
+ // Pull only the images this upgrade changes. The other services keep
53
+ // their images, and a registry that stopped serving one of them (MinIO's
54
+ // images now need a login) must not block the upgrade.
55
+ const pulled = await runCompose(buildComposePullArgs(plan.changes.map((change) => managedServices[change.key])), options);
53
56
  if (pulled !== 0) {
54
57
  await writeFile(envPath, original, "utf8");
55
58
  context.stderr.write(`Pulling the new images failed. Restored the previous image tags in ${envPath}.\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/upgrade/action.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3099,12 +3099,13 @@ var require_data = __commonJS({
3099
3099
  }
3100
3100
  });
3101
3101
 
3102
- // ../../node_modules/.pnpm/fast-uri@3.1.6/node_modules/fast-uri/lib/utils.js
3102
+ // ../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/utils.js
3103
3103
  var require_utils = __commonJS({
3104
- "../../node_modules/.pnpm/fast-uri@3.1.6/node_modules/fast-uri/lib/utils.js"(exports, module) {
3104
+ "../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/utils.js"(exports, module) {
3105
3105
  "use strict";
3106
3106
  var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
3107
3107
  var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
3108
+ var isPort = RegExp.prototype.test.bind(/^\d*$/u);
3108
3109
  var isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
3109
3110
  var isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
3110
3111
  var isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
@@ -3570,8 +3571,12 @@ var require_utils = __commonJS({
3570
3571
  uriTokens.push(host);
3571
3572
  }
3572
3573
  if (typeof component.port === "number" || typeof component.port === "string") {
3574
+ const port = String(component.port);
3575
+ if (!isPort(port)) {
3576
+ throw new TypeError("URI port is malformed.");
3577
+ }
3573
3578
  uriTokens.push(":");
3574
- uriTokens.push(String(component.port));
3579
+ uriTokens.push(port);
3575
3580
  }
3576
3581
  return uriTokens.length ? uriTokens.join("") : void 0;
3577
3582
  }
@@ -3596,9 +3601,9 @@ var require_utils = __commonJS({
3596
3601
  }
3597
3602
  });
3598
3603
 
3599
- // ../../node_modules/.pnpm/fast-uri@3.1.6/node_modules/fast-uri/lib/schemes.js
3604
+ // ../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/schemes.js
3600
3605
  var require_schemes = __commonJS({
3601
- "../../node_modules/.pnpm/fast-uri@3.1.6/node_modules/fast-uri/lib/schemes.js"(exports, module) {
3606
+ "../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/lib/schemes.js"(exports, module) {
3602
3607
  "use strict";
3603
3608
  var { isUUID } = require_utils();
3604
3609
  var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
@@ -3807,9 +3812,9 @@ var require_schemes = __commonJS({
3807
3812
  }
3808
3813
  });
3809
3814
 
3810
- // ../../node_modules/.pnpm/fast-uri@3.1.6/node_modules/fast-uri/index.js
3815
+ // ../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/index.js
3811
3816
  var require_fast_uri = __commonJS({
3812
- "../../node_modules/.pnpm/fast-uri@3.1.6/node_modules/fast-uri/index.js"(exports, module) {
3817
+ "../../node_modules/.pnpm/fast-uri@3.1.8/node_modules/fast-uri/index.js"(exports, module) {
3813
3818
  "use strict";
3814
3819
  var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
3815
3820
  var { SCHEMES, getSchemeHandler } = require_schemes();
@@ -4014,12 +4019,15 @@ var require_fast_uri = __commonJS({
4014
4019
  }
4015
4020
  return false;
4016
4021
  }
4022
+ function isIPLiteral(host) {
4023
+ return host[0] === "[" && host[host.length - 1] === "]";
4024
+ }
4017
4025
  function hasMalformedComponentPercentEncoding(matches) {
4018
4026
  const host = matches[4];
4019
- return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !(host[0] === "[" && host[host.length - 1] === "]") && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
4027
+ return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !isIPLiteral(host) && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
4020
4028
  }
4021
4029
  function canonicalizeHost(parsed, options, schemeHandler, isIP) {
4022
- if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && parsed.host[0] !== "[" && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
4030
+ if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && !isIPLiteral(parsed.host) && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
4023
4031
  try {
4024
4032
  parsed.host = new URL("http://" + parsed.host).hostname;
4025
4033
  } catch (e) {
@@ -4106,10 +4114,11 @@ var require_fast_uri = __commonJS({
4106
4114
  if (parsed.host) {
4107
4115
  const ipv4result = isIPv4(parsed.host);
4108
4116
  if (ipv4result === false) {
4109
- const bracketedIPLiteral = parsed.host[0] === "[" && parsed.host[parsed.host.length - 1] === "]";
4117
+ const bracketedIPLiteral = isIPLiteral(parsed.host);
4118
+ const hasIPLiteralBracket = parsed.host.indexOf("[") !== -1 || parsed.host.indexOf("]") !== -1;
4110
4119
  const ipv6result = normalizeIPv6(parsed.host);
4111
4120
  isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
4112
- malformedIPLiteral = bracketedIPLiteral && ipv6result.error === true;
4121
+ malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true);
4113
4122
  parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
4114
4123
  if (malformedIPLiteral) {
4115
4124
  parsed.error = parsed.error || "URI host is malformed.";
@@ -4132,14 +4141,17 @@ var require_fast_uri = __commonJS({
4132
4141
  parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
4133
4142
  }
4134
4143
  const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
4135
- malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
4136
- if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
4137
- if (uri.indexOf("%") !== -1) {
4138
- if (parsed.host !== void 0 && !malformedIPLiteral) {
4139
- const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
4140
- parsed.host = reescapeHostDelimiters(host, isIP);
4141
- }
4144
+ if (!malformedIPLiteral) {
4145
+ malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
4146
+ }
4147
+ if (uri.indexOf("%") !== -1 && parsed.host !== void 0 && !malformedIPLiteral) {
4148
+ let host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
4149
+ if (!isIP) {
4150
+ host = normalizePercentEncoding(host.toLowerCase());
4142
4151
  }
4152
+ parsed.host = reescapeHostDelimiters(host, isIP);
4153
+ }
4154
+ if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
4143
4155
  if (parsed.path) {
4144
4156
  parsed.path = normalizePathEncoding(parsed.path);
4145
4157
  }
@@ -23723,7 +23735,10 @@ function createTenantCommand(context, setExitCode) {
23723
23735
 
23724
23736
  // src/commands/config/validate/index.ts
23725
23737
  function createValidateCommand(context, setExitCode) {
23726
- return new Command("validate").description("Validate CLI or tenant config-import files").argument("[scope]").argument("[path]").addOption(
23738
+ return new Command("validate").description("Validate CLI or tenant config-import files").argument(
23739
+ "[scope]",
23740
+ '"tenant" for one tenant folder or "tenants" for a folder of tenant folders; omit it to validate the CLI config file'
23741
+ ).argument("[path]", "the folder to validate (required with a scope)").addOption(
23727
23742
  new Option("--format <text|json>", "tenant report format").choices(["text", "json"]).default("text")
23728
23743
  ).action(async (scope, path2, options) => {
23729
23744
  const state = await loadCliState(context);
@@ -23842,9 +23857,9 @@ function buildComposeLogsArgs(service, options = {}) {
23842
23857
  }
23843
23858
  return args;
23844
23859
  }
23845
- function buildComposePullArgs(service) {
23860
+ function buildComposePullArgs(services) {
23846
23861
  const args = ["pull"];
23847
- if (service !== void 0) {
23862
+ for (const service of typeof services === "string" ? [services] : services ?? []) {
23848
23863
  assertServiceName(service);
23849
23864
  args.push(service);
23850
23865
  }
@@ -23882,23 +23897,28 @@ function parseContainerStates(stdout) {
23882
23897
  return entries.map((entry) => {
23883
23898
  const record = entry;
23884
23899
  const names = record.Names;
23900
+ const status = String(record.Status ?? "");
23901
+ const exitCode2 = typeof record.ExitCode === "number" ? record.ExitCode : /^Exited \((\d+)\)/.exec(status)?.[1];
23885
23902
  return {
23886
23903
  name: Array.isArray(names) ? String(names[0] ?? "") : String(names ?? record.Name ?? ""),
23887
23904
  state: String(record.State ?? ""),
23888
- status: String(record.Status ?? "")
23905
+ status,
23906
+ exitCode: exitCode2 === void 0 ? void 0 : Number(exitCode2)
23889
23907
  };
23890
23908
  });
23891
23909
  }
23892
23910
  function summarizeContainerStates(containers, projectName) {
23893
23911
  const name = "service containers";
23894
- if (containers.length === 0) {
23912
+ const services = containers.filter((container) => !hasCompleted(container));
23913
+ const completed = containers.length - services.length;
23914
+ if (services.length === 0) {
23895
23915
  return {
23896
23916
  name,
23897
23917
  status: "warn",
23898
23918
  message: `No containers found for project ${projectName}. Start it with eudiplo up.`
23899
23919
  };
23900
23920
  }
23901
- const unhealthy = containers.filter(
23921
+ const unhealthy = services.filter(
23902
23922
  (container) => container.status.toLowerCase().includes("unhealthy")
23903
23923
  );
23904
23924
  if (unhealthy.length > 0) {
@@ -23908,25 +23928,28 @@ function summarizeContainerStates(containers, projectName) {
23908
23928
  message: `Unhealthy: ${describe(unhealthy)}`
23909
23929
  };
23910
23930
  }
23911
- const notRunning = containers.filter(
23931
+ const notRunning = services.filter(
23912
23932
  (container) => container.state.toLowerCase() !== "running"
23913
23933
  );
23914
23934
  if (notRunning.length > 0) {
23915
23935
  return {
23916
23936
  name,
23917
23937
  status: "warn",
23918
- message: `${containers.length - notRunning.length}/${containers.length} running. Not running: ${describe(notRunning)}`
23938
+ message: `${services.length - notRunning.length}/${services.length} running. Not running: ${describe(notRunning)}`
23919
23939
  };
23920
23940
  }
23921
- const starting = containers.filter(
23941
+ const starting = services.filter(
23922
23942
  (container) => container.status.toLowerCase().includes("starting")
23923
23943
  ).length;
23924
23944
  return {
23925
23945
  name,
23926
23946
  status: "pass",
23927
- message: `${containers.length} container(s) running${starting > 0 ? `, ${starting} still starting` : ""}.`
23947
+ message: `${services.length} container(s) running${starting > 0 ? `, ${starting} still starting` : ""}${completed > 0 ? `, ${completed} completed` : ""}.`
23928
23948
  };
23929
23949
  }
23950
+ function hasCompleted(container) {
23951
+ return container.state.toLowerCase() === "exited" && container.exitCode === 0;
23952
+ }
23930
23953
  function asArray(value) {
23931
23954
  return Array.isArray(value) ? value : [];
23932
23955
  }
@@ -24860,11 +24883,57 @@ async function runDriverCommand(config, command, parsed, context) {
24860
24883
  });
24861
24884
  }
24862
24885
 
24886
+ // src/commands/deployment/pass-through.ts
24887
+ function runtimeArguments(command, args) {
24888
+ const options = command.options.flatMap((option) => option.long ?? []);
24889
+ for (const arg of args) {
24890
+ if (!arg.startsWith("--") || arg === "--") {
24891
+ continue;
24892
+ }
24893
+ const flag = arg.split("=", 1)[0];
24894
+ const similar = options.filter(
24895
+ (option) => option !== flag && editDistance2(flag, option) <= 2
24896
+ );
24897
+ if (similar.length > 0) {
24898
+ const suggestion = similar.length === 1 ? similar[0] : `one of ${similar.join(", ")}`;
24899
+ command.error(
24900
+ `error: unknown option '${arg}'
24901
+ (Did you mean ${suggestion}?)`,
24902
+ { code: "commander.unknownOption" }
24903
+ );
24904
+ }
24905
+ }
24906
+ const separator = args.indexOf("--");
24907
+ return separator === -1 ? args : [...args.slice(0, separator), ...args.slice(separator + 1)];
24908
+ }
24909
+ function editDistance2(a, b) {
24910
+ const distances = Array.from(
24911
+ { length: a.length + 1 },
24912
+ (_, i2) => Array.from({ length: b.length + 1 }, (_2, j) => Math.max(i2, j))
24913
+ );
24914
+ for (let i2 = 1; i2 <= a.length; i2++) {
24915
+ for (let j = 1; j <= b.length; j++) {
24916
+ distances[i2][j] = Math.min(
24917
+ distances[i2 - 1][j] + 1,
24918
+ distances[i2][j - 1] + 1,
24919
+ distances[i2 - 1][j - 1] + (a[i2 - 1] === b[j - 1] ? 0 : 1)
24920
+ );
24921
+ if (i2 > 1 && j > 1 && a[i2 - 1] === b[j - 2] && a[i2 - 2] === b[j - 1]) {
24922
+ distances[i2][j] = Math.min(
24923
+ distances[i2][j],
24924
+ distances[i2 - 2][j - 2] + 1
24925
+ );
24926
+ }
24927
+ }
24928
+ }
24929
+ return distances[a.length][b.length];
24930
+ }
24931
+
24863
24932
  // src/commands/deployment/index.ts
24864
24933
  var descriptions = {
24865
24934
  up: "Start the selected Compose deployment",
24866
24935
  down: "Stop the selected Compose deployment",
24867
- logs: "Stream logs for the selected deployment",
24936
+ logs: "Print the logs of the selected deployment, or stream them with --follow",
24868
24937
  ps: "List the running containers or pods for the selected deployment",
24869
24938
  restart: "Restart the workloads of the selected deployment",
24870
24939
  pull: "Download the configured images without changing configuration"
@@ -24879,8 +24948,8 @@ function createDeploymentCommands(context, setExitCode) {
24879
24948
  (name) => {
24880
24949
  const command = new Command(name).description(descriptions[name]).argument(
24881
24950
  "[args...]",
24882
- "additional arguments passed to the deployment runtime"
24883
- ).option("--instance <name>", "select a configured instance");
24951
+ "additional arguments and options passed to the deployment runtime"
24952
+ ).allowUnknownOption().option("--instance <name>", "select a configured instance");
24884
24953
  if (serviceScoped.has(name)) {
24885
24954
  command.option(
24886
24955
  "--service <name>",
@@ -24900,12 +24969,13 @@ function createDeploymentCommands(context, setExitCode) {
24900
24969
  );
24901
24970
  }
24902
24971
  return command.action(async (args, options) => {
24972
+ const runtimeArgs = runtimeArguments(command, args);
24903
24973
  const { config } = await loadCliState(context);
24904
24974
  setExitCode(
24905
24975
  await runDriverCommand(
24906
24976
  config,
24907
24977
  name,
24908
- parsedArgs(name, void 0, args, options),
24978
+ parsedArgs(name, void 0, runtimeArgs, options),
24909
24979
  context
24910
24980
  )
24911
24981
  );
@@ -24917,7 +24987,7 @@ function createDeploymentCommands(context, setExitCode) {
24917
24987
  // package.json
24918
24988
  var package_default = {
24919
24989
  name: "@eudiplo/cli",
24920
- version: "9.0.0-main.455da95",
24990
+ version: "9.0.0-main.5ec002c",
24921
24991
  description: "Deployment-aware command line tools for EUDIPLO",
24922
24992
  private: false,
24923
24993
  type: "module",
@@ -24977,12 +25047,12 @@ var package_default = {
24977
25047
  "jsonc-parser": "^3.3.1"
24978
25048
  },
24979
25049
  devDependencies: {
24980
- "@biomejs/biome": "2.5.14",
24981
- "@types/node": "^26.4.0",
25050
+ "@biomejs/biome": "2.5.15",
25051
+ "@types/node": "^26.6.4",
24982
25052
  esbuild: "^0.28.2",
24983
- tsx: "^4.23.13",
25053
+ tsx: "^4.23.15",
24984
25054
  typescript: "^7.0.2",
24985
- vitest: "5.0.2"
25055
+ vitest: "5.0.3"
24986
25056
  }
24987
25057
  };
24988
25058
 
@@ -25360,6 +25430,13 @@ var kmsHealthCheck = {
25360
25430
  message: "This backend does not expose the KMS provider health endpoint."
25361
25431
  };
25362
25432
  }
25433
+ if (response.status === 401 || response.status === 403) {
25434
+ return {
25435
+ name: "KMS providers",
25436
+ status: "skip",
25437
+ message: `Needs a tenant client with issuance:manage or presentation:manage (${response.reason}).`
25438
+ };
25439
+ }
25363
25440
  return {
25364
25441
  name: "KMS providers",
25365
25442
  status: "fail",
@@ -26270,6 +26347,10 @@ var managedImages = {
26270
26347
  EUDIPLO_IMAGE: "ghcr.io/eudiplo/eudiplo",
26271
26348
  EUDIPLO_CLIENT_IMAGE: "ghcr.io/eudiplo/eudiplo-client"
26272
26349
  };
26350
+ var managedServices = {
26351
+ EUDIPLO_IMAGE: "eudiplo",
26352
+ EUDIPLO_CLIENT_IMAGE: "eudiplo-client"
26353
+ };
26273
26354
  var legacyImages = {
26274
26355
  EUDIPLO_IMAGE: "ghcr.io/openwallet-foundation/eudiplo",
26275
26356
  EUDIPLO_CLIENT_IMAGE: "ghcr.io/openwallet-foundation/eudiplo-client"
@@ -26436,7 +26517,12 @@ async function runUpgradeCommand(config, parsed, context) {
26436
26517
  return 0;
26437
26518
  }
26438
26519
  await writeFile6(envPath, plan.content, "utf8");
26439
- const pulled = await runCompose(buildComposePullArgs(void 0), options);
26520
+ const pulled = await runCompose(
26521
+ buildComposePullArgs(
26522
+ plan.changes.map((change) => managedServices[change.key])
26523
+ ),
26524
+ options
26525
+ );
26440
26526
  if (pulled !== 0) {
26441
26527
  await writeFile6(envPath, original, "utf8");
26442
26528
  context.stderr.write(
@@ -15,7 +15,7 @@ export declare function buildComposeBaseArgs(instance: InstanceConfig, projectDi
15
15
  export declare function buildComposePsArgs(): string[];
16
16
  export declare function buildComposeListServicesArgs(): string[];
17
17
  export declare function buildComposeLogsArgs(service: string | undefined, options?: ComposeLogOptions): string[];
18
- export declare function buildComposePullArgs(service: string | undefined): string[];
18
+ export declare function buildComposePullArgs(services: string | readonly string[] | undefined): string[];
19
19
  export declare function buildComposeUpArgs(): string[];
20
20
  export declare function buildComposeRestartArgs(service: string | undefined): string[];
21
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"compose-args.d.ts","sourceRoot":"","sources":["../../src/services/compose-args.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAuBlD,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMvD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAS/C;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EAAE,GACvB,MAAM,EAAE,CAeV;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,GAAE,iBAAsB,GAChC,MAAM,EAAE,CAkBV;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAO1E;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMzD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAMzE"}
1
+ {"version":3,"file":"compose-args.d.ts","sourceRoot":"","sources":["../../src/services/compose-args.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAuBlD,MAAM,WAAW,iBAAiB;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAMvD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAS/C;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EAAE,GACvB,MAAM,EAAE,CAeV;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,GAAE,iBAAsB,GAChC,MAAM,EAAE,CAkBV;AAED,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,GACjD,MAAM,EAAE,CASV;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAO7E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMzD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAMzE"}
@@ -78,9 +78,11 @@ export function buildComposeLogsArgs(service, options = {}) {
78
78
  }
79
79
  return args;
80
80
  }
81
- export function buildComposePullArgs(service) {
81
+ export function buildComposePullArgs(services) {
82
82
  const args = ["pull"];
83
- if (service !== undefined) {
83
+ for (const service of typeof services === "string"
84
+ ? [services]
85
+ : (services ?? [])) {
84
86
  assertServiceName(service);
85
87
  args.push(service);
86
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose-args.js","sourceRoot":"","sources":["../../src/services/compose-args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose-args.js","sourceRoot":"","sources":["../../src/services/compose-args.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ declare const managedImages: {
12
12
  readonly EUDIPLO_CLIENT_IMAGE: "ghcr.io/eudiplo/eudiplo-client";
13
13
  };
14
14
  type ManagedKey = keyof typeof managedImages;
15
+ /** The Compose service that runs the image of each managed line. */
16
+ export declare const managedServices: Record<ManagedKey, string>;
15
17
  interface ImageChange {
16
18
  key: ManagedKey;
17
19
  repository: string;
@@ -1 +1 @@
1
- {"version":3,"file":"compose-upgrade.d.ts","sourceRoot":"","sources":["../../src/services/compose-upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,QAAA,MAAM,aAAa;aACf,aAAa,EAAE,yBAAyB;aACxC,oBAAoB,EAAE,gCAAgC;CAChD,CAAC;AAEX,KAAK,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAU7C,UAAU,WAAW;IACjB,GAAG,EAAE,UAAU,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACd;AAED,UAAU,WAAW;IACjB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMhD;AAYD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAwD1E;AA0BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBjE"}
1
+ {"version":3,"file":"compose-upgrade.d.ts","sourceRoot":"","sources":["../../src/services/compose-upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,QAAA,MAAM,aAAa;aACf,aAAa,EAAE,yBAAyB;aACxC,oBAAoB,EAAE,gCAAgC;CAChD,CAAC;AAEX,KAAK,UAAU,GAAG,MAAM,OAAO,aAAa,CAAC;AAE7C,oEAAoE;AACpE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAGtD,CAAC;AAUF,UAAU,WAAW;IACjB,GAAG,EAAE,UAAU,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACd;AAED,UAAU,WAAW;IACjB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMhD;AAYD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAwD1E;AA0BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBjE"}
@@ -11,6 +11,11 @@ const managedImages = {
11
11
  EUDIPLO_IMAGE: "ghcr.io/eudiplo/eudiplo",
12
12
  EUDIPLO_CLIENT_IMAGE: "ghcr.io/eudiplo/eudiplo-client",
13
13
  };
14
+ /** The Compose service that runs the image of each managed line. */
15
+ export const managedServices = {
16
+ EUDIPLO_IMAGE: "eudiplo",
17
+ EUDIPLO_CLIENT_IMAGE: "eudiplo-client",
18
+ };
14
19
  // Releases up to v8.1.0 were published while the project was hosted by the
15
20
  // OpenWallet Foundation. Instances still on those images are moved to the
16
21
  // current repository by their next upgrade.
@@ -1 +1 @@
1
- {"version":3,"file":"compose-upgrade.js","sourceRoot":"","sources":["../../src/services/compose-upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose-upgrade.js","sourceRoot":"","sources":["../../src/services/compose-upgrade.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,14 @@ export interface ContainerState {
3
3
  name: string;
4
4
  state: string;
5
5
  status: string;
6
+ /** Exit code of a stopped container, when the runtime reports one. */
7
+ exitCode?: number;
6
8
  }
7
9
  /**
8
10
  * Parses `docker ps --format json` (one JSON object per line) and
9
11
  * `podman ps --format json` (a single JSON array). Field shapes differ
10
- * slightly: Podman reports Names as an array, Docker as a string.
12
+ * slightly: Podman reports Names as an array, Docker as a string, and only
13
+ * Podman has an ExitCode field; Docker has the code in Status only.
11
14
  */
12
15
  export declare function parseContainerStates(stdout: string): ContainerState[];
13
16
  export declare function summarizeContainerStates(containers: ContainerState[], projectName: string): DoctorCheck;
@@ -1 +1 @@
1
- {"version":3,"file":"container-state.d.ts","sourceRoot":"","sources":["../../src/services/container-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAyBrE;AAED,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,cAAc,EAAE,EAC5B,WAAW,EAAE,MAAM,GACpB,WAAW,CAwCb"}
1
+ {"version":3,"file":"container-state.d.ts","sourceRoot":"","sources":["../../src/services/container-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CA+BrE;AAED,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,cAAc,EAAE,EAC5B,WAAW,EAAE,MAAM,GACpB,WAAW,CA4Cb"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Parses `docker ps --format json` (one JSON object per line) and
3
3
  * `podman ps --format json` (a single JSON array). Field shapes differ
4
- * slightly: Podman reports Names as an array, Docker as a string.
4
+ * slightly: Podman reports Names as an array, Docker as a string, and only
5
+ * Podman has an ExitCode field; Docker has the code in Status only.
5
6
  */
6
7
  export function parseContainerStates(stdout) {
7
8
  const trimmed = stdout.trim();
@@ -18,25 +19,34 @@ export function parseContainerStates(stdout) {
18
19
  return entries.map((entry) => {
19
20
  const record = entry;
20
21
  const names = record.Names;
22
+ const status = String(record.Status ?? "");
23
+ const exitCode = typeof record.ExitCode === "number"
24
+ ? record.ExitCode
25
+ : /^Exited \((\d+)\)/.exec(status)?.[1];
21
26
  return {
22
27
  name: Array.isArray(names)
23
28
  ? String(names[0] ?? "")
24
29
  : String(names ?? record.Name ?? ""),
25
30
  state: String(record.State ?? ""),
26
- status: String(record.Status ?? ""),
31
+ status,
32
+ exitCode: exitCode === undefined ? undefined : Number(exitCode),
27
33
  };
28
34
  });
29
35
  }
30
36
  export function summarizeContainerStates(containers, projectName) {
31
37
  const name = "service containers";
32
- if (containers.length === 0) {
38
+ // A container that exited with code 0 has done its job, like the bucket
39
+ // setup (rustfs-init) of the standard preset; it is not a stopped service.
40
+ const services = containers.filter((container) => !hasCompleted(container));
41
+ const completed = containers.length - services.length;
42
+ if (services.length === 0) {
33
43
  return {
34
44
  name,
35
45
  status: "warn",
36
46
  message: `No containers found for project ${projectName}. Start it with eudiplo up.`,
37
47
  };
38
48
  }
39
- const unhealthy = containers.filter((container) => container.status.toLowerCase().includes("unhealthy"));
49
+ const unhealthy = services.filter((container) => container.status.toLowerCase().includes("unhealthy"));
40
50
  if (unhealthy.length > 0) {
41
51
  return {
42
52
  name,
@@ -44,21 +54,24 @@ export function summarizeContainerStates(containers, projectName) {
44
54
  message: `Unhealthy: ${describe(unhealthy)}`,
45
55
  };
46
56
  }
47
- const notRunning = containers.filter((container) => container.state.toLowerCase() !== "running");
57
+ const notRunning = services.filter((container) => container.state.toLowerCase() !== "running");
48
58
  if (notRunning.length > 0) {
49
59
  return {
50
60
  name,
51
61
  status: "warn",
52
- message: `${containers.length - notRunning.length}/${containers.length} running. Not running: ${describe(notRunning)}`,
62
+ message: `${services.length - notRunning.length}/${services.length} running. Not running: ${describe(notRunning)}`,
53
63
  };
54
64
  }
55
- const starting = containers.filter((container) => container.status.toLowerCase().includes("starting")).length;
65
+ const starting = services.filter((container) => container.status.toLowerCase().includes("starting")).length;
56
66
  return {
57
67
  name,
58
68
  status: "pass",
59
- message: `${containers.length} container(s) running${starting > 0 ? `, ${starting} still starting` : ""}.`,
69
+ message: `${services.length} container(s) running${starting > 0 ? `, ${starting} still starting` : ""}${completed > 0 ? `, ${completed} completed` : ""}.`,
60
70
  };
61
71
  }
72
+ function hasCompleted(container) {
73
+ return (container.state.toLowerCase() === "exited" && container.exitCode === 0);
74
+ }
62
75
  function asArray(value) {
63
76
  return Array.isArray(value) ? value : [];
64
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-state.js","sourceRoot":"","sources":["../../src/services/container-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-state.js","sourceRoot":"","sources":["../../src/services/container-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/services/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,cAAc,EACd,WAAW,EACX,cAAc,EACjB,MAAM,aAAa,CAAC;AAcrB,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAsB/C,MAAM,WAAW,aAAa;IAC1B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,eAAe,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AA0MD,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,WAAW,EAAE,EAChC,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,WAAW,EAAE,CAAC,CA8BxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAOnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,UAAQ,GACf,OAAO,CAKT;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAO1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE3D"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/services/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,cAAc,EACd,WAAW,EACX,cAAc,EACjB,MAAM,aAAa,CAAC;AAcrB,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAsB/C,MAAM,WAAW,aAAa;IAC1B,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,eAAe,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAoND,wBAAsB,SAAS,CAC3B,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,WAAW,EAAE,EAChC,OAAO,GAAE,aAAkB,GAC5B,OAAO,CAAC,WAAW,EAAE,CAAC,CA8BxB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAOnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAE,WAAW,EAAE,EACrB,MAAM,UAAQ,GACf,OAAO,CAKT;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAO1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAE3D"}
@@ -120,6 +120,16 @@ const kmsHealthCheck = {
120
120
  message: "This backend does not expose the KMS provider health endpoint.",
121
121
  };
122
122
  }
123
+ // Provider health is read per tenant, so the bootstrap root
124
+ // client (tenants:manage, no tenant) is refused. That says
125
+ // nothing about the providers.
126
+ if (response.status === 401 || response.status === 403) {
127
+ return {
128
+ name: "KMS providers",
129
+ status: "skip",
130
+ message: `Needs a tenant client with issuance:manage or presentation:manage (${response.reason}).`,
131
+ };
132
+ }
123
133
  return {
124
134
  name: "KMS providers",
125
135
  status: "fail",
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/services/diagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/services/diagnostics.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eudiplo/cli",
3
- "version": "9.0.0-main.455da95",
3
+ "version": "9.0.0-main.5ec002c",
4
4
  "description": "Deployment-aware command line tools for EUDIPLO",
5
5
  "private": false,
6
6
  "type": "module",
@@ -59,11 +59,11 @@
59
59
  "jsonc-parser": "^3.3.1"
60
60
  },
61
61
  "devDependencies": {
62
- "@biomejs/biome": "2.5.14",
63
- "@types/node": "^26.4.0",
62
+ "@biomejs/biome": "2.5.15",
63
+ "@types/node": "^26.6.4",
64
64
  "esbuild": "^0.28.2",
65
- "tsx": "^4.23.13",
65
+ "tsx": "^4.23.15",
66
66
  "typescript": "^7.0.2",
67
- "vitest": "5.0.2"
67
+ "vitest": "5.0.3"
68
68
  }
69
69
  }
@@ -36,7 +36,6 @@
36
36
  ]
37
37
  }
38
38
  ]
39
- },
40
- "webhookEndpointId": "notification"
39
+ }
41
40
  }
42
41
  }
@@ -1,5 +1,4 @@
1
1
  [
2
- "attribute-providers/claims-provider.json",
3
2
  "clients/presentation-test.json",
4
3
  "clients/test.json",
5
4
  "images/company.png",
@@ -19,6 +18,5 @@
19
18
  "key-chains/trust-list.json",
20
19
  "presentation/age-over-18.json",
21
20
  "presentation/pid.json",
22
- "trust-lists/trustlist-580831bc-ef11-43f4-a3be-a2b6bf1b29a3-config.json",
23
- "webhook-endpoints/notification.json"
21
+ "trust-lists/trustlist-580831bc-ef11-43f4-a3be-a2b6bf1b29a3-config.json"
24
22
  ]
@@ -49,9 +49,10 @@ services:
49
49
  eudiplo:
50
50
  condition: service_healthy
51
51
  environment:
52
- - API_BASE_URL=http://eudiplo:3000
53
- # Uncomment to serve the client from a subpath behind a reverse proxy:
54
- # - CLIENT_BASE_HREF=/eudiplo-client/
52
+ # Used by the browser only, to prefill the backend URL on the login page.
53
+ - API_BASE_URL=${API_BASE_URL:-http://localhost:3000}
54
+ # Subpath behind a reverse proxy, for example /eudiplo-client/
55
+ - CLIENT_BASE_HREF=${CLIENT_BASE_HREF:-/}
55
56
  healthcheck:
56
57
  test: ['CMD', 'wget', '-qO', '/dev/null', 'http://localhost:8080']
57
58
  interval: 30s
@@ -92,8 +93,8 @@ services:
92
93
  restart: always
93
94
  profiles: ['s3', 'standard', 'full']
94
95
  ports:
95
- - '9000:9000'
96
- - '9001:9001'
96
+ - '${EUDIPLO_BIND_ADDRESS:-0.0.0.0}:9000:9000'
97
+ - '${EUDIPLO_BIND_ADDRESS:-0.0.0.0}:9001:9001'
97
98
  environment:
98
99
  RUSTFS_ACCESS_KEY: ${RUSTFS_ACCESS_KEY:-rustfsadmin}
99
100
  RUSTFS_SECRET_KEY: ${RUSTFS_SECRET_KEY:-rustfsadmin}
@@ -141,12 +142,16 @@ services:
141
142
  # FULL PROFILE: + HashiCorp Vault
142
143
  # =============================================================================
143
144
 
145
+ # Development mode: Vault keeps all data in memory, so the encryption key and
146
+ # any signing keys in it are lost when the container restarts. Nothing creates
147
+ # the encryption key, see
148
+ # https://docs.eudiplo.dev/operate/docker-compose#create-the-encryption-key-for-full
144
149
  vault:
145
150
  image: hashicorp/vault:latest
146
151
  restart: always
147
152
  profiles: ['vault', 'full']
148
153
  ports:
149
- - '8200:8200'
154
+ - '${EUDIPLO_BIND_ADDRESS:-0.0.0.0}:8200:8200'
150
155
  environment:
151
156
  VAULT_DEV_ROOT_TOKEN_ID: ${VAULT_TOKEN:-root}
152
157
  VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "https://eudiplo.dev/schemas/v1/AttributeProviderConfigFile.schema.json",
3
- "metadata": {
4
- "generation": 1
5
- },
6
- "spec": {
7
- "id": "claims-provider",
8
- "name": "Claims Provider",
9
- "description": "Provides dynamic claim values during credential issuance",
10
- "url": "${ATTRIBUTE_PROVIDER_URL:http://localhost:8787}",
11
- "auth": {
12
- "type": "none"
13
- }
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "https://eudiplo.dev/schemas/v1/WebhookEndpointConfigFile.schema.json",
3
- "metadata": {
4
- "generation": 1
5
- },
6
- "spec": {
7
- "id": "notification",
8
- "name": "Notification Webhook",
9
- "description": "Receives credential issuance lifecycle events",
10
- "url": "${WEBHOOK_NOTIFICATION_URL:http://localhost:8787}",
11
- "auth": {
12
- "type": "none"
13
- }
14
- }
15
- }