@calltelemetry/cli 0.10.1 → 0.10.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"migration-015-docker-internal-no-proxy.d.ts","sourceRoot":"","sources":["../../src/lib/migration-015-docker-internal-no-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAwBH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CA8DrE"}
1
+ {"version":3,"file":"migration-015-docker-internal-no-proxy.d.ts","sourceRoot":"","sources":["../../src/lib/migration-015-docker-internal-no-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAwCH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC,CAYrE"}
@@ -22,7 +22,7 @@
22
22
  * false when the entries are already present.
23
23
  */
24
24
  import { existsSync, readFileSync, writeFileSync, statSync, chownSync, mkdirSync, } from 'node:fs';
25
- import { join } from 'node:path';
25
+ import { join, dirname } from 'node:path';
26
26
  import { getPaths } from './paths.js';
27
27
  /** Internal hosts/CIDRs that must never traverse an egress proxy. */
28
28
  const INTERNAL_NO_PROXY = [
@@ -34,10 +34,41 @@ const INTERNAL_NO_PROXY = [
34
34
  'ct-media',
35
35
  'otel-collector',
36
36
  ];
37
+ /**
38
+ * Every Docker client config dir the compose stack might read. The systemd
39
+ * service starts the stack as ROOT (docker-compose-app.service has no User=),
40
+ * so `docker compose` reads root's ~/.docker/config.json — NOT the install
41
+ * user's. Cover root's home (the uid-0 home, /root) AND the install user's home
42
+ * (for a manual `docker compose up`). CT_CLI_ROOT_HOME overrides root's home
43
+ * for tests so they never touch the host's /root.
44
+ */
45
+ function dockerConfigDirs() {
46
+ const rootHome = process.env.CT_CLI_ROOT_HOME || '/root';
47
+ const installDir = getPaths().installDir;
48
+ const dirs = [join(rootHome, '.docker')];
49
+ if (installDir && installDir !== rootHome)
50
+ dirs.push(join(installDir, '.docker'));
51
+ return dirs;
52
+ }
37
53
  export async function migrateDockerInternalNoProxy() {
38
- // The compose stack reads the install user's Docker client config, not root's
39
- // — getPaths().installDir resolves the appliance home (e.g. /home/calltelemetry).
40
- const dockerDir = join(getPaths().installDir, '.docker');
54
+ let changedAny = false;
55
+ for (const dockerDir of dockerConfigDirs()) {
56
+ try {
57
+ if (writeNoProxyConfig(dockerDir))
58
+ changedAny = true;
59
+ }
60
+ catch (err) {
61
+ // Surface a malformed operator config; ignore best-effort write/perm
62
+ // failures (e.g. /root not writable when the CLI runs as non-root).
63
+ if (err instanceof Error && /invalid JSON/.test(err.message))
64
+ throw err;
65
+ }
66
+ }
67
+ return changedAny;
68
+ }
69
+ /** Merge INTERNAL_NO_PROXY into <dir>/config.json, preserving operator proxy +
70
+ * auths. Returns true if it changed the file. */
71
+ function writeNoProxyConfig(dockerDir) {
41
72
  const cfgPath = join(dockerDir, 'config.json');
42
73
  let config = {};
43
74
  let uid;
@@ -54,10 +85,10 @@ export async function migrateDockerInternalNoProxy() {
54
85
  gid = st.gid;
55
86
  }
56
87
  else {
57
- // New file — inherit ownership from the install dir so it belongs to the
58
- // appliance user even though the CLI runs as root.
88
+ // New file — inherit ownership from the parent home dir so it belongs to
89
+ // the right user even though the CLI runs as root.
59
90
  try {
60
- const st = statSync(getPaths().installDir);
91
+ const st = statSync(dirname(dockerDir));
61
92
  uid = st.uid;
62
93
  gid = st.gid;
63
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migration-015-docker-internal-no-proxy.js","sourceRoot":"","sources":["../../src/lib/migration-015-docker-internal-no-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration-015-docker-internal-no-proxy.js","sourceRoot":"","sources":["../../src/lib/migration-015-docker-internal-no-proxy.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version. */
2
- export declare const VERSION = "0.10.1";
2
+ export declare const VERSION = "0.10.2";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  /** Single source of truth for the CLI version. */
2
- export const VERSION = '0.10.1';
2
+ export const VERSION = '0.10.2';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calltelemetry/cli",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "description": "CallTelemetry appliance management CLI",
5
5
  "type": "module",
6
6
  "bin": {