@zincapp/znvault-cli 4.5.0 → 4.6.0
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/dist/commands/agent/direct/ping.d.ts.map +1 -1
- package/dist/commands/agent/direct/ping.js +3 -1
- package/dist/commands/agent/direct/ping.js.map +1 -1
- package/dist/commands/agent/direct/plugins.d.ts.map +1 -1
- package/dist/commands/agent/direct/plugins.js +3 -1
- package/dist/commands/agent/direct/plugins.js.map +1 -1
- package/dist/commands/agent/direct/update-all.d.ts.map +1 -1
- package/dist/commands/agent/direct/update-all.js +9 -6
- package/dist/commands/agent/direct/update-all.js.map +1 -1
- package/dist/commands/agent/direct/update-plugins.d.ts.map +1 -1
- package/dist/commands/agent/direct/update-plugins.js +90 -64
- package/dist/commands/agent/direct/update-plugins.js.map +1 -1
- package/dist/commands/agent/direct/update.d.ts.map +1 -1
- package/dist/commands/agent/direct/update.js +92 -65
- package/dist/commands/agent/direct/update.js.map +1 -1
- package/dist/commands/agent/direct/version.d.ts.map +1 -1
- package/dist/commands/agent/direct/version.js +3 -1
- package/dist/commands/agent/direct/version.js.map +1 -1
- package/dist/commands/agent/helpers.d.ts +1 -1
- package/dist/commands/agent/helpers.d.ts.map +1 -1
- package/dist/commands/agent/helpers.js +8 -1
- package/dist/commands/agent/helpers.js.map +1 -1
- package/dist/commands/agent/types.d.ts +6 -0
- package/dist/commands/agent/types.d.ts.map +1 -1
- package/dist/lib/ssh-tunnel.d.ts +41 -0
- package/dist/lib/ssh-tunnel.d.ts.map +1 -0
- package/dist/lib/ssh-tunnel.js +144 -0
- package/dist/lib/ssh-tunnel.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/ping.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/ping.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAsD5D"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// Path: src/commands/agent/direct/ping.ts
|
|
2
2
|
import * as output from '../../../lib/output.js';
|
|
3
3
|
import { resolveHostPort, fetchAgentHealth, formatUptime } from '../helpers.js';
|
|
4
|
+
import { withAgentConnection } from '../../../lib/ssh-tunnel.js';
|
|
4
5
|
export function registerPingCommand(parentCmd) {
|
|
5
6
|
parentCmd
|
|
6
7
|
.command('ping [hostPort]')
|
|
7
8
|
.description('Check agent health directly via HTTP (format: host:port or host, or select from list)')
|
|
8
9
|
.option('--json', 'Output as JSON')
|
|
10
|
+
.option('--no-tunnel', 'Connect directly to host:port instead of via an SSH-CA tunnel')
|
|
9
11
|
.action(async (hostPort, options) => {
|
|
10
12
|
const resolved = await resolveHostPort(hostPort);
|
|
11
13
|
if (!resolved) {
|
|
@@ -14,7 +16,7 @@ export function registerPingCommand(parentCmd) {
|
|
|
14
16
|
const { host, port } = resolved;
|
|
15
17
|
const spinner = output.spinner(`Checking agent at ${host}:${port}...`).start();
|
|
16
18
|
try {
|
|
17
|
-
const health = await
|
|
19
|
+
const health = await withAgentConnection(host, port, { tunnel: options.tunnel !== false }, (h, p) => fetchAgentHealth(h, p));
|
|
18
20
|
spinner.stop();
|
|
19
21
|
if (options.json) {
|
|
20
22
|
output.json(health);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/ping.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAQ1C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/ping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/plugins.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/plugins.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAuD/D"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// Path: src/commands/agent/direct/plugins.ts
|
|
2
2
|
import * as output from '../../../lib/output.js';
|
|
3
3
|
import { resolveHostPort, fetchPluginVersions } from '../helpers.js';
|
|
4
|
+
import { withAgentConnection } from '../../../lib/ssh-tunnel.js';
|
|
4
5
|
export function registerPluginsCommand(parentCmd) {
|
|
5
6
|
parentCmd
|
|
6
7
|
.command('plugins [hostPort]')
|
|
7
8
|
.description('Check plugin versions on an agent (format: host:port or host, or select from list)')
|
|
8
9
|
.option('--json', 'Output as JSON')
|
|
10
|
+
.option('--no-tunnel', 'Connect directly to host:port instead of via an SSH-CA tunnel')
|
|
9
11
|
.action(async (hostPort, options) => {
|
|
10
12
|
const resolved = await resolveHostPort(hostPort);
|
|
11
13
|
if (!resolved) {
|
|
@@ -14,7 +16,7 @@ export function registerPluginsCommand(parentCmd) {
|
|
|
14
16
|
const { host, port } = resolved;
|
|
15
17
|
const spinner = output.spinner(`Checking plugins at ${host}:${port}...`).start();
|
|
16
18
|
try {
|
|
17
|
-
const response = await
|
|
19
|
+
const response = await withAgentConnection(host, port, { tunnel: options.tunnel !== false }, (h, p) => fetchPluginVersions(h, p));
|
|
18
20
|
spinner.stop();
|
|
19
21
|
if (options.json) {
|
|
20
22
|
output.json(response);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/plugins.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAQ7C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/plugins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-all.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-all.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update-all.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-all.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BzC,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAyPjE"}
|
|
@@ -3,6 +3,7 @@ import * as mode from '../../../lib/mode.js';
|
|
|
3
3
|
import * as output from '../../../lib/output.js';
|
|
4
4
|
import { DEFAULT_AGENT_PORT } from '../../../lib/constants.js';
|
|
5
5
|
import { confirmAction, fetchAgentVersion, fetchPluginVersions, triggerAgentUpdate, triggerPluginUpdate, } from '../helpers.js';
|
|
6
|
+
import { withAgentConnection } from '../../../lib/ssh-tunnel.js';
|
|
6
7
|
export function registerUpdateAllCommand(parentCmd) {
|
|
7
8
|
parentCmd
|
|
8
9
|
.command('update-all')
|
|
@@ -12,6 +13,7 @@ export function registerUpdateAllCommand(parentCmd) {
|
|
|
12
13
|
.option('--dry-run', 'Show what would be updated without making changes')
|
|
13
14
|
.option('-y, --yes', 'Skip confirmation')
|
|
14
15
|
.option('--json', 'Output as JSON')
|
|
16
|
+
.option('--no-tunnel', 'Connect directly to each host instead of via an SSH-CA tunnel')
|
|
15
17
|
.action(async (options) => {
|
|
16
18
|
const spinner = output.spinner('Fetching online agents...').start();
|
|
17
19
|
try {
|
|
@@ -51,11 +53,12 @@ export function registerUpdateAllCommand(parentCmd) {
|
|
|
51
53
|
// Check versions for all agents
|
|
52
54
|
const checkSpinner = output.spinner(`Checking ${reachableAgents.length} agent(s)...`).start();
|
|
53
55
|
const agentInfo = [];
|
|
56
|
+
const useTunnel = options.tunnel !== false;
|
|
54
57
|
for (const { agent, ip } of reachableAgents) {
|
|
55
58
|
try {
|
|
56
59
|
if (options.plugins) {
|
|
57
|
-
// Check plugin versions
|
|
58
|
-
const pluginInfo = await
|
|
60
|
+
// Check plugin versions (through an SSH-CA tunnel by default).
|
|
61
|
+
const pluginInfo = await withAgentConnection(ip, DEFAULT_AGENT_PORT, { tunnel: useTunnel }, (h, p) => fetchPluginVersions(h, p));
|
|
59
62
|
const updatesNeeded = pluginInfo.versions.filter(v => v.updateAvailable).length;
|
|
60
63
|
agentInfo.push({
|
|
61
64
|
agent,
|
|
@@ -67,8 +70,8 @@ export function registerUpdateAllCommand(parentCmd) {
|
|
|
67
70
|
});
|
|
68
71
|
}
|
|
69
72
|
else {
|
|
70
|
-
// Check agent version
|
|
71
|
-
const versionInfo = await
|
|
73
|
+
// Check agent version (through an SSH-CA tunnel by default).
|
|
74
|
+
const versionInfo = await withAgentConnection(ip, DEFAULT_AGENT_PORT, { tunnel: useTunnel }, (h, p) => fetchAgentVersion(h, p));
|
|
72
75
|
agentInfo.push({
|
|
73
76
|
agent,
|
|
74
77
|
ip,
|
|
@@ -172,7 +175,7 @@ export function registerUpdateAllCommand(parentCmd) {
|
|
|
172
175
|
}
|
|
173
176
|
try {
|
|
174
177
|
if (options.plugins) {
|
|
175
|
-
const response = await
|
|
178
|
+
const response = await withAgentConnection(info.ip, DEFAULT_AGENT_PORT, { tunnel: useTunnel }, (h, p) => triggerPluginUpdate(h, p));
|
|
176
179
|
results.push({
|
|
177
180
|
hostname: info.agent.hostname,
|
|
178
181
|
success: response.updated > 0,
|
|
@@ -183,7 +186,7 @@ export function registerUpdateAllCommand(parentCmd) {
|
|
|
183
186
|
}
|
|
184
187
|
}
|
|
185
188
|
else {
|
|
186
|
-
const response = await
|
|
189
|
+
const response = await withAgentConnection(info.ip, DEFAULT_AGENT_PORT, { tunnel: useTunnel }, (h, p) => triggerAgentUpdate(h, p));
|
|
187
190
|
results.push({
|
|
188
191
|
hostname: info.agent.hostname,
|
|
189
192
|
success: response.success,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-all.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-all.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAQhD,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"update-all.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-all.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-plugins.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-plugins.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update-plugins.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-plugins.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA0GrE"}
|
|
@@ -1,88 +1,114 @@
|
|
|
1
1
|
// Path: src/commands/agent/direct/update-plugins.ts
|
|
2
2
|
import * as output from '../../../lib/output.js';
|
|
3
3
|
import { resolveHostPort, fetchPluginVersions, triggerPluginUpdate, confirmAction, waitForAgentRestart, } from '../helpers.js';
|
|
4
|
+
import { withAgentConnection } from '../../../lib/ssh-tunnel.js';
|
|
5
|
+
/**
|
|
6
|
+
* Thrown inside the withAgentConnection callback when the failure has ALREADY
|
|
7
|
+
* been reported. Lets the callback unwind (running the tunnel teardown in
|
|
8
|
+
* `finally`) without the outer catch logging the error twice.
|
|
9
|
+
*/
|
|
10
|
+
class AlreadyReportedError extends Error {
|
|
11
|
+
}
|
|
4
12
|
export function registerUpdatePluginsCommand(parentCmd) {
|
|
5
13
|
parentCmd
|
|
6
14
|
.command('update-plugins [hostPort]')
|
|
7
15
|
.description('Trigger plugin updates on an agent (format: host:port or host, or select from list)')
|
|
8
16
|
.option('-y, --yes', 'Skip confirmation prompt')
|
|
9
17
|
.option('--json', 'Output as JSON')
|
|
18
|
+
.option('--no-tunnel', 'Connect directly to host:port instead of via an SSH-CA tunnel')
|
|
10
19
|
.action(async (hostPort, options) => {
|
|
11
20
|
const resolved = await resolveHostPort(hostPort);
|
|
12
21
|
if (!resolved) {
|
|
13
22
|
process.exit(1);
|
|
14
23
|
}
|
|
15
24
|
const { host, port } = resolved;
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
let versions;
|
|
25
|
+
// All HTTP calls (check → trigger → wait-for-restart) share ONE SSH-CA
|
|
26
|
+
// tunnel so the agent's loopback-only :9100 is reachable throughout.
|
|
19
27
|
try {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
if (!versions.hasUpdates) {
|
|
29
|
-
if (options.json) {
|
|
30
|
-
output.json({ updated: 0, message: 'All plugins up to date' });
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
console.log('\x1b[32m✓\x1b[0m All plugins are up to date');
|
|
34
|
-
}
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
// Show what will be updated
|
|
38
|
-
if (!options.json) {
|
|
39
|
-
console.log();
|
|
40
|
-
console.log('Updates available:');
|
|
41
|
-
for (const plugin of versions.versions) {
|
|
42
|
-
if (plugin.updateAvailable) {
|
|
43
|
-
console.log(` ${plugin.package}: ${plugin.current} → \x1b[32m${plugin.latest}\x1b[0m`);
|
|
28
|
+
await withAgentConnection(host, port, { tunnel: options.tunnel !== false }, async (h, p) => {
|
|
29
|
+
// First check what needs updating.
|
|
30
|
+
const checkSpinner = output.spinner(`Checking plugins at ${host}:${port}...`).start();
|
|
31
|
+
let versions;
|
|
32
|
+
try {
|
|
33
|
+
versions = await fetchPluginVersions(h, p);
|
|
34
|
+
checkSpinner.stop();
|
|
44
35
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const confirmed = await confirmAction('Proceed with update? Agent will restart.');
|
|
51
|
-
if (!confirmed) {
|
|
52
|
-
console.log('Cancelled');
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// Trigger update
|
|
57
|
-
const updateSpinner = output.spinner('Updating plugins...').start();
|
|
58
|
-
try {
|
|
59
|
-
const response = await triggerPluginUpdate(host, port);
|
|
60
|
-
updateSpinner.stop();
|
|
61
|
-
if (options.json) {
|
|
62
|
-
output.json(response);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (response.updated === 0) {
|
|
66
|
-
console.log('No updates were applied');
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
console.log(`\x1b[32m✓\x1b[0m Updated ${response.updated} plugin(s)`);
|
|
70
|
-
for (const result of response.results) {
|
|
71
|
-
if (result.success) {
|
|
72
|
-
console.log(` ${result.package}: ${result.previousVersion} → ${result.newVersion}`);
|
|
36
|
+
catch (err) {
|
|
37
|
+
checkSpinner.fail(`Failed to check plugins at ${host}:${port}`);
|
|
38
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
39
|
+
// Already reported — unwind so the tunnel tears down, then exit.
|
|
40
|
+
throw new AlreadyReportedError();
|
|
73
41
|
}
|
|
74
|
-
|
|
75
|
-
|
|
42
|
+
if (!versions.hasUpdates) {
|
|
43
|
+
if (options.json) {
|
|
44
|
+
output.json({ updated: 0, message: 'All plugins up to date' });
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log('\x1b[32m✓\x1b[0m All plugins are up to date');
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
76
50
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
51
|
+
// Show what will be updated.
|
|
52
|
+
if (!options.json) {
|
|
53
|
+
console.log();
|
|
54
|
+
console.log('Updates available:');
|
|
55
|
+
for (const plugin of versions.versions) {
|
|
56
|
+
if (plugin.updateAvailable) {
|
|
57
|
+
console.log(` ${plugin.package}: ${plugin.current} → \x1b[32m${plugin.latest}\x1b[0m`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
console.log();
|
|
61
|
+
}
|
|
62
|
+
// Confirm.
|
|
63
|
+
if (!options.yes && !options.json) {
|
|
64
|
+
const confirmed = await confirmAction('Proceed with update? Agent will restart.');
|
|
65
|
+
if (!confirmed) {
|
|
66
|
+
console.log('Cancelled');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Trigger update.
|
|
71
|
+
const updateSpinner = output.spinner('Updating plugins...').start();
|
|
72
|
+
try {
|
|
73
|
+
const response = await triggerPluginUpdate(h, p);
|
|
74
|
+
updateSpinner.stop();
|
|
75
|
+
if (options.json) {
|
|
76
|
+
output.json(response);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (response.updated === 0) {
|
|
80
|
+
console.log('No updates were applied');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
console.log(`\x1b[32m✓\x1b[0m Updated ${response.updated} plugin(s)`);
|
|
84
|
+
for (const result of response.results) {
|
|
85
|
+
if (result.success) {
|
|
86
|
+
console.log(` ${result.package}: ${result.previousVersion} → ${result.newVersion}`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(` \x1b[31m✗\x1b[0m ${result.package}: ${result.error}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (response.willRestart) {
|
|
93
|
+
console.log();
|
|
94
|
+
await waitForAgentRestart(h, p);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
if (err instanceof AlreadyReportedError)
|
|
99
|
+
throw err;
|
|
100
|
+
updateSpinner.fail('Failed to update plugins');
|
|
101
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
102
|
+
throw new AlreadyReportedError();
|
|
103
|
+
}
|
|
104
|
+
});
|
|
82
105
|
}
|
|
83
106
|
catch (err) {
|
|
84
|
-
|
|
85
|
-
|
|
107
|
+
// AlreadyReportedError: message printed inside the callback; just exit
|
|
108
|
+
// (the tunnel has been torn down by withAgentConnection's finally).
|
|
109
|
+
if (!(err instanceof AlreadyReportedError)) {
|
|
110
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
111
|
+
}
|
|
86
112
|
process.exit(1);
|
|
87
113
|
}
|
|
88
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-plugins.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-plugins.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAQpD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,mBAAmB,GACpB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"update-plugins.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update-plugins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA2G9D"}
|
|
@@ -1,87 +1,114 @@
|
|
|
1
1
|
// Path: src/commands/agent/direct/update.ts
|
|
2
2
|
import * as output from '../../../lib/output.js';
|
|
3
3
|
import { resolveHostPort, fetchAgentVersion, triggerAgentUpdate, confirmAction, waitForAgentRestart, } from '../helpers.js';
|
|
4
|
+
import { withAgentConnection } from '../../../lib/ssh-tunnel.js';
|
|
5
|
+
/**
|
|
6
|
+
* Thrown inside the withAgentConnection callback when the failure has ALREADY
|
|
7
|
+
* been reported to the user. It lets the callback unwind (running the tunnel
|
|
8
|
+
* teardown in `finally`) without the outer catch logging the error twice.
|
|
9
|
+
*/
|
|
10
|
+
class AlreadyReportedError extends Error {
|
|
11
|
+
}
|
|
4
12
|
export function registerUpdateCommand(parentCmd) {
|
|
5
13
|
parentCmd
|
|
6
14
|
.command('update [hostPort]')
|
|
7
15
|
.description('Trigger agent self-update (format: host:port or host, or select from list)')
|
|
8
16
|
.option('-y, --yes', 'Skip confirmation prompt')
|
|
9
17
|
.option('--json', 'Output as JSON')
|
|
18
|
+
.option('--no-tunnel', 'Connect directly to host:port instead of via an SSH-CA tunnel')
|
|
10
19
|
.action(async (hostPort, options) => {
|
|
11
20
|
const resolved = await resolveHostPort(hostPort);
|
|
12
21
|
if (!resolved) {
|
|
13
22
|
process.exit(1);
|
|
14
23
|
}
|
|
15
24
|
const { host, port } = resolved;
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
let versionInfo;
|
|
25
|
+
// All HTTP calls (version check → trigger → wait-for-restart) share ONE
|
|
26
|
+
// SSH-CA tunnel so the agent's loopback-only :9100 is reachable throughout.
|
|
19
27
|
try {
|
|
20
|
-
|
|
21
|
-
|
|
28
|
+
await withAgentConnection(host, port, { tunnel: options.tunnel !== false }, async (h, p) => {
|
|
29
|
+
// First check what version is available.
|
|
30
|
+
const checkSpinner = output.spinner(`Checking agent version at ${host}:${port}...`).start();
|
|
31
|
+
let versionInfo;
|
|
32
|
+
try {
|
|
33
|
+
versionInfo = await fetchAgentVersion(h, p);
|
|
34
|
+
checkSpinner.stop();
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
checkSpinner.fail(`Failed to check agent version at ${host}:${port}`);
|
|
38
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
39
|
+
// Already reported — unwind so the tunnel tears down, then exit.
|
|
40
|
+
throw new AlreadyReportedError();
|
|
41
|
+
}
|
|
42
|
+
if (!versionInfo.updateAvailable) {
|
|
43
|
+
if (options.json) {
|
|
44
|
+
output.json({ updated: false, message: 'Agent is already at latest version', current: versionInfo.current });
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(`\x1b[32m✓\x1b[0m Agent is already at latest version (v${versionInfo.current})`);
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (!versionInfo.autoUpdateEnabled) {
|
|
52
|
+
if (options.json) {
|
|
53
|
+
output.json({ updated: false, message: 'Auto-update is disabled on this agent', current: versionInfo.current });
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log(`\x1b[33m⚠\x1b[0m Auto-update is disabled on this agent`);
|
|
57
|
+
console.log(' Enable with AUTO_UPDATE=true environment variable');
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// Show what will be updated.
|
|
62
|
+
if (!options.json) {
|
|
63
|
+
console.log();
|
|
64
|
+
console.log('Agent update:');
|
|
65
|
+
console.log(` ${versionInfo.current} → \x1b[32m${versionInfo.latest}\x1b[0m`);
|
|
66
|
+
console.log();
|
|
67
|
+
}
|
|
68
|
+
// Confirm.
|
|
69
|
+
if (!options.yes && !options.json) {
|
|
70
|
+
const confirmed = await confirmAction('Proceed with update? Agent will restart.');
|
|
71
|
+
if (!confirmed) {
|
|
72
|
+
console.log('Cancelled');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Trigger update.
|
|
77
|
+
const updateSpinner = output.spinner('Updating agent...').start();
|
|
78
|
+
try {
|
|
79
|
+
const response = await triggerAgentUpdate(h, p);
|
|
80
|
+
updateSpinner.stop();
|
|
81
|
+
if (options.json) {
|
|
82
|
+
output.json(response);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (!response.success) {
|
|
86
|
+
console.log(`\x1b[31m✗\x1b[0m Update failed: ${response.message}`);
|
|
87
|
+
throw new AlreadyReportedError();
|
|
88
|
+
}
|
|
89
|
+
console.log(`\x1b[32m✓\x1b[0m ${response.message}`);
|
|
90
|
+
console.log(` ${response.previousVersion} → ${response.newVersion}`);
|
|
91
|
+
if (response.willRestart) {
|
|
92
|
+
console.log();
|
|
93
|
+
// Poll the agent through the same connection until it answers again.
|
|
94
|
+
await waitForAgentRestart(h, p);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
if (err instanceof AlreadyReportedError)
|
|
99
|
+
throw err;
|
|
100
|
+
updateSpinner.fail('Failed to update agent');
|
|
101
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
102
|
+
throw new AlreadyReportedError();
|
|
103
|
+
}
|
|
104
|
+
});
|
|
22
105
|
}
|
|
23
106
|
catch (err) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (!versionInfo.updateAvailable) {
|
|
29
|
-
if (options.json) {
|
|
30
|
-
output.json({ updated: false, message: 'Agent is already at latest version', current: versionInfo.current });
|
|
107
|
+
// AlreadyReportedError: message printed inside the callback; just exit
|
|
108
|
+
// (the tunnel has been torn down by withAgentConnection's finally).
|
|
109
|
+
if (!(err instanceof AlreadyReportedError)) {
|
|
110
|
+
output.error(err instanceof Error ? err.message : String(err));
|
|
31
111
|
}
|
|
32
|
-
else {
|
|
33
|
-
console.log(`\x1b[32m✓\x1b[0m Agent is already at latest version (v${versionInfo.current})`);
|
|
34
|
-
}
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
if (!versionInfo.autoUpdateEnabled) {
|
|
38
|
-
if (options.json) {
|
|
39
|
-
output.json({ updated: false, message: 'Auto-update is disabled on this agent', current: versionInfo.current });
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
console.log(`\x1b[33m⚠\x1b[0m Auto-update is disabled on this agent`);
|
|
43
|
-
console.log(' Enable with AUTO_UPDATE=true environment variable');
|
|
44
|
-
}
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
// Show what will be updated
|
|
48
|
-
if (!options.json) {
|
|
49
|
-
console.log();
|
|
50
|
-
console.log('Agent update:');
|
|
51
|
-
console.log(` ${versionInfo.current} → \x1b[32m${versionInfo.latest}\x1b[0m`);
|
|
52
|
-
console.log();
|
|
53
|
-
}
|
|
54
|
-
// Confirm
|
|
55
|
-
if (!options.yes && !options.json) {
|
|
56
|
-
const confirmed = await confirmAction('Proceed with update? Agent will restart.');
|
|
57
|
-
if (!confirmed) {
|
|
58
|
-
console.log('Cancelled');
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// Trigger update
|
|
63
|
-
const updateSpinner = output.spinner('Updating agent...').start();
|
|
64
|
-
try {
|
|
65
|
-
const response = await triggerAgentUpdate(host, port);
|
|
66
|
-
updateSpinner.stop();
|
|
67
|
-
if (options.json) {
|
|
68
|
-
output.json(response);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
if (!response.success) {
|
|
72
|
-
console.log(`\x1b[31m✗\x1b[0m Update failed: ${response.message}`);
|
|
73
|
-
process.exit(1);
|
|
74
|
-
}
|
|
75
|
-
console.log(`\x1b[32m✓\x1b[0m ${response.message}`);
|
|
76
|
-
console.log(` ${response.previousVersion} → ${response.newVersion}`);
|
|
77
|
-
if (response.willRestart) {
|
|
78
|
-
console.log();
|
|
79
|
-
await waitForAgentRestart(host, port);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
catch (err) {
|
|
83
|
-
updateSpinner.fail('Failed to update agent');
|
|
84
|
-
output.error(err instanceof Error ? err.message : String(err));
|
|
85
112
|
process.exit(1);
|
|
86
113
|
}
|
|
87
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAQ5C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,GACpB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/version.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/direct/version.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CA8C/D"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// Path: src/commands/agent/direct/version.ts
|
|
2
2
|
import * as output from '../../../lib/output.js';
|
|
3
3
|
import { resolveHostPort, fetchAgentVersion } from '../helpers.js';
|
|
4
|
+
import { withAgentConnection } from '../../../lib/ssh-tunnel.js';
|
|
4
5
|
export function registerVersionCommand(parentCmd) {
|
|
5
6
|
parentCmd
|
|
6
7
|
.command('version [hostPort]')
|
|
7
8
|
.description('Check agent version and available updates (format: host:port or host, or select from list)')
|
|
8
9
|
.option('--json', 'Output as JSON')
|
|
10
|
+
.option('--no-tunnel', 'Connect directly to host:port instead of via an SSH-CA tunnel')
|
|
9
11
|
.action(async (hostPort, options) => {
|
|
10
12
|
const resolved = await resolveHostPort(hostPort);
|
|
11
13
|
if (!resolved) {
|
|
@@ -14,7 +16,7 @@ export function registerVersionCommand(parentCmd) {
|
|
|
14
16
|
const { host, port } = resolved;
|
|
15
17
|
const spinner = output.spinner(`Checking agent version at ${host}:${port}...`).start();
|
|
16
18
|
try {
|
|
17
|
-
const response = await
|
|
19
|
+
const response = await withAgentConnection(host, port, { tunnel: options.tunnel !== false }, (h, p) => fetchAgentVersion(h, p));
|
|
18
20
|
spinner.stop();
|
|
19
21
|
if (options.json) {
|
|
20
22
|
output.json(response);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/version.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAQ7C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../src/commands/agent/direct/version.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAQ7C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,sBAAsB,CAAC,SAAkB;IACvD,SAAS;SACN,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,4FAA4F,CAAC;SACzG,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,aAAa,EAAE,+DAA+D,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,QAA4B,EAAE,OAA6B,EAAE,EAAE;QAC5E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,6BAA6B,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAEvF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACpG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CACxB,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,+BAA+B,QAAQ,CAAC,OAAO,MAAM,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC;gBAC3F,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,oCAAoC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -42,7 +42,7 @@ export declare function fetchAgentVersion(host: string, port: number): Promise<A
|
|
|
42
42
|
/**
|
|
43
43
|
* Trigger agent self-update via direct HTTP
|
|
44
44
|
*/
|
|
45
|
-
export declare function triggerAgentUpdate(host: string, port: number): Promise<AgentUpdateResponse>;
|
|
45
|
+
export declare function triggerAgentUpdate(host: string, port: number, force?: boolean): Promise<AgentUpdateResponse>;
|
|
46
46
|
/**
|
|
47
47
|
* Fetch agents from vault and let user select one interactively
|
|
48
48
|
* Returns the selected agent's host:port string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/helpers.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoB3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CASnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpD;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU9E;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAW/F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAYrG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/helpers.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMnE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAY1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoB3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,MAAM,CASnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpD;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU9E;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAW/F;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAYrG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAiBnG;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAYjG;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkBhH;AAMD;;;GAGG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAuG/F;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAKvG;AAMD;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7G"}
|
|
@@ -135,6 +135,9 @@ export async function triggerPluginUpdate(host, port) {
|
|
|
135
135
|
const response = await fetch(url, {
|
|
136
136
|
method: 'POST',
|
|
137
137
|
headers: { 'Content-Type': 'application/json' },
|
|
138
|
+
// A JSON content-type with an empty body makes the agent's Fastify reject
|
|
139
|
+
// with FST_ERR_CTP_EMPTY_JSON_BODY (HTTP 400). Send an explicit body.
|
|
140
|
+
body: '{}',
|
|
138
141
|
signal: AbortSignal.timeout(AGENT_PLUGIN_UPDATE_TIMEOUT_MS),
|
|
139
142
|
});
|
|
140
143
|
if (!response.ok) {
|
|
@@ -160,11 +163,15 @@ export async function fetchAgentVersion(host, port) {
|
|
|
160
163
|
/**
|
|
161
164
|
* Trigger agent self-update via direct HTTP
|
|
162
165
|
*/
|
|
163
|
-
export async function triggerAgentUpdate(host, port) {
|
|
166
|
+
export async function triggerAgentUpdate(host, port, force = false) {
|
|
164
167
|
const url = `http://${host}:${port}/agent/update`;
|
|
165
168
|
const response = await fetch(url, {
|
|
166
169
|
method: 'POST',
|
|
167
170
|
headers: { 'Content-Type': 'application/json' },
|
|
171
|
+
// A JSON content-type with an empty body makes the agent's Fastify reject
|
|
172
|
+
// with FST_ERR_CTP_EMPTY_JSON_BODY (HTTP 400). The agent's handler reads an
|
|
173
|
+
// optional { force } — send it explicitly.
|
|
174
|
+
body: JSON.stringify({ force }),
|
|
168
175
|
signal: AbortSignal.timeout(AGENT_UPDATE_TIMEOUT_MS),
|
|
169
176
|
});
|
|
170
177
|
if (!response.ok) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/agent/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/agent/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -190,13 +190,19 @@ export interface UpdateAllOptions {
|
|
|
190
190
|
dryRun?: boolean;
|
|
191
191
|
yes?: boolean;
|
|
192
192
|
json?: boolean;
|
|
193
|
+
/** Commander sets `tunnel: false` when `--no-tunnel` is passed; default true. */
|
|
194
|
+
tunnel?: boolean;
|
|
193
195
|
}
|
|
194
196
|
export interface DirectCommandOptions {
|
|
195
197
|
json?: boolean;
|
|
198
|
+
/** Commander sets `tunnel: false` when `--no-tunnel` is passed; default true. */
|
|
199
|
+
tunnel?: boolean;
|
|
196
200
|
}
|
|
197
201
|
export interface UpdateCommandOptions {
|
|
198
202
|
yes?: boolean;
|
|
199
203
|
json?: boolean;
|
|
204
|
+
/** Commander sets `tunnel: false` when `--no-tunnel` is passed; default true. */
|
|
205
|
+
tunnel?: boolean;
|
|
200
206
|
}
|
|
201
207
|
export interface RegistrationTokenCreateResponse {
|
|
202
208
|
token: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/types.ts"],"names":[],"mappings":"AAEA;;GAEG;AAMH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;KACxC,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;KACxC,GAAG,IAAI,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE;QACb,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/** An open tunnel: the local port to use, and a teardown. */
|
|
2
|
+
export interface Tunnel {
|
|
3
|
+
host: string;
|
|
4
|
+
localPort: number;
|
|
5
|
+
/** PID of the spawned `znvault ssh forward` child (for orphan-kill backstops). */
|
|
6
|
+
pid?: number;
|
|
7
|
+
close(): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export interface OpenTunnelOptions {
|
|
10
|
+
/** Remote agent port to forward to (default 9100). */
|
|
11
|
+
remotePort?: number;
|
|
12
|
+
/** SSH user override; when omitted, `znvault ssh forward` uses the profile default. */
|
|
13
|
+
user?: string;
|
|
14
|
+
/** Max ms to wait for /health to answer through the tunnel (default 15000). */
|
|
15
|
+
readinessTimeoutMs?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Open an SSH-CA-authenticated local forward to `host:remotePort` via
|
|
19
|
+
* `znvault ssh forward --print-port`. Resolves once the tunnel's local port
|
|
20
|
+
* answers `GET /health`, or rejects on spawn/exit/readiness failure.
|
|
21
|
+
*
|
|
22
|
+
* The caller MUST call `close()` (a `try/finally` is the intended pattern) to
|
|
23
|
+
* tear the forward down.
|
|
24
|
+
*/
|
|
25
|
+
export declare function openTunnel(host: string, opts?: OpenTunnelOptions): Promise<Tunnel>;
|
|
26
|
+
/**
|
|
27
|
+
* Whether a host is loopback (already locally reachable, no tunnel needed).
|
|
28
|
+
*/
|
|
29
|
+
export declare function isLoopbackHost(host: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Run `fn` against an agent reachable at `host:port`, opening an SSH-CA tunnel
|
|
32
|
+
* first when needed and tearing it down afterward.
|
|
33
|
+
*
|
|
34
|
+
* Tunnel is skipped (direct connection used) when `tunnel` is false or the host
|
|
35
|
+
* is loopback. When tunneling, `fn` receives `127.0.0.1` + the local forward
|
|
36
|
+
* port; otherwise it receives the original host/port.
|
|
37
|
+
*/
|
|
38
|
+
export declare function withAgentConnection<T>(host: string, port: number, opts: {
|
|
39
|
+
tunnel: boolean;
|
|
40
|
+
}, fn: (connHost: string, connPort: number) => Promise<T>): Promise<T>;
|
|
41
|
+
//# sourceMappingURL=ssh-tunnel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssh-tunnel.d.ts","sourceRoot":"","sources":["../../src/lib/ssh-tunnel.ts"],"names":[],"mappings":"AAiBA,6DAA6D;AAC7D,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAiBD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+E5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACzB,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CAWZ"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// Path: src/lib/ssh-tunnel.ts
|
|
2
|
+
/**
|
|
3
|
+
* SSH-CA-authenticated tunnel manager for reaching loopback-bound agents.
|
|
4
|
+
*
|
|
5
|
+
* Production agents bind their control/health server (:9100) to 127.0.0.1 only,
|
|
6
|
+
* so direct `http://<host>:9100` is unreachable from an operator's machine. This
|
|
7
|
+
* helper opens a local port-forward via `znvault ssh forward --print-port`
|
|
8
|
+
* (which authenticates with the vault SSH CA and honors the active profile's
|
|
9
|
+
* configured SSH user), then exposes the agent at `127.0.0.1:<localPort>`.
|
|
10
|
+
*
|
|
11
|
+
* Ported from znvault-plugin-payara's ssh-tunnel.ts so the CLI owns its own copy
|
|
12
|
+
* (the CLI must not import from a plugin package).
|
|
13
|
+
*/
|
|
14
|
+
import { spawn } from 'node:child_process';
|
|
15
|
+
const DEFAULT_REMOTE_PORT = 9100;
|
|
16
|
+
const DEFAULT_READINESS_TIMEOUT_MS = 15000;
|
|
17
|
+
const READINESS_POLL_INTERVAL_MS = 250;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the znvault binary to shell out to. The forward runs as a child of the
|
|
20
|
+
* current process, so the running binary itself is the correct one to re-invoke.
|
|
21
|
+
*/
|
|
22
|
+
function resolveZnvaultBin() {
|
|
23
|
+
const fromEnv = process.env.ZNVAULT_BIN;
|
|
24
|
+
if (fromEnv)
|
|
25
|
+
return fromEnv;
|
|
26
|
+
// process.argv[1] is the CLI entrypoint when run as `znvault ...`.
|
|
27
|
+
return process.argv[1] ?? 'znvault';
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Open an SSH-CA-authenticated local forward to `host:remotePort` via
|
|
31
|
+
* `znvault ssh forward --print-port`. Resolves once the tunnel's local port
|
|
32
|
+
* answers `GET /health`, or rejects on spawn/exit/readiness failure.
|
|
33
|
+
*
|
|
34
|
+
* The caller MUST call `close()` (a `try/finally` is the intended pattern) to
|
|
35
|
+
* tear the forward down.
|
|
36
|
+
*/
|
|
37
|
+
export async function openTunnel(host, opts = {}) {
|
|
38
|
+
const bin = resolveZnvaultBin();
|
|
39
|
+
const remotePort = opts.remotePort ?? DEFAULT_REMOTE_PORT;
|
|
40
|
+
const readinessTimeoutMs = opts.readinessTimeoutMs ?? DEFAULT_READINESS_TIMEOUT_MS;
|
|
41
|
+
const target = opts.user ? `${opts.user}@${host}` : host;
|
|
42
|
+
const args = [
|
|
43
|
+
'ssh', 'forward',
|
|
44
|
+
'--print-port',
|
|
45
|
+
'-L', `127.0.0.1:0:127.0.0.1:${remotePort}`,
|
|
46
|
+
target,
|
|
47
|
+
];
|
|
48
|
+
const child = spawn(bin, args, { stdio: ['ignore', 'pipe', 'inherit'], env: process.env });
|
|
49
|
+
const localPort = await new Promise((resolve, reject) => {
|
|
50
|
+
let buf = '';
|
|
51
|
+
let settled = false;
|
|
52
|
+
const onClose = (code) => {
|
|
53
|
+
if (!settled) {
|
|
54
|
+
settled = true;
|
|
55
|
+
reject(new Error(`ssh forward exited (code ${code ?? 'null'}) before reporting a port`));
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
const onError = (err) => {
|
|
59
|
+
if (!settled) {
|
|
60
|
+
settled = true;
|
|
61
|
+
reject(err);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
child.on('close', onClose);
|
|
65
|
+
child.on('error', onError);
|
|
66
|
+
child.stdout?.on('data', (chunk) => {
|
|
67
|
+
if (settled)
|
|
68
|
+
return;
|
|
69
|
+
buf += chunk.toString('utf8');
|
|
70
|
+
let nl;
|
|
71
|
+
while ((nl = buf.indexOf('\n')) >= 0) {
|
|
72
|
+
const line = buf.slice(0, nl).trim();
|
|
73
|
+
buf = buf.slice(nl + 1); // consume the line
|
|
74
|
+
if (!line)
|
|
75
|
+
continue;
|
|
76
|
+
try {
|
|
77
|
+
const parsed = JSON.parse(line);
|
|
78
|
+
if (typeof parsed.localPort === 'number') {
|
|
79
|
+
settled = true;
|
|
80
|
+
child.removeListener('close', onClose);
|
|
81
|
+
child.removeListener('error', onError);
|
|
82
|
+
resolve(parsed.localPort);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
/* not the JSON line; try the next one */
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
const close = async () => {
|
|
93
|
+
if (child.pid && !child.killed)
|
|
94
|
+
child.kill('SIGTERM');
|
|
95
|
+
// Give it a beat to die; don't hang on a lingering child.
|
|
96
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
97
|
+
};
|
|
98
|
+
// App-level readiness: poll /health through the forward before returning.
|
|
99
|
+
const deadline = Date.now() + readinessTimeoutMs;
|
|
100
|
+
let lastErr = '';
|
|
101
|
+
while (Date.now() < deadline) {
|
|
102
|
+
try {
|
|
103
|
+
const res = await fetch(`http://127.0.0.1:${localPort}/health`, {
|
|
104
|
+
signal: AbortSignal.timeout(Math.max(1, Math.min(2000, deadline - Date.now()))),
|
|
105
|
+
});
|
|
106
|
+
if (res.ok)
|
|
107
|
+
return { host, localPort, pid: child.pid, close };
|
|
108
|
+
lastErr = `HTTP ${res.status}`;
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
lastErr = err instanceof Error ? err.message : String(err);
|
|
112
|
+
}
|
|
113
|
+
await new Promise((r) => setTimeout(r, READINESS_POLL_INTERVAL_MS));
|
|
114
|
+
}
|
|
115
|
+
await close();
|
|
116
|
+
throw new Error(`Tunnel to ${host} opened (port ${localPort}) but /health never answered: ${lastErr}`);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Whether a host is loopback (already locally reachable, no tunnel needed).
|
|
120
|
+
*/
|
|
121
|
+
export function isLoopbackHost(host) {
|
|
122
|
+
return host === '127.0.0.1' || host === 'localhost' || host === '::1';
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Run `fn` against an agent reachable at `host:port`, opening an SSH-CA tunnel
|
|
126
|
+
* first when needed and tearing it down afterward.
|
|
127
|
+
*
|
|
128
|
+
* Tunnel is skipped (direct connection used) when `tunnel` is false or the host
|
|
129
|
+
* is loopback. When tunneling, `fn` receives `127.0.0.1` + the local forward
|
|
130
|
+
* port; otherwise it receives the original host/port.
|
|
131
|
+
*/
|
|
132
|
+
export async function withAgentConnection(host, port, opts, fn) {
|
|
133
|
+
if (!opts.tunnel || isLoopbackHost(host)) {
|
|
134
|
+
return fn(host, port);
|
|
135
|
+
}
|
|
136
|
+
const tunnel = await openTunnel(host, { remotePort: port });
|
|
137
|
+
try {
|
|
138
|
+
return await fn('127.0.0.1', tunnel.localPort);
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
await tunnel.close();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=ssh-tunnel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssh-tunnel.js","sourceRoot":"","sources":["../../src/lib/ssh-tunnel.ts"],"names":[],"mappings":"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"}
|