ssh-mcp-pro 1.4.0 → 1.4.3
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 +23 -0
- package/MIGRATION.md +2 -2
- package/README.md +25 -14
- package/SECURITY_DECISIONS.md +19 -0
- package/dist/config-security-env.d.ts +1 -1
- package/dist/config-security-env.d.ts.map +1 -1
- package/dist/config-types.d.ts +82 -0
- package/dist/config-types.d.ts.map +1 -0
- package/dist/config-types.js +2 -0
- package/dist/config-types.js.map +1 -0
- package/dist/config.d.ts +2 -81
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +1 -1
- package/dist/remote/agent-cli.d.ts.map +1 -1
- package/dist/remote/agent-cli.js +62 -9
- package/dist/remote/agent-cli.js.map +1 -1
- package/dist/remote/web-dashboard-html.d.ts.map +1 -1
- package/dist/remote/web-dashboard-html.js +39 -21
- package/dist/remote/web-dashboard-html.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 +25 -6
- package/dist/remote/web-dashboard-styles.js.map +1 -1
- package/docs/development/local-setup.md +1 -1
- package/docs/development/release-process.md +5 -5
- package/docs/docker.md +4 -4
- package/docs/openssf-evidence.md +11 -7
- package/docs/openssf-gap-analysis.md +7 -8
- package/docs/reference/cli.md +17 -6
- package/docs/reference/compatibility.md +1 -1
- package/docs/tutorials/getting-started.md +1 -1
- package/mcp.json +1 -1
- package/package.json +3 -3
- package/registry/ssh-mcp-pro/mcp.json +1 -1
- package/server.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-cli.js","sourceRoot":"","sources":["../../src/remote/agent-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-cli.js","sourceRoot":"","sources":["../../src/remote/agent-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-dashboard-html.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-html.ts"],"names":[],"mappings":"AACA,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"web-dashboard-html.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard-html.ts"],"names":[],"mappings":"AACA,wBAAgB,mBAAmB,CACjC,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,MAAM,CAgcR"}
|
|
@@ -68,7 +68,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
68
68
|
<div style="display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;">
|
|
69
69
|
<div>
|
|
70
70
|
<div style="font-size:12px; text-transform:uppercase; font-weight:700; color:var(--blue); margin-bottom:4px;">Remote MCP Endpoint</div>
|
|
71
|
-
<div style="font-family:var(--font-mono); font-size:15px; color:#fff; font-weight:600;">\${MCP_URL}</div>
|
|
71
|
+
<div style="font-family:var(--font-mono); font-size:15px; color:#fff; font-weight:600; overflow-wrap:anywhere;">\${MCP_URL}</div>
|
|
72
72
|
<div style="font-size:13px; color:var(--text-muted); margin-top:4px;">Transport: Streamable HTTP • Auth: OAuth 2.1 PKCE (RFC 9728 & RFC 8414)</div>
|
|
73
73
|
</div>
|
|
74
74
|
<button class="btn btn-primary" onclick="switchTab('add-device')">➕ Add New Device</button>
|
|
@@ -102,7 +102,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
102
102
|
<div class="hero">
|
|
103
103
|
<div style="font-size: 48px; margin-bottom: 12px;">🛡️⚡</div>
|
|
104
104
|
<h1>ssh-mcp-pro Gateway</h1>
|
|
105
|
-
<p>Zero-Trust Model Context Protocol SSH Gateway with policy controls,
|
|
105
|
+
<p>Zero-Trust Model Context Protocol SSH Gateway with policy controls, OAuth 2.1 authentication, and dual local/remote agent support.</p>
|
|
106
106
|
<div class="auth-buttons">
|
|
107
107
|
<a href="/auth/login/google" class="auth-btn auth-btn-google">
|
|
108
108
|
<svg width="20" height="20" 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>
|
|
@@ -122,8 +122,8 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
122
122
|
<div class="code-box">\${MCP_URL}</div>
|
|
123
123
|
</div>
|
|
124
124
|
<div class="card">
|
|
125
|
-
<h3 style="margin-bottom:8px; color:#7ee787;">💻 Local Stdio Mode (
|
|
126
|
-
<p style="font-size:14px; color:var(--text-muted); margin-bottom:12px;">
|
|
125
|
+
<h3 style="margin-bottom:8px; color:#7ee787;">💻 Local Stdio Mode (Policy-Controlled)</h3>
|
|
126
|
+
<p style="font-size:14px; color:var(--text-muted); margin-bottom:12px;">Run ssh-mcp-pro locally with your own OpenSSH keys and host policy. No cloud account required.</p>
|
|
127
127
|
<div class="code-box">npx ssh-mcp-pro</div>
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
@@ -158,7 +158,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
158
158
|
</div>
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
|
-
<div
|
|
161
|
+
<div class="device-actions">
|
|
162
162
|
<select aria-label="Policy for \${escapeHtml(dev.alias)}" class="btn btn-outline btn-sm" onchange="changePolicy('\${dev.id}', this.value)" \${dev.status === 'revoked' ? 'disabled' : ''}>
|
|
163
163
|
<option value="read-only" \${dev.profile === 'read-only' ? 'selected' : ''}>Profile: Read-Only</option>
|
|
164
164
|
<option value="operations" \${dev.profile === 'operations' ? 'selected' : ''}>Profile: Operations</option>
|
|
@@ -199,7 +199,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
199
199
|
<div style="margin-bottom:16px;">
|
|
200
200
|
<div style="font-weight:600; font-size:13px; color:var(--blue); margin-bottom:4px;">🐧 Linux (systemd)</div>
|
|
201
201
|
<div class="code-box">
|
|
202
|
-
<button class="copy-btn" onclick="copySnippet('cmdLinux')">Copy</button>
|
|
202
|
+
<button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Linux install command" onclick="copySnippet('cmdLinux')">Copy</button>
|
|
203
203
|
<span id="cmdLinux"></span>
|
|
204
204
|
</div>
|
|
205
205
|
</div>
|
|
@@ -207,7 +207,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
207
207
|
<div style="margin-bottom:16px;">
|
|
208
208
|
<div style="font-weight:600; font-size:13px; color:var(--blue); margin-bottom:4px;">🪟 Windows (PowerShell)</div>
|
|
209
209
|
<div class="code-box">
|
|
210
|
-
<button class="copy-btn" onclick="copySnippet('cmdWindows')">Copy</button>
|
|
210
|
+
<button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Windows install command" onclick="copySnippet('cmdWindows')">Copy</button>
|
|
211
211
|
<span id="cmdWindows"></span>
|
|
212
212
|
</div>
|
|
213
213
|
</div>
|
|
@@ -215,7 +215,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
215
215
|
<div>
|
|
216
216
|
<div style="font-weight:600; font-size:13px; color:var(--blue); margin-bottom:4px;">📦 Node CLI (Linux/macOS)</div>
|
|
217
217
|
<div class="code-box">
|
|
218
|
-
<button class="copy-btn" onclick="copySnippet('cmdNpm')">Copy</button>
|
|
218
|
+
<button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Node install command" onclick="copySnippet('cmdNpm')">Copy</button>
|
|
219
219
|
<span id="cmdNpm"></span>
|
|
220
220
|
</div>
|
|
221
221
|
</div>
|
|
@@ -234,11 +234,11 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
234
234
|
</div>
|
|
235
235
|
<p style="font-size:13px; color:var(--text-muted); margin-bottom:12px;">For remote access in Claude or Claude Desktop: <strong>Customize > Connectors > Add custom connector</strong>, enter this URL, then sign in. Local Desktop servers still use <code>claude_desktop_config.json</code>.</p>
|
|
236
236
|
<div style="font-size:12px; font-weight:700; color:var(--blue);">Claude remote custom connector URL:</div>
|
|
237
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgClaudeRemote')">Copy</button><span id="cfgClaudeRemote">\${MCP_URL}</span></div>
|
|
237
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Claude remote MCP URL" onclick="copySnippet('cfgClaudeRemote')">Copy</button><span id="cfgClaudeRemote">\${MCP_URL}</span></div>
|
|
238
238
|
<div style="font-size:12px; font-weight:700; color:var(--blue); margin-top:12px;">Claude Code remote (run in a terminal):</div>
|
|
239
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgClaudeCode')">Copy</button><span id="cfgClaudeCode">claude mcp add --transport http ssh-mcp-pro \${MCP_URL}</span></div>
|
|
239
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Claude Code command" onclick="copySnippet('cfgClaudeCode')">Copy</button><span id="cfgClaudeCode">claude mcp add --transport http ssh-mcp-pro \${MCP_URL}</span></div>
|
|
240
240
|
<div style="font-size:12px; font-weight:700; color:#7ee787; margin-top:12px;">Claude Desktop local stdio:</div>
|
|
241
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgClaudeLocal')">Copy</button><span id="cfgClaudeLocal">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "command": "ssh-mcp-pro",\\n "args": []\\n }\\n }\\n}</span></div>
|
|
241
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Claude Desktop config" onclick="copySnippet('cfgClaudeLocal')">Copy</button><span id="cfgClaudeLocal">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "command": "ssh-mcp-pro",\\n "args": []\\n }\\n }\\n}</span></div>
|
|
242
242
|
</div>
|
|
243
243
|
|
|
244
244
|
<div class="card">
|
|
@@ -247,7 +247,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
247
247
|
<h3>ChatGPT MCP Plugin</h3>
|
|
248
248
|
</div>
|
|
249
249
|
<p style="font-size:13px; color:var(--text-muted); margin-bottom:12px;">In supported ChatGPT workspaces, open <strong>Plugins > Add custom MCP server</strong>, paste the URL below and configure OAuth. Custom GPT Actions are a separate OpenAPI-based feature.</p>
|
|
250
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgChatGptMcp')">Copy</button><span id="cfgChatGptMcp">\${MCP_URL}</span></div>
|
|
250
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy ChatGPT MCP URL" onclick="copySnippet('cfgChatGptMcp')">Copy</button><span id="cfgChatGptMcp">\${MCP_URL}</span></div>
|
|
251
251
|
</div>
|
|
252
252
|
|
|
253
253
|
<div class="card">
|
|
@@ -256,7 +256,7 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
256
256
|
<h3>Gemini API (Interactions)</h3>
|
|
257
257
|
</div>
|
|
258
258
|
<p style="font-size:13px; color:var(--text-muted); margin-bottom:12px;">Use this Remote MCP tool definition with the Gemini API Interactions endpoint. Configure a valid OAuth bearer credential separately (for example via managed agent credentials); the URL alone does not authenticate. This is not a Gemini web-extension manifest. <a href="https://ai.google.dev/gemini-api/docs/function-calling" target="_blank" rel="noopener noreferrer">Gemini Remote MCP docs</a>.</p>
|
|
259
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgGemini')">Copy</button><span id="cfgGemini">{\\n "type": "mcp_server",\\n "name": "ssh_mcp_pro",\\n "url": "\${MCP_URL}"\\n}</span></div>
|
|
259
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Gemini MCP config" onclick="copySnippet('cfgGemini')">Copy</button><span id="cfgGemini">{\\n "type": "mcp_server",\\n "name": "ssh_mcp_pro",\\n "url": "\${MCP_URL}"\\n}</span></div>
|
|
260
260
|
</div>
|
|
261
261
|
|
|
262
262
|
<div class="card">
|
|
@@ -266,13 +266,13 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
266
266
|
</div>
|
|
267
267
|
<p style="font-size:13px; color:var(--text-muted); margin-bottom:12px;">Copy the configuration for your chosen client. VS Code/Copilot portable files use <code>mcpServers</code>; the VS Code workspace format uses <code>servers</code>. Sign in through your client's OAuth flow.</p>
|
|
268
268
|
<div style="font-size:12px; font-weight:700; color:var(--blue); margin-top:12px;">Copilot portable — <code>.mcp.json</code></div>
|
|
269
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgVsCodePortable')">Copy</button><span id="cfgVsCodePortable">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "type": "http",\\n "url": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
269
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy VS Code portable config" onclick="copySnippet('cfgVsCodePortable')">Copy</button><span id="cfgVsCodePortable">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "type": "http",\\n "url": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
270
270
|
<div style="font-size:12px; font-weight:700; color:var(--blue); margin-top:12px;">VS Code workspace (compatible) — <code>.vscode/mcp.json</code></div>
|
|
271
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgVsCode')">Copy</button><span id="cfgVsCode">{\\n "servers": {\\n "ssh-mcp-pro": {\\n "type": "http",\\n "url": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
271
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy VS Code workspace config" onclick="copySnippet('cfgVsCode')">Copy</button><span id="cfgVsCode">{\\n "servers": {\\n "ssh-mcp-pro": {\\n "type": "http",\\n "url": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
272
272
|
<div style="font-size:12px; font-weight:700; color:var(--blue); margin-top:12px;">Cursor — <code>.cursor/mcp.json</code></div>
|
|
273
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgCursor')">Copy</button><span id="cfgCursor">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "url": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
273
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Cursor MCP config" onclick="copySnippet('cfgCursor')">Copy</button><span id="cfgCursor">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "url": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
274
274
|
<div style="font-size:12px; font-weight:700; color:var(--blue); margin-top:12px;">Windsurf — <code>mcp_config.json</code></div>
|
|
275
|
-
<div class="code-box"><button class="copy-btn" onclick="copySnippet('cfgWindsurf')">Copy</button><span id="cfgWindsurf">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "serverUrl": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
275
|
+
<div class="code-box"><button type="button" class="copy-btn" aria-live="polite" aria-label="Copy Windsurf MCP config" onclick="copySnippet('cfgWindsurf')">Copy</button><span id="cfgWindsurf">{\\n "mcpServers": {\\n "ssh-mcp-pro": {\\n "serverUrl": "\${MCP_URL}"\\n }\\n }\\n}</span></div>
|
|
276
276
|
</div>
|
|
277
277
|
</div>
|
|
278
278
|
\`;
|
|
@@ -418,10 +418,28 @@ export function renderDashboardHtml(initialUserBase64, mcpUrlJson, publicUrlJson
|
|
|
418
418
|
}
|
|
419
419
|
|
|
420
420
|
function copySnippet(id) {
|
|
421
|
-
const
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
421
|
+
const source = document.getElementById(id);
|
|
422
|
+
const button = source?.parentElement?.querySelector('.copy-btn');
|
|
423
|
+
if (!source || !button) return;
|
|
424
|
+
const originalLabel = button.dataset.copyLabel || button.getAttribute('aria-label') || 'Copy snippet';
|
|
425
|
+
button.dataset.copyLabel = originalLabel;
|
|
426
|
+
function feedback(label) {
|
|
427
|
+
button.textContent = label;
|
|
428
|
+
button.setAttribute('aria-label', originalLabel + ': ' + label);
|
|
429
|
+
clearTimeout(button.copyResetTimer);
|
|
430
|
+
button.copyResetTimer = setTimeout(() => {
|
|
431
|
+
if (!button.isConnected) return;
|
|
432
|
+
button.textContent = 'Copy';
|
|
433
|
+
button.setAttribute('aria-label', originalLabel);
|
|
434
|
+
}, 1800);
|
|
435
|
+
}
|
|
436
|
+
if (!navigator.clipboard?.writeText) {
|
|
437
|
+
feedback('Unavailable');
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
navigator.clipboard.writeText(source.textContent || '')
|
|
441
|
+
.then(() => feedback('Copied'))
|
|
442
|
+
.catch(() => feedback('Copy failed'));
|
|
425
443
|
}
|
|
426
444
|
|
|
427
445
|
renderHeader();
|
|
@@ -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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAma9B,CAAC;AACT,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 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; gap:
|
|
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";
|
|
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,uhOA4M5B,CAAC"}
|
|
@@ -27,6 +27,8 @@ export const DASHBOARD_STYLES = `
|
|
|
27
27
|
display: flex;
|
|
28
28
|
align-items: center;
|
|
29
29
|
justify-content: space-between;
|
|
30
|
+
flex-wrap: wrap;
|
|
31
|
+
gap: 12px;
|
|
30
32
|
position: sticky;
|
|
31
33
|
top: 0;
|
|
32
34
|
z-index: 100;
|
|
@@ -35,7 +37,7 @@ export const DASHBOARD_STYLES = `
|
|
|
35
37
|
.logo-icon { font-size: 24px; }
|
|
36
38
|
.brand-title { font-size: 18px; font-weight: 700; color: #fff; letter-spacing: -0.5px; }
|
|
37
39
|
.brand-sub { font-size: 12px; color: var(--text-muted); }
|
|
38
|
-
.user-area { display: flex; align-items: center; gap:
|
|
40
|
+
.user-area { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; min-width: 0; }
|
|
39
41
|
.badge {
|
|
40
42
|
display: inline-block;
|
|
41
43
|
padding: 2px 8px;
|
|
@@ -45,7 +47,7 @@ export const DASHBOARD_STYLES = `
|
|
|
45
47
|
text-transform: uppercase;
|
|
46
48
|
}
|
|
47
49
|
.badge-green { background: #238636; color: #fff; }
|
|
48
|
-
.badge-gray { background: #30363d; color: #
|
|
50
|
+
.badge-gray { background: #30363d; color: #c9d1d9; }
|
|
49
51
|
.badge-blue { background: var(--blue-bg); color: var(--blue); border: 1px solid rgba(56,139,253,0.3); }
|
|
50
52
|
.btn {
|
|
51
53
|
display: inline-flex;
|
|
@@ -133,7 +135,8 @@ export const DASHBOARD_STYLES = `
|
|
|
133
135
|
flex-wrap: wrap;
|
|
134
136
|
gap: 16px;
|
|
135
137
|
}
|
|
136
|
-
.device-info { display: flex; align-items: center; gap: 16px; }
|
|
138
|
+
.device-info { display: flex; align-items: center; flex: 1 1 260px; min-width: 0; gap: 16px; }
|
|
139
|
+
.device-info > div:last-child { min-width: 0; }
|
|
137
140
|
.device-icon {
|
|
138
141
|
font-size: 28px;
|
|
139
142
|
width: 48px;
|
|
@@ -144,8 +147,9 @@ export const DASHBOARD_STYLES = `
|
|
|
144
147
|
align-items: center;
|
|
145
148
|
justify-content: center;
|
|
146
149
|
}
|
|
147
|
-
.device-name { font-size: 16px; font-weight: 700; margin-bottom: 4px; display: flex; align-items: center; gap: 8px; }
|
|
148
|
-
.device-meta { font-size: 13px; color: var(--text-muted); font-family: var(--font-mono); }
|
|
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
|
+
.device-meta { font-size: 13px; color: var(--text-muted); font-family: var(--font-mono); overflow-wrap: anywhere; }
|
|
152
|
+
.device-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
|
|
149
153
|
|
|
150
154
|
/* Code block */
|
|
151
155
|
.code-box {
|
|
@@ -160,6 +164,13 @@ export const DASHBOARD_STYLES = `
|
|
|
160
164
|
margin: 12px 0;
|
|
161
165
|
position: relative;
|
|
162
166
|
}
|
|
167
|
+
.code-box > span {
|
|
168
|
+
display: block;
|
|
169
|
+
padding-right: 52px;
|
|
170
|
+
overflow-wrap: anywhere;
|
|
171
|
+
}
|
|
172
|
+
.card a { color: var(--blue); text-underline-offset: 2px; }
|
|
173
|
+
.card a:hover { color: #b0d4ff; }
|
|
163
174
|
.copy-btn {
|
|
164
175
|
position: absolute;
|
|
165
176
|
top: 8px;
|
|
@@ -173,9 +184,17 @@ export const DASHBOARD_STYLES = `
|
|
|
173
184
|
cursor: pointer;
|
|
174
185
|
}
|
|
175
186
|
.copy-btn:hover { background: #30363d; color: #fff; }
|
|
187
|
+
.copy-btn:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
|
|
176
188
|
|
|
177
189
|
/* Config guide cards */
|
|
178
|
-
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }
|
|
190
|
+
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; }
|
|
191
|
+
@media (max-width: 480px) {
|
|
192
|
+
.container { margin: 20px auto; padding: 0 12px; }
|
|
193
|
+
.hero { padding: 28px 18px; }
|
|
194
|
+
.hero h1 { font-size: 26px; }
|
|
195
|
+
.device-actions { width: 100%; }
|
|
196
|
+
.device-actions select { width: 100%; min-width: 0; }
|
|
197
|
+
}
|
|
179
198
|
|
|
180
199
|
/* Empty state */
|
|
181
200
|
.empty-box {
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4M/B,CAAC"}
|
|
@@ -9,7 +9,7 @@ it adds the one-command shortcuts.
|
|
|
9
9
|
```bash
|
|
10
10
|
git clone https://github.com/oaslananka/ssh-mcp-pro.git
|
|
11
11
|
cd ssh-mcp-pro
|
|
12
|
-
task install # or: corepack enable && corepack prepare pnpm@11.
|
|
12
|
+
task install # or: corepack enable && corepack prepare pnpm@11.28.10 --activate && pnpm install --frozen-lockfile
|
|
13
13
|
task verify # lint + format:check + typecheck + test + build
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -6,11 +6,11 @@ Release Please v5 prepares Conventional Commit-driven version updates on `main`.
|
|
|
6
6
|
|
|
7
7
|
When an unreleased version reaches `main`, the `Release` workflow preflights the **frozen dependency installation, full quality check, dependency freshness, package build, SBOM, checksums and GitHub artifact attestations** before Release Please creates the tag. It then attaches that exact prebuilt package and SBOM to the GitHub Release and dispatches an immutable-tag GHCR build. Ordinary main pushes without a new version do not repeat the heavy preflight.
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Automatic npm publication
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**Merge the Release Please PR** to publish the new version automatically. After preflight checks, Release Please creates the immutable GitHub Release, attaches the verified assets, and the dependent `publish-npm` job publishes that exact artifact. No separate manual workflow or npm approval step is part of the normal path. `Actions → Release → Run workflow → main` remains available as an idempotent recovery action for a release that has already been created.
|
|
12
12
|
|
|
13
|
-
The `Publish
|
|
13
|
+
The `Publish verified GitHub Release to npm` job identifies the `package.json` version on `main`, locates its immutable GitHub Release, downloads the already-built `.tgz` and checksum, verifies the tag's source/version, checks SHA-256, package metadata and the GitHub attestation, then calls **`npm publish` directly with GitHub-hosted Actions OIDC**. A version already public on npm is not published twice. Newly accepted npm packages can remain invisible while registry processing finishes; the publishing job retries public visibility for up to 10 minutes without prompting for manual approval. After confirming that exact npm version is public, it dispatches the matching MCP Registry publication job. npm Trusted Publisher must authorize `.github/workflows/release.yml` and permit **direct publication**, not stage-only. This is a provider-side prerequisite, not a second GitHub workflow.
|
|
14
14
|
|
|
15
15
|
GitHub does not override npm account/package security settings. If the npm publisher is configured for stage-only access or another mandatory owner restriction, the direct publish job fails clearly instead of silently staging or bypassing security. Avoid publishing historical versions to work around an npm account restriction; repair the publisher configuration through authorized account settings.
|
|
16
16
|
|
|
@@ -18,12 +18,12 @@ GitHub does not override npm account/package security settings. If the npm publi
|
|
|
18
18
|
|
|
19
19
|
The release workflow triggers `.github/workflows/docker.yml` with the immutable `ssh-mcp-pro-vX.Y.Z` tag. GHCR must grant this repository's GitHub Actions **Write** access to the existing `ghcr.io/oaslananka/ssh-mcp-pro` package. Package access is managed through **GitHub Packages → Package settings → Manage Actions access**. Docker publishing verifies the release tag and package version before pushing both platform tags.
|
|
20
20
|
|
|
21
|
-
The MCP Registry job requires an existing GitHub Release and the *same publicly visible npm version*. It skips versions already registered and uses GitHub OIDC. There is no daily staged-publication reconciliation job. The
|
|
21
|
+
The MCP Registry job requires an existing GitHub Release and the *same publicly visible npm version*. It skips versions already registered and uses GitHub OIDC. There is no daily staged-publication reconciliation job. The automatic npm publish job dispatches MCP Registry publication only after npm confirms the matching version is public; manual recovery uses the same checks.
|
|
22
22
|
|
|
23
23
|
## Verify and troubleshoot
|
|
24
24
|
|
|
25
25
|
- `gh release view ssh-mcp-pro-vX.Y.Z --json assets` — the prepared GitHub Release.
|
|
26
|
-
- `gh run list --workflow release.yml` — release preparation and manual
|
|
26
|
+
- `gh run list --workflow release.yml` — release preparation, automatic npm publication and optional manual recovery status.
|
|
27
27
|
- `npm view ssh-mcp-pro@X.Y.Z version` — independently verify actual npm publication.
|
|
28
28
|
- `gh run list --workflow docker.yml` and `gh api users/oaslananka/packages/container/ssh-mcp-pro` — GHCR status.
|
|
29
29
|
- `gh run list --workflow publish-mcp-registry.yml` — MCP Registry publication.
|
package/docs/docker.md
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
Published release images are available from GitHub Container Registry:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
docker pull ghcr.io/oaslananka/ssh-mcp-pro:1.
|
|
7
|
-
docker run --rm ghcr.io/oaslananka/ssh-mcp-pro:1.
|
|
6
|
+
docker pull ghcr.io/oaslananka/ssh-mcp-pro:1.4.1
|
|
7
|
+
docker run --rm ghcr.io/oaslananka/ssh-mcp-pro:1.4.1 --version
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
Each release publishes a multi-platform OCI image for `linux/amd64` and
|
|
11
11
|
`linux/arm64`. The release workflow publishes two exact tags:
|
|
12
12
|
|
|
13
|
-
- `ghcr.io/oaslananka/ssh-mcp-pro:<semver>` such as `1.
|
|
14
|
-
- `ghcr.io/oaslananka/ssh-mcp-pro:<git-tag>` such as `v1.
|
|
13
|
+
- `ghcr.io/oaslananka/ssh-mcp-pro:<semver>` such as `1.4.1`
|
|
14
|
+
- `ghcr.io/oaslananka/ssh-mcp-pro:<git-tag>` such as `ssh-mcp-pro-v1.4.1`
|
|
15
15
|
|
|
16
16
|
The project does not publish a mutable `latest` tag. Prefer digest-pinned
|
|
17
17
|
references in production so container deployments match the npm package,
|
package/docs/openssf-evidence.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# OpenSSF Best Practices — Evidence
|
|
2
2
|
|
|
3
3
|
Self-assessment against the [OpenSSF Best Practices Passing criteria](https://www.bestpractices.dev/en/criteria/0),
|
|
4
|
-
|
|
4
|
+
originally assessed 2026-07-03; published release notes independently rechecked 2026-11-10. This is a repo-side evidence log, not an official OpenSSF
|
|
5
5
|
artifact — the actual badge is issued by submitting these answers at
|
|
6
6
|
[bestpractices.dev](https://www.bestpractices.dev/). See `.bestpractices.json` for the
|
|
7
7
|
same answers in a structured tracking form used to prepare that submission.
|
|
@@ -19,7 +19,7 @@ vocabulary.
|
|
|
19
19
|
| License is OSI-approved | Met | MIT |
|
|
20
20
|
| Documentation: basic description of purpose | Met | README.md intro |
|
|
21
21
|
| Documentation: how to obtain/provide feedback and contribute | Met | CONTRIBUTING.md, SUPPORT.md |
|
|
22
|
-
| Interim versions/releases are identifiable | Met | Conventional Commits + release-please tagging (
|
|
22
|
+
| Interim versions/releases are identifiable | Met | Conventional Commits + release-please tagging (GitHub releases v1.4.0 and v1.4.1 verified 2026-11-10) |
|
|
23
23
|
|
|
24
24
|
## Change control
|
|
25
25
|
|
|
@@ -68,8 +68,12 @@ vocabulary.
|
|
|
68
68
|
|
|
69
69
|
## Bottom line
|
|
70
70
|
|
|
71
|
-
As of 2026-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
As of 2026-11-10 the historical first-release blocker is resolved:
|
|
72
|
+
GitHub Releases v1.4.0 and v1.4.1 are published with notes. npm
|
|
73
|
+
`latest` remains v1.4.0 due to the intentionally separate manual registry
|
|
74
|
+
publication. Do not equate release notes with an npm publication or hosted deployment.
|
|
75
|
+
|
|
76
|
+
Historical 2026-07-03 image-scanning findings below are not a current scan.
|
|
77
|
+
Do not claim a current container CVE count without a new scan.
|
|
78
|
+
This internal self-assessment is still not submitted to Best Practices;
|
|
79
|
+
no Passing, Silver or Gold badge is claimed.
|
|
@@ -11,10 +11,10 @@ See [docs/openssf-evidence.md](openssf-evidence.md) for the full criterion table
|
|
|
11
11
|
~~Seven open CodeQL alerts (one High) with no fully-current documented disposition.~~
|
|
12
12
|
**Resolved 2026-07-03** — see `SECURITY_DECISIONS.md`.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
**2026-11-10 update:** The first-release blocker is resolved: GitHub Releases
|
|
15
|
+
v1.4.0 and v1.4.1 contain release notes. npm `latest` remains
|
|
16
|
+
v1.4.0 under a separate manual publishing workflow. This does not imply
|
|
17
|
+
an official Best Practices submission or a completed hosted deployment.
|
|
18
18
|
|
|
19
19
|
A new, unrelated item surfaced the same day: Trivy container-image scanning (added
|
|
20
20
|
after this document was first written) found 50+ open findings against the built
|
|
@@ -57,7 +57,6 @@ preconditions are absent — and they are absent here:
|
|
|
57
57
|
| High test coverage sustained over time | Coverage thresholds exist (85–90%) but "sustained over time" needs release/version history that doesn't exist yet (repo is 5 days old) |
|
|
58
58
|
| Repeatable/reproducible release process | Implemented (SBOM, checksums, provenance) but never executed — zero releases published |
|
|
59
59
|
|
|
60
|
-
**This is a
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Revisit this analysis after the "Silver" preconditions above are met.
|
|
60
|
+
**This is a dated internal self-assessment, not an official badge.**
|
|
61
|
+
Do not require a second human maintainer solely for a score. Re-evaluate
|
|
62
|
+
criteria using current evidence before making an external submission.
|
package/docs/reference/cli.md
CHANGED
|
@@ -33,9 +33,20 @@ with extra arguments don't break the server.
|
|
|
33
33
|
|
|
34
34
|
## `ssh-mcp-pro-agent`
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
Source of truth: [src/remote/agent-cli.ts](../../src/remote/agent-cli.ts).
|
|
37
|
+
|
|
38
|
+
| Command | Effect |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| (no args), `help`, `--help`, `-h` | Print usage and exit successfully |
|
|
41
|
+
| `--version`, `-v` | Print the installed package version and exit |
|
|
42
|
+
| `enroll --server <url> --token <token> [--alias <alias>]` | Exchange a one-time enrollment token and save agent credentials |
|
|
43
|
+
| `run` | Connect the enrolled outbound agent to its control plane |
|
|
44
|
+
| `status` | Show local enrollment and current policy, not live connectivity |
|
|
45
|
+
| `logs [--tail 60] [--follow]` | Read agent activity logs; `--follow` streams updates |
|
|
46
|
+
| `install-service` | Print platform service setup guidance; does not install anything |
|
|
47
|
+
| `uninstall-service` | Print platform service removal guidance; does not remove anything |
|
|
48
|
+
|
|
49
|
+
Unknown commands fail with a nonzero exit code. For a persistent service, use the
|
|
50
|
+
[platform bootstrap installer](../adding-a-device.md#step-2--run-the-bootstrap-on-the-new-device).
|
|
51
|
+
The `install-service` and `uninstall-service` commands are advisory, not installers.
|
|
52
|
+
Treat enrollment tokens as secrets and never paste them into issues or logs.
|
|
@@ -13,7 +13,7 @@ LTS line). This is expected, not an oversight.
|
|
|
13
13
|
|
|
14
14
|
## Package manager
|
|
15
15
|
|
|
16
|
-
pnpm `11.28.
|
|
16
|
+
pnpm `11.28.10`, enforced via `packageManager` in `package.json` and `engine-strict=true`.
|
|
17
17
|
npm/yarn are not supported installation paths for *developing* this repo (consumers
|
|
18
18
|
installing the published package via npm/npx are unaffected — see
|
|
19
19
|
[README.md#installation](../../README.md#installation)).
|
|
@@ -10,7 +10,7 @@ and [Reference](../reference/README.md) for the full option set.
|
|
|
10
10
|
|
|
11
11
|
You need:
|
|
12
12
|
|
|
13
|
-
- Node.js `>=22.22.2` (or `>=24.15.0` / `>=26.3.0`) and pnpm
|
|
13
|
+
- Node.js `>=22.22.2` (or `>=24.15.0` / `>=26.3.0`) and pnpm `^11.28.10`.
|
|
14
14
|
- At least one host you can already reach with plain `ssh`, with its key already in
|
|
15
15
|
your `~/.ssh/known_hosts` (this tutorial uses the default `strict` host-key policy —
|
|
16
16
|
see [SECURITY_DECISIONS.md](../../SECURITY_DECISIONS.md) for why).
|
package/mcp.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ssh-mcp-pro",
|
|
3
3
|
"display_name": "ssh-mcp-pro",
|
|
4
4
|
"description": "Secure MCP SSH automation server with policy controls, resources, prompts, stdio, and HTTP.",
|
|
5
|
-
"version": "1.4.
|
|
5
|
+
"version": "1.4.3",
|
|
6
6
|
"author": "Osman Aslan",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"runtime": "node",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ssh-mcp-pro",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"mcpName": "io.github.oaslananka/ssh-mcp-pro",
|
|
5
5
|
"description": "Model Context Protocol (MCP) SSH client server for remote automation",
|
|
6
6
|
"type": "module",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
},
|
|
59
59
|
"engines": {
|
|
60
60
|
"node": ">=22.22.2",
|
|
61
|
-
"pnpm": "^11.28.
|
|
61
|
+
"pnpm": "^11.28.10"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@modelcontextprotocol/node": "^2.1.2",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"dependency-cruiser": "^17.4.3",
|
|
93
93
|
"eslint": "^10.12.0",
|
|
94
94
|
"fast-check": "^4.10.2",
|
|
95
|
-
"knip": "^6.44.
|
|
95
|
+
"knip": "^6.44.1",
|
|
96
96
|
"prettier": "^3.9.9",
|
|
97
97
|
"publint": "^0.3.25",
|
|
98
98
|
"typedoc": "0.28.20",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ssh-mcp-pro",
|
|
3
3
|
"display_name": "ssh-mcp-pro",
|
|
4
4
|
"description": "Secure MCP SSH automation server with policy controls, resources, prompts, stdio, and HTTP.",
|
|
5
|
-
"version": "1.4.
|
|
5
|
+
"version": "1.4.3",
|
|
6
6
|
"author": "Osman Aslan",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"runtime": "node",
|