From b5d3f497cb1a09fdc2107f4ef720ebb7f07cbd87 Mon Sep 17 00:00:00 2001 From: Anso Date: Mon, 30 Mar 2026 15:56:58 -0400 Subject: [PATCH] feat(host-console): gate Host Console behind Admiral tier (#277) * feat(host-console): gate Host Console behind Admiral tier Move the Host Console from the Community (free) tier to Admiral, enforcing the gate at every layer: UI nav visibility, AdmiralGate wrapper, POST /api/system/console-token endpoint, and the WebSocket upgrade handler for /api/system/host-console. * test(auth): mock Admiral license for console-token test The console-token endpoint now requires Admiral tier. Mock LicenseService in the test to return pro/team so the happy-path test passes in CI where no license is activated. --- CHANGELOG.md | 4 ++++ backend/src/__tests__/auth.test.ts | 13 ++++++++++++- backend/src/index.ts | 8 ++++++++ docs/features/host-console.mdx | 17 +++++++++++++++++ docs/features/licensing.mdx | 6 +++--- .../host-console/host-console-overview.png | Bin 43450 -> 47819 bytes frontend/src/components/EditorLayout.tsx | 7 +++++-- 7 files changed, 49 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32e149c1..9c50393f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +* **host-console:** moved Host Console from Community tier to Admiral tier. The interactive host terminal now requires a Sencho Admiral license — enforced in the UI (nav item hidden, AdmiralGate upgrade prompt), the REST API (`POST /api/system/console-token` returns 403), and the WebSocket upgrade handler (`/api/system/host-console` rejects connections). Community and Skipper users see an upgrade prompt. + ### Security * **docker:** upgrade base image from `node:20-alpine` to `node:22-alpine` (Node 22.22.2 on Alpine 3.23.3) to remediate 31 CVEs (1 Critical, multiple High/Medium/Low) flagged by Docker Scout against the previous `node:20-alpine` base. diff --git a/backend/src/__tests__/auth.test.ts b/backend/src/__tests__/auth.test.ts index 9c4263c1..01a4fbfa 100644 --- a/backend/src/__tests__/auth.test.ts +++ b/backend/src/__tests__/auth.test.ts @@ -1,7 +1,7 @@ /** * Tests for authentication: login, rate limiting, and auth middleware. */ -import { describe, it, expect, beforeAll, afterAll } from 'vitest'; +import { describe, it, expect, beforeAll, afterAll, vi } from 'vitest'; import request from 'supertest'; import jwt from 'jsonwebtoken'; import { setupTestDb, cleanupTestDb, TEST_USERNAME, TEST_PASSWORD, TEST_JWT_SECRET } from './helpers/setupTestDb'; @@ -96,6 +96,17 @@ describe('authMiddleware', () => { // ─── Protected endpoint: console-token ─────────────────────────────────────── describe('POST /api/system/console-token', () => { + // Console-token requires Admiral tier — mock LicenseService for the happy-path test + beforeAll(async () => { + const { LicenseService } = await import('../services/LicenseService'); + vi.spyOn(LicenseService.getInstance(), 'getTier').mockReturnValue('pro'); + vi.spyOn(LicenseService.getInstance(), 'getVariant').mockReturnValue('team'); + }); + + afterAll(() => { + vi.restoreAllMocks(); + }); + it('returns 401 without authentication (was a security bug - C1 fix)', async () => { const res = await request(app).post('/api/system/console-token'); expect(res.status).toBe(401); diff --git a/backend/src/index.ts b/backend/src/index.ts index 545072f3..e7a7fbed 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -2316,6 +2316,13 @@ server.on('upgrade', async (req, socket, head) => { socket.destroy(); return; } + // Admiral license gate — host console requires Pro (team variant) + const ls = LicenseService.getInstance(); + if (ls.getTier() !== 'pro' || ls.getVariant() !== 'team') { + socket.write('HTTP/1.1 403 Forbidden\r\n\r\n'); + socket.destroy(); + return; + } const hostConsoleWss = new WebSocketServer({ noServer: true }); hostConsoleWss.handleUpgrade(req, socket, head, (ws) => { hostConsoleWss.close(); @@ -3362,6 +3369,7 @@ app.post('/api/system/console-token', authMiddleware, (req: Request, res: Respon return; } if (!requireAdmin(req, res)) return; + if (!requireAdmiral(req, res)) return; try { const settings = DatabaseService.getInstance().getGlobalSettings(); const jwtSecret = settings.auth_jwt_secret; diff --git a/docs/features/host-console.mdx b/docs/features/host-console.mdx index a6e811a2..ff25f3ec 100644 --- a/docs/features/host-console.mdx +++ b/docs/features/host-console.mdx @@ -5,6 +5,10 @@ description: An interactive terminal on your host OS, directly in the browser - The **Console** tab opens a full interactive terminal session on the machine running Sencho. It behaves exactly like an SSH session, but without needing an SSH server, client, or key management. + + The Host Console requires a **Sencho Admiral** license. Community and Skipper users see an upgrade prompt instead. [Learn more about licensing](/features/licensing). + + Host Console showing a PowerShell prompt inside the Sencho container working directory @@ -34,12 +38,25 @@ The shell depends on the host OS: - **Linux/macOS hosts:** `bash` or `sh` - **Windows hosts (Docker Desktop):** PowerShell (as shown in the screenshot - the console opens inside the Sencho container's Windows environment) +## Availability + +The Host Console is available to **admin** users on the **Admiral** tier. Access is enforced at every layer: + +- **UI:** The Console tab only appears in the navigation bar for Admiral-licensed admin users. +- **API:** The `POST /api/system/console-token` endpoint returns `403 Forbidden` without an Admiral license. +- **WebSocket:** The `/api/system/host-console` upgrade handler rejects connections without an Admiral license. + +### What Community and Skipper users see + +If you are on the Community or Skipper tier, navigating to the Console view shows an upgrade prompt with a link to the [pricing page](https://sencho.io/pricing). The Console tab is hidden from the navigation bar entirely. + ## Security model The host console has a stricter authentication requirement than other features: - Requires a valid **browser session** (httpOnly cookie). Node-proxy tokens used for multi-node communication are explicitly blocked. - Each session is issued a short-lived **console token** (60-second TTL) before the WebSocket is established. +- Access is restricted to the **Admiral** license tier, ensuring only teams with appropriate licensing can use interactive shell access. - Because the console gives full shell access to the host, you should secure your Sencho instance with HTTPS and a strong password if it is exposed to a network. diff --git a/docs/features/licensing.mdx b/docs/features/licensing.mdx index 36c83c95..ad3f6eab 100644 --- a/docs/features/licensing.mdx +++ b/docs/features/licensing.mdx @@ -14,14 +14,14 @@ Sencho uses an open-core model. The **Community** tier is free forever with unli | Tier | Price | Accounts | |------|-------|----------| | **Community** | Free | 1 admin | -| **Skipper** | $7.99/month, $69.99/year, or $249 lifetime | 1 admin + 3 viewers | -| **Admiral** | $49.99/month, $499.99/year, or $1,499 lifetime | Unlimited | +| **Skipper** | $5.99/month billed annually, $7.99/month, or $249 lifetime | 1 admin + 3 viewers | +| **Admiral** | $41.99/month billed annually, $49.99/month, or $1,499 lifetime | Unlimited | Lifetime pricing is an early-adopter offer available for a limited time only. ## Free trial -Every new Sencho installation starts with a **14-day Skipper trial** - no license key or credit card required. Skipper features like fleet management, RBAC viewer accounts, webhooks, and atomic deployments are unlocked during the trial so you can evaluate them with your real infrastructure. Admiral features (SSO, audit log, unlimited accounts) require an Admiral license. +Every new Sencho installation starts with a **14-day Skipper trial** - no license key or credit card required. Skipper features like fleet management, RBAC viewer accounts, webhooks, and atomic deployments are unlocked during the trial so you can evaluate them with your real infrastructure. Admiral features (SSO, audit log, host console, unlimited accounts) require an Admiral license. When the trial expires, Sencho automatically reverts to the Community tier. No data is lost. diff --git a/docs/images/host-console/host-console-overview.png b/docs/images/host-console/host-console-overview.png index 5d776562e681b958bec6580de37234ebabd05bd7..1a23242a2162b3086460466648bb63d4c33c8ec0 100644 GIT binary patch literal 47819 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 v2D}e`{lP!h9_i{ySv<`_0 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 literal 43450 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 diff --git a/frontend/src/components/EditorLayout.tsx b/frontend/src/components/EditorLayout.tsx index 78ea6744..b3de34ba 100644 --- a/frontend/src/components/EditorLayout.tsx +++ b/frontend/src/components/EditorLayout.tsx @@ -7,6 +7,7 @@ import ErrorBoundary from './ErrorBoundary'; import HomeDashboard from './HomeDashboard'; import BashExecModal from './BashExecModal'; import HostConsole from './HostConsole'; +import { AdmiralGate } from './AdmiralGate'; import ResourcesView from './ResourcesView'; import { Button } from './ui/button'; import { Input } from './ui/input'; @@ -161,13 +162,13 @@ export default function EditorLayout() { { value: 'dashboard', label: 'Home', icon: Home }, { value: 'fleet', label: 'Fleet', icon: Radar }, ]; - if (isAdmin) items.push({ value: 'host-console', label: 'Console', icon: Terminal }); items.push( { value: 'resources', label: 'Resources', icon: HardDrive }, { value: 'templates', label: 'App Store', icon: CloudDownload }, { value: 'global-observability', label: 'Logs', icon: Activity }, ); if (isPro && license?.variant === 'team') { + if (isAdmin) items.push({ value: 'host-console', label: 'Console', icon: Terminal }); if (can('system:audit')) items.push({ value: 'audit-log', label: 'Audit', icon: ScrollText }); if (isAdmin) items.push({ value: 'scheduled-ops', label: 'Schedules', icon: Clock }); } @@ -1479,7 +1480,9 @@ export default function EditorLayout() { ) : activeView === 'resources' ? ( ) : activeView === 'host-console' ? ( - setActiveView(selectedFile ? 'editor' : 'dashboard')} /> + + setActiveView(selectedFile ? 'editor' : 'dashboard')} /> + ) : !isLoading && selectedFile && activeView === 'editor' ? (