@0xmaxma/claude-gateway 1.4.4 → 1.4.6
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/README.md +13 -2
- package/dist/api/gateway-router.d.ts +54 -7
- package/dist/api/gateway-router.d.ts.map +1 -1
- package/dist/api/gateway-router.js +263 -53
- package/dist/api/gateway-router.js.map +1 -1
- package/dist/cron/manager.d.ts.map +1 -1
- package/dist/cron/manager.js +7 -1
- package/dist/cron/manager.js.map +1 -1
- package/dist/ui/web-ui.d.ts +8 -1
- package/dist/ui/web-ui.d.ts.map +1 -1
- package/dist/ui/web-ui.js +117 -14
- package/dist/ui/web-ui.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -320,6 +320,17 @@ Recovery actions are clamped to a per-stage whitelist and a per-turn budget, and
|
|
|
320
320
|
|
|
321
321
|
Network interface the HTTP/WebSocket server binds to. Defaults to `127.0.0.1` (localhost-only), so the dashboard and API are **not** exposed to the local network out of the box. Set to `0.0.0.0` to listen on all interfaces (for example when a containerized reverse proxy needs to reach the gateway). The `GATEWAY_BIND` environment variable, when set, takes precedence over this field.
|
|
322
322
|
|
|
323
|
+
> **⚠️ Binding to `0.0.0.0`? Configure `gateway.api.keys`.** The monitoring
|
|
324
|
+
> surface (`/status`, `/processes`) and the dashboard require an API key or a
|
|
325
|
+
> dashboard session when keys are configured — the dashboard prompts for an API
|
|
326
|
+
> key at `/dashboard` and stores an `HttpOnly` session cookie. `/health` stays
|
|
327
|
+
> public but returns only `{"status":"ok"}` (no agent ids). With **no** keys
|
|
328
|
+
> configured the gateway **fails closed on a non-loopback bind**: `/status`,
|
|
329
|
+
> `/processes`, and `/dashboard` return `503` until you set `gateway.api.keys`
|
|
330
|
+
> (a startup warning is logged). On a loopback bind they stay open, so local
|
|
331
|
+
> keyless installs are unaffected. The gateway serves plain HTTP; put TLS in
|
|
332
|
+
> front (reverse proxy) so credentials are not sent in the clear.
|
|
333
|
+
|
|
323
334
|
```json
|
|
324
335
|
{
|
|
325
336
|
"gateway": {
|
|
@@ -336,8 +347,8 @@ The dashboard's **Terminal Viewer** opens read-only (a live mirror of the PTY).
|
|
|
336
347
|
|
|
337
348
|
Because interactive mode turns a read-only view into a remote-write surface, access is protected upstream rather than by a feature flag:
|
|
338
349
|
|
|
339
|
-
- **Authentication** — the WebSocket requires a valid dashboard ticket or API key.
|
|
340
|
-
- **`gateway.bind`** — the gateway binds to `127.0.0.1` (localhost) by default, so the dashboard is not reachable from the network out of the box.
|
|
350
|
+
- **Authentication** — the WebSocket requires a valid dashboard ticket or API key. The ticket is minted at `POST /api/v1/pty-stream-ticket`, which itself requires an API key or a valid dashboard session cookie — so an unauthenticated caller cannot obtain one. The dashboard gets its session by logging in with an API key at `/dashboard` (`HttpOnly` cookie); no token is embedded in the page.
|
|
351
|
+
- **`gateway.bind`** — the gateway binds to `127.0.0.1` (localhost) by default, so the dashboard is not reachable from the network out of the box. On a non-loopback bind (`0.0.0.0`), configure `gateway.api.keys` so the dashboard and monitoring endpoints require authentication, and prefer a TLS-terminating reverse proxy so credentials are not sent in the clear.
|
|
341
352
|
|
|
342
353
|
Inbound frames are always bounded (text-only, size-capped) and are dropped for headless sessions (no PTY).
|
|
343
354
|
|
|
@@ -33,9 +33,15 @@ export declare class GatewayRouter {
|
|
|
33
33
|
/** Short-lived WS auth tickets: ticket → { agentId, sessionId, expiresAt }. One-time use. */
|
|
34
34
|
private readonly ptyStreamTickets;
|
|
35
35
|
private ticketPruner;
|
|
36
|
-
/**
|
|
37
|
-
*
|
|
36
|
+
/** Dashboard session tokens (DASH_SESSION_TTL_MS). Issued at POST /dashboard/login
|
|
37
|
+
* and carried by the HttpOnly `dash_session` cookie — never embedded in the HTML,
|
|
38
|
+
* so no token is exposed to view-source/XSS. token → expiresAt. */
|
|
38
39
|
private readonly dashboardTokens;
|
|
40
|
+
/** Failed-login throttle for /dashboard/login, keyed by client IP.
|
|
41
|
+
* ip → { count, resetAt }. Blocks brute-forcing configured API keys. */
|
|
42
|
+
private readonly loginAttempts;
|
|
43
|
+
private static readonly LOGIN_MAX_ATTEMPTS;
|
|
44
|
+
private static readonly LOGIN_WINDOW_MS;
|
|
39
45
|
/** Per-agent message counters (output lines from subprocess) */
|
|
40
46
|
private readonly messagesReceived;
|
|
41
47
|
private readonly messagesSent;
|
|
@@ -58,6 +64,46 @@ export declare class GatewayRouter {
|
|
|
58
64
|
private readonly appInstaller?;
|
|
59
65
|
private readonly appRegistryClient?;
|
|
60
66
|
constructor(agents: Map<string, AgentRunner>, configs: Map<string, AgentConfig>, schedulers?: Map<string, CronScheduler>, gatewayConfig?: GatewayConfig, cronManager?: CronManager, configPath?: string, appsRegistry?: AppsRegistry, appInstaller?: AppInstaller, appRegistryClient?: RegistryClient);
|
|
67
|
+
/** Configured API keys ([] when none set — auth is then disabled/open). */
|
|
68
|
+
private get apiKeys();
|
|
69
|
+
/** Extract a Bearer / X-Api-Key token from request headers. */
|
|
70
|
+
private extractApiToken;
|
|
71
|
+
/**
|
|
72
|
+
* True when the resolved bind interface is NOT loopback — i.e. the gateway is
|
|
73
|
+
* reachable from beyond the local host. Used to fail closed: a keyless install
|
|
74
|
+
* is safe on localhost but must not expose the dashboard/monitoring surface
|
|
75
|
+
* unauthenticated on a non-loopback bind. Normalizes IPv6 brackets/zone,
|
|
76
|
+
* v4-mapped addresses, and the fully-expanded IPv6 loopback so an unusual but
|
|
77
|
+
* legitimate loopback bind is not mistaken for an exposed one.
|
|
78
|
+
*/
|
|
79
|
+
private isNonLoopbackBind;
|
|
80
|
+
/** True when the request carries a live (unexpired) dashboard session cookie. */
|
|
81
|
+
private hasValidDashSession;
|
|
82
|
+
/**
|
|
83
|
+
* Gate a dashboard-adjacent endpoint: accept a valid API key OR a live
|
|
84
|
+
* dashboard session cookie. When no API keys are configured, auth is disabled
|
|
85
|
+
* (open) — a keyless install has no credential to check and must not lock
|
|
86
|
+
* itself out. Writes 401 and returns false when unauthorized.
|
|
87
|
+
*/
|
|
88
|
+
private requireDashOrApiKey;
|
|
89
|
+
/** Client IP for throttling. Uses req.ip (Express; the socket peer unless
|
|
90
|
+
* `trust proxy` is set) with a socket fallback. Behind an untrusted proxy all
|
|
91
|
+
* clients share the proxy IP → a shared throttle, which fails safe. */
|
|
92
|
+
private clientIp;
|
|
93
|
+
/** True when this IP has exceeded the failed-login budget for the window. */
|
|
94
|
+
private isLoginThrottled;
|
|
95
|
+
/** Record a failed login for this IP (starts/extends the current window). */
|
|
96
|
+
private recordLoginFailure;
|
|
97
|
+
/**
|
|
98
|
+
* Build the Set-Cookie value for the dashboard session (Secure when TLS).
|
|
99
|
+
* SameSite=Lax: the cookie is not sent on cross-site subresource requests
|
|
100
|
+
* (fetch/XHR/img) or cross-site POST — so it stays CSRF-safe for the
|
|
101
|
+
* state-changing POST routes (login/logout/pty-ticket) and the read endpoints'
|
|
102
|
+
* cross-site fetches — while still being sent on a top-level navigation to
|
|
103
|
+
* /dashboard, so opening the dashboard from a bookmark or link does not force
|
|
104
|
+
* a re-login (Strict would drop the cookie there).
|
|
105
|
+
*/
|
|
106
|
+
private buildSessionCookie;
|
|
61
107
|
private setupRoutes;
|
|
62
108
|
start(port: number): Promise<void>;
|
|
63
109
|
/**
|
|
@@ -66,11 +112,12 @@ export declare class GatewayRouter {
|
|
|
66
112
|
* (server → browser); inbound keystrokes are opt-in per browser via the Shell
|
|
67
113
|
* Process Viewer's mode toggle (client-side UX), so a viewer only sends bytes
|
|
68
114
|
* while in input mode. Access to this socket is protected upstream: the caller
|
|
69
|
-
* has already authenticated (ticket or API key) and the
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* (
|
|
115
|
+
* has already authenticated (one-time ticket or API key), and the ticket itself
|
|
116
|
+
* is only mintable with an API key or a valid dashboard session — so on a
|
|
117
|
+
* non-loopback `gateway.bind` an unauthenticated caller cannot reach this stream
|
|
118
|
+
* (provided `gateway.api.keys` is configured). Bytes are bounded (text-only,
|
|
119
|
+
* size-capped) and routed to the owning session; a headless session (no PTY)
|
|
120
|
+
* silently drops them (sendInputToSession → false).
|
|
74
121
|
*/
|
|
75
122
|
private attachPtyStreamSocket;
|
|
76
123
|
/** Register a proxy route for an installed app port. Hot-takes effect immediately. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-router.d.ts","sourceRoot":"","sources":["../../src/api/gateway-router.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,SAAS,CAAC;AASrD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAmB,MAAM,UAAU,CAAC;AAI3F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAQ9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-router.d.ts","sourceRoot":"","sources":["../../src/api/gateway-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,56 @@ const packages_1 = require("./packages");
|
|
|
58
58
|
const webhooks_router_1 = require("./webhooks-router");
|
|
59
59
|
const apps_router_1 = require("./apps-router");
|
|
60
60
|
const APP_NAME_RE = /^[a-z0-9][a-z0-9-]{1,63}$/;
|
|
61
|
+
/** Name of the HttpOnly cookie carrying a dashboard session token. */
|
|
62
|
+
const DASH_SESSION_COOKIE = 'dash_session';
|
|
63
|
+
/** Dashboard session lifetime — long enough to avoid re-login mid-work. */
|
|
64
|
+
const DASH_SESSION_TTL_MS = 8 * 60 * 60 * 1000;
|
|
65
|
+
/**
|
|
66
|
+
* Parse a Cookie request header into a name→value map. Manual parser so we take
|
|
67
|
+
* no new dependency (cookie-parser) just for a single cookie. Values are
|
|
68
|
+
* URL-decoded; malformed segments are skipped.
|
|
69
|
+
*/
|
|
70
|
+
function parseCookies(header) {
|
|
71
|
+
const out = {};
|
|
72
|
+
if (!header)
|
|
73
|
+
return out;
|
|
74
|
+
for (const part of header.split(';')) {
|
|
75
|
+
const eq = part.indexOf('=');
|
|
76
|
+
if (eq < 0)
|
|
77
|
+
continue;
|
|
78
|
+
const name = part.slice(0, eq).trim();
|
|
79
|
+
if (!name)
|
|
80
|
+
continue;
|
|
81
|
+
try {
|
|
82
|
+
out[name] = decodeURIComponent(part.slice(eq + 1).trim());
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
out[name] = part.slice(eq + 1).trim();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Timing-safe comparison of a presented token against the configured API keys.
|
|
92
|
+
* Mirrors createApiAuthMiddleware (auth.ts) so the inline auth on the
|
|
93
|
+
* dashboard-adjacent endpoints is not weaker than the /api middleware.
|
|
94
|
+
*/
|
|
95
|
+
function timingSafeKeyMatch(apiKeys, token) {
|
|
96
|
+
if (!token)
|
|
97
|
+
return false;
|
|
98
|
+
const tokenBuf = Buffer.from(token);
|
|
99
|
+
return apiKeys.some((k) => {
|
|
100
|
+
try {
|
|
101
|
+
const keyBuf = Buffer.from(k.key);
|
|
102
|
+
if (keyBuf.length !== tokenBuf.length)
|
|
103
|
+
return false;
|
|
104
|
+
return crypto.timingSafeEqual(keyBuf, tokenBuf);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
61
111
|
function getGatewayVersion() {
|
|
62
112
|
try {
|
|
63
113
|
const pkgPath = path.join(__dirname, '..', '..', 'package.json');
|
|
@@ -81,6 +131,29 @@ function resolveBindHost(envBind, configuredBind) {
|
|
|
81
131
|
const configured = configuredBind?.trim();
|
|
82
132
|
return env || configured || '127.0.0.1';
|
|
83
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* True when a bind host refers to the local loopback interface only. Handles the
|
|
136
|
+
* common spellings: `localhost`, IPv4 loopback (`127.0.0.0/8`), IPv6 loopback
|
|
137
|
+
* (`::1`, its fully-expanded `0:0:...:1`), IPv4-mapped loopback (`::ffff:127.x`),
|
|
138
|
+
* and bracketed / zone-suffixed IPv6 forms. Anything else (`0.0.0.0`, `::`, a
|
|
139
|
+
* real IP, a hostname) is treated as non-loopback = potentially exposed.
|
|
140
|
+
*/
|
|
141
|
+
function isLoopbackHost(bind) {
|
|
142
|
+
let host = (bind ?? '').trim().toLowerCase();
|
|
143
|
+
if (!host)
|
|
144
|
+
return true; // empty resolves to the 127.0.0.1 default upstream
|
|
145
|
+
host = host.replace(/^\[/, '').replace(/\]$/, ''); // strip IPv6 brackets
|
|
146
|
+
host = host.split('%')[0]; // strip IPv6 zone id (fe80::1%eth0)
|
|
147
|
+
if (host.startsWith('::ffff:'))
|
|
148
|
+
host = host.slice(7); // IPv4-mapped IPv6
|
|
149
|
+
if (host === 'localhost')
|
|
150
|
+
return true;
|
|
151
|
+
if (host === '::1' || host === '0:0:0:0:0:0:0:1')
|
|
152
|
+
return true;
|
|
153
|
+
if (/^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(host))
|
|
154
|
+
return true; // 127.0.0.0/8
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
84
157
|
/** Extract hostname from DOCKER_HOST (tcp://host:port) for app container proxy. */
|
|
85
158
|
function resolveAppProxyHost() {
|
|
86
159
|
const dockerHost = process.env.DOCKER_HOST;
|
|
@@ -130,9 +203,13 @@ class GatewayRouter {
|
|
|
130
203
|
/** Short-lived WS auth tickets: ticket → { agentId, sessionId, expiresAt }. One-time use. */
|
|
131
204
|
this.ptyStreamTickets = new Map();
|
|
132
205
|
this.ticketPruner = null;
|
|
133
|
-
/**
|
|
134
|
-
*
|
|
135
|
-
|
|
206
|
+
/** Dashboard session tokens (DASH_SESSION_TTL_MS). Issued at POST /dashboard/login
|
|
207
|
+
* and carried by the HttpOnly `dash_session` cookie — never embedded in the HTML,
|
|
208
|
+
* so no token is exposed to view-source/XSS. token → expiresAt. */
|
|
209
|
+
this.dashboardTokens = new Map();
|
|
210
|
+
/** Failed-login throttle for /dashboard/login, keyed by client IP.
|
|
211
|
+
* ip → { count, resetAt }. Blocks brute-forcing configured API keys. */
|
|
212
|
+
this.loginAttempts = new Map();
|
|
136
213
|
/** Per-agent message counters (output lines from subprocess) */
|
|
137
214
|
this.messagesReceived = new Map();
|
|
138
215
|
this.messagesSent = new Map();
|
|
@@ -173,6 +250,100 @@ class GatewayRouter {
|
|
|
173
250
|
}
|
|
174
251
|
this.setupRoutes();
|
|
175
252
|
}
|
|
253
|
+
/** Configured API keys ([] when none set — auth is then disabled/open). */
|
|
254
|
+
get apiKeys() {
|
|
255
|
+
return this.gatewayConfig?.gateway?.api?.keys ?? [];
|
|
256
|
+
}
|
|
257
|
+
/** Extract a Bearer / X-Api-Key token from request headers. */
|
|
258
|
+
extractApiToken(req) {
|
|
259
|
+
const authHeader = req.headers['authorization'] ?? '';
|
|
260
|
+
const xApiKey = req.headers['x-api-key'] ?? '';
|
|
261
|
+
return authHeader.startsWith('Bearer ') ? authHeader.slice(7).trim() : xApiKey.trim();
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* True when the resolved bind interface is NOT loopback — i.e. the gateway is
|
|
265
|
+
* reachable from beyond the local host. Used to fail closed: a keyless install
|
|
266
|
+
* is safe on localhost but must not expose the dashboard/monitoring surface
|
|
267
|
+
* unauthenticated on a non-loopback bind. Normalizes IPv6 brackets/zone,
|
|
268
|
+
* v4-mapped addresses, and the fully-expanded IPv6 loopback so an unusual but
|
|
269
|
+
* legitimate loopback bind is not mistaken for an exposed one.
|
|
270
|
+
*/
|
|
271
|
+
isNonLoopbackBind() {
|
|
272
|
+
return !isLoopbackHost(resolveBindHost(process.env.GATEWAY_BIND, this.gatewayConfig?.gateway?.bind));
|
|
273
|
+
}
|
|
274
|
+
/** True when the request carries a live (unexpired) dashboard session cookie. */
|
|
275
|
+
hasValidDashSession(req) {
|
|
276
|
+
const token = parseCookies(req.headers['cookie'])[DASH_SESSION_COOKIE];
|
|
277
|
+
if (!token)
|
|
278
|
+
return false;
|
|
279
|
+
const exp = this.dashboardTokens.get(token) ?? 0;
|
|
280
|
+
return exp > Date.now();
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Gate a dashboard-adjacent endpoint: accept a valid API key OR a live
|
|
284
|
+
* dashboard session cookie. When no API keys are configured, auth is disabled
|
|
285
|
+
* (open) — a keyless install has no credential to check and must not lock
|
|
286
|
+
* itself out. Writes 401 and returns false when unauthorized.
|
|
287
|
+
*/
|
|
288
|
+
requireDashOrApiKey(req, res) {
|
|
289
|
+
const keys = this.apiKeys;
|
|
290
|
+
if (keys.length === 0) {
|
|
291
|
+
// No auth configured. Safe on loopback; on a non-loopback bind, refuse
|
|
292
|
+
// rather than expose the monitoring surface unauthenticated (fail closed).
|
|
293
|
+
if (this.isNonLoopbackBind()) {
|
|
294
|
+
res.status(503).json({
|
|
295
|
+
error: 'Dashboard/monitoring disabled: configure gateway.api.keys to expose it on a non-loopback bind (gateway.bind)',
|
|
296
|
+
});
|
|
297
|
+
return false;
|
|
298
|
+
}
|
|
299
|
+
return true; // keyless + loopback → open, as before
|
|
300
|
+
}
|
|
301
|
+
if (timingSafeKeyMatch(keys, this.extractApiToken(req)))
|
|
302
|
+
return true;
|
|
303
|
+
if (this.hasValidDashSession(req))
|
|
304
|
+
return true;
|
|
305
|
+
res.status(401).json({ error: 'Unauthorized' });
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
/** Client IP for throttling. Uses req.ip (Express; the socket peer unless
|
|
309
|
+
* `trust proxy` is set) with a socket fallback. Behind an untrusted proxy all
|
|
310
|
+
* clients share the proxy IP → a shared throttle, which fails safe. */
|
|
311
|
+
clientIp(req) {
|
|
312
|
+
return req.ip || req.socket?.remoteAddress || 'unknown';
|
|
313
|
+
}
|
|
314
|
+
/** True when this IP has exceeded the failed-login budget for the window. */
|
|
315
|
+
isLoginThrottled(req) {
|
|
316
|
+
const rec = this.loginAttempts.get(this.clientIp(req));
|
|
317
|
+
if (!rec || rec.resetAt < Date.now())
|
|
318
|
+
return false;
|
|
319
|
+
return rec.count >= GatewayRouter.LOGIN_MAX_ATTEMPTS;
|
|
320
|
+
}
|
|
321
|
+
/** Record a failed login for this IP (starts/extends the current window). */
|
|
322
|
+
recordLoginFailure(req) {
|
|
323
|
+
const ip = this.clientIp(req);
|
|
324
|
+
const now = Date.now();
|
|
325
|
+
const rec = this.loginAttempts.get(ip);
|
|
326
|
+
if (!rec || rec.resetAt < now) {
|
|
327
|
+
this.loginAttempts.set(ip, { count: 1, resetAt: now + GatewayRouter.LOGIN_WINDOW_MS });
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
rec.count += 1;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Build the Set-Cookie value for the dashboard session (Secure when TLS).
|
|
335
|
+
* SameSite=Lax: the cookie is not sent on cross-site subresource requests
|
|
336
|
+
* (fetch/XHR/img) or cross-site POST — so it stays CSRF-safe for the
|
|
337
|
+
* state-changing POST routes (login/logout/pty-ticket) and the read endpoints'
|
|
338
|
+
* cross-site fetches — while still being sent on a top-level navigation to
|
|
339
|
+
* /dashboard, so opening the dashboard from a bookmark or link does not force
|
|
340
|
+
* a re-login (Strict would drop the cookie there).
|
|
341
|
+
*/
|
|
342
|
+
buildSessionCookie(req, token, ttlMs) {
|
|
343
|
+
const secure = req.secure || req.headers['x-forwarded-proto'] === 'https' ? '; Secure' : '';
|
|
344
|
+
const maxAge = Math.max(0, Math.floor(ttlMs / 1000));
|
|
345
|
+
return `${DASH_SESSION_COOKIE}=${token}; HttpOnly; SameSite=Lax; Path=/; Max-Age=${maxAge}${secure}`;
|
|
346
|
+
}
|
|
176
347
|
setupRoutes() {
|
|
177
348
|
if (process.env.DEV_MODE) {
|
|
178
349
|
process.stderr.write('[gateway] DEV_MODE=1 active — module cache busted on every /dashboard request. Never enable in production.\n');
|
|
@@ -185,31 +356,15 @@ class GatewayRouter {
|
|
|
185
356
|
this.app.use(express_1.default.json());
|
|
186
357
|
// Ephemeral WS ticket — exchange a short-lived token for PTY stream access.
|
|
187
358
|
// MUST be registered before the apiRouter middleware so it handles its own auth
|
|
188
|
-
//
|
|
359
|
+
// without the apiRouter's auth gate intercepting first.
|
|
189
360
|
// The ticket is one-time-use with a 30s TTL so neither the API key nor the
|
|
190
|
-
// dashboard
|
|
191
|
-
// Accepts two credential types:
|
|
361
|
+
// dashboard session appears in WS URLs (server access logs / browser history).
|
|
362
|
+
// Accepts two credential types (via requireDashOrApiKey):
|
|
192
363
|
// • X-Api-Key / Bearer — full API key (programmatic clients)
|
|
193
|
-
// •
|
|
364
|
+
// • dash_session cookie — dashboard session (browser, issued at /dashboard/login)
|
|
194
365
|
this.app.post('/api/v1/pty-stream-ticket', (req, res) => {
|
|
195
|
-
|
|
196
|
-
const authHeader = req.headers['authorization'] ?? '';
|
|
197
|
-
const xApiKey = req.headers['x-api-key'] ?? '';
|
|
198
|
-
const xDashToken = req.headers['x-dash-token'] ?? '';
|
|
199
|
-
const token = authHeader.startsWith('Bearer ') ? authHeader.slice(7).trim() : xApiKey.trim();
|
|
200
|
-
// Validate: API key OR a live dashboard token.
|
|
201
|
-
const now = Date.now();
|
|
202
|
-
const dashExpiry = xDashToken ? (this.dashboardTokens.get(xDashToken) ?? 0) : 0;
|
|
203
|
-
const dashValid = dashExpiry > now;
|
|
204
|
-
if (dashValid) {
|
|
205
|
-
// Dashboard tokens are one-time-use: revoke immediately after auth so a
|
|
206
|
-
// leaked page source can't be replayed (each /dashboard visit gets a fresh one).
|
|
207
|
-
this.dashboardTokens.delete(xDashToken);
|
|
208
|
-
}
|
|
209
|
-
if (!dashValid && (!token || !apiKeys.some((k) => k.key === token))) {
|
|
210
|
-
res.status(401).json({ error: 'Unauthorized' });
|
|
366
|
+
if (!this.requireDashOrApiKey(req, res))
|
|
211
367
|
return;
|
|
212
|
-
}
|
|
213
368
|
const body = req.body ?? {};
|
|
214
369
|
const agentId = body.agentId ?? '';
|
|
215
370
|
const sessionId = body.sessionId ?? '';
|
|
@@ -320,33 +475,81 @@ class GatewayRouter {
|
|
|
320
475
|
proxy.end();
|
|
321
476
|
}
|
|
322
477
|
});
|
|
323
|
-
// Health check
|
|
478
|
+
// Health check — intentionally minimal. Public (no auth) so external liveness
|
|
479
|
+
// probes work when bound to a non-loopback interface, but it leaks nothing:
|
|
480
|
+
// no agent ids, no version, just liveness.
|
|
324
481
|
this.app.get('/health', (_req, res) => {
|
|
325
|
-
res.json({ status: 'ok'
|
|
482
|
+
res.json({ status: 'ok' });
|
|
326
483
|
});
|
|
327
|
-
// Web dashboard
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const dashToken = crypto.randomBytes(16).toString('hex');
|
|
333
|
-
this.dashboardTokens.set(dashToken, Date.now() + 10 * 60 * 1000);
|
|
484
|
+
// Web dashboard. When API keys are configured, require a live dashboard
|
|
485
|
+
// session cookie; otherwise serve the login page (API-key form). Keyless
|
|
486
|
+
// installs have no credential to check, so the dashboard stays open there —
|
|
487
|
+
// matching how the /api routers are only mounted when keys exist.
|
|
488
|
+
this.app.get('/dashboard', (req, res) => {
|
|
334
489
|
res.setHeader('Content-Type', 'text/html; charset=utf-8');
|
|
490
|
+
if (this.apiKeys.length === 0) {
|
|
491
|
+
// Keyless: open on loopback, but fail closed on a non-loopback bind.
|
|
492
|
+
if (this.isNonLoopbackBind()) {
|
|
493
|
+
res.status(503).send((0, web_ui_1.generateLoginHtml)('Dashboard disabled. Configure gateway.api.keys to enable access on a non-loopback bind (gateway.bind).'));
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
else if (!this.hasValidDashSession(req)) {
|
|
498
|
+
res.send((0, web_ui_1.generateLoginHtml)());
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
335
501
|
if (process.env.DEV_MODE) {
|
|
336
502
|
// Hot-reload: bust module cache so each browser refresh picks up the latest compiled web-ui.js
|
|
337
503
|
const webUiPath = require.resolve('../ui/web-ui');
|
|
338
504
|
delete require.cache[webUiPath];
|
|
339
505
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
340
506
|
const { generateDashboardHtml: fresh } = require('../ui/web-ui');
|
|
341
|
-
res.send(fresh(
|
|
507
|
+
res.send(fresh());
|
|
342
508
|
}
|
|
343
509
|
else {
|
|
344
|
-
res.send((0, web_ui_1.generateDashboardHtml)(
|
|
510
|
+
res.send((0, web_ui_1.generateDashboardHtml)());
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
// Dashboard login — exchange a configured API key for an HttpOnly session
|
|
514
|
+
// cookie (multi-use, 8h). The cookie is never readable by page JS / view-source,
|
|
515
|
+
// so it can safely gate the dashboard reads and the PTY-ticket exchange.
|
|
516
|
+
this.app.post('/dashboard/login', (req, res) => {
|
|
517
|
+
const keys = this.apiKeys;
|
|
518
|
+
if (keys.length === 0) {
|
|
519
|
+
res.status(404).json({ error: 'Auth not configured' });
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
// Throttle brute-force attempts per client IP.
|
|
523
|
+
if (this.isLoginThrottled(req)) {
|
|
524
|
+
res.status(429).json({ error: 'Too many login attempts. Try again later.' });
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
const key = (req.body?.key ?? '').toString();
|
|
528
|
+
if (!timingSafeKeyMatch(keys, key)) {
|
|
529
|
+
this.recordLoginFailure(req);
|
|
530
|
+
res.status(401).json({ error: 'Invalid API key' });
|
|
531
|
+
return;
|
|
345
532
|
}
|
|
533
|
+
// Success: clear this IP's failure window.
|
|
534
|
+
this.loginAttempts.delete(this.clientIp(req));
|
|
535
|
+
const token = crypto.randomBytes(32).toString('hex');
|
|
536
|
+
this.dashboardTokens.set(token, Date.now() + DASH_SESSION_TTL_MS);
|
|
537
|
+
res.setHeader('Set-Cookie', this.buildSessionCookie(req, token, DASH_SESSION_TTL_MS));
|
|
538
|
+
res.json({ ok: true });
|
|
539
|
+
});
|
|
540
|
+
// Dashboard logout — revoke the session token and clear the cookie.
|
|
541
|
+
this.app.post('/dashboard/logout', (req, res) => {
|
|
542
|
+
const token = parseCookies(req.headers['cookie'])[DASH_SESSION_COOKIE];
|
|
543
|
+
if (token)
|
|
544
|
+
this.dashboardTokens.delete(token);
|
|
545
|
+
res.setHeader('Set-Cookie', this.buildSessionCookie(req, '', 0));
|
|
546
|
+
res.json({ ok: true });
|
|
346
547
|
});
|
|
347
548
|
// Process tree endpoint — returns raw ps data for dashboard.
|
|
348
549
|
// Async exec + 3s cache: avoids blocking the event loop on every dashboard poll.
|
|
349
|
-
this.app.get('/processes', (
|
|
550
|
+
this.app.get('/processes', (req, res) => {
|
|
551
|
+
if (!this.requireDashOrApiKey(req, res))
|
|
552
|
+
return;
|
|
350
553
|
const now = Date.now();
|
|
351
554
|
if (this.processesCache && now - this.processesCache.ts < GatewayRouter.PROCESSES_CACHE_TTL_MS) {
|
|
352
555
|
res.json({ processes: this.processesCache.data, numCpus: GatewayRouter.NUM_CPUS });
|
|
@@ -376,17 +579,10 @@ class GatewayRouter {
|
|
|
376
579
|
// PTY screen snapshot — plain text, ANSI stripped. For agents that need to
|
|
377
580
|
// observe what is currently displayed in the PTY shell to detect hangs, menu
|
|
378
581
|
// states, or unexpected output without parsing escape codes.
|
|
379
|
-
// Auth: X-Api-Key
|
|
380
|
-
// as this endpoint is intended for programmatic/agent access, not the browser).
|
|
582
|
+
// Auth: X-Api-Key / Bearer (programmatic) OR dashboard session cookie (browser).
|
|
381
583
|
this.app.get('/api/v1/sessions/:sessionId/screen', (req, res) => {
|
|
382
|
-
|
|
383
|
-
const authHeader = req.headers['authorization'] ?? '';
|
|
384
|
-
const xApiKey = req.headers['x-api-key'] ?? '';
|
|
385
|
-
const token = authHeader.startsWith('Bearer ') ? authHeader.slice(7).trim() : xApiKey.trim();
|
|
386
|
-
if (!token || !apiKeys.some((k) => k.key === token)) {
|
|
387
|
-
res.status(401).json({ error: 'Unauthorized' });
|
|
584
|
+
if (!this.requireDashOrApiKey(req, res))
|
|
388
585
|
return;
|
|
389
|
-
}
|
|
390
586
|
const sessionId = req.params['sessionId'] ?? '';
|
|
391
587
|
if (!sessionId) {
|
|
392
588
|
res.status(400).json({ error: 'sessionId is required' });
|
|
@@ -407,7 +603,9 @@ class GatewayRouter {
|
|
|
407
603
|
});
|
|
408
604
|
});
|
|
409
605
|
// Status endpoint — per-agent stats + heartbeat history
|
|
410
|
-
this.app.get('/status', (
|
|
606
|
+
this.app.get('/status', (req, res) => {
|
|
607
|
+
if (!this.requireDashOrApiKey(req, res))
|
|
608
|
+
return;
|
|
411
609
|
const uptimeMs = Date.now() - this.startedAt.getTime();
|
|
412
610
|
const agentsStatus = [...this.agents.entries()].map(([id, runner]) => {
|
|
413
611
|
const scheduler = this.schedulers.get(id);
|
|
@@ -473,6 +671,11 @@ class GatewayRouter {
|
|
|
473
671
|
// are not exposed to the local network out of the box; operators opt into
|
|
474
672
|
// wider exposure via config or the env var (e.g. "0.0.0.0" behind a proxy).
|
|
475
673
|
const host = resolveBindHost(process.env.GATEWAY_BIND, this.gatewayConfig?.gateway?.bind);
|
|
674
|
+
// Fail-closed heads-up: a non-loopback bind with no API keys means the
|
|
675
|
+
// dashboard/monitoring endpoints refuse access (503) until keys are set.
|
|
676
|
+
if (this.isNonLoopbackBind() && this.apiKeys.length === 0) {
|
|
677
|
+
process.stderr.write(`[gateway] WARNING: bound to ${host} with no gateway.api.keys — dashboard/status/processes are DISABLED (503) until you configure API keys. Set gateway.api.keys to enable access.\n`);
|
|
678
|
+
}
|
|
476
679
|
return new Promise((resolve, reject) => {
|
|
477
680
|
this.server = this.app.listen(port, host, () => {
|
|
478
681
|
resolve();
|
|
@@ -493,7 +696,7 @@ class GatewayRouter {
|
|
|
493
696
|
// *receives* — server → client PTY output is unaffected.
|
|
494
697
|
this.wss = new ws_1.WebSocketServer({ noServer: true, maxPayload: control_channel_1.MAX_PTY_INPUT_BYTES * 8 });
|
|
495
698
|
const apiKeys = this.gatewayConfig?.gateway?.api?.keys ?? [];
|
|
496
|
-
// Prune expired tickets
|
|
699
|
+
// Prune expired tickets, dashboard tokens, and login-throttle windows every 60s.
|
|
497
700
|
this.ticketPruner = setInterval(() => {
|
|
498
701
|
const now = Date.now();
|
|
499
702
|
for (const [k, v] of this.ptyStreamTickets) {
|
|
@@ -504,6 +707,10 @@ class GatewayRouter {
|
|
|
504
707
|
if (exp < now)
|
|
505
708
|
this.dashboardTokens.delete(k);
|
|
506
709
|
}
|
|
710
|
+
for (const [ip, rec] of this.loginAttempts) {
|
|
711
|
+
if (rec.resetAt < now)
|
|
712
|
+
this.loginAttempts.delete(ip);
|
|
713
|
+
}
|
|
507
714
|
}, 60000);
|
|
508
715
|
this.ticketPruner.unref();
|
|
509
716
|
this.server.on('upgrade', (req, socket, head) => {
|
|
@@ -544,7 +751,7 @@ class GatewayRouter {
|
|
|
544
751
|
const token = authHeader.startsWith('Bearer ')
|
|
545
752
|
? authHeader.slice(7).trim()
|
|
546
753
|
: xApiKey.trim();
|
|
547
|
-
if (!
|
|
754
|
+
if (!timingSafeKeyMatch(apiKeys, token)) {
|
|
548
755
|
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
|
|
549
756
|
socket.destroy();
|
|
550
757
|
return;
|
|
@@ -574,11 +781,12 @@ class GatewayRouter {
|
|
|
574
781
|
* (server → browser); inbound keystrokes are opt-in per browser via the Shell
|
|
575
782
|
* Process Viewer's mode toggle (client-side UX), so a viewer only sends bytes
|
|
576
783
|
* while in input mode. Access to this socket is protected upstream: the caller
|
|
577
|
-
* has already authenticated (ticket or API key) and the
|
|
578
|
-
*
|
|
579
|
-
*
|
|
580
|
-
*
|
|
581
|
-
* (
|
|
784
|
+
* has already authenticated (one-time ticket or API key), and the ticket itself
|
|
785
|
+
* is only mintable with an API key or a valid dashboard session — so on a
|
|
786
|
+
* non-loopback `gateway.bind` an unauthenticated caller cannot reach this stream
|
|
787
|
+
* (provided `gateway.api.keys` is configured). Bytes are bounded (text-only,
|
|
788
|
+
* size-capped) and routed to the owning session; a headless session (no PTY)
|
|
789
|
+
* silently drops them (sendInputToSession → false).
|
|
582
790
|
*/
|
|
583
791
|
attachPtyStreamSocket(ws, agentId, sessionId) {
|
|
584
792
|
if (!pty_stream_registry_1.ptyStreamRegistry.hasSockets(sessionId)) {
|
|
@@ -709,4 +917,6 @@ GatewayRouter.PROCESSES_CACHE_TTL_MS = 3000;
|
|
|
709
917
|
* calling os.cpus() (a syscall) on every /processes poll. Used to normalize
|
|
710
918
|
* ps per-core %CPU into a 0–100% figure on the dashboard. */
|
|
711
919
|
GatewayRouter.NUM_CPUS = Math.max(1, os.cpus().length);
|
|
920
|
+
GatewayRouter.LOGIN_MAX_ATTEMPTS = 10;
|
|
921
|
+
GatewayRouter.LOGIN_WINDOW_MS = 5 * 60 * 1000;
|
|
712
922
|
//# sourceMappingURL=gateway-router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-router.js","sourceRoot":"","sources":["../../src/api/gateway-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gateway-router.js","sourceRoot":"","sources":["../../src/api/gateway-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cron/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,MAAM,EACN,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAyCnD,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,cAAc,CAAmE;gBAGvF,MAAM,CAAC,EAAE,iBAAiB,EAC1B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,MAAM,CAAC,EAAE,MAAM;IAUjB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACH,IAAI,IAAI,IAAI;IAcN,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgD9C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAwD1D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAM3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMpC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkB5D,MAAM,IAAI;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,OAAO,EAAE,CAAC;KACjB;IAYD,OAAO,CAAC,gBAAgB;IAexB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IA6DnB,OAAO,CAAC,aAAa;YAaP,kBAAkB;YAelB,UAAU;IA+DxB,OAAO,CAAC,UAAU;YAiBJ,YAAY;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/cron/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,EACL,OAAO,EACP,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,MAAM,EACN,WAAW,EACZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAyCnD,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IACxD,OAAO,CAAC,IAAI,CAAmC;IAC/C,OAAO,CAAC,cAAc,CAAmE;gBAGvF,MAAM,CAAC,EAAE,iBAAiB,EAC1B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,MAAM,CAAC,EAAE,MAAM;IAUjB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACH,IAAI,IAAI,IAAI;IAcN,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgD9C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAwD1D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAM3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMpC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkB5D,MAAM,IAAI;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,OAAO,EAAE,CAAC;KACjB;IAYD,OAAO,CAAC,gBAAgB;IAexB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IA6DnB,OAAO,CAAC,aAAa;YAaP,kBAAkB;YAelB,UAAU;IA+DxB,OAAO,CAAC,UAAU;YAiBJ,YAAY;YAmBZ,YAAY;YA0BZ,WAAW;YAmCX,OAAO;YAWP,YAAY;YAgBZ,iBAAiB;CA+ChC"}
|
package/dist/cron/manager.js
CHANGED
|
@@ -483,7 +483,13 @@ class CronManager extends events_1.EventEmitter {
|
|
|
483
483
|
}
|
|
484
484
|
const sessionId = `cron-${job.id}`;
|
|
485
485
|
const timeoutMs = job.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
486
|
-
|
|
486
|
+
// Honor the agent's `allow_tools` setting for cron turns, mirroring the API
|
|
487
|
+
// request path (src/api/router.ts). Cron has no API key, so an unset value
|
|
488
|
+
// falls back to the secure default (false) rather than the router's apiKey
|
|
489
|
+
// fallback. Without this, sendApiMessage() defaults the missing option to
|
|
490
|
+
// `false` and every cron turn runs with tools disabled regardless of config.
|
|
491
|
+
const allowTools = this.agentConfigs.get(job.agentId)?.allow_tools ?? false;
|
|
492
|
+
const { text } = await runner.sendApiMessage(sessionId, `cron-${job.id}`, job.prompt, { timeoutMs, allowTools });
|
|
487
493
|
return text;
|
|
488
494
|
}
|
|
489
495
|
async sendTelegram(agentId, chatId, text) {
|
package/dist/cron/manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/cron/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/cron/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/web-ui.d.ts
CHANGED
|
@@ -2,5 +2,12 @@
|
|
|
2
2
|
* Generates a self-contained HTML dashboard page for the gateway status UI.
|
|
3
3
|
* No external dependencies except xterm.js CDN for PTY viewer.
|
|
4
4
|
*/
|
|
5
|
-
export declare function generateDashboardHtml(
|
|
5
|
+
export declare function generateDashboardHtml(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Minimal, self-contained login page served at GET /dashboard when API keys are
|
|
8
|
+
* configured and the request has no valid dashboard session cookie. Posts the
|
|
9
|
+
* entered API key to POST /dashboard/login (JSON); on success the server sets the
|
|
10
|
+
* HttpOnly session cookie and we reload into the dashboard. No external deps.
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateLoginHtml(disabledReason?: string): string;
|
|
6
13
|
//# sourceMappingURL=web-ui.d.ts.map
|
package/dist/ui/web-ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAq4B9C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,SAAK,GAAG,MAAM,CAiF7D"}
|
package/dist/ui/web-ui.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateDashboardHtml = generateDashboardHtml;
|
|
4
|
+
exports.generateLoginHtml = generateLoginHtml;
|
|
4
5
|
/**
|
|
5
6
|
* Generates a self-contained HTML dashboard page for the gateway status UI.
|
|
6
7
|
* No external dependencies except xterm.js CDN for PTY viewer.
|
|
7
8
|
*/
|
|
8
|
-
function generateDashboardHtml(
|
|
9
|
-
const safeToken = dashToken.replace(/&/g, '&').replace(/"/g, '"');
|
|
9
|
+
function generateDashboardHtml() {
|
|
10
10
|
return `<!DOCTYPE html>
|
|
11
11
|
<html lang="en">
|
|
12
12
|
<head>
|
|
13
13
|
<meta charset="UTF-8">
|
|
14
14
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
15
|
-
<meta name="dash-token" content="${safeToken}">
|
|
16
15
|
<title>Claude Gateway</title>
|
|
17
16
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xterm/xterm@6.0.0/css/xterm.min.css"
|
|
18
17
|
integrity="sha384-eDYu/eBZQNhtqTaA7Wl3XighXKxm/9VYF+Chh3hQS+UUlKQIJ14hK2imKu4n99aR" crossorigin="anonymous"/>
|
|
@@ -225,7 +224,7 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
225
224
|
</style>
|
|
226
225
|
</head>
|
|
227
226
|
<body>
|
|
228
|
-
<h1><span class="rainbow">Claude Gateway</span> <span id="gateway-version" style="font-size:0.75rem;color:#718096;"></span> <span id="refresh-indicator">refreshing...</span></h1>
|
|
227
|
+
<h1><span class="rainbow">Claude Gateway</span> <span id="gateway-version" style="font-size:0.75rem;color:#718096;"></span> <span id="refresh-indicator">refreshing...</span> <button id="logout-btn" style="float:right;font-size:0.7rem;background:#2d3748;color:#a0aec0;border:1px solid #4a5568;border-radius:4px;padding:2px 8px;cursor:pointer;">Logout</button></h1>
|
|
229
228
|
<div class="meta">
|
|
230
229
|
Uptime: <span id="uptime">—</span> |
|
|
231
230
|
Started: <span id="started-at">—</span> |
|
|
@@ -291,9 +290,13 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
291
290
|
<script src="https://cdn.jsdelivr.net/npm/@xterm/xterm@6.0.0/lib/xterm.min.js"
|
|
292
291
|
integrity="sha384-pELe6ZHtFxFcuYBq3gMkqvmnNIqUWnAYjBG5gThqQQCjWp8PJ/65MLK4lMIfEK1e" crossorigin="anonymous"></script>
|
|
293
292
|
<script>
|
|
294
|
-
//
|
|
295
|
-
//
|
|
296
|
-
|
|
293
|
+
// Auth is carried by the HttpOnly 'dash_session' cookie the browser sends
|
|
294
|
+
// automatically on every same-origin request — no token is embedded in the
|
|
295
|
+
// page (nothing for view-source/XSS to steal). If any read returns 401 the
|
|
296
|
+
// session has expired or is missing, so bounce to /dashboard (login page).
|
|
297
|
+
function onUnauthorized() {
|
|
298
|
+
window.location.href = apiUrl('/dashboard');
|
|
299
|
+
}
|
|
297
300
|
|
|
298
301
|
// Must match the server PTY size (src/shell/screen.ts ScreenModel defaults).
|
|
299
302
|
const PTY_COLS = 200;
|
|
@@ -332,19 +335,19 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
332
335
|
}
|
|
333
336
|
|
|
334
337
|
async function wsPtyUrl(agentId, sessionId) {
|
|
335
|
-
// Exchange the
|
|
336
|
-
//
|
|
337
|
-
//
|
|
338
|
+
// Exchange the dashboard session (HttpOnly cookie, sent automatically) for a
|
|
339
|
+
// short-lived ticket so no credential ever appears in the WS URL (which would
|
|
340
|
+
// expose it in server logs and browser history). Per-session, so the session
|
|
341
|
+
// id is always part of the request.
|
|
338
342
|
const base = basePath() + '/api/v1/agents/' + encodeURIComponent(agentId) + '/pty-stream';
|
|
339
343
|
const proto = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
340
|
-
if (!DASHBOARD_API_KEY) {
|
|
341
|
-
return proto + '//' + window.location.host + base + '?session=' + encodeURIComponent(sessionId);
|
|
342
|
-
}
|
|
343
344
|
const r = await fetch(apiUrl('/api/v1/pty-stream-ticket'), {
|
|
344
345
|
method: 'POST',
|
|
345
|
-
headers: { 'Content-Type': 'application/json'
|
|
346
|
+
headers: { 'Content-Type': 'application/json' },
|
|
346
347
|
body: JSON.stringify({ agentId, sessionId }),
|
|
347
348
|
});
|
|
349
|
+
if (r.status === 401) { onUnauthorized(); return null; }
|
|
350
|
+
if (!r.ok) throw new Error('ticket HTTP ' + r.status);
|
|
348
351
|
const { ticket } = await r.json();
|
|
349
352
|
return proto + '//' + window.location.host + base + '?ticket=' + ticket;
|
|
350
353
|
}
|
|
@@ -460,6 +463,8 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
460
463
|
schedulePtyReconnect(agentId, sessionId);
|
|
461
464
|
return;
|
|
462
465
|
}
|
|
466
|
+
// 401 → wsPtyUrl already bounced to the login page; stop here.
|
|
467
|
+
if (!url) return;
|
|
463
468
|
// The session may have been closed/switched while awaiting the ticket.
|
|
464
469
|
if (currentPtySession !== sessionId) return;
|
|
465
470
|
|
|
@@ -668,6 +673,7 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
668
673
|
document.getElementById('refresh-indicator').textContent = 'refreshing...';
|
|
669
674
|
try {
|
|
670
675
|
const res = await fetch(apiUrl('/status'));
|
|
676
|
+
if (res.status === 401) { onUnauthorized(); return; }
|
|
671
677
|
if (!res.ok) throw new Error('HTTP ' + res.status);
|
|
672
678
|
const data = await res.json();
|
|
673
679
|
|
|
@@ -743,6 +749,7 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
743
749
|
async function refreshProcesses() {
|
|
744
750
|
try {
|
|
745
751
|
const res = await fetch(apiUrl('/processes'));
|
|
752
|
+
if (res.status === 401) { onUnauthorized(); return; }
|
|
746
753
|
if (!res.ok) return;
|
|
747
754
|
const data = await res.json();
|
|
748
755
|
renderProcessTree(data.processes || [], data.numCpus || 1);
|
|
@@ -884,6 +891,14 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
884
891
|
document.getElementById('proc-tree').innerHTML = lines.join('\\n');
|
|
885
892
|
}
|
|
886
893
|
|
|
894
|
+
// Logout — revoke the session cookie server-side, then land on the login page.
|
|
895
|
+
document.getElementById('logout-btn').addEventListener('click', async function() {
|
|
896
|
+
try {
|
|
897
|
+
await fetch(apiUrl('/dashboard/logout'), { method: 'POST' });
|
|
898
|
+
} catch (e) { /* best-effort; navigate regardless */ }
|
|
899
|
+
window.location.href = apiUrl('/dashboard');
|
|
900
|
+
});
|
|
901
|
+
|
|
887
902
|
refresh();
|
|
888
903
|
refreshProcesses();
|
|
889
904
|
setInterval(refresh, 3000);
|
|
@@ -893,4 +908,92 @@ function generateDashboardHtml(dashToken = '') {
|
|
|
893
908
|
</body>
|
|
894
909
|
</html>`;
|
|
895
910
|
}
|
|
911
|
+
/**
|
|
912
|
+
* Minimal, self-contained login page served at GET /dashboard when API keys are
|
|
913
|
+
* configured and the request has no valid dashboard session cookie. Posts the
|
|
914
|
+
* entered API key to POST /dashboard/login (JSON); on success the server sets the
|
|
915
|
+
* HttpOnly session cookie and we reload into the dashboard. No external deps.
|
|
916
|
+
*/
|
|
917
|
+
function generateLoginHtml(disabledReason = '') {
|
|
918
|
+
const safeReason = disabledReason
|
|
919
|
+
.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
|
|
920
|
+
// When a disabled reason is supplied (keyless install on a non-loopback bind),
|
|
921
|
+
// render a notice instead of the login form — there is no key to log in with.
|
|
922
|
+
const bodyInner = safeReason
|
|
923
|
+
? ` <h1>Claude Gateway</h1>
|
|
924
|
+
<div class="sub">${safeReason}</div>`
|
|
925
|
+
: ` <h1>Claude Gateway</h1>
|
|
926
|
+
<div class="sub">Enter an API key to access the dashboard.</div>
|
|
927
|
+
<form id="login-form" autocomplete="off">
|
|
928
|
+
<label for="key">API key</label>
|
|
929
|
+
<input id="key" type="password" placeholder="sk-gateway-..." autofocus>
|
|
930
|
+
<button type="submit">Sign in</button>
|
|
931
|
+
<div id="err"></div>
|
|
932
|
+
</form>`;
|
|
933
|
+
return `<!DOCTYPE html>
|
|
934
|
+
<html lang="en">
|
|
935
|
+
<head>
|
|
936
|
+
<meta charset="UTF-8">
|
|
937
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
938
|
+
<title>Claude Gateway — Login</title>
|
|
939
|
+
<style>
|
|
940
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
941
|
+
body {
|
|
942
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, monospace;
|
|
943
|
+
background: #0f1117; color: #e2e8f0;
|
|
944
|
+
min-height: 100vh; display: flex; align-items: center; justify-content: center;
|
|
945
|
+
}
|
|
946
|
+
.card {
|
|
947
|
+
background: #1a202c; border: 1px solid #2d3748; border-radius: 10px;
|
|
948
|
+
padding: 32px; width: 100%; max-width: 360px;
|
|
949
|
+
}
|
|
950
|
+
h1 { font-size: 1.25rem; margin-bottom: 4px; }
|
|
951
|
+
.sub { font-size: 0.8rem; color: #718096; margin-bottom: 20px; }
|
|
952
|
+
label { display: block; font-size: 0.75rem; color: #a0aec0; margin-bottom: 6px; }
|
|
953
|
+
input {
|
|
954
|
+
width: 100%; padding: 10px 12px; border-radius: 6px;
|
|
955
|
+
border: 1px solid #2d3748; background: #0f1117; color: #e2e8f0;
|
|
956
|
+
font-family: inherit; font-size: 0.9rem;
|
|
957
|
+
}
|
|
958
|
+
button {
|
|
959
|
+
width: 100%; margin-top: 16px; padding: 10px; border: none; border-radius: 6px;
|
|
960
|
+
background: #3182ce; color: #fff; font-weight: 600; font-size: 0.9rem; cursor: pointer;
|
|
961
|
+
}
|
|
962
|
+
button:hover { background: #2b6cb0; }
|
|
963
|
+
#err { color: #fc8181; font-size: 0.8rem; margin-top: 12px; min-height: 1em; }
|
|
964
|
+
</style>
|
|
965
|
+
</head>
|
|
966
|
+
<body>
|
|
967
|
+
<div class="card">
|
|
968
|
+
${bodyInner}
|
|
969
|
+
</div>
|
|
970
|
+
<script>
|
|
971
|
+
function basePath() {
|
|
972
|
+
var p = window.location.pathname;
|
|
973
|
+
if (p.endsWith('/dashboard')) return p.slice(0, -10);
|
|
974
|
+
if (p.endsWith('/dashboard/')) return p.slice(0, -11);
|
|
975
|
+
return p.endsWith('/') ? p.slice(0, -1) : p;
|
|
976
|
+
}
|
|
977
|
+
var loginForm = document.getElementById('login-form');
|
|
978
|
+
if (loginForm) loginForm.addEventListener('submit', async function(e) {
|
|
979
|
+
e.preventDefault();
|
|
980
|
+
var err = document.getElementById('err');
|
|
981
|
+
err.textContent = '';
|
|
982
|
+
var key = document.getElementById('key').value;
|
|
983
|
+
try {
|
|
984
|
+
var res = await fetch(basePath() + '/dashboard/login', {
|
|
985
|
+
method: 'POST',
|
|
986
|
+
headers: { 'Content-Type': 'application/json' },
|
|
987
|
+
body: JSON.stringify({ key: key }),
|
|
988
|
+
});
|
|
989
|
+
if (res.ok) { window.location.href = basePath() + '/dashboard'; return; }
|
|
990
|
+
err.textContent = res.status === 401 ? 'Invalid API key.' : ('Login failed (HTTP ' + res.status + ').');
|
|
991
|
+
} catch (e2) {
|
|
992
|
+
err.textContent = 'Network error.';
|
|
993
|
+
}
|
|
994
|
+
});
|
|
995
|
+
</script>
|
|
996
|
+
</body>
|
|
997
|
+
</html>`;
|
|
998
|
+
}
|
|
896
999
|
//# sourceMappingURL=web-ui.js.map
|
package/dist/ui/web-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-ui.js","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"web-ui.js","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":";;AAIA,sDAq4BC;AAQD,8CAiFC;AAl+BD;;;GAGG;AACH,SAAgB,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAm4BD,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,cAAc,GAAG,EAAE;IACnD,MAAM,UAAU,GAAG,cAAc;SAC9B,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9F,+EAA+E;IAC/E,8EAA8E;IAC9E,MAAM,SAAS,GAAG,UAAU;QAC1B,CAAC,CAAC;uBACiB,UAAU,QAAQ;QACrC,CAAC,CAAC;;;;;;;YAOM,CAAC;IACX,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCP,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA6BH,CAAC;AACT,CAAC"}
|