ssh-mcp-pro 1.2.3 → 1.4.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.
Files changed (200) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +12 -2
  3. package/dist/agent-bin.js +5 -2
  4. package/dist/agent-bin.js.map +1 -1
  5. package/dist/cli.d.ts +1 -0
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +38 -47
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config-security-env.d.ts +4 -0
  10. package/dist/config-security-env.d.ts.map +1 -0
  11. package/dist/config-security-env.js +64 -0
  12. package/dist/config-security-env.js.map +1 -0
  13. package/dist/config.d.ts +2 -2
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +4 -67
  16. package/dist/config.js.map +1 -1
  17. package/dist/connector-profile.d.ts +1 -1
  18. package/dist/connector-profile.d.ts.map +1 -1
  19. package/dist/detect.d.ts.map +1 -1
  20. package/dist/detect.js +226 -192
  21. package/dist/detect.js.map +1 -1
  22. package/dist/ensure-package-service.d.ts +9 -0
  23. package/dist/ensure-package-service.d.ts.map +1 -0
  24. package/dist/ensure-package-service.js +146 -0
  25. package/dist/ensure-package-service.js.map +1 -0
  26. package/dist/ensure-pkg.js +4 -4
  27. package/dist/ensure-pkg.js.map +1 -1
  28. package/dist/ensure.d.ts.map +1 -1
  29. package/dist/ensure.js +15 -144
  30. package/dist/ensure.js.map +1 -1
  31. package/dist/fs-sftp.js +1 -1
  32. package/dist/fs-sftp.js.map +1 -1
  33. package/dist/fs-stat.d.ts +10 -0
  34. package/dist/fs-stat.d.ts.map +1 -0
  35. package/dist/fs-stat.js +62 -0
  36. package/dist/fs-stat.js.map +1 -0
  37. package/dist/fs-tools.d.ts.map +1 -1
  38. package/dist/fs-tools.js +6 -58
  39. package/dist/fs-tools.js.map +1 -1
  40. package/dist/http-security.d.ts.map +1 -1
  41. package/dist/http-security.js +6 -6
  42. package/dist/http-security.js.map +1 -1
  43. package/dist/http-server-runtime.d.ts.map +1 -1
  44. package/dist/http-server-runtime.js +41 -7
  45. package/dist/http-server-runtime.js.map +1 -1
  46. package/dist/index.js +6 -23
  47. package/dist/index.js.map +1 -1
  48. package/dist/mcp-http-web.d.ts +8 -0
  49. package/dist/mcp-http-web.d.ts.map +1 -0
  50. package/dist/mcp-http-web.js +35 -0
  51. package/dist/mcp-http-web.js.map +1 -0
  52. package/dist/mcp.d.ts +6 -2
  53. package/dist/mcp.d.ts.map +1 -1
  54. package/dist/mcp.js +22 -14
  55. package/dist/mcp.js.map +1 -1
  56. package/dist/policy.d.ts +8 -0
  57. package/dist/policy.d.ts.map +1 -1
  58. package/dist/policy.js +147 -105
  59. package/dist/policy.js.map +1 -1
  60. package/dist/process.d.ts.map +1 -1
  61. package/dist/process.js +11 -7
  62. package/dist/process.js.map +1 -1
  63. package/dist/remote/agent-activity-log.d.ts +26 -0
  64. package/dist/remote/agent-activity-log.d.ts.map +1 -0
  65. package/dist/remote/agent-activity-log.js +211 -0
  66. package/dist/remote/agent-activity-log.js.map +1 -0
  67. package/dist/remote/agent-cli.d.ts.map +1 -1
  68. package/dist/remote/agent-cli.js +92 -25
  69. package/dist/remote/agent-cli.js.map +1 -1
  70. package/dist/remote/agent-executor.d.ts.map +1 -1
  71. package/dist/remote/agent-executor.js +22 -10
  72. package/dist/remote/agent-executor.js.map +1 -1
  73. package/dist/remote/agent-handler.d.ts +2 -0
  74. package/dist/remote/agent-handler.d.ts.map +1 -1
  75. package/dist/remote/agent-handler.js +4 -0
  76. package/dist/remote/agent-handler.js.map +1 -1
  77. package/dist/remote/config.d.ts.map +1 -1
  78. package/dist/remote/config.js +12 -1
  79. package/dist/remote/config.js.map +1 -1
  80. package/dist/remote/control-plane.d.ts +12 -0
  81. package/dist/remote/control-plane.d.ts.map +1 -1
  82. package/dist/remote/control-plane.js +164 -56
  83. package/dist/remote/control-plane.js.map +1 -1
  84. package/dist/remote/crypto.d.ts +9 -4
  85. package/dist/remote/crypto.d.ts.map +1 -1
  86. package/dist/remote/crypto.js +41 -9
  87. package/dist/remote/crypto.js.map +1 -1
  88. package/dist/remote/http-util.d.ts.map +1 -1
  89. package/dist/remote/http-util.js +14 -7
  90. package/dist/remote/http-util.js.map +1 -1
  91. package/dist/remote/mcp-tools.d.ts +7 -0
  92. package/dist/remote/mcp-tools.d.ts.map +1 -1
  93. package/dist/remote/mcp-tools.js +28 -0
  94. package/dist/remote/mcp-tools.js.map +1 -1
  95. package/dist/remote/oauth-handler.d.ts +30 -3
  96. package/dist/remote/oauth-handler.d.ts.map +1 -1
  97. package/dist/remote/oauth-handler.js +232 -18
  98. package/dist/remote/oauth-handler.js.map +1 -1
  99. package/dist/remote/policy.js +2 -2
  100. package/dist/remote/policy.js.map +1 -1
  101. package/dist/remote/schemas.d.ts +9 -9
  102. package/dist/remote/schemas.js +6 -6
  103. package/dist/remote/schemas.js.map +1 -1
  104. package/dist/remote/store.d.ts +38 -1
  105. package/dist/remote/store.d.ts.map +1 -1
  106. package/dist/remote/store.js +149 -11
  107. package/dist/remote/store.js.map +1 -1
  108. package/dist/remote/types.d.ts +14 -0
  109. package/dist/remote/types.d.ts.map +1 -1
  110. package/dist/remote/types.js.map +1 -1
  111. package/dist/remote/web-dashboard-client-config.d.ts +77 -0
  112. package/dist/remote/web-dashboard-client-config.d.ts.map +1 -0
  113. package/dist/remote/web-dashboard-client-config.js +81 -0
  114. package/dist/remote/web-dashboard-client-config.js.map +1 -0
  115. package/dist/remote/web-dashboard-html.d.ts +2 -0
  116. package/dist/remote/web-dashboard-html.d.ts.map +1 -0
  117. package/dist/remote/web-dashboard-html.js +433 -0
  118. package/dist/remote/web-dashboard-html.js.map +1 -0
  119. package/dist/remote/web-dashboard-oauth-users.d.ts +4 -0
  120. package/dist/remote/web-dashboard-oauth-users.d.ts.map +1 -0
  121. package/dist/remote/web-dashboard-oauth-users.js +78 -0
  122. package/dist/remote/web-dashboard-oauth-users.js.map +1 -0
  123. package/dist/remote/web-dashboard-static.d.ts +4 -0
  124. package/dist/remote/web-dashboard-static.d.ts.map +1 -0
  125. package/dist/remote/web-dashboard-static.js +19 -0
  126. package/dist/remote/web-dashboard-static.js.map +1 -0
  127. package/dist/remote/web-dashboard-styles.d.ts +2 -0
  128. package/dist/remote/web-dashboard-styles.d.ts.map +1 -0
  129. package/dist/remote/web-dashboard-styles.js +187 -0
  130. package/dist/remote/web-dashboard-styles.js.map +1 -0
  131. package/dist/remote/web-dashboard.d.ts +62 -0
  132. package/dist/remote/web-dashboard.d.ts.map +1 -0
  133. package/dist/remote/web-dashboard.js +467 -0
  134. package/dist/remote/web-dashboard.js.map +1 -0
  135. package/dist/retry.d.ts.map +1 -1
  136. package/dist/retry.js +6 -3
  137. package/dist/retry.js.map +1 -1
  138. package/dist/safety.d.ts.map +1 -1
  139. package/dist/safety.js +56 -6
  140. package/dist/safety.js.map +1 -1
  141. package/dist/session-auth.js +7 -7
  142. package/dist/session-auth.js.map +1 -1
  143. package/dist/session.d.ts +1 -0
  144. package/dist/session.d.ts.map +1 -1
  145. package/dist/session.js +44 -40
  146. package/dist/session.js.map +1 -1
  147. package/dist/shell.d.ts.map +1 -1
  148. package/dist/shell.js +5 -4
  149. package/dist/shell.js.map +1 -1
  150. package/dist/ssh-config.d.ts +2 -2
  151. package/dist/ssh-config.d.ts.map +1 -1
  152. package/dist/ssh-config.js +24 -20
  153. package/dist/ssh-config.js.map +1 -1
  154. package/dist/telemetry.d.ts.map +1 -1
  155. package/dist/telemetry.js +9 -2
  156. package/dist/telemetry.js.map +1 -1
  157. package/dist/tools/connector.provider.d.ts +1 -1
  158. package/dist/tools/connector.provider.d.ts.map +1 -1
  159. package/dist/tools/ensure.provider.d.ts +1 -1
  160. package/dist/tools/ensure.provider.d.ts.map +1 -1
  161. package/dist/tools/fs.provider.d.ts +1 -1
  162. package/dist/tools/fs.provider.d.ts.map +1 -1
  163. package/dist/tools/metadata.d.ts +1 -1
  164. package/dist/tools/metadata.d.ts.map +1 -1
  165. package/dist/tools/output-schemas.d.ts +27 -135
  166. package/dist/tools/output-schemas.d.ts.map +1 -1
  167. package/dist/tools/process.provider.d.ts +1 -1
  168. package/dist/tools/process.provider.d.ts.map +1 -1
  169. package/dist/tools/registry.d.ts +1 -1
  170. package/dist/tools/registry.d.ts.map +1 -1
  171. package/dist/tools/registry.js +16 -13
  172. package/dist/tools/registry.js.map +1 -1
  173. package/dist/tools/session.provider.d.ts +1 -1
  174. package/dist/tools/session.provider.d.ts.map +1 -1
  175. package/dist/tools/system.provider.d.ts +1 -1
  176. package/dist/tools/system.provider.d.ts.map +1 -1
  177. package/dist/tools/transfer.provider.d.ts +1 -1
  178. package/dist/tools/transfer.provider.d.ts.map +1 -1
  179. package/dist/tools/tunnel.provider.d.ts +1 -1
  180. package/dist/tools/tunnel.provider.d.ts.map +1 -1
  181. package/dist/tools/types.d.ts +1 -1
  182. package/dist/tools/types.d.ts.map +1 -1
  183. package/dist/transfer.js +2 -2
  184. package/dist/transfer.js.map +1 -1
  185. package/dist/types.js +1 -1
  186. package/dist/types.js.map +1 -1
  187. package/docs/adding-a-device.md +39 -17
  188. package/docs/agent-activity-monitor.md +34 -0
  189. package/docs/coolify.md +29 -0
  190. package/docs/development/dependency-management.md +1 -1
  191. package/docs/development/mcp-protocol-2026.md +33 -0
  192. package/docs/doppler-guide.md +34 -0
  193. package/docs/reference/compatibility.md +1 -1
  194. package/docs/security/dependency-audit-exceptions.md +3 -7
  195. package/docs/security/hosted-data-inventory.md +81 -0
  196. package/docs/sonarcloud-analysis.md +9 -0
  197. package/mcp.json +1 -1
  198. package/package.json +26 -21
  199. package/registry/ssh-mcp-pro/mcp.json +1 -1
  200. package/server.json +3 -3
@@ -42,6 +42,7 @@ export class OAuthHandler {
42
42
  authorizationServerMetadata() {
43
43
  return {
44
44
  issuer: this.config.publicBaseUrl,
45
+ authorization_response_iss_parameter_supported: true,
45
46
  authorization_endpoint: `${this.config.publicBaseUrl}/oauth/authorize`,
46
47
  token_endpoint: `${this.config.publicBaseUrl}/oauth/token`,
47
48
  registration_endpoint: `${this.config.publicBaseUrl}/oauth/register`,
@@ -126,44 +127,139 @@ export class OAuthHandler {
126
127
  const code = this.issueAuthorizationCode(pending, user.id);
127
128
  const destination = new URL(redirectUri);
128
129
  destination.searchParams.set("code", code);
130
+ destination.searchParams.set("iss", this.config.publicBaseUrl);
129
131
  if (state) {
130
132
  destination.searchParams.set("state", state);
131
133
  }
132
134
  redirect(res, destination.toString());
133
135
  return;
134
136
  }
135
- if (!this.config.githubClientId || !this.config.githubClientSecret) {
136
- throw safeError("FORBIDDEN", "GitHub OAuth is not configured", 503);
137
+ const testGoogle = this.testGoogleUser();
138
+ if (testGoogle) {
139
+ const user = this.upsertGoogleUser(testGoogle);
140
+ const code = this.issueAuthorizationCode(pending, user.id);
141
+ const destination = new URL(redirectUri);
142
+ destination.searchParams.set("code", code);
143
+ destination.searchParams.set("iss", this.config.publicBaseUrl);
144
+ if (state) {
145
+ destination.searchParams.set("state", state);
146
+ }
147
+ redirect(res, destination.toString());
148
+ return;
149
+ }
150
+ const hasGitHub = Boolean(this.config.githubClientId && this.config.githubClientSecret);
151
+ const hasGoogle = Boolean(this.config.googleClientId && this.config.googleClientSecret);
152
+ if (!hasGitHub && !hasGoogle) {
153
+ throw safeError("FORBIDDEN", "Neither GitHub nor Google OAuth is configured", 503);
137
154
  }
138
155
  const transactionId = id("code");
139
156
  this.authorizeTransactions.set(transactionId, pending);
140
157
  const hostname = escapeHtml(new URL(redirectUri).hostname);
158
+ // Chromium also checks form-action on the redirect after POST /oauth/approve.
159
+ // Permit only the configured identity providers, not arbitrary OAuth clients.
160
+ const formActions = [
161
+ "'self'",
162
+ ...(hasGoogle ? ["https://accounts.google.com"] : []),
163
+ ...(hasGitHub ? ["https://github.com"] : []),
164
+ ].join(" ");
141
165
  res.writeHead(200, {
142
166
  "Content-Type": "text/html; charset=utf-8",
143
167
  "Cache-Control": "no-store",
144
- "Content-Security-Policy": "default-src 'none'; form-action 'self'; frame-ancestors 'none'; base-uri 'none'",
168
+ "Content-Security-Policy": `default-src 'none'; style-src 'unsafe-inline'; form-action ${formActions}; frame-ancestors 'none'; base-uri 'none'`,
145
169
  "X-Content-Type-Options": "nosniff",
146
170
  "Set-Cookie": this.transactionCookie(transactionId),
147
171
  });
172
+ const buttons = [];
173
+ if (hasGoogle) {
174
+ buttons.push(`<button type="submit" name="provider" value="google" style="display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;margin-bottom:10px;background:#ffffff;color:#1f2937;border:1px solid #d1d5db;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;">
175
+ <svg width="18" height="18" viewBox="0 0 24 24"><path fill="#EA4335" d="M12 5c1.7 0 3 .7 3.9 1.5l2.9-2.9C17 2 14.7 1 12 1 7.5 1 3.7 3.6 1.9 7.3l3.7 2.9C6.5 7.4 9 5 12 5z"/><path fill="#4285F4" d="M23.5 12.3c0-.8-.1-1.6-.2-2.3H12v4.5h6.5c-.3 1.5-1.1 2.8-2.4 3.7l3.7 2.9c2.2-2 3.7-5 3.7-8.8z"/><path fill="#FBBC05" d="M5.6 14.8c-.2-.7-.4-1.5-.4-2.3s.2-1.6.4-2.3L1.9 7.3C.7 9.7 0 12.3 0 15.2c0 2.8.7 5.5 1.9 7.8l3.7-2.9z"/><path fill="#34A853" d="M12 23.5c3.2 0 6-1.1 8-3l-3.7-2.9c-1.1.7-2.5 1.2-4.3 1.2-3 0-5.5-2.4-6.4-5.2L1.9 16.5C3.7 20.3 7.5 23.5 12 23.5z"/></svg>
176
+ Continue with Google
177
+ </button>`);
178
+ }
179
+ if (hasGitHub) {
180
+ buttons.push(`<button type="submit" name="provider" value="github" style="display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;margin-bottom:10px;background:#24292f;color:#ffffff;border:none;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;">
181
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.53 1.032 1.53 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg>
182
+ Continue with GitHub
183
+ </button>`);
184
+ }
148
185
  res.end([
149
- '<!doctype html><html lang="en"><head><meta charset="utf-8"><title>Authorize SSH MCP</title></head>',
150
- "<body><h1>Authorize SSH MCP</h1><p>Allow the client at ",
186
+ '<!doctype html><html lang="en"><head><meta charset="utf-8"><title>Authorize SSH MCP Pro</title>',
187
+ '<meta name="viewport" content="width=device-width, initial-scale=1">',
188
+ '<style>body{background:#0d1117;color:#e6edf3;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;padding:16px;}',
189
+ ".card{background:#161b22;border:1px solid #30363d;border-radius:12px;padding:32px;max-width:440px;width:100%;box-shadow:0 10px 30px rgba(0,0,0,0.5);text-align:center;}",
190
+ "h1{font-size:22px;margin:0 0 12px;color:#f0f6fc;}p{font-size:14px;color:#8b949e;line-height:1.5;margin:0 0 24px;}",
191
+ ".badge{background:#21262d;border:1px solid #30363d;border-radius:6px;padding:4px 8px;font-family:monospace;font-size:12px;color:#58a6ff;}",
192
+ "</style></head><body>",
193
+ '<div class="card">',
194
+ '<div style="margin-bottom:16px;"><span style="font-size:32px;">🔐</span></div>',
195
+ "<h1>Authorize SSH MCP Pro</h1>",
196
+ '<p>Allow client at <strong style="color:#f0f6fc;">',
151
197
  hostname,
152
- " to request: ",
198
+ "</strong> to request access to:</p>",
199
+ '<p><span class="badge">',
153
200
  escapeHtml(scope),
154
- '?</p><form method="post" action="/oauth/approve"><input type="hidden" name="transaction" value="',
201
+ "</span></p>",
202
+ '<form method="post" action="/oauth/approve"><input type="hidden" name="transaction" value="',
155
203
  escapeHtml(transactionId),
156
- '"><button type="submit">Continue with GitHub</button></form></body></html>',
204
+ '">',
205
+ buttons.join(""),
206
+ "</form>",
207
+ '<div style="font-size:12px;color:#484f58;margin-top:20px;">Zero-Trust SSH Model Context Protocol Gateway</div>',
208
+ "</div></body></html>",
209
+ ].join(""));
210
+ }
211
+ /**
212
+ * Avoid chaining browser form submissions through third-party OAuth redirects
213
+ * and then back to the MCP client. Chromium applies form-action to redirects;
214
+ * the final client callback is deliberately not a permitted form destination.
215
+ * A new document starts an ordinary navigation instead.
216
+ */
217
+ continueToGitHub(res, githubUrl) {
218
+ const href = escapeHtml(githubUrl.toString());
219
+ res.writeHead(200, {
220
+ "Content-Type": "text/html; charset=utf-8",
221
+ "Cache-Control": "no-store",
222
+ "Referrer-Policy": "no-referrer",
223
+ "X-Content-Type-Options": "nosniff",
224
+ "Content-Security-Policy": "default-src 'none'; style-src 'unsafe-inline'; form-action 'none'; frame-ancestors 'none'; base-uri 'none'",
225
+ });
226
+ res.end([
227
+ '<!doctype html><html lang="en"><head><meta charset="utf-8">',
228
+ '<meta name="viewport" content="width=device-width, initial-scale=1">',
229
+ "<title>Continue with GitHub — SSH MCP Pro</title>",
230
+ '<meta http-equiv="refresh" content="0;url=',
231
+ href,
232
+ '">',
233
+ "</head><body>",
234
+ '<p>Continue to GitHub to sign in.</p><a href="',
235
+ href,
236
+ '">Continue with GitHub</a>',
237
+ "</body></html>",
157
238
  ].join(""));
158
239
  }
159
240
  /** Explicit browser approval binds this client to the current login transaction. */
160
241
  async handleApprove(req, res) {
161
242
  const form = await readJsonOrForm(req);
162
243
  const transactionId = form.transaction ?? "";
244
+ const provider = asString(form.provider) ?? "github";
163
245
  const pending = this.authorizeTransactions.get(transactionId);
164
246
  if (!pending || pending.expiresAt < Date.now() || !this.matchingBrowser(req, transactionId)) {
165
247
  throw safeError("INVALID_TOKEN", "OAuth transaction is missing or expired", 403);
166
248
  }
249
+ if (provider === "google") {
250
+ if (!this.config.googleClientId || !this.config.googleClientSecret) {
251
+ throw safeError("FORBIDDEN", "Google OAuth is not configured", 503);
252
+ }
253
+ pending.approved = true;
254
+ const googleUrl = new URL("https://accounts.google.com/o/oauth2/v2/auth");
255
+ googleUrl.searchParams.set("client_id", this.config.googleClientId);
256
+ googleUrl.searchParams.set("redirect_uri", this.config.googleCallbackUrl);
257
+ googleUrl.searchParams.set("response_type", "code");
258
+ googleUrl.searchParams.set("scope", "openid email profile");
259
+ googleUrl.searchParams.set("state", transactionId);
260
+ redirect(res, googleUrl.toString());
261
+ return;
262
+ }
167
263
  if (!this.config.githubClientId || !this.config.githubClientSecret) {
168
264
  throw safeError("FORBIDDEN", "GitHub OAuth is not configured", 503);
169
265
  }
@@ -173,7 +269,7 @@ export class OAuthHandler {
173
269
  githubUrl.searchParams.set("redirect_uri", this.config.githubCallbackUrl);
174
270
  githubUrl.searchParams.set("scope", "read:user");
175
271
  githubUrl.searchParams.set("state", transactionId);
176
- redirect(res, githubUrl.toString());
272
+ this.continueToGitHub(res, githubUrl);
177
273
  }
178
274
  validateAuthorizeParams(clientId, redirectUri, responseType, codeChallenge, codeChallengeMethod, resource, scope) {
179
275
  let client = this.store.getClient(clientId);
@@ -255,9 +351,9 @@ export class OAuthHandler {
255
351
  });
256
352
  return { ...client, redirectUris: updatedUris };
257
353
  }
258
- /** GET /oauth/callback/github */
259
- async handleGitHubCallback(req, res) {
260
- const url = new URL(req.url ?? "/oauth/callback/github", this.config.publicBaseUrl);
354
+ /** Consume one-use OAuth transaction and preserve the associated PKCE request. */
355
+ consumeOAuthCallback(req, provider) {
356
+ const url = new URL(req.url ?? `/oauth/callback/${provider}`, this.config.publicBaseUrl);
261
357
  const code = url.searchParams.get("code") ?? "";
262
358
  const state = url.searchParams.get("state") ?? "";
263
359
  const pending = this.authorizeTransactions.get(state);
@@ -268,17 +364,113 @@ export class OAuthHandler {
268
364
  !this.matchingBrowser(req, state)) {
269
365
  throw safeError("INVALID_TOKEN", "OAuth transaction is missing or expired");
270
366
  }
271
- const githubUser = await this.fetchGitHubUser(code);
272
- const user = this.upsertGitHubUser(githubUser);
273
- const authCode = this.issueAuthorizationCode(pending, user.id);
367
+ return { code, pending };
368
+ }
369
+ completeOAuthCallback(res, pending, userId) {
370
+ const authCode = this.issueAuthorizationCode(pending, userId);
274
371
  const destination = new URL(pending.redirectUri);
275
372
  destination.searchParams.set("code", authCode);
276
- if (pending.state) {
373
+ destination.searchParams.set("iss", this.config.publicBaseUrl);
374
+ if (pending.state)
277
375
  destination.searchParams.set("state", pending.state);
278
- }
279
376
  res.setHeader("Set-Cookie", this.transactionCookie("").replace("Max-Age=300", "Max-Age=0"));
280
377
  redirect(res, destination.toString());
281
378
  }
379
+ /** GET /oauth/callback/github */
380
+ async handleGitHubCallback(req, res) {
381
+ const { code, pending } = this.consumeOAuthCallback(req, "github");
382
+ const user = this.upsertGitHubUser(await this.fetchGitHubUser(code));
383
+ this.completeOAuthCallback(res, pending, user.id);
384
+ }
385
+ /** GET /oauth/callback/google */
386
+ async handleGoogleCallback(req, res) {
387
+ const { code, pending } = this.consumeOAuthCallback(req, "google");
388
+ const user = this.upsertGoogleUser(await this.fetchGoogleUser(code));
389
+ this.completeOAuthCallback(res, pending, user.id);
390
+ }
391
+ async fetchGoogleUser(code) {
392
+ const testUser = this.testGoogleUser();
393
+ if (testUser) {
394
+ return testUser;
395
+ }
396
+ if (!this.config.googleClientId || !this.config.googleClientSecret) {
397
+ throw safeError("FORBIDDEN", "Google OAuth is not configured", 503);
398
+ }
399
+ const tokenResponse = await fetch("https://oauth2.googleapis.com/token", {
400
+ method: "POST",
401
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
402
+ body: new URLSearchParams({
403
+ code,
404
+ client_id: this.config.googleClientId,
405
+ client_secret: this.config.googleClientSecret,
406
+ redirect_uri: this.config.googleCallbackUrl,
407
+ grant_type: "authorization_code",
408
+ }).toString(),
409
+ });
410
+ const tokenPayload = (await tokenResponse.json());
411
+ const accessToken = asString(tokenPayload.access_token);
412
+ if (!accessToken) {
413
+ throw safeError("INVALID_TOKEN", "Google OAuth token exchange failed", 502);
414
+ }
415
+ const userResponse = await fetch("https://openidconnect.googleapis.com/v1/userinfo", {
416
+ headers: { Authorization: `Bearer ${accessToken}` },
417
+ });
418
+ const userPayload = (await userResponse.json());
419
+ const googleSub = asString(userPayload.sub);
420
+ const email = asString(userPayload.email);
421
+ const name = asString(userPayload.name) ?? email ?? "Google User";
422
+ const picture = asString(userPayload.picture);
423
+ if (!googleSub || !email) {
424
+ throw safeError("INVALID_TOKEN", "Google OAuth user response missing valid identity", 502);
425
+ }
426
+ return { id: googleSub, email, name, picture };
427
+ }
428
+ /** Fixture identities must never bypass provider login on public-facing hosts. */
429
+ allowFixtureIdentity() {
430
+ if (process.env.NODE_ENV !== "test")
431
+ return false;
432
+ try {
433
+ const baseUrl = new URL(this.config.publicBaseUrl);
434
+ return (baseUrl.protocol === "http:" &&
435
+ ["localhost", "127.0.0.1", "[::1]"].includes(baseUrl.hostname));
436
+ }
437
+ catch {
438
+ return false;
439
+ }
440
+ }
441
+ testGoogleUser() {
442
+ if (!this.allowFixtureIdentity())
443
+ return undefined;
444
+ const idValue = process.env.SSHAUTOMATOR_TEST_GOOGLE_ID;
445
+ const email = process.env.SSHAUTOMATOR_TEST_GOOGLE_EMAIL;
446
+ const name = process.env.SSHAUTOMATOR_TEST_GOOGLE_NAME ?? "Test Google User";
447
+ return idValue && email ? { id: idValue, email, name } : undefined;
448
+ }
449
+ upsertGoogleUser(googleUser) {
450
+ if (!this.isGoogleUserAllowed(googleUser)) {
451
+ throw safeError("FORBIDDEN", "Google user is not allowed");
452
+ }
453
+ const existing = this.store.getUserByGoogleId(googleUser.id);
454
+ const internalId = existing?.id ?? `google:${googleUser.id}`;
455
+ this.store.upsertGoogleUser({ ...googleUser, internalId, now: nowIso() });
456
+ this.audit({
457
+ userId: internalId,
458
+ eventType: "user_login",
459
+ severity: "info",
460
+ metadata: { google_id: googleUser.id, email: googleUser.email, provider: "google" },
461
+ });
462
+ return {
463
+ id: internalId,
464
+ googleId: googleUser.id,
465
+ email: googleUser.email,
466
+ displayName: googleUser.name,
467
+ };
468
+ }
469
+ isGoogleUserAllowed(user) {
470
+ return (this.config.allowAllUsers ||
471
+ this.config.allowedGoogleSubIds.includes(user.id) ||
472
+ this.config.allowedGoogleEmails.includes(user.email));
473
+ }
282
474
  async fetchGitHubUser(code) {
283
475
  const tokenResponse = await fetch("https://github.com/login/oauth/access_token", {
284
476
  method: "POST",
@@ -299,9 +491,20 @@ export class OAuthHandler {
299
491
  headers: { Authorization: `Bearer ${accessToken}`, Accept: "application/vnd.github+json" },
300
492
  });
301
493
  const userPayload = (await userResponse.json());
302
- return { id: String(userPayload.id ?? ""), login: String(userPayload.login ?? "") };
494
+ const githubId = userPayload.id;
495
+ const githubLogin = userPayload.login;
496
+ if (typeof githubId !== "number" ||
497
+ !Number.isSafeInteger(githubId) ||
498
+ githubId <= 0 ||
499
+ typeof githubLogin !== "string" ||
500
+ !githubLogin) {
501
+ throw safeError("INVALID_TOKEN", "GitHub OAuth user response missing valid identity", 502);
502
+ }
503
+ return { id: String(githubId), login: githubLogin };
303
504
  }
304
505
  testGitHubUser() {
506
+ if (!this.allowFixtureIdentity())
507
+ return undefined;
305
508
  const idValue = process.env.SSHAUTOMATOR_TEST_GITHUB_ID;
306
509
  const login = process.env.SSHAUTOMATOR_TEST_GITHUB_LOGIN;
307
510
  return idValue && login ? { id: idValue, login } : undefined;
@@ -394,6 +597,17 @@ export class OAuthHandler {
394
597
  return user;
395
598
  }
396
599
  }
600
+ if (userId.startsWith("google:")) {
601
+ const googleId = userId.slice("google:".length);
602
+ const user = this.store.getUserByGoogleId(googleId);
603
+ if (user) {
604
+ return user;
605
+ }
606
+ }
607
+ const user = this.store.getUserById(userId);
608
+ if (user) {
609
+ return user;
610
+ }
397
611
  throw safeError("UNAUTHORIZED", "User no longer exists", 401);
398
612
  }
399
613
  /** Remove expired pending authorization transactions. */
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../src/remote/oauth-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-handler.js","sourceRoot":"","sources":["../../src/remote/oauth-handler.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export function mergeCustomPolicy(policy) {
51
51
  profile: policy.profile ?? "custom",
52
52
  capabilities: {
53
53
  ...base.capabilities,
54
- ...(policy.capabilities ?? {}),
54
+ ...policy.capabilities,
55
55
  },
56
56
  allowPaths: policy.allowPaths ?? base.allowPaths,
57
57
  denyPaths: policy.denyPaths ?? base.denyPaths,
@@ -63,7 +63,7 @@ export function mergeCustomPolicy(policy) {
63
63
  };
64
64
  }
65
65
  function normalizePolicyPath(value) {
66
- let slashPath = value.replace(/\\/gu, "/");
66
+ let slashPath = value.replaceAll("\\", "/");
67
67
  if (/^\/\/\?\/UNC\//iu.test(slashPath)) {
68
68
  slashPath = `//${slashPath.slice(8)}`;
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/remote/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/remote/policy.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ export declare const agentPolicySchema: z.ZodObject<{
54
54
  export declare const agentHelloEnvelopeSchema: z.ZodObject<{
55
55
  type: z.ZodLiteral<"agent.hello">;
56
56
  agent_id: z.ZodString;
57
- timestamp: z.ZodString;
57
+ timestamp: z.ZodISODateTime;
58
58
  nonce: z.ZodString;
59
59
  capabilities: z.ZodArray<z.ZodEnum<{
60
60
  "hosts.read": "hosts.read";
@@ -121,8 +121,8 @@ export declare const actionRequestEnvelopeSchema: z.ZodObject<{
121
121
  }>;
122
122
  args: z.ZodRecord<z.ZodString, z.ZodUnknown>;
123
123
  policy_version: z.ZodNumber;
124
- issued_at: z.ZodString;
125
- deadline: z.ZodString;
124
+ issued_at: z.ZodISODateTime;
125
+ deadline: z.ZodISODateTime;
126
126
  nonce: z.ZodString;
127
127
  signature: z.ZodString;
128
128
  }, z.core.$strict>;
@@ -138,8 +138,8 @@ export declare const actionResultEnvelopeSchema: z.ZodObject<{
138
138
  exit_code: z.ZodOptional<z.ZodNumber>;
139
139
  stdout: z.ZodOptional<z.ZodString>;
140
140
  stderr: z.ZodOptional<z.ZodString>;
141
- started_at: z.ZodString;
142
- finished_at: z.ZodString;
141
+ started_at: z.ZodISODateTime;
142
+ finished_at: z.ZodISODateTime;
143
143
  truncated: z.ZodBoolean;
144
144
  error_code: z.ZodOptional<z.ZodEnum<{
145
145
  UNAUTHORIZED: "UNAUTHORIZED";
@@ -201,7 +201,7 @@ export declare const policyUpdateEnvelopeSchema: z.ZodObject<{
201
201
  version: z.ZodNumber;
202
202
  }, z.core.$strict>;
203
203
  policy_version: z.ZodNumber;
204
- issued_at: z.ZodString;
204
+ issued_at: z.ZodISODateTime;
205
205
  nonce: z.ZodString;
206
206
  signature: z.ZodString;
207
207
  }, z.core.$strict>;
@@ -246,8 +246,8 @@ export declare const controlPlaneEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodO
246
246
  }>;
247
247
  args: z.ZodRecord<z.ZodString, z.ZodUnknown>;
248
248
  policy_version: z.ZodNumber;
249
- issued_at: z.ZodString;
250
- deadline: z.ZodString;
249
+ issued_at: z.ZodISODateTime;
250
+ deadline: z.ZodISODateTime;
251
251
  nonce: z.ZodString;
252
252
  signature: z.ZodString;
253
253
  }, z.core.$strict>, z.ZodObject<{
@@ -284,7 +284,7 @@ export declare const controlPlaneEnvelopeSchema: z.ZodDiscriminatedUnion<[z.ZodO
284
284
  version: z.ZodNumber;
285
285
  }, z.core.$strict>;
286
286
  policy_version: z.ZodNumber;
287
- issued_at: z.ZodString;
287
+ issued_at: z.ZodISODateTime;
288
288
  nonce: z.ZodString;
289
289
  signature: z.ZodString;
290
290
  }, z.core.$strict>], "type">;
@@ -30,7 +30,7 @@ export const agentHelloEnvelopeSchema = z
30
30
  .object({
31
31
  type: z.literal("agent.hello"),
32
32
  agent_id: z.string().min(1),
33
- timestamp: z.string().datetime(),
33
+ timestamp: z.iso.datetime(),
34
34
  nonce: z.string().min(16),
35
35
  capabilities: z.array(capabilitySchema),
36
36
  agent_version: z.string().min(1).max(128),
@@ -48,8 +48,8 @@ export const actionRequestEnvelopeSchema = z
48
48
  capability: capabilitySchema,
49
49
  args: z.record(z.string(), z.unknown()),
50
50
  policy_version: z.number().int().positive(),
51
- issued_at: z.string().datetime(),
52
- deadline: z.string().datetime(),
51
+ issued_at: z.iso.datetime(),
52
+ deadline: z.iso.datetime(),
53
53
  nonce: z.string().min(16),
54
54
  signature: z.string().min(1),
55
55
  })
@@ -64,8 +64,8 @@ export const actionResultEnvelopeSchema = z
64
64
  exit_code: z.number().int().optional(),
65
65
  stdout: z.string().optional(),
66
66
  stderr: z.string().optional(),
67
- started_at: z.string().datetime(),
68
- finished_at: z.string().datetime(),
67
+ started_at: z.iso.datetime(),
68
+ finished_at: z.iso.datetime(),
69
69
  truncated: z.boolean(),
70
70
  error_code: errorCodeSchema.optional(),
71
71
  message: z.string().optional(),
@@ -78,7 +78,7 @@ export const policyUpdateEnvelopeSchema = z
78
78
  agent_id: z.string().min(1),
79
79
  policy: agentPolicySchema,
80
80
  policy_version: z.number().int().positive(),
81
- issued_at: z.string().datetime(),
81
+ issued_at: z.iso.datetime(),
82
82
  nonce: z.string().min(16),
83
83
  signature: z.string().min(1),
84
84
  })
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/remote/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/remote/schemas.ts"],"names":[],"mappings":"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"}