ssh-mcp-pro 1.4.3 → 1.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/CHANGELOG.md +41 -0
- package/MIGRATION.md +1 -1
- package/README.md +1 -1
- package/dist/agent-bin.js +2 -2
- package/dist/agent-bin.js.map +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +1 -1
- package/dist/remote/action-record-sanitize.d.ts +4 -0
- package/dist/remote/action-record-sanitize.d.ts.map +1 -0
- package/dist/remote/action-record-sanitize.js +11 -0
- package/dist/remote/action-record-sanitize.js.map +1 -0
- package/dist/remote/agent-bounded-io.d.ts +30 -0
- package/dist/remote/agent-bounded-io.d.ts.map +1 -0
- package/dist/remote/agent-bounded-io.js +135 -0
- package/dist/remote/agent-bounded-io.js.map +1 -0
- package/dist/remote/agent-browser-enrollment.d.ts +16 -0
- package/dist/remote/agent-browser-enrollment.d.ts.map +1 -0
- package/dist/remote/agent-browser-enrollment.js +190 -0
- package/dist/remote/agent-browser-enrollment.js.map +1 -0
- package/dist/remote/agent-cli.d.ts +5 -0
- package/dist/remote/agent-cli.d.ts.map +1 -1
- package/dist/remote/agent-cli.js +91 -14
- package/dist/remote/agent-cli.js.map +1 -1
- package/dist/remote/agent-content-search.d.ts +20 -0
- package/dist/remote/agent-content-search.d.ts.map +1 -0
- package/dist/remote/agent-content-search.js +61 -0
- package/dist/remote/agent-content-search.js.map +1 -0
- package/dist/remote/agent-enrollment.d.ts +12 -0
- package/dist/remote/agent-enrollment.d.ts.map +1 -0
- package/dist/remote/agent-enrollment.js +87 -0
- package/dist/remote/agent-enrollment.js.map +1 -0
- package/dist/remote/agent-executor.d.ts +5 -0
- package/dist/remote/agent-executor.d.ts.map +1 -1
- package/dist/remote/agent-executor.js +96 -107
- package/dist/remote/agent-executor.js.map +1 -1
- package/dist/remote/agent-file-search.d.ts +22 -0
- package/dist/remote/agent-file-search.d.ts.map +1 -0
- package/dist/remote/agent-file-search.js +243 -0
- package/dist/remote/agent-file-search.js.map +1 -0
- package/dist/remote/agent-managed-process.d.ts +43 -0
- package/dist/remote/agent-managed-process.d.ts.map +1 -0
- package/dist/remote/agent-managed-process.js +291 -0
- package/dist/remote/agent-managed-process.js.map +1 -0
- package/dist/remote/control-plane.d.ts +3 -2
- package/dist/remote/control-plane.d.ts.map +1 -1
- package/dist/remote/control-plane.js +24 -80
- package/dist/remote/control-plane.js.map +1 -1
- package/dist/remote/dashboard-enrollment-commands.d.ts +8 -0
- package/dist/remote/dashboard-enrollment-commands.d.ts.map +1 -0
- package/dist/remote/dashboard-enrollment-commands.js +23 -0
- package/dist/remote/dashboard-enrollment-commands.js.map +1 -0
- package/dist/remote/dashboard-enrollment-feedback-script.d.ts +3 -0
- package/dist/remote/dashboard-enrollment-feedback-script.d.ts.map +1 -0
- package/dist/remote/dashboard-enrollment-feedback-script.js +227 -0
- package/dist/remote/dashboard-enrollment-feedback-script.js.map +1 -0
- package/dist/remote/mcp-tools.d.ts +1 -0
- package/dist/remote/mcp-tools.d.ts.map +1 -1
- package/dist/remote/mcp-tools.js +207 -3
- package/dist/remote/mcp-tools.js.map +1 -1
- package/dist/remote/oauth-handler.d.ts +5 -0
- package/dist/remote/oauth-handler.d.ts.map +1 -1
- package/dist/remote/oauth-handler.js +110 -65
- package/dist/remote/oauth-handler.js.map +1 -1
- package/dist/remote/oauth-provider-exchange.d.ts +11 -0
- package/dist/remote/oauth-provider-exchange.d.ts.map +1 -0
- package/dist/remote/oauth-provider-exchange.js +73 -0
- package/dist/remote/oauth-provider-exchange.js.map +1 -0
- package/dist/remote/safe-file.d.ts +19 -1
- package/dist/remote/safe-file.d.ts.map +1 -1
- package/dist/remote/safe-file.js +77 -3
- package/dist/remote/safe-file.js.map +1 -1
- package/dist/remote/schemas.d.ts +16 -0
- package/dist/remote/schemas.d.ts.map +1 -1
- package/dist/remote/schemas.js +1 -0
- package/dist/remote/schemas.js.map +1 -1
- package/dist/remote/store-schema.d.ts +4 -0
- package/dist/remote/store-schema.d.ts.map +1 -0
- package/dist/remote/store-schema.js +147 -0
- package/dist/remote/store-schema.js.map +1 -0
- package/dist/remote/store.d.ts +9 -5
- package/dist/remote/store.d.ts.map +1 -1
- package/dist/remote/store.js +96 -133
- package/dist/remote/store.js.map +1 -1
- package/dist/remote/types.d.ts +16 -2
- package/dist/remote/types.d.ts.map +1 -1
- package/dist/remote/types.js +15 -0
- package/dist/remote/types.js.map +1 -1
- package/dist/remote/web-dashboard-html.d.ts.map +1 -1
- package/dist/remote/web-dashboard-html.js +25 -27
- package/dist/remote/web-dashboard-html.js.map +1 -1
- package/dist/remote/web-dashboard-oauth-users.d.ts.map +1 -1
- package/dist/remote/web-dashboard-oauth-users.js +4 -38
- package/dist/remote/web-dashboard-oauth-users.js.map +1 -1
- package/dist/remote/web-dashboard-styles.d.ts +1 -1
- package/dist/remote/web-dashboard-styles.d.ts.map +1 -1
- package/dist/remote/web-dashboard-styles.js +2 -0
- package/dist/remote/web-dashboard-styles.js.map +1 -1
- package/dist/remote/web-dashboard.d.ts +0 -2
- package/dist/remote/web-dashboard.d.ts.map +1 -1
- package/dist/remote/web-dashboard.js +12 -20
- package/dist/remote/web-dashboard.js.map +1 -1
- package/dist/session-auth-config.d.ts +8 -0
- package/dist/session-auth-config.d.ts.map +1 -0
- package/dist/session-auth-config.js +67 -0
- package/dist/session-auth-config.js.map +1 -0
- package/dist/session.d.ts +0 -12
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +3 -64
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/docs/adding-a-device.md +187 -11
- package/docs/api-overview.md +67 -0
- package/docs/backup-restore-verification.md +45 -0
- package/docs/coolify.md +9 -0
- package/docs/development/local-setup.md +1 -1
- package/docs/reference/compatibility.md +1 -1
- package/docs/security/hosted-data-inventory.md +3 -1
- package/docs/theme/favicon.svg +12 -0
- package/docs/theme/ssh-docs.css +670 -0
- package/docs/theme/ssh-docs.js +58 -0
- package/docs/tutorials/getting-started.md +1 -1
- package/mcp.json +1 -1
- package/package.json +12 -12
- package/registry/ssh-mcp-pro/mcp.json +1 -1
- package/server.json +3 -3
package/dist/remote/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/remote/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,WAAW;IACX,aAAa;IACb,YAAY;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAA4C;IAC3E,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,cAAc,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC;IAC7D,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;IACpC,eAAe,EAAE,CAAC,eAAe,CAAC;IAClC,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,WAAW,EAAE,CAAC,WAAW,CAAC;CAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/remote/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,WAAW;IACX,aAAa;IACb,YAAY;CACJ,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,WAAW;CACH,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAA4C;IAC3E,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,cAAc,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC;IAC7D,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,gBAAgB,EAAE,CAAC,gBAAgB,CAAC;IACpC,eAAe,EAAE,CAAC,eAAe,CAAC;IAClC,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,YAAY,EAAE,CAAC,YAAY,CAAC;IAC5B,WAAW,EAAE,CAAC,WAAW,CAAC;CAC3B,CAAC;AAgIF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,YAAY;IACZ,aAAa;IACb,yBAAyB;IACzB,2BAA2B;IAC3B,mBAAmB;IACnB,WAAW;IACX,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,WAAW;IACX,YAAY;IACZ,cAAc;IACd,WAAW;IACX,eAAe;IACf,cAAc;IACd,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,cAAc;IACd,kBAAkB;CACV,CAAC;AAIX,MAAM,CAAC,MAAM,mBAAmB,GAA6C;IAC3E,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,uBAAuB,EAAE,cAAc;IACvC,yBAAyB,EAAE,cAAc;IACzC,iBAAiB,EAAE,aAAa;IAChC,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,gBAAgB;IACjC,SAAS,EAAE,eAAe;IAC1B,WAAW,EAAE,eAAe;IAC5B,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE,YAAY;IACzB,mBAAmB,EAAE,YAAY;IACjC,SAAS,EAAE,YAAY;IACvB,UAAU,EAAE,aAAa;IACzB,YAAY,EAAE,aAAa;IAC3B,SAAS,EAAE,YAAY;IACvB,aAAa,EAAE,YAAY;IAC3B,YAAY,EAAE,YAAY;IAC1B,aAAa,EAAE,YAAY;IAC3B,YAAY,EAAE,YAAY;IAC1B,iBAAiB,EAAE,WAAW;IAC9B,mBAAmB,EAAE,cAAc;IACnC,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,YAAY;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,cAAc;IACd,WAAW;IACX,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,sBAAsB;IACtB,wBAAwB;IACxB,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,gBAAgB;IAChB,wBAAwB;IACxB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,eAAe;IACf,sBAAsB;IACtB,mCAAmC;IACnC,gBAAgB;CACR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard-html.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-html.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-dashboard-html.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-html.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,MAAM,CA4bR"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { buildDashboardBrowserEnrollmentCommand } from "./dashboard-enrollment-commands.js";
|
|
1
2
|
import { DASHBOARD_STYLES } from "./web-dashboard-styles.js";
|
|
3
|
+
import { DASHBOARD_ENROLLMENT_FEEDBACK_SCRIPT } from "./dashboard-enrollment-feedback-script.js";
|
|
2
4
|
export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson) {
|
|
3
5
|
return `<!doctype html>
|
|
4
6
|
<html lang="en">
|
|
@@ -28,11 +30,13 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
28
30
|
const INITIAL_USER = JSON.parse(atob("${initialUserBase64}"));
|
|
29
31
|
const MCP_URL = ${mcpUrlJson};
|
|
30
32
|
const PUBLIC_URL = ${publicUrlJson};
|
|
33
|
+
const BROWSER_LINUX_COMMAND = ${JSON.stringify(buildDashboardBrowserEnrollmentCommand(JSON.parse(publicUrlJson)))};
|
|
31
34
|
|
|
32
35
|
let currentUser = INITIAL_USER;
|
|
33
36
|
let activeTab = 'devices';
|
|
34
37
|
let devicesList = [];
|
|
35
38
|
let auditList = [];
|
|
39
|
+
${DASHBOARD_ENROLLMENT_FEEDBACK_SCRIPT}
|
|
36
40
|
|
|
37
41
|
function escapeHtml(value) {
|
|
38
42
|
return String(value ?? '').replace(/[&<>"']/g, char => ({
|
|
@@ -82,6 +86,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
82
86
|
<button type="button" data-dashboard-tab="audit" aria-pressed="\${activeTab === 'audit'}" class="tab-item \${activeTab === 'audit' ? 'active' : ''}" onclick="switchTab('audit')">📜 Audit Log</button>
|
|
83
87
|
</nav>
|
|
84
88
|
|
|
89
|
+
\${activeTab === 'devices' ? '<p class="device-scope-note" role="note">Device access is scoped to your <strong>' + escapeHtml(currentUser.provider === 'github' ? 'GitHub' : 'Google') + '</strong> sign-in. Switching sign-in providers shows a different device list.</p>' : ''}
|
|
85
90
|
<div id="tabContent">
|
|
86
91
|
\${renderTabContent()}
|
|
87
92
|
</div>
|
|
@@ -92,6 +97,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
92
97
|
}
|
|
93
98
|
|
|
94
99
|
function switchTab(tab) {
|
|
100
|
+
stopEnrollmentPolling();
|
|
95
101
|
activeTab = tab;
|
|
96
102
|
renderApp();
|
|
97
103
|
document.querySelector('[data-dashboard-tab="' + tab + '"]')?.focus({ preventScroll: true });
|
|
@@ -113,6 +119,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
113
119
|
Sign in with GitHub
|
|
114
120
|
</a>
|
|
115
121
|
</div>
|
|
122
|
+
<p class="device-scope-note" style="text-align:center; margin-top:12px;">Use the same Google or GitHub sign-in to see your enrolled devices.</p>
|
|
116
123
|
</div>
|
|
117
124
|
|
|
118
125
|
<div class="grid-2">
|
|
@@ -176,7 +183,15 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
176
183
|
return \`
|
|
177
184
|
<div class="card">
|
|
178
185
|
<h2 style="margin-bottom:12px;">Enroll New Device</h2>
|
|
179
|
-
<p style="color:var(--text-muted); font-size:14px; margin-bottom:24px;"
|
|
186
|
+
<p style="color:var(--text-muted); font-size:14px; margin-bottom:24px;">\${localBrowserLink ? 'Approve the local agent waiting in your terminal. The one-time credential stays inside your browser and device; do not copy it into chat.' : 'Generate a one-time install command and run it on your target device.'}</p>
|
|
187
|
+
<div style="display:\${localBrowserLink ? 'none' : 'block'}; margin-bottom:20px; padding:14px; border:1px solid var(--card-border); border-radius:8px;">
|
|
188
|
+
<h3 style="margin-bottom:8px;">Linux / WSL: Set up with your browser</h3>
|
|
189
|
+
<p style="color:var(--text-muted); font-size:13px; margin-bottom:12px;">Copy this command to the device you want to enroll. Open the URL printed in its terminal in a browser on that same device, sign in and approve. No token copying or sudo required.</p>
|
|
190
|
+
<div class="code-box">
|
|
191
|
+
<button type="button" class="copy-btn" aria-live="polite" aria-label="Copy token-free Linux browser setup" onclick="copySnippet('cmdBrowser')">Copy</button>
|
|
192
|
+
<span id="cmdBrowser">\${escapeHtml(BROWSER_LINUX_COMMAND)}</span>
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
180
195
|
<div style="display:flex; gap:16px; margin-bottom:24px; flex-wrap:wrap;">
|
|
181
196
|
<div style="flex:1; min-width:240px;">
|
|
182
197
|
<label for="enrollAlias" style="display:block; font-size:13px; font-weight:600; margin-bottom:6px;">Device Alias</label>
|
|
@@ -191,9 +206,13 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
191
206
|
</select>
|
|
192
207
|
</div>
|
|
193
208
|
</div>
|
|
194
|
-
<button class="btn btn-primary" onclick="generateEnrollment()"
|
|
209
|
+
<button id="generateEnrollmentButton" type="button" class="btn btn-primary" onclick="generateEnrollment()">\${localBrowserLink ? 'Approve This Device' : 'Generate Install Command'}</button>
|
|
210
|
+
<p id="enrollError" role="alert" hidden style="color:var(--danger, #f85149); margin-top:12px;"></p>
|
|
195
211
|
|
|
196
212
|
<div id="enrollOutput" style="margin-top:24px; display:none;">
|
|
213
|
+
<p id="enrollStatus" role="status" aria-live="polite" style="margin-bottom:12px; color:var(--text-muted);"></p>
|
|
214
|
+
<button id="enrollViewDevice" type="button" class="btn btn-primary" hidden style="display:none; margin-bottom:16px;" onclick="switchTab('devices')">View connected device</button>
|
|
215
|
+
<div id="manualInstallCommands" style="display:\${localBrowserLink ? 'none' : 'block'};">
|
|
197
216
|
<h3 style="margin-bottom:12px; color:#fff;">One-Liner Installation Commands:</h3>
|
|
198
217
|
|
|
199
218
|
<div style="margin-bottom:16px;">
|
|
@@ -213,12 +232,14 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
213
232
|
</div>
|
|
214
233
|
|
|
215
234
|
<div>
|
|
216
|
-
<div style="font-weight:600; font-size:13px; color:var(--blue); margin-bottom:4px;">📦 Node CLI (
|
|
235
|
+
<div style="font-weight:600; font-size:13px; color:var(--blue); margin-bottom:4px;">📦 Manual Node CLI (foreground)</div>
|
|
236
|
+
<p style="font-size:12px; color:var(--text-muted); margin-bottom:6px;">Advanced Linux/macOS fallback: the terminal must stay open. Use an OS service installer for automatic restart.</p>
|
|
217
237
|
<div class="code-box">
|
|
218
238
|
<button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Node install command" onclick="copySnippet('cmdNpm')">Copy</button>
|
|
219
239
|
<span id="cmdNpm"></span>
|
|
220
240
|
</div>
|
|
221
241
|
</div>
|
|
242
|
+
</div>
|
|
222
243
|
</div>
|
|
223
244
|
</div>
|
|
224
245
|
\`;
|
|
@@ -299,7 +320,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
299
320
|
<td style="padding:12px 16px; font-family:var(--font-mono); color:var(--text-muted);">\${new Date(e.createdAt).toLocaleTimeString()}</td>
|
|
300
321
|
<td style="padding:12px 16px; font-weight:600;">\${escapeHtml(e.eventType)}</td>
|
|
301
322
|
<td style="padding:12px 16px;"><span class="badge \${e.severity === 'info' ? 'badge-blue' : (e.severity === 'warn' ? 'badge-green' : 'badge-gray')}">\${e.severity}</span></td>
|
|
302
|
-
<td style="padding:12px 16px; font-family:var(--font-mono); color:var(--text-muted);">\${escapeHtml(e.agentId || e.actionId || '-')}</td>
|
|
323
|
+
<td style="padding:12px 16px; font-family:var(--font-mono); color:var(--text-muted);">\${escapeHtml(e.agentAlias || e.agentId || e.actionId || '-')}</td>
|
|
303
324
|
</tr>
|
|
304
325
|
\`).join('')}
|
|
305
326
|
</tbody>
|
|
@@ -341,29 +362,6 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
341
362
|
}
|
|
342
363
|
}
|
|
343
364
|
|
|
344
|
-
async function generateEnrollment() {
|
|
345
|
-
const alias = document.getElementById('enrollAlias').value.trim() || 'server-' + Math.floor(Math.random() * 1000);
|
|
346
|
-
const profile = document.getElementById('enrollProfile').value;
|
|
347
|
-
try {
|
|
348
|
-
const res = await fetch('/api/dashboard/devices/enroll', {
|
|
349
|
-
method: 'POST',
|
|
350
|
-
headers: { 'Content-Type': 'application/json', 'X-SSH-MCP-Dashboard': '1' },
|
|
351
|
-
body: JSON.stringify({ alias, requested_profile: profile })
|
|
352
|
-
});
|
|
353
|
-
if (res.ok) {
|
|
354
|
-
const data = await res.json();
|
|
355
|
-
document.getElementById('cmdLinux').textContent = data.commands.linux;
|
|
356
|
-
document.getElementById('cmdWindows').textContent = data.commands.windows;
|
|
357
|
-
document.getElementById('cmdNpm').textContent = data.commands.npm;
|
|
358
|
-
document.getElementById('enrollOutput').style.display = 'block';
|
|
359
|
-
} else {
|
|
360
|
-
alert('Failed to generate enrollment token.');
|
|
361
|
-
}
|
|
362
|
-
} catch (e) {
|
|
363
|
-
alert('Error: ' + e.message);
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
|
|
367
365
|
async function changePolicy(id, profile) {
|
|
368
366
|
try {
|
|
369
367
|
const res = await fetch('/api/dashboard/devices/' + encodeURIComponent(id), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard-html.js","sourceRoot":"","sources":["../../src/remote/web-dashboard-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,MAAM,UAAU,mBAAmB,CACjC,iBAAyB,EACzB,UAAkB,EAClB,aAAqB;IAErB,OAAO;;;;;;WAME,gBAAgB;;;;;;;;;;;;;;;;;;;4CAmBiB,iBAAiB;sBACvC,UAAU;yBACP,aAAa
|
|
1
|
+
{"version":3,"file":"web-dashboard-html.js","sourceRoot":"","sources":["../../src/remote/web-dashboard-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sCAAsC,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,oCAAoC,EAAE,MAAM,2CAA2C,CAAC;AACjG,MAAM,UAAU,mBAAmB,CACjC,iBAAyB,EACzB,UAAkB,EAClB,aAAqB;IAErB,OAAO;;;;;;WAME,gBAAgB;;;;;;;;;;;;;;;;;;;4CAmBiB,iBAAiB;sBACvC,UAAU;yBACP,aAAa;oCACF,IAAI,CAAC,SAAS,CAAC,sCAAsC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAW,CAAC,CAAC;;;;;;MAMzH,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAwZlC,CAAC;AACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard-oauth-users.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-oauth-users.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"web-dashboard-oauth-users.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-oauth-users.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIvE,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
|
|
@@ -1,51 +1,17 @@
|
|
|
1
1
|
import { createRemoteJWKSet, jwtVerify } from "jose";
|
|
2
2
|
import { asString, safeError } from "./http-util.js";
|
|
3
|
+
import { exchangeGitHubIdentity, requestGoogleOAuthToken } from "./oauth-provider-exchange.js";
|
|
3
4
|
const googleJwks = createRemoteJWKSet(new URL("https://www.googleapis.com/oauth2/v3/certs"));
|
|
4
5
|
export async function fetchGitHubUserDirect(config, code) {
|
|
5
6
|
const callbackUrl = `${config.publicBaseUrl}/auth/callback/github`;
|
|
6
|
-
|
|
7
|
-
method: "POST",
|
|
8
|
-
headers: { Accept: "application/json", "Content-Type": "application/json" },
|
|
9
|
-
body: JSON.stringify({
|
|
10
|
-
client_id: config.githubClientId,
|
|
11
|
-
client_secret: config.githubClientSecret,
|
|
12
|
-
code,
|
|
13
|
-
redirect_uri: callbackUrl,
|
|
14
|
-
}),
|
|
15
|
-
});
|
|
16
|
-
const tokenPayload = (await tokenResponse.json());
|
|
17
|
-
const accessToken = asString(tokenPayload.access_token);
|
|
18
|
-
if (!accessToken) {
|
|
19
|
-
throw safeError("INVALID_TOKEN", "GitHub OAuth token exchange failed", 502);
|
|
20
|
-
}
|
|
21
|
-
const userResponse = await fetch("https://api.github.com/user", {
|
|
22
|
-
headers: { Authorization: `Bearer ${accessToken}`, Accept: "application/vnd.github+json" },
|
|
23
|
-
});
|
|
24
|
-
const userPayload = (await userResponse.json());
|
|
25
|
-
const githubId = userPayload.id;
|
|
26
|
-
const githubLogin = userPayload.login;
|
|
27
|
-
if (typeof githubId !== "number" || typeof githubLogin !== "string" || !githubLogin) {
|
|
28
|
-
throw safeError("INVALID_TOKEN", "GitHub user response missing valid identity", 502);
|
|
29
|
-
}
|
|
30
|
-
return { id: String(githubId), login: githubLogin };
|
|
7
|
+
return exchangeGitHubIdentity(config, code, callbackUrl);
|
|
31
8
|
}
|
|
32
9
|
export async function fetchGoogleUserDirect(config, code, nonce) {
|
|
33
10
|
const callbackUrl = config.googleCallbackUrl;
|
|
34
|
-
const
|
|
35
|
-
method: "POST",
|
|
36
|
-
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
37
|
-
body: new URLSearchParams({
|
|
38
|
-
code,
|
|
39
|
-
client_id: config.googleClientId ?? "",
|
|
40
|
-
client_secret: config.googleClientSecret ?? "",
|
|
41
|
-
redirect_uri: callbackUrl,
|
|
42
|
-
grant_type: "authorization_code",
|
|
43
|
-
}).toString(),
|
|
44
|
-
});
|
|
45
|
-
const tokenPayload = (await tokenResponse.json());
|
|
11
|
+
const { tokenPayload, responseOk } = await requestGoogleOAuthToken(config, code, callbackUrl);
|
|
46
12
|
const idToken = asString(tokenPayload.id_token);
|
|
47
13
|
const clientId = config.googleClientId;
|
|
48
|
-
if (!
|
|
14
|
+
if (!responseOk || !idToken || !clientId || !nonce) {
|
|
49
15
|
throw safeError("INVALID_TOKEN", "Google OIDC token exchange failed", 502);
|
|
50
16
|
}
|
|
51
17
|
let claims;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard-oauth-users.js","sourceRoot":"","sources":["../../src/remote/web-dashboard-oauth-users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAmB,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"web-dashboard-oauth-users.js","sourceRoot":"","sources":["../../src/remote/web-dashboard-oauth-users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAmB,MAAM,MAAM,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAG/F,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;AAE7F,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAoB,EACpB,IAAY;IAEZ,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,aAAa,uBAAuB,CAAC;IACnE,OAAO,sBAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAoB,EACpB,IAAY,EACZ,KAAa;IAEb,MAAM,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC7C,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;IACvC,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACnD,MAAM,SAAS,CAAC,eAAe,EAAE,mCAAmC,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,MAAwD,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;YACpD,MAAM,EAAE,CAAC,6BAA6B,EAAE,qBAAqB,CAAC;YAC9D,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,CAAC,OAAO,CAAC;SACtB,CAAC,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,SAAS,CAAC,eAAe,EAAE,wCAAwC,EAAE,GAAG,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,gCAAgC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAkB,EAAE,KAAa;IACzE,IACE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAC9B,CAAC,MAAM,CAAC,GAAG;QACX,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;QAChC,CAAC,MAAM,CAAC,KAAK;QACb,MAAM,CAAC,cAAc,KAAK,IAAI;QAC9B,MAAM,CAAC,KAAK,KAAK,KAAK,EACtB,CAAC;QACD,MAAM,SAAS,CAAC,eAAe,EAAE,wCAAwC,EAAE,GAAG,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAChE,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const DASHBOARD_STYLES = "\n :root {\n --bg: #0d1117;\n --card-bg: #161b22;\n --card-border: #30363d;\n --text-main: #f0f6fc;\n --text-muted: #8b949e;\n --primary: #238636;\n --primary-hover: #2ea043;\n --blue: #58a6ff;\n --blue-bg: rgba(56, 139, 253, 0.15);\n --red: #f85149;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n body {\n background-color: var(--bg);\n color: var(--text-main);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n line-height: 1.5;\n padding-bottom: 60px;\n }\n header {\n background: #161b22;\n border-bottom: 1px solid var(--card-border);\n padding: 16px 24px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 12px;\n position: sticky;\n top: 0;\n z-index: 100;\n }\n .logo-area { display: flex; align-items: center; gap: 12px; }\n .logo-icon { font-size: 24px; }\n .brand-title { font-size: 18px; font-weight: 700; color: #fff; letter-spacing: -0.5px; }\n .brand-sub { font-size: 12px; color: var(--text-muted); }\n .user-area { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; min-width: 0; }\n .badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n }\n .badge-green { background: #238636; color: #fff; }\n .badge-gray { background: #30363d; color: #c9d1d9; }\n .badge-blue { background: var(--blue-bg); color: var(--blue); border: 1px solid rgba(56,139,253,0.3); }\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n text-decoration: none;\n border: 1px solid transparent;\n transition: all 0.2s ease;\n }\n .btn-primary { background: var(--primary); color: #fff; border-color: rgba(240,246,252,0.1); }\n .btn-primary:hover { background: var(--primary-hover); }\n .btn-outline { background: transparent; color: var(--text-main); border-color: var(--card-border); }\n .btn-outline:hover { background: #21262d; border-color: #8b949e; }\n .btn-danger { background: rgba(248,81,73,0.1); color: var(--red); border-color: rgba(248,81,73,0.4); }\n .btn-danger:hover { background: var(--red); color: #fff; }\n .btn-sm { padding: 4px 10px; font-size: 12px; }\n\n .container { max-width: 1100px; margin: 32px auto; padding: 0 20px; }\n\n /* Hero banner */\n .hero {\n background: linear-gradient(180deg, #161b22 0%, #0d1117 100%);\n border: 1px solid var(--card-border);\n border-radius: 12px;\n padding: 48px 32px;\n text-align: center;\n margin-bottom: 32px;\n }\n .hero h1 { font-size: 32px; font-weight: 800; margin-bottom: 12px; color: #fff; }\n .hero p { font-size: 16px; color: var(--text-muted); max-width: 650px; margin: 0 auto 28px; }\n .auth-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }\n .auth-btn {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px;\n border-radius: 8px;\n font-weight: 600;\n font-size: 15px;\n text-decoration: none;\n border: 1px solid transparent;\n transition: transform 0.15s ease;\n }\n .auth-btn:hover { transform: translateY(-2px); }\n .auth-btn-google { background: #ffffff; color: #1f2937; border-color: #d1d5db; }\n .auth-btn-github { background: #24292f; color: #ffffff; border-color: #30363d; }\n\n /* Tab nav */\n .tabs { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--card-border); margin-bottom: 24px; }\n .tab-item {\n background: transparent;\n border: 0;\n font-family: inherit;\n text-align: left;\n padding: 12px 20px;\n cursor: pointer;\n font-weight: 600;\n font-size: 14px;\n color: var(--text-muted);\n border-bottom: 2px solid transparent;\n transition: color 0.15s ease;\n }\n .tab-item.active { color: var(--blue); border-bottom-color: var(--blue); }\n .tab-item:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }\n .tab-pane { display: none; }\n .tab-pane.active { display: block; }\n\n /* Device Cards */\n .card {\n background: var(--card-bg);\n border: 1px solid var(--card-border);\n border-radius: 8px;\n padding: 20px;\n margin-bottom: 16px;\n }\n .device-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 16px;\n }\n .device-info { display: flex; align-items: center; flex: 1 1 260px; min-width: 0; gap: 16px; }\n .device-info > div:last-child { min-width: 0; }\n .device-icon {\n font-size: 28px;\n width: 48px;\n height: 48px;\n background: #21262d;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .device-name { font-size: 16px; font-weight: 700; margin-bottom: 4px; display: flex; align-items: center; flex-wrap: wrap; overflow-wrap: anywhere; gap: 8px; }\n .device-meta { font-size: 13px; color: var(--text-muted); font-family: var(--font-mono); overflow-wrap: anywhere; }\n .device-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }\n\n /* Code block */\n .code-box {\n background: #090d13;\n border: 1px solid #30363d;\n border-radius: 6px;\n padding: 14px 18px;\n font-family: var(--font-mono);\n font-size: 13px;\n color: #7ee787;\n overflow-x: auto;\n margin: 12px 0;\n position: relative;\n }\n .code-box > span {\n display: block;\n padding-right: 52px;\n overflow-wrap: anywhere;\n }\n .card a { color: var(--blue); text-underline-offset: 2px; }\n .card a:hover { color: #b0d4ff; }\n .copy-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n font-size: 11px;\n background: #21262d;\n color: #c9d1d9;\n border: 1px solid #30363d;\n border-radius: 4px;\n cursor: pointer;\n }\n .copy-btn:hover { background: #30363d; color: #fff; }\n .copy-btn:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }\n\n /* Config guide cards */\n .grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; }\n @media (max-width: 480px) {\n .container { margin: 20px auto; padding: 0 12px; }\n .hero { padding: 28px 18px; }\n .hero h1 { font-size: 26px; }\n .device-actions { width: 100%; }\n .device-actions select { width: 100%; min-width: 0; }\n }\n\n /* Empty state */\n .empty-box {\n text-align: center;\n padding: 48px 16px;\n color: var(--text-muted);\n }\n";
|
|
1
|
+
export declare const DASHBOARD_STYLES = "\n :root {\n --bg: #0d1117;\n --card-bg: #161b22;\n --card-border: #30363d;\n --text-main: #f0f6fc;\n --text-muted: #8b949e;\n --primary: #238636;\n --primary-hover: #2ea043;\n --blue: #58a6ff;\n --blue-bg: rgba(56, 139, 253, 0.15);\n --red: #f85149;\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n body {\n background-color: var(--bg);\n color: var(--text-main);\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n line-height: 1.5;\n padding-bottom: 60px;\n }\n header {\n background: #161b22;\n border-bottom: 1px solid var(--card-border);\n padding: 16px 24px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 12px;\n position: sticky;\n top: 0;\n z-index: 100;\n }\n .logo-area { display: flex; align-items: center; gap: 12px; }\n .logo-icon { font-size: 24px; }\n .brand-title { font-size: 18px; font-weight: 700; color: #fff; letter-spacing: -0.5px; }\n .brand-sub { font-size: 12px; color: var(--text-muted); }\n .user-area { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; min-width: 0; }\n .badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n }\n .badge-green { background: #238636; color: #fff; }\n .badge-gray { background: #30363d; color: #c9d1d9; }\n .badge-blue { background: var(--blue-bg); color: var(--blue); border: 1px solid rgba(56,139,253,0.3); }\n .btn {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 8px 16px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n text-decoration: none;\n border: 1px solid transparent;\n transition: all 0.2s ease;\n }\n .btn-primary { background: var(--primary); color: #fff; border-color: rgba(240,246,252,0.1); }\n .btn-primary:hover { background: var(--primary-hover); }\n .btn-outline { background: transparent; color: var(--text-main); border-color: var(--card-border); }\n .btn-outline:hover { background: #21262d; border-color: #8b949e; }\n .btn-danger { background: rgba(248,81,73,0.1); color: var(--red); border-color: rgba(248,81,73,0.4); }\n .btn-danger:hover { background: var(--red); color: #fff; }\n .btn-sm { padding: 4px 10px; font-size: 12px; }\n\n .container { max-width: 1100px; margin: 32px auto; padding: 0 20px; }\n\n /* Hero banner */\n .hero {\n background: linear-gradient(180deg, #161b22 0%, #0d1117 100%);\n border: 1px solid var(--card-border);\n border-radius: 12px;\n padding: 48px 32px;\n text-align: center;\n margin-bottom: 32px;\n }\n .hero h1 { font-size: 32px; font-weight: 800; margin-bottom: 12px; color: #fff; }\n .hero p { font-size: 16px; color: var(--text-muted); max-width: 650px; margin: 0 auto 28px; }\n .auth-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }\n .auth-btn {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 24px;\n border-radius: 8px;\n font-weight: 600;\n font-size: 15px;\n text-decoration: none;\n border: 1px solid transparent;\n transition: transform 0.15s ease;\n }\n .auth-btn:hover { transform: translateY(-2px); }\n .auth-btn-google { background: #ffffff; color: #1f2937; border-color: #d1d5db; }\n .auth-btn-github { background: #24292f; color: #ffffff; border-color: #30363d; }\n\n /* Tab nav */\n .tabs { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--card-border); margin-bottom: 24px; }\n .tab-item {\n background: transparent;\n border: 0;\n font-family: inherit;\n text-align: left;\n padding: 12px 20px;\n cursor: pointer;\n font-weight: 600;\n font-size: 14px;\n color: var(--text-muted);\n border-bottom: 2px solid transparent;\n transition: color 0.15s ease;\n }\n .tab-item.active { color: var(--blue); border-bottom-color: var(--blue); }\n .tab-item:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }\n .tab-pane { display: none; }\n .tab-pane.active { display: block; }\n\n /* Device Cards */\n .card {\n background: var(--card-bg);\n border: 1px solid var(--card-border);\n border-radius: 8px;\n padding: 20px;\n margin-bottom: 16px;\n }\n .device-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 16px;\n }\n .device-info { display: flex; align-items: center; flex: 1 1 260px; min-width: 0; gap: 16px; }\n .device-info > div:last-child { min-width: 0; }\n .device-icon {\n font-size: 28px;\n width: 48px;\n height: 48px;\n background: #21262d;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .device-name { font-size: 16px; font-weight: 700; margin-bottom: 4px; display: flex; align-items: center; flex-wrap: wrap; overflow-wrap: anywhere; gap: 8px; }\n .device-meta { font-size: 13px; color: var(--text-muted); font-family: var(--font-mono); overflow-wrap: anywhere; }\n .device-scope-note { font-size: 13px; color: var(--text-muted); margin: 0 0 16px; line-height: 1.5; }\n .device-scope-note strong { color: var(--text); }\n .device-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }\n\n /* Code block */\n .code-box {\n background: #090d13;\n border: 1px solid #30363d;\n border-radius: 6px;\n padding: 14px 18px;\n font-family: var(--font-mono);\n font-size: 13px;\n color: #7ee787;\n overflow-x: auto;\n margin: 12px 0;\n position: relative;\n }\n .code-box > span {\n display: block;\n padding-right: 52px;\n overflow-wrap: anywhere;\n }\n .card a { color: var(--blue); text-underline-offset: 2px; }\n .card a:hover { color: #b0d4ff; }\n .copy-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n padding: 4px 8px;\n font-size: 11px;\n background: #21262d;\n color: #c9d1d9;\n border: 1px solid #30363d;\n border-radius: 4px;\n cursor: pointer;\n }\n .copy-btn:hover { background: #30363d; color: #fff; }\n .copy-btn:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }\n\n /* Config guide cards */\n .grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; }\n @media (max-width: 480px) {\n .container { margin: 20px auto; padding: 0 12px; }\n .hero { padding: 28px 18px; }\n .hero h1 { font-size: 26px; }\n .device-actions { width: 100%; }\n .device-actions select { width: 100%; min-width: 0; }\n }\n\n /* Empty state */\n .empty-box {\n text-align: center;\n padding: 48px 16px;\n color: var(--text-muted);\n }\n";
|
|
2
2
|
//# sourceMappingURL=web-dashboard-styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard-styles.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"web-dashboard-styles.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,yrOA8M5B,CAAC"}
|
|
@@ -149,6 +149,8 @@ export const DASHBOARD_STYLES = `
|
|
|
149
149
|
}
|
|
150
150
|
.device-name { font-size: 16px; font-weight: 700; margin-bottom: 4px; display: flex; align-items: center; flex-wrap: wrap; overflow-wrap: anywhere; gap: 8px; }
|
|
151
151
|
.device-meta { font-size: 13px; color: var(--text-muted); font-family: var(--font-mono); overflow-wrap: anywhere; }
|
|
152
|
+
.device-scope-note { font-size: 13px; color: var(--text-muted); margin: 0 0 16px; line-height: 1.5; }
|
|
153
|
+
.device-scope-note strong { color: var(--text); }
|
|
152
154
|
.device-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
|
|
153
155
|
|
|
154
156
|
/* Code block */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard-styles.js","sourceRoot":"","sources":["../../src/remote/web-dashboard-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"web-dashboard-styles.js","sourceRoot":"","sources":["../../src/remote/web-dashboard-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8M/B,CAAC"}
|
|
@@ -46,8 +46,6 @@ export declare class WebDashboardHandler {
|
|
|
46
46
|
private handleDirectCallbackGoogle;
|
|
47
47
|
private handleApiMe;
|
|
48
48
|
private handleApiDevices;
|
|
49
|
-
private quotePosixArg;
|
|
50
|
-
private quotePowerShellArg;
|
|
51
49
|
private handleApiEnrollDevice;
|
|
52
50
|
/** Resolve devices only through the authenticated tenant's ownership boundary. */
|
|
53
51
|
private findOwnedDashboardDevice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"web-dashboard.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAS/F,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,qBAAqB,CAAC;IACpC,aAAa,EAAE,MAAM,UAAU,CAAC;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7D,qBAAqB,EAAE,CACrB,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,iBAAiB,EAAE,CACjB,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,OAAO,KACjB,iBAAiB,CAAC;IACvB,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;IACzF,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;CAChF;AAED,qBAAa,mBAAmB;IAMlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;gBAEyB,IAAI,EAAE,wBAAwB;IAE3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAE3D,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,qBAAqB;IAY7B,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAsB1E,mFAAmF;IAC7E,iBAAiB,CACrB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IASnB,OAAO,CAAC,kBAAkB;YAcZ,gBAAgB;YAqChB,wBAAwB;YA2BxB,2BAA2B;IAgCzC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,uBAAuB;IAwC/B,qEAAqE;IACrE,OAAO,CAAC,yBAAyB;IAsBjC,OAAO,CAAC,eAAe;YAgBT,0BAA0B;IAUxC,8EAA8E;IACxE,0BAA0B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;YAQ/E,0BAA0B;IAWxC,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,gBAAgB;YAmBV,qBAAqB;IA4BnC,kFAAkF;IAClF,OAAO,CAAC,wBAAwB;YAmBlB,2BAA2B;IAYzC,gFAAgF;IAChF,OAAO,CAAC,qBAAqB;YAWf,qBAAqB;IAyBnC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,kBAAkB;CAsC3B"}
|
|
@@ -7,6 +7,7 @@ import { jsonResponse } from "./util.js";
|
|
|
7
7
|
import { renderDashboardHtml } from "./web-dashboard-html.js";
|
|
8
8
|
import { serveAgentScript } from "./web-dashboard-static.js";
|
|
9
9
|
import { createDashboardClientConfigs } from "./web-dashboard-client-config.js";
|
|
10
|
+
import { buildDashboardEnrollmentCommands } from "./dashboard-enrollment-commands.js";
|
|
10
11
|
import { fetchGitHubUserDirect, fetchGoogleUserDirect } from "./web-dashboard-oauth-users.js";
|
|
11
12
|
export class WebDashboardHandler {
|
|
12
13
|
deps;
|
|
@@ -337,12 +338,6 @@ export class WebDashboardHandler {
|
|
|
337
338
|
});
|
|
338
339
|
jsonResponse(res, 200, { devices: enriched }, addNoStore());
|
|
339
340
|
}
|
|
340
|
-
quotePosixArg(value) {
|
|
341
|
-
return "'" + value.replaceAll("'", String.raw `'\''`) + "'";
|
|
342
|
-
}
|
|
343
|
-
quotePowerShellArg(value) {
|
|
344
|
-
return "'" + value.replaceAll("'", "''") + "'";
|
|
345
|
-
}
|
|
346
341
|
async handleApiEnrollDevice(req, res) {
|
|
347
342
|
const principal = this.getPrincipalFromSession(req);
|
|
348
343
|
if (!principal) {
|
|
@@ -357,20 +352,10 @@ export class WebDashboardHandler {
|
|
|
357
352
|
if (typeof token !== "string" || !token) {
|
|
358
353
|
throw safeError("INVALID_TOKEN", "Enrollment token was not generated", 500);
|
|
359
354
|
}
|
|
360
|
-
const
|
|
361
|
-
const powerShellInstallerUrl = `${serverUrl}/install-agent.ps1`;
|
|
362
|
-
// Propagate curl failures instead of reporting success from an empty bash pipeline.
|
|
363
|
-
const curlScript = 'curl -fsSL "$1" | bash -s -- --server "$2" --token "$3" --alias "$4"';
|
|
364
|
-
const curlCommand = `bash -o pipefail -c ${this.quotePosixArg(curlScript)} _ ${this.quotePosixArg(posixInstallerUrl)} ${this.quotePosixArg(serverUrl)} ${this.quotePosixArg(token)} ${this.quotePosixArg(alias)}`;
|
|
365
|
-
const powershellCommand = `& ([scriptblock]::Create((Invoke-RestMethod -Uri ${this.quotePowerShellArg(powerShellInstallerUrl)}))) -Server ${this.quotePowerShellArg(serverUrl)} -Token ${this.quotePowerShellArg(token)} -Alias ${this.quotePowerShellArg(alias)}`;
|
|
366
|
-
const npmCommand = `npx --yes --package ssh-mcp-pro@latest ssh-mcp-pro-agent enroll --server ${this.quotePosixArg(serverUrl)} --token ${this.quotePosixArg(token)} --alias ${this.quotePosixArg(alias)} && npx --yes --package ssh-mcp-pro@latest ssh-mcp-pro-agent run`;
|
|
355
|
+
const commands = buildDashboardEnrollmentCommands(serverUrl, token, alias);
|
|
367
356
|
jsonResponse(res, 201, {
|
|
368
357
|
...tokenResult,
|
|
369
|
-
commands
|
|
370
|
-
linux: curlCommand,
|
|
371
|
-
windows: powershellCommand,
|
|
372
|
-
npm: npmCommand,
|
|
373
|
-
},
|
|
358
|
+
commands,
|
|
374
359
|
}, addNoStore());
|
|
375
360
|
}
|
|
376
361
|
/** Resolve devices only through the authenticated tenant's ownership boundary. */
|
|
@@ -433,7 +418,11 @@ export class WebDashboardHandler {
|
|
|
433
418
|
jsonResponse(res, 401, { error: "Authentication required" }, addNoStore());
|
|
434
419
|
return;
|
|
435
420
|
}
|
|
436
|
-
const
|
|
421
|
+
const aliases = new Map(this.deps.store.listAgents(principal.userId).map((agent) => [agent.id, agent.alias]));
|
|
422
|
+
const events = this.deps.store.listAudit(principal.userId, undefined, 50).map((event) => ({
|
|
423
|
+
...event,
|
|
424
|
+
agentAlias: event.agentId ? aliases.get(event.agentId) : undefined,
|
|
425
|
+
}));
|
|
437
426
|
jsonResponse(res, 200, { events }, addNoStore());
|
|
438
427
|
}
|
|
439
428
|
handleApiClientConfigs(res) {
|
|
@@ -458,7 +447,10 @@ export class WebDashboardHandler {
|
|
|
458
447
|
res.writeHead(200, {
|
|
459
448
|
"Content-Type": "text/html; charset=utf-8",
|
|
460
449
|
"Cache-Control": "no-store",
|
|
461
|
-
|
|
450
|
+
// The signed-in dashboard sends a one-time enrollment token only to
|
|
451
|
+
// its local 127.0.0.1 listener on an ephemeral port. Restrict this
|
|
452
|
+
// exception to loopback IPv4 (not arbitrary LAN/HTTP origins).
|
|
453
|
+
"Content-Security-Policy": "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' http://127.0.0.1:*; frame-ancestors 'none'; base-uri 'self'",
|
|
462
454
|
"X-Content-Type-Options": "nosniff",
|
|
463
455
|
});
|
|
464
456
|
res.end(renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard.js","sourceRoot":"","sources":["../../src/remote/web-dashboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-dashboard.js","sourceRoot":"","sources":["../../src/remote/web-dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type SSHAuthConfig } from "./session-auth.js";
|
|
2
|
+
import type { ConnectionParams } from "./types.js";
|
|
3
|
+
/** Build SSH authentication options while preserving existing strategy priority. */
|
|
4
|
+
/**
|
|
5
|
+
* Builds authentication configuration based on the auth strategy
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildSessionAuthConfig(params: ConnectionParams): Promise<SSHAuthConfig>;
|
|
8
|
+
//# sourceMappingURL=session-auth-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-auth-config.d.ts","sourceRoot":"","sources":["../src/session-auth-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,oFAAoF;AACpF;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAmB7F"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { buildAgentAuth, discoverPrivateKeys, loadPrivateKeyFromPath, } from "./session-auth.js";
|
|
2
|
+
import { createAuthError } from "./errors.js";
|
|
3
|
+
import { logger } from "./logging.js";
|
|
4
|
+
/** Build SSH authentication options while preserving existing strategy priority. */
|
|
5
|
+
/**
|
|
6
|
+
* Builds authentication configuration based on the auth strategy
|
|
7
|
+
*/
|
|
8
|
+
export async function buildSessionAuthConfig(params) {
|
|
9
|
+
const authStrategy = params.auth ?? "auto";
|
|
10
|
+
logger.debug("Building auth config", { strategy: authStrategy });
|
|
11
|
+
switch (authStrategy) {
|
|
12
|
+
case "password":
|
|
13
|
+
if (!params.password) {
|
|
14
|
+
throw createAuthError("Password required for password authentication");
|
|
15
|
+
}
|
|
16
|
+
return { password: params.password };
|
|
17
|
+
case "key":
|
|
18
|
+
return await buildKeyAuth(params);
|
|
19
|
+
case "agent":
|
|
20
|
+
return buildAgentAuth();
|
|
21
|
+
case "auto":
|
|
22
|
+
default:
|
|
23
|
+
return await buildAutoAuth(params);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Builds key-based authentication
|
|
28
|
+
*/
|
|
29
|
+
async function buildKeyAuth(params) {
|
|
30
|
+
if (params.privateKey) {
|
|
31
|
+
logger.debug("Using inline private key");
|
|
32
|
+
return {
|
|
33
|
+
privateKey: params.privateKey,
|
|
34
|
+
...(params.passphrase !== undefined ? { passphrase: params.passphrase } : {}),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (params.privateKeyPath) {
|
|
38
|
+
logger.debug("Using private key from path", {
|
|
39
|
+
path: params.privateKeyPath,
|
|
40
|
+
});
|
|
41
|
+
return await loadPrivateKeyFromPath(params.privateKeyPath, params.passphrase);
|
|
42
|
+
}
|
|
43
|
+
return await discoverPrivateKeys(params.passphrase, logger);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Builds automatic authentication (tries password, then key, then agent)
|
|
47
|
+
*/
|
|
48
|
+
async function buildAutoAuth(params) {
|
|
49
|
+
if (params.password) {
|
|
50
|
+
logger.debug("Auto auth: trying password");
|
|
51
|
+
return { password: params.password };
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
logger.debug("Auto auth: trying key authentication");
|
|
55
|
+
return await buildKeyAuth(params);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
logger.debug("Auto auth: key authentication failed, trying agent");
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
return buildAgentAuth();
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
throw createAuthError("No suitable authentication method found", "Provide a password, private key, or ensure SSH agent is running");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=session-auth-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-auth-config.js","sourceRoot":"","sources":["../src/session-auth-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,oFAAoF;AACpF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAwB;IACnE,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;IAE3C,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IAEjE,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,UAAU;YACb,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,eAAe,CAAC,+CAA+C,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,KAAK;YACR,OAAO,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,OAAO;YACV,OAAO,cAAc,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC;QACZ;YACE,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,MAAwB;IAClD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;YAC1C,IAAI,EAAE,MAAM,CAAC,cAAc;SAC5B,CAAC,CAAC;QACH,OAAO,MAAM,sBAAsB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,MAAM,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,MAAwB;IACnD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrD,OAAO,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC;QACH,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,eAAe,CACnB,yCAAyC,EACzC,iEAAiE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/session.d.ts
CHANGED
|
@@ -62,18 +62,6 @@ export declare class SessionManager {
|
|
|
62
62
|
* Gets an active session by ID
|
|
63
63
|
*/
|
|
64
64
|
getSession(sessionId: string): SSHSession | undefined;
|
|
65
|
-
/**
|
|
66
|
-
* Builds authentication configuration based on the auth strategy
|
|
67
|
-
*/
|
|
68
|
-
private buildAuthConfig;
|
|
69
|
-
/**
|
|
70
|
-
* Builds key-based authentication
|
|
71
|
-
*/
|
|
72
|
-
private buildKeyAuth;
|
|
73
|
-
/**
|
|
74
|
-
* Builds automatic authentication (tries password, then key, then agent)
|
|
75
|
-
*/
|
|
76
|
-
private buildAutoAuth;
|
|
77
65
|
private notifySessionClose;
|
|
78
66
|
private resolveHostKeyPolicy;
|
|
79
67
|
private verifyAcceptNewHostKey;
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|