@calltelemetry/cli 0.12.2 → 0.12.5

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":"cube.d.ts","sourceRoot":"","sources":["../../src/commands/cube.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAqCnD"}
1
+ {"version":3,"file":"cube.d.ts","sourceRoot":"","sources":["../../src/commands/cube.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA0CnD"}
@@ -15,14 +15,18 @@ export function registerCubeCommand(program) {
15
15
  .option('--output <path>', 'Write the bundle to this path instead of ./cube-diag-<ISO>.log')
16
16
  .option('--capture <secs>', 'Live-capture cube.> and alarms.> NATS subjects for N seconds', '0')
17
17
  .option('--monitor <secs>', 'RPC-poll each cube state/interval every ~5s for N seconds', '0')
18
+ .option('--pcap <secs>', 'tcpdump the XCC wire (bridge web:4080 + host TLS ingress) for N seconds', '0')
18
19
  .action(async (opts) => {
19
- // Strict parse FIRST — a junk `--capture`/`--monitor` must fail loudly, not
20
- // silently coerce to 0 and look like a successful run that skipped capture.
20
+ // Strict parse FIRST — a junk `--capture`/`--monitor`/`--pcap` must fail
21
+ // loudly, not silently coerce to 0 and look like a successful run that
22
+ // skipped the requested collection.
21
23
  let captureSecs;
22
24
  let monitorSecs;
25
+ let pcapSecs;
23
26
  try {
24
27
  captureSecs = parseNonNegativeSecs(opts.capture, '--capture');
25
28
  monitorSecs = parseNonNegativeSecs(opts.monitor, '--monitor');
29
+ pcapSecs = parseNonNegativeSecs(opts.pcap, '--pcap');
26
30
  }
27
31
  catch (err) {
28
32
  out.fail(err instanceof Error ? err.message : String(err));
@@ -35,6 +39,7 @@ export function registerCubeCommand(program) {
35
39
  outputPath: opts.output,
36
40
  captureSecs,
37
41
  monitorSecs,
42
+ pcapSecs,
38
43
  });
39
44
  out.ok(`Cube diagnostic bundle written to ${path}`);
40
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cube.js","sourceRoot":"","sources":["../../src/commands/cube.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACjB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;SAC3F,MAAM,CAAC,kBAAkB,EAAE,8DAA8D,EAAE,GAAG,CAAC;SAC/F,MAAM,CAAC,kBAAkB,EAAE,2DAA2D,EAAE,GAAG,CAAC;SAC5F,MAAM,CAAC,KAAK,EAAE,IAA6D,EAAE,EAAE;QAC9E,4EAA4E;QAC5E,4EAA4E;QAC5E,IAAI,WAAmB,CAAC;QACxB,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9D,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;gBACjC,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,WAAW;gBACX,WAAW;aACZ,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"cube.js","sourceRoot":"","sources":["../../src/commands/cube.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACjB,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;SAC3F,MAAM,CAAC,kBAAkB,EAAE,8DAA8D,EAAE,GAAG,CAAC;SAC/F,MAAM,CAAC,kBAAkB,EAAE,2DAA2D,EAAE,GAAG,CAAC;SAC5F,MAAM,CAAC,eAAe,EAAE,yEAAyE,EAAE,GAAG,CAAC;SACvG,MAAM,CAAC,KAAK,EAAE,IAA4E,EAAE,EAAE;QAC7F,yEAAyE;QACzE,uEAAuE;QACvE,oCAAoC;QACpC,IAAI,WAAmB,CAAC;QACxB,IAAI,WAAmB,CAAC;QACxB,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9D,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9D,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC;gBACjC,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,WAAW;gBACX,WAAW;gBACX,QAAQ;aACT,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -11,7 +11,9 @@
11
11
  * registry auths), so the stack the unit launches can't inherit the host proxy.
12
12
  * The only service that gets a proxy is `web`, via compose env from .env — which
13
13
  * the appliance owns. The proxy->.env migration carries any existing host proxy
14
- * into .env so web keeps its internet across the cutover.
14
+ * into .env so web keeps its internet across the cutover. When there is no
15
+ * configured proxy the keys are OMITTED (never written blank) — a blank
16
+ * HTTP_PROXY= crashes hackney in the container (API-1767).
15
17
  *
16
18
  * Mirrors ova/cli.sh (_ensure_appliance_proxy_policy) and the Go shadow CLI
17
19
  * (ensureApplianceProxyPolicy). Best-effort and idempotent; never fatal.
@@ -26,8 +28,13 @@ export declare function writeApplianceDockerConfig(): void;
26
28
  export declare function writeDockerConfigDropin(): void;
27
29
  /**
28
30
  * Carry an existing host proxy into .env HTTP_PROXY/HTTPS_PROXY/NO_PROXY
29
- * (no-clobber) so `web` keeps its internet across the cutover, and always seed
30
- * the three keys (empty = no proxy) so compose ${HTTP_PROXY:-} resolves.
31
+ * (no-clobber) so `web` keeps its internet across the cutover.
32
+ *
33
+ * Critically, when there is NO configured proxy value we OMIT the key rather
34
+ * than seeding a blank `HTTP_PROXY=` — an empty proxy value crashes hackney in
35
+ * the container (API-1767). We also STRIP any pre-existing blank proxy lines so
36
+ * already-deployed .228-style appliances that seeded `HTTP_PROXY=` get cleaned
37
+ * up idempotently on the next apply.
31
38
  */
32
39
  export declare function migrateProxyToEnv(): Promise<void>;
33
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"appliance-proxy-policy.d.ts","sourceRoot":"","sources":["../../src/lib/appliance-proxy-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA0CH;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAuBjD;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,IAAI,IAAI,CAY9C;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAavD;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAWhE"}
1
+ {"version":3,"file":"appliance-proxy-policy.d.ts","sourceRoot":"","sources":["../../src/lib/appliance-proxy-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AA0CH;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAuBjD;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,IAAI,IAAI,CAY9C;AAcD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BvD;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAWhE"}
@@ -11,7 +11,9 @@
11
11
  * registry auths), so the stack the unit launches can't inherit the host proxy.
12
12
  * The only service that gets a proxy is `web`, via compose env from .env — which
13
13
  * the appliance owns. The proxy->.env migration carries any existing host proxy
14
- * into .env so web keeps its internet across the cutover.
14
+ * into .env so web keeps its internet across the cutover. When there is no
15
+ * configured proxy the keys are OMITTED (never written blank) — a blank
16
+ * HTTP_PROXY= crashes hackney in the container (API-1767).
15
17
  *
16
18
  * Mirrors ova/cli.sh (_ensure_appliance_proxy_policy) and the Go shadow CLI
17
19
  * (ensureApplianceProxyPolicy). Best-effort and idempotent; never fatal.
@@ -89,25 +91,52 @@ export function writeDockerConfigDropin() {
89
91
  mkdirSync(dirname(dropin), { recursive: true });
90
92
  writeFileSync(dropin, want, { mode: 0o644 });
91
93
  }
94
+ // The proxy keys compose passes into containers. When any of these is present
95
+ // in .env but blank, compose forwards `HTTP_PROXY=` into the container env, and
96
+ // Elixir's hackney treats the empty string as a proxy URL and CRASHES
97
+ // (CaseClauseError in :hackney_url.parse_netloc/2), killing outbound HTTP
98
+ // (XCC reconnect, syslog/Loki). So we NEVER write a blank proxy key: when there
99
+ // is no configured proxy value the key is omitted entirely (API-1767).
100
+ const PROXY_ENV_KEYS = [
101
+ ['httpProxy', 'HTTP_PROXY'],
102
+ ['httpsProxy', 'HTTPS_PROXY'],
103
+ ['noProxy', 'NO_PROXY'],
104
+ ];
92
105
  /**
93
106
  * Carry an existing host proxy into .env HTTP_PROXY/HTTPS_PROXY/NO_PROXY
94
- * (no-clobber) so `web` keeps its internet across the cutover, and always seed
95
- * the three keys (empty = no proxy) so compose ${HTTP_PROXY:-} resolves.
107
+ * (no-clobber) so `web` keeps its internet across the cutover.
108
+ *
109
+ * Critically, when there is NO configured proxy value we OMIT the key rather
110
+ * than seeding a blank `HTTP_PROXY=` — an empty proxy value crashes hackney in
111
+ * the container (API-1767). We also STRIP any pre-existing blank proxy lines so
112
+ * already-deployed .228-style appliances that seeded `HTTP_PROXY=` get cleaned
113
+ * up idempotently on the next apply.
96
114
  */
97
115
  export async function migrateProxyToEnv() {
98
116
  const src = readJsonOrEmpty(hostRootDockerConfig());
99
117
  const def = (src.proxies && src.proxies.default && typeof src.proxies.default === 'object')
100
118
  ? src.proxies.default
101
119
  : {};
102
- const str = (k) => (typeof def[k] === 'string' ? def[k] : '');
120
+ const str = (k) => (typeof def[k] === 'string' ? def[k].trim() : '');
103
121
  const env = readEnvKeys();
122
+ // `undefined` removes the key (see updateEnvKeys). We only ever write a
123
+ // non-empty value; a blank/missing host value results in the key being
124
+ // omitted, and a pre-existing blank line is removed.
104
125
  const updates = {};
105
- if (!('HTTP_PROXY' in env))
106
- updates.HTTP_PROXY = str('httpProxy');
107
- if (!('HTTPS_PROXY' in env))
108
- updates.HTTPS_PROXY = str('httpsProxy');
109
- if (!('NO_PROXY' in env))
110
- updates.NO_PROXY = str('noProxy');
126
+ for (const [srcKey, envKey] of PROXY_ENV_KEYS) {
127
+ const existing = env[envKey];
128
+ if (existing !== undefined) {
129
+ // Operator/prior value already in .env: keep a real value untouched
130
+ // (no-clobber), but strip a blank one so the container never sees `KEY=`.
131
+ if (existing.trim() === '')
132
+ updates[envKey] = undefined;
133
+ continue;
134
+ }
135
+ // Not in .env yet: seed only when the host actually has a real value.
136
+ const val = str(srcKey);
137
+ if (val !== '')
138
+ updates[envKey] = val;
139
+ }
111
140
  if (Object.keys(updates).length > 0)
112
141
  await updateEnvKeys(updates);
113
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"appliance-proxy-policy.js","sourceRoot":"","sources":["../../src/lib/appliance-proxy-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appliance-proxy-policy.js","sourceRoot":"","sources":["../../src/lib/appliance-proxy-policy.ts"],"names":[],"mappings":"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"}
@@ -11,16 +11,20 @@
11
11
  * that explain why that keepalive never lands.
12
12
  */
13
13
  /**
14
- * Collect the full cube-diag bundle and write it to a single .log file.
14
+ * Collect the full cube-diag bundle and write it to a single .log file (plus,
15
+ * when `--pcap` is requested, sibling `xcc-bridge.pcap` / `xcc-ingress.pcap` /
16
+ * `xcc.pcap` files in the same directory as `outputPath`).
15
17
  *
16
18
  * @param opts.outputPath Target log path. Defaults to ./cube-diag-<ISO>.log.
17
19
  * @param opts.captureSecs Seconds to live-capture cube.> / alarms.> subjects (0 = skip).
18
20
  * @param opts.monitorSecs Seconds to RPC-poll each cube's state/interval ~every 5s (0 = skip).
21
+ * @param opts.pcapSecs Seconds to tcpdump the XCC wire (bridge + host TLS ingress legs, 0 = skip).
19
22
  * @returns the path the bundle was written to.
20
23
  */
21
24
  export declare function collectCubeDiag(opts?: {
22
25
  outputPath?: string;
23
26
  captureSecs?: number;
24
27
  monitorSecs?: number;
28
+ pcapSecs?: number;
25
29
  }): Promise<string>;
26
30
  //# sourceMappingURL=cube-diag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cube-diag.d.ts","sourceRoot":"","sources":["../../src/lib/cube-diag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8RH;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoKjI"}
1
+ {"version":3,"file":"cube-diag.d.ts","sourceRoot":"","sources":["../../src/lib/cube-diag.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmtBH;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5F,OAAO,CAAC,MAAM,CAAC,CAqOjB"}