@p0security/cli 0.20.6 → 0.20.7

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.
@@ -64,8 +64,6 @@ const login = (args, options) => __awaiter(void 0, void 0, void 0, function* ()
64
64
  if (identity && loggedIn) {
65
65
  // If no org is provided, and the user is logged in, use the one from the identity
66
66
  orgSlug = identity.org.slug;
67
- (0, stdio_1.print2)(`You are currently logged in to the ${orgSlug} organization.`);
68
- (0, stdio_1.print2)(`The current session expires in ${formatTimeLeft(tokenTimeRemaining)}.`);
69
67
  }
70
68
  else {
71
69
  throw "The organization ID is required. Please provide it as an argument or set the P0_ORG environment variable.";
@@ -77,10 +75,6 @@ const login = (args, options) => __awaiter(void 0, void 0, void 0, function* ()
77
75
  // Force login if user is switching organizations or if --refresh argument is provided
78
76
  loggedIn = false;
79
77
  }
80
- else {
81
- (0, stdio_1.print2)(`You are already logged in to the ${orgSlug} organization.`);
82
- (0, stdio_1.print2)(`The current session expires in ${formatTimeLeft(tokenTimeRemaining)}.`);
83
- }
84
78
  }
85
79
  }
86
80
  if (options === null || options === void 0 ? void 0 : options.debug) {
@@ -106,6 +100,12 @@ const login = (args, options) => __awaiter(void 0, void 0, void 0, function* ()
106
100
  if (!loggedIn) {
107
101
  (0, stdio_1.print2)(`You are now logged in to the ${orgSlug} organization, and can use the p0 CLI.`);
108
102
  }
103
+ else {
104
+ (0, stdio_1.print2)(`You are currently logged in to the ${orgSlug} organization.`);
105
+ }
106
+ if (tokenTimeRemaining > 0) {
107
+ (0, stdio_1.print2)(`The current session expires in ${formatTimeLeft(tokenTimeRemaining)}.`);
108
+ }
109
109
  });
110
110
  exports.login = login;
111
111
  const loginCommand = (yargs) => yargs.command("login [org]", "Log in using a web browser", (yargs) => yargs
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ This file is part of @p0security/cli
24
24
  You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
25
25
  **/
26
26
  const ssh_1 = require("../../commands/shared/ssh");
27
+ const util_1 = require("../../util");
27
28
  const shared_1 = require("../ssh/shared");
28
29
  const auth_1 = require("./auth");
29
30
  const install_1 = require("./install");
@@ -72,7 +73,13 @@ exports.azureSshProvider = {
72
73
  }
73
74
  return undefined;
74
75
  },
75
- proxyCommand: (_, port) => ["nc", "localhost", port !== null && port !== void 0 ? port : "22"],
76
+ proxyCommand: (_, port) => {
77
+ const targetPort = port !== null && port !== void 0 ? port : "22";
78
+ // On Windows, use ncat (from nmap). On Unix/Mac, use nc.
79
+ // Both have the same command line syntax: command localhost port
80
+ const command = (0, util_1.getOperatingSystem)() === "win" ? "ncat" : "nc";
81
+ return [command, "localhost", targetPort];
82
+ },
76
83
  reproCommands: (request, additionalData) => {
77
84
  var _a;
78
85
  const { command: azAccountClearExe, args: azAccountClearArgs } = (0, auth_1.azAccountClearCommand)();
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/azure/ssh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/azure/ssh.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ const retry_1 = require("../../common/retry");
24
24
  const stdio_1 = require("../../drivers/stdio");
25
25
  const util_1 = require("../../util");
26
26
  const auth_1 = require("./auth");
27
+ const node_child_process_1 = require("node:child_process");
27
28
  const TUNNEL_READY_STRING = "Tunnel is ready";
28
29
  // Ignore these debug messages from the tunnel process; they are far too noisy and spam the terminal with useless info
29
30
  // anytime the SSH/SCP session has network activity.
@@ -67,11 +68,20 @@ const spawnBastionTunnelInBackground = (request, port, options) => {
67
68
  const { command, args } = (0, exports.azBastionTunnelCommand)(request, port);
68
69
  if (debug)
69
70
  (0, stdio_1.print2)("Spawning Azure Bastion tunnel process...");
70
- // Spawn the process in detached mode so that it is in its own process group; this lets us kill it and all
71
- // descendent processes together.
71
+ const isWindows = (0, util_1.getOperatingSystem)() === "win";
72
+ // Spawn the process:
73
+ // - On Unix: use detached mode so it's in its own process group for easy cleanup
74
+ // - On Windows: don't use detached mode as it doesn't work reliably with cmd.exe wrapper
75
+ // and process tree killing; instead rely on unref() and proper stdio handling
72
76
  const child = (0, util_1.spawnWithCleanEnv)(command, args, {
73
- detached: true,
77
+ detached: !isWindows,
78
+ stdio: ["ignore", "pipe", "pipe"],
79
+ windowsHide: true, // Prevent console window on Windows
74
80
  });
81
+ // On Windows, unref immediately to prevent blocking, since we can't rely on detached mode
82
+ if (isWindows) {
83
+ child.unref();
84
+ }
75
85
  child.on("exit", (code) => {
76
86
  processExited = true;
77
87
  if (code === 0) {
@@ -116,40 +126,64 @@ const spawnBastionTunnelInBackground = (request, port, options) => {
116
126
  }
117
127
  if (str.includes(TUNNEL_READY_STRING)) {
118
128
  (0, stdio_1.print2)("Azure Bastion tunnel is ready.");
129
+ // On Unix, unref the child process so the parent can exit without waiting for it
130
+ // (On Windows, we already unref'd immediately after spawn)
131
+ if (!isWindows) {
132
+ child.unref();
133
+ }
119
134
  resolve({
120
135
  killTunnel: () => __awaiter(void 0, void 0, void 0, function* () {
121
136
  if (processSignalledToExit || processExited)
122
137
  return;
123
138
  processSignalledToExit = true;
124
139
  if (child.pid) {
125
- // Kill the process and all its descendents via killing the process group; this is only possible
126
- // because we launched the process with `detached: true` above. This is necessary because `az` is
127
- // actually a bash script that spawns a Python process, and we need to kill the Python process as well.
128
- // SIGINT is equivalent to pressing Ctrl-C in the terminal; allows for the tunnel process to perform any
129
- // necessary cleanup of its own before exiting. The negative PID is what indicates that we want to kill
130
- // the whole process group.
131
140
  try {
132
- if (debug) {
133
- (0, stdio_1.print2)(`Sending SIGINT to Azure Bastion tunnel process (${child.pid})...`);
141
+ if (isWindows) {
142
+ // On Windows, use taskkill to kill the process tree since negative PIDs don't work
143
+ // /F = force, /T = kill tree (all child processes), /PID = process ID
144
+ if (debug) {
145
+ (0, stdio_1.print2)(`Killing Azure Bastion tunnel process tree (${child.pid}) on Windows...`);
146
+ }
147
+ const killProcess = (0, node_child_process_1.spawn)("taskkill", [
148
+ "/F",
149
+ "/T",
150
+ "/PID",
151
+ child.pid.toString(),
152
+ ]);
153
+ killProcess.on("exit", (code) => {
154
+ if (debug && code !== 0) {
155
+ (0, stdio_1.print2)(`taskkill exited with code ${code} (process may have already exited)`);
156
+ }
157
+ });
134
158
  }
135
- process.kill(-child.pid, "SIGINT");
136
- // Give the tunnel a chance to quit gracefully after the SIGINT by waiting at least 250 ms and up to
137
- // 5 seconds. If the process is still running after that, it's probably hung; SIGKILL it to force it to
138
- // end immediately.
139
- const SPIN_WAIT_MS = 250;
140
- for (let spins = 0; spins < 20; spins++) {
141
- yield (0, util_1.sleep)(SPIN_WAIT_MS);
142
- if (processExited) {
143
- if (debug) {
144
- (0, stdio_1.print2)(`Azure Bastion tunnel process exited after SIGINT after ${spins * SPIN_WAIT_MS} ms.`);
159
+ else {
160
+ // Kill the process and all its descendents via killing the process group; this is only possible
161
+ // because we launched the process with `detached: true` above. This is necessary because `az` is
162
+ // actually a bash script that spawns a Python process, and we need to kill the Python process as well.
163
+ // SIGINT is equivalent to pressing Ctrl-C in the terminal; allows for the tunnel process to perform any
164
+ // necessary cleanup of its own before exiting. The negative PID is what indicates that we want to kill
165
+ // the whole process group.
166
+ if (debug) {
167
+ (0, stdio_1.print2)(`Sending SIGINT to Azure Bastion tunnel process (${child.pid})...`);
168
+ }
169
+ process.kill(-child.pid, "SIGINT");
170
+ // Give the tunnel a chance to quit gracefully after the SIGINT
171
+ const SPIN_WAIT_MS = 250;
172
+ for (let spins = 0; spins < 20; spins++) {
173
+ yield (0, util_1.sleep)(SPIN_WAIT_MS);
174
+ if (processExited) {
175
+ if (debug) {
176
+ (0, stdio_1.print2)(`Azure Bastion tunnel process exited after SIGINT after ${spins * SPIN_WAIT_MS} ms.`);
177
+ }
178
+ return;
145
179
  }
146
- return;
147
180
  }
181
+ // If still not exited, force kill
182
+ if (debug) {
183
+ (0, stdio_1.print2)(`Azure Bastion tunnel process (${child.pid}) not responding, sending SIGKILL...`);
184
+ }
185
+ process.kill(-child.pid, "SIGKILL");
148
186
  }
149
- if (debug) {
150
- (0, stdio_1.print2)(`Azure Bastion tunnel process (${child.pid}) not responding, sending SIGKILL...`);
151
- }
152
- process.kill(-child.pid, "SIGKILL");
153
187
  }
154
188
  catch (error) {
155
189
  // Ignore the error and move on; we might as well just exit without waiting since we can't control
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../../src/plugins/azure/tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../../src/plugins/azure/tunnel.ts"],"names":[],"mappings":"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"}