@cotal-ai/web 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/web.d.ts +33 -0
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +286 -12
- package/dist/web.js.map +1 -1
- package/package.json +3 -3
package/dist/web.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ChildProcess } from "node:child_process";
|
|
2
|
+
import { type IncomingMessage } from "node:http";
|
|
2
3
|
import { type CotalMessage, type ParsedArgs } from "@cotal-ai/core";
|
|
3
4
|
import { type LocalProcess } from "@cotal-ai/workspace";
|
|
4
5
|
/** The dashboard's default port and its branded address. The server binds loopback
|
|
@@ -7,6 +8,35 @@ import { type LocalProcess } from "@cotal-ai/workspace";
|
|
|
7
8
|
* `*.localhost`; plain http://127.0.0.1:7799 always does.) */
|
|
8
9
|
export declare const WEB_PORT = 7799;
|
|
9
10
|
export declare const WEB_URL = "http://cotal.localhost:7799/";
|
|
11
|
+
/** The three reasons this surface refuses a request, named as constants because the browser and the
|
|
12
|
+
* cells must both match the SAME token — a restated literal drifts silently, and a refusal that
|
|
13
|
+
* cannot be told apart from another refusal is the defect this lane exists to remove. Four
|
|
14
|
+
* different failures reported as one is the same defect as a failure reported as success. */
|
|
15
|
+
export declare const UNAUTHENTICATED = "unauthenticated";
|
|
16
|
+
export declare const LAUNCH_TOKEN_ALREADY_USED = "launch-token-already-used";
|
|
17
|
+
export declare const CROSS_ORIGIN = "cross-origin";
|
|
18
|
+
/** The gate. Every request passes through it before any route runs.
|
|
19
|
+
*
|
|
20
|
+
* WHY THIS EXISTS AT ALL: the surface binds loopback and authenticated NOBODY. Loopback defends
|
|
21
|
+
* against other HOSTS; it does not defend against other PROCESSES on this machine, and it does not
|
|
22
|
+
* defend against a page in the operator's own browser issuing requests to http://127.0.0.1:7799.
|
|
23
|
+
* Today that reaches the whole mesh read path and a channel-delete POST.
|
|
24
|
+
*
|
|
25
|
+
* ORDER IS DELIBERATE: origin is checked BEFORE the session. A cross-site request arrives without
|
|
26
|
+
* the cookie anyway (SameSite=Strict), so checking the session first would report every such
|
|
27
|
+
* request as `unauthenticated` and the operator would never learn that something cross-origin was
|
|
28
|
+
* talking to their console. The more specific condition wins.
|
|
29
|
+
*/
|
|
30
|
+
export declare function makeAuthGate(port: number): {
|
|
31
|
+
launchToken: string;
|
|
32
|
+
readinessNonce: string;
|
|
33
|
+
/** `undefined` = let the request through. Otherwise the named condition that refused it. */
|
|
34
|
+
check(req: IncomingMessage, query: URLSearchParams): {
|
|
35
|
+
refuse: string;
|
|
36
|
+
} | {
|
|
37
|
+
exchange: string;
|
|
38
|
+
} | undefined;
|
|
39
|
+
};
|
|
10
40
|
export declare const webProcess: LocalProcess;
|
|
11
41
|
/** The one condition name for "the membership read did not answer", shared by the HTTP body and the
|
|
12
42
|
* SSE event so a browser matches ONE token and a test asserts the same token the server emits.
|
|
@@ -192,9 +222,12 @@ export declare function activityBackfill(ep: ActivitySource, limit: number, dead
|
|
|
192
222
|
* observer endpoint (invisible to peers) feeds the page presence, channel history,
|
|
193
223
|
* and a live message stream — no manager required. Bound to loopback. */
|
|
194
224
|
export declare function web(args: ParsedArgs): Promise<void>;
|
|
225
|
+
/** Open the persistent detached log privately even when it pre-existed with permissive metadata. */
|
|
226
|
+
export declare function openDetachedLog(logPath: string): number;
|
|
195
227
|
export declare function detachedArgs(raw: readonly string[], space: string, server: string): string[];
|
|
196
228
|
export declare function waitForDetachedWeb(child: ChildProcess, opts: {
|
|
197
229
|
pidPath: string;
|
|
230
|
+
sessionPath?: string;
|
|
198
231
|
url: string;
|
|
199
232
|
space: string;
|
|
200
233
|
timeoutMs: number;
|
package/dist/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|
package/dist/web.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
import { randomBytes, timingSafeEqual } from "node:crypto";
|
|
2
3
|
import { createServer } from "node:http";
|
|
3
|
-
import { closeSync, fstatSync, openSync, readFileSync, readSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { closeSync, fchmodSync, fstatSync, openSync, readFileSync, readSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
4
5
|
import { fileURLToPath } from "node:url";
|
|
5
6
|
import { dirname, join } from "node:path";
|
|
6
|
-
import { CotalEndpoint, deliveryOf, isEventChannel, parseSubject, spacePrefix, mintCreds, newIdentity, clearChannel, assertValidChannel, } from "@cotal-ai/core";
|
|
7
|
+
import { CotalEndpoint, deliveryOf, isEventChannel, parseSubject, spacePrefix, mintCreds, newIdentity, clearChannel, assertValidChannel, hardenPrivate, } from "@cotal-ai/core";
|
|
7
8
|
import { c, connectOrExit, localProcessPath, userViewAuth, userViewAuthOrExit, } from "@cotal-ai/workspace";
|
|
8
9
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
9
10
|
/** The dashboard's default port and its branded address. The server binds loopback
|
|
@@ -12,15 +13,179 @@ const here = dirname(fileURLToPath(import.meta.url));
|
|
|
12
13
|
* `*.localhost`; plain http://127.0.0.1:7799 always does.) */
|
|
13
14
|
export const WEB_PORT = 7799;
|
|
14
15
|
export const WEB_URL = `http://cotal.localhost:${WEB_PORT}/`;
|
|
16
|
+
/** The three reasons this surface refuses a request, named as constants because the browser and the
|
|
17
|
+
* cells must both match the SAME token — a restated literal drifts silently, and a refusal that
|
|
18
|
+
* cannot be told apart from another refusal is the defect this lane exists to remove. Four
|
|
19
|
+
* different failures reported as one is the same defect as a failure reported as success. */
|
|
20
|
+
export const UNAUTHENTICATED = "unauthenticated";
|
|
21
|
+
export const LAUNCH_TOKEN_ALREADY_USED = "launch-token-already-used";
|
|
22
|
+
export const CROSS_ORIGIN = "cross-origin";
|
|
23
|
+
/** The cookie the session rides in. NOT `Secure`: this surface is `http://127.0.0.1`, where a Secure
|
|
24
|
+
* cookie would simply never be sent. `HttpOnly` keeps it out of page script and `SameSite=Strict`
|
|
25
|
+
* keeps it off cross-site requests; the origin check carries what is left. Stated here rather than
|
|
26
|
+
* discovered in review. */
|
|
27
|
+
const SESSION_COOKIE = "cotal_web_session";
|
|
28
|
+
/** Lower-case because Node lower-cases incoming header names; matching on a capitalised literal
|
|
29
|
+
* would never fire and would look like a working check. */
|
|
30
|
+
const READINESS_HEADER = "x-cotal-readiness";
|
|
31
|
+
/** The ONLY path the readiness nonce opens. Shared with the route below so the gate and the route
|
|
32
|
+
* cannot drift into disagreeing about which path that is. */
|
|
33
|
+
const READINESS_PATH = "/api/meta";
|
|
34
|
+
/** The request path, without the query. This DUPLICATES the handler's own parse, deliberately: the
|
|
35
|
+
* statements ahead of the gate are pinned to an exact literal parse, because an initializer there is
|
|
36
|
+
* code that runs before the gate is consulted. So the gate derives the path itself rather than being
|
|
37
|
+
* handed one, and the two must be edited together. */
|
|
38
|
+
function pathOf(req) {
|
|
39
|
+
return (req.url ?? "/").split("?")[0];
|
|
40
|
+
}
|
|
41
|
+
/** Keep request diagnostics useful without copying a contiguous live launch credential into the
|
|
42
|
+
* operator log, wherever it appears in the target. Match each ASCII token byte in raw or percent-
|
|
43
|
+
* encoded form so paths, unrelated query fields, mixed encodings, and hex case are covered. */
|
|
44
|
+
function requestTargetForLog(req, launchToken) {
|
|
45
|
+
const target = req.url ?? "/";
|
|
46
|
+
// A substring search cannot be constant-time; unlike authentication, this does not expose a
|
|
47
|
+
// boolean oracle to the caller. `secretEquals` remains the comparison at the credential boundary.
|
|
48
|
+
const tokenPattern = [...launchToken]
|
|
49
|
+
.map((ch) => `(?:${ch.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}|%${ch.charCodeAt(0).toString(16).padStart(2, "0")})`)
|
|
50
|
+
.join("");
|
|
51
|
+
let safeTarget = target.replace(new RegExp(tokenPattern, "gi"), "[redacted]");
|
|
52
|
+
const q = safeTarget.indexOf("?");
|
|
53
|
+
if (q === -1)
|
|
54
|
+
return safeTarget;
|
|
55
|
+
const query = new URLSearchParams(safeTarget.slice(q + 1));
|
|
56
|
+
const safe = new URLSearchParams();
|
|
57
|
+
for (const [name, value] of query) {
|
|
58
|
+
// `k` remains a belt for invalid, replayed, or otherwise non-live credential-shaped values.
|
|
59
|
+
safe.append(name, name === "k" ? "[redacted]" : value);
|
|
60
|
+
}
|
|
61
|
+
safeTarget = `${safeTarget.slice(0, q)}?${safe.toString()}`;
|
|
62
|
+
return safeTarget;
|
|
63
|
+
}
|
|
64
|
+
/** Where a detached parent (and an operator who lost the printed link) finds the launch URL. Written
|
|
65
|
+
* 0600 beside the pidfile — the same place and the same trust boundary as the rest of this mesh's
|
|
66
|
+
* local process state. */
|
|
67
|
+
const SESSION_FILE = "web.session";
|
|
68
|
+
/** Constant-time compare of two secrets that may differ in length. `timingSafeEqual` throws on a
|
|
69
|
+
* length mismatch, and returning early on that throw would leak the length through timing, so the
|
|
70
|
+
* length check is folded into the result instead of short-circuiting it. */
|
|
71
|
+
function secretEquals(a, b) {
|
|
72
|
+
const ab = Buffer.from(a, "utf8");
|
|
73
|
+
const bb = Buffer.from(b, "utf8");
|
|
74
|
+
if (ab.length !== bb.length) {
|
|
75
|
+
// Compare against itself so the work is done either way, then fail.
|
|
76
|
+
timingSafeEqual(ab, ab);
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return timingSafeEqual(ab, bb);
|
|
80
|
+
}
|
|
81
|
+
/** Parse one cookie out of a `Cookie:` header. Deliberately not a general cookie parser — this
|
|
82
|
+
* surface reads exactly one name, and a permissive parser is a place for a smuggled second value
|
|
83
|
+
* to hide. */
|
|
84
|
+
function cookieValue(header, name) {
|
|
85
|
+
for (const part of (header ?? "").split(";")) {
|
|
86
|
+
const eq = part.indexOf("=");
|
|
87
|
+
if (eq === -1)
|
|
88
|
+
continue;
|
|
89
|
+
if (part.slice(0, eq).trim() === name)
|
|
90
|
+
return part.slice(eq + 1).trim();
|
|
91
|
+
}
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
/** The gate. Every request passes through it before any route runs.
|
|
95
|
+
*
|
|
96
|
+
* WHY THIS EXISTS AT ALL: the surface binds loopback and authenticated NOBODY. Loopback defends
|
|
97
|
+
* against other HOSTS; it does not defend against other PROCESSES on this machine, and it does not
|
|
98
|
+
* defend against a page in the operator's own browser issuing requests to http://127.0.0.1:7799.
|
|
99
|
+
* Today that reaches the whole mesh read path and a channel-delete POST.
|
|
100
|
+
*
|
|
101
|
+
* ORDER IS DELIBERATE: origin is checked BEFORE the session. A cross-site request arrives without
|
|
102
|
+
* the cookie anyway (SameSite=Strict), so checking the session first would report every such
|
|
103
|
+
* request as `unauthenticated` and the operator would never learn that something cross-origin was
|
|
104
|
+
* talking to their console. The more specific condition wins.
|
|
105
|
+
*/
|
|
106
|
+
export function makeAuthGate(port) {
|
|
107
|
+
// Single-use, minted per process. 32 bytes: this is the only secret standing between a local
|
|
108
|
+
// process and the mesh view until the cookie exists.
|
|
109
|
+
let launchToken = randomBytes(32).toString("base64url");
|
|
110
|
+
// A SECOND secret, for one caller: `--detach`'s parent, which must poll `/api/meta` to learn the
|
|
111
|
+
// child is up and is OURS rather than a squatter on the same port. It is presented as a header and
|
|
112
|
+
// is NOT exchanged for a session and NOT consumed, because the parent may poll many times.
|
|
113
|
+
//
|
|
114
|
+
// Two secrets rather than exempting `/api/meta`, and the difference matters: an exempt route is
|
|
115
|
+
// permanently unauthenticated for everyone, and the next person to add a field to it will not know
|
|
116
|
+
// that. A second credential is scoped to the caller that needs it, opens only that one path, and
|
|
117
|
+
// dies with the process.
|
|
118
|
+
const readinessNonce = randomBytes(32).toString("base64url");
|
|
119
|
+
const sessions = new Set();
|
|
120
|
+
// The full ORIGIN, not the host: `https://localhost:7799` and `http://localhost:7799` are
|
|
121
|
+
// different origins to a browser, and comparing only the host would treat them as one.
|
|
122
|
+
// Built through `new URL(...).origin` so the allow-list is in the SAME serialization the incoming
|
|
123
|
+
// header is normalized into. A hand-written `http://localhost:80` never matches, because WHATWG
|
|
124
|
+
// origin serialization drops the default port — so on `--port 80` the console would refuse its own
|
|
125
|
+
// browser. Normalizing both sides is the only way the comparison means what it reads as.
|
|
126
|
+
const allowedOrigins = new Set([`http://cotal.localhost:${port}`, `http://127.0.0.1:${port}`, `http://localhost:${port}`]
|
|
127
|
+
.map((o) => new URL(o).origin));
|
|
128
|
+
return {
|
|
129
|
+
launchToken: launchToken,
|
|
130
|
+
readinessNonce,
|
|
131
|
+
/** `undefined` = let the request through. Otherwise the named condition that refused it. */
|
|
132
|
+
check(req, query) {
|
|
133
|
+
const origin = req.headers.origin;
|
|
134
|
+
if (origin !== undefined) {
|
|
135
|
+
// A same-origin fetch from our own page sends no Origin at all for GETs, and sends our own
|
|
136
|
+
// origin for POSTs. Anything else is another site's page talking to this console.
|
|
137
|
+
let normalized;
|
|
138
|
+
try {
|
|
139
|
+
normalized = new URL(origin).origin;
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
normalized = undefined;
|
|
143
|
+
}
|
|
144
|
+
if (normalized === undefined || !allowedOrigins.has(normalized))
|
|
145
|
+
return { refuse: CROSS_ORIGIN };
|
|
146
|
+
}
|
|
147
|
+
// Scoped to the one path its only caller polls. The nonce is never consumed and lives as long
|
|
148
|
+
// as the process, so accepting it on every path would leave `web.session` holding a standing
|
|
149
|
+
// full-surface credential beside a link this command calls single-use.
|
|
150
|
+
const readiness = req.headers[READINESS_HEADER];
|
|
151
|
+
if (pathOf(req) === READINESS_PATH && typeof readiness === "string" && secretEquals(readiness, readinessNonce))
|
|
152
|
+
return undefined;
|
|
153
|
+
const session = cookieValue(req.headers.cookie, SESSION_COOKIE);
|
|
154
|
+
if (session !== undefined && sessions.has(session))
|
|
155
|
+
return undefined;
|
|
156
|
+
const presented = query.get("k");
|
|
157
|
+
if (presented !== null) {
|
|
158
|
+
if (launchToken !== undefined && secretEquals(presented, launchToken)) {
|
|
159
|
+
// Single use: burn it before minting the session, so two racing requests cannot both win.
|
|
160
|
+
launchToken = undefined;
|
|
161
|
+
const id = randomBytes(32).toString("base64url");
|
|
162
|
+
sessions.add(id);
|
|
163
|
+
return { exchange: id };
|
|
164
|
+
}
|
|
165
|
+
// The token was spent. Named separately from `unauthenticated` because it tells the operator
|
|
166
|
+
// something specific and actionable: the launch URL was replayed, by them or by something
|
|
167
|
+
// else. A generic refusal here would hide a reused link inside ordinary noise.
|
|
168
|
+
if (launchToken === undefined)
|
|
169
|
+
return { refuse: LAUNCH_TOKEN_ALREADY_USED };
|
|
170
|
+
}
|
|
171
|
+
return { refuse: UNAUTHENTICATED };
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
}
|
|
15
175
|
const DETACHED_READY_TIMEOUT_MS = 30_000;
|
|
16
176
|
const DETACHED_STOP_TIMEOUT_MS = 3_000;
|
|
17
177
|
const DETACHED_ROOT_ENV = "COTAL_WEB_DETACHED_ROOT";
|
|
178
|
+
const DETACHED_LOG_ENV = "COTAL_WEB_DETACHED_LOG";
|
|
18
179
|
export const webProcess = {
|
|
19
180
|
kind: "local-process",
|
|
20
181
|
name: "web",
|
|
21
182
|
label: "web dashboard",
|
|
22
183
|
order: 40,
|
|
23
184
|
pidFile: "web.pid",
|
|
185
|
+
// `web.session` holds the readiness nonce, which is accepted for this process's whole lifetime.
|
|
186
|
+
// The exit handler removes it, but an exit handler does not run on SIGKILL — so without this the
|
|
187
|
+
// credential outlives the process it authenticates.
|
|
188
|
+
artifacts: [SESSION_FILE],
|
|
24
189
|
// The dashboard starts target-resolved from any directory and claims its pidfile under the
|
|
25
190
|
// TARGET mesh's root (`conn.root` below); `cotal down web` must resolve the same mesh.
|
|
26
191
|
rootedAt: "target",
|
|
@@ -517,6 +682,7 @@ export async function web(args) {
|
|
|
517
682
|
const user = conn.bearer ? await userViewAuthOrExit(conn, "admin") : undefined;
|
|
518
683
|
const { server, space } = conn;
|
|
519
684
|
const pidPath = conn.root ? localProcessPath(webProcess.pidFile, { root: conn.root, space }) : undefined;
|
|
685
|
+
const sessionPath = conn.root ? localProcessPath(SESSION_FILE, { root: conn.root, space }) : undefined;
|
|
520
686
|
if (pidPath) {
|
|
521
687
|
claimPid(pidPath);
|
|
522
688
|
process.once("exit", () => releasePid(pidPath));
|
|
@@ -620,9 +786,29 @@ export async function web(args) {
|
|
|
620
786
|
};
|
|
621
787
|
for (const plane of ["chat", "inst", "svc"])
|
|
622
788
|
ep.tap(onTap, { subject: `${spacePrefix(space)}.${plane}.>` });
|
|
789
|
+
const gate = makeAuthGate(port);
|
|
623
790
|
const handleRequest = async (req, res) => {
|
|
624
791
|
const path = (req.url ?? "/").split("?")[0];
|
|
625
792
|
const query = new URLSearchParams((req.url ?? "").split("?")[1] ?? "");
|
|
793
|
+
// THE GATE RUNS BEFORE EVERY ROUTE, including `/feed` and the static files. Placing it inside a
|
|
794
|
+
// route, or after the first `if`, is how a surface acquires an unauthenticated corner: the next
|
|
795
|
+
// person to add a route above it inherits no protection and nothing says so.
|
|
796
|
+
const verdict = gate.check(req, query);
|
|
797
|
+
if (verdict !== undefined && "refuse" in verdict) {
|
|
798
|
+
// A NAMED refusal, never a redirect and never an empty 200. The condition is the body, so a
|
|
799
|
+
// caller that reads only the body still learns which of the three failed.
|
|
800
|
+
res.writeHead(verdict.refuse === CROSS_ORIGIN ? 403 : 401, { "content-type": "application/json" });
|
|
801
|
+
return void res.end(JSON.stringify({ error: verdict.refuse }));
|
|
802
|
+
}
|
|
803
|
+
if (verdict !== undefined && "exchange" in verdict) {
|
|
804
|
+
// Redirect so the spent token leaves the address bar and the browser history. This is the one
|
|
805
|
+
// redirect on this surface and it is a SUCCESS, not a refusal.
|
|
806
|
+
res.writeHead(302, {
|
|
807
|
+
"set-cookie": `${SESSION_COOKIE}=${verdict.exchange}; Path=/; HttpOnly; SameSite=Strict`,
|
|
808
|
+
location: path,
|
|
809
|
+
});
|
|
810
|
+
return void res.end();
|
|
811
|
+
}
|
|
626
812
|
if (path === "/feed") {
|
|
627
813
|
res.writeHead(200, {
|
|
628
814
|
"content-type": "text/event-stream",
|
|
@@ -641,7 +827,7 @@ export async function web(args) {
|
|
|
641
827
|
req.on("close", () => clients.delete(res));
|
|
642
828
|
return;
|
|
643
829
|
}
|
|
644
|
-
if (path ===
|
|
830
|
+
if (path === READINESS_PATH)
|
|
645
831
|
return json(res, { space, pid: process.pid });
|
|
646
832
|
if (path === "/api/roster")
|
|
647
833
|
return json(res, ep.getRoster());
|
|
@@ -805,7 +991,7 @@ export async function web(args) {
|
|
|
805
991
|
// this split, a malformed query read in the log exactly like the dashboard breaking.
|
|
806
992
|
const status = e instanceof PayloadTooLarge ? 413 : e instanceof BadRequest ? 400 : 500;
|
|
807
993
|
const caller = status < 500;
|
|
808
|
-
console.error(c[caller ? "yellow" : "red"](`${caller ? "~" : "!"} ${req.method ?? "GET"} ${req.
|
|
994
|
+
console.error(c[caller ? "yellow" : "red"](`${caller ? "~" : "!"} ${req.method ?? "GET"} ${requestTargetForLog(req, gate.launchToken)} ${caller ? "refused" : "failed"}: ${why}`));
|
|
809
995
|
if (res.headersSent)
|
|
810
996
|
return void res.end();
|
|
811
997
|
// END THE CONNECTION A REFUSED BODY WAS RIDING ON, or the cap bounds only what the caller
|
|
@@ -863,11 +1049,39 @@ export async function web(args) {
|
|
|
863
1049
|
await new Promise((ready) => httpServer.listen(port, "127.0.0.1", ready));
|
|
864
1050
|
// Branded URL only when on the default port; a custom --port keeps the plain loopback address.
|
|
865
1051
|
const url = webUrl(port);
|
|
1052
|
+
// The launch URL carries the one-time token. It is printed as well as opened, because a browser
|
|
1053
|
+
// that cannot be launched (headless box, wrong default) must still have a way in — and because a
|
|
1054
|
+
// token the operator cannot see is a token they cannot revoke by restarting.
|
|
1055
|
+
const launchUrl = `${url}?k=${gate.launchToken}`;
|
|
1056
|
+
// Written AFTER listen() succeeded, so its existence means the port is ours. A detached parent
|
|
1057
|
+
// reads it for the readiness nonce and the link; an operator who lost the printed line reads it
|
|
1058
|
+
// for the link. 0600 — same trust boundary as the rest of `~/.cotal`, no wider.
|
|
1059
|
+
if (sessionPath) {
|
|
1060
|
+
// `mode:` on writeFileSync applies at CREATION ONLY — a stale `web.session` left behind with a
|
|
1061
|
+
// broader mode would keep it and quietly hold the launch URL and readiness nonce world-readable.
|
|
1062
|
+
// Open, then fchmod the DESCRIPTOR (not the path, which could be re-pointed between the calls),
|
|
1063
|
+
// so the mode is enforced on every write rather than only the first.
|
|
1064
|
+
const sfd = openSync(sessionPath, "w", 0o600);
|
|
1065
|
+
try {
|
|
1066
|
+
fchmodSync(sfd, 0o600);
|
|
1067
|
+
writeFileSync(sfd, JSON.stringify({ launchUrl, readiness: gate.readinessNonce }));
|
|
1068
|
+
}
|
|
1069
|
+
finally {
|
|
1070
|
+
closeSync(sfd);
|
|
1071
|
+
}
|
|
1072
|
+
process.once("exit", () => rmSync(sessionPath, { force: true }));
|
|
1073
|
+
}
|
|
866
1074
|
console.log(`${c.bold("Cotal web")} - observing space ${c.bold(space)}`);
|
|
867
1075
|
console.log(c.dim(" god-view - DMs + anycast visible"));
|
|
868
|
-
|
|
1076
|
+
// A detached child's stdout and stderr are the persistent web.log. The parent reads the private
|
|
1077
|
+
// session file and prints the link to the operator's terminal, so repeating the live credential in
|
|
1078
|
+
// the log adds secret-at-rest exposure and no recovery value. An attached process still prints it.
|
|
1079
|
+
if (!process.env[DETACHED_LOG_ENV]) {
|
|
1080
|
+
console.log(` ${c.cyan(launchUrl)} ${c.dim("(Ctrl-C to stop)")}`);
|
|
1081
|
+
console.log(c.dim(" the link is single-use; it opens one session in one browser"));
|
|
1082
|
+
}
|
|
869
1083
|
if (!values["no-open"])
|
|
870
|
-
openBrowser(
|
|
1084
|
+
openBrowser(launchUrl);
|
|
871
1085
|
let shuttingDown = false;
|
|
872
1086
|
const shutdown = async () => {
|
|
873
1087
|
if (shuttingDown)
|
|
@@ -893,7 +1107,7 @@ async function launchDetachedWeb(raw, root, space, server, port, noOpen) {
|
|
|
893
1107
|
const context = { root, space };
|
|
894
1108
|
const pidPath = localProcessPath(webProcess.pidFile, context);
|
|
895
1109
|
const logPath = localProcessPath("web.log", context);
|
|
896
|
-
const logFd =
|
|
1110
|
+
const logFd = openDetachedLog(logPath);
|
|
897
1111
|
const logOffset = fstatSync(logFd).size;
|
|
898
1112
|
const childArgs = detachedArgs(raw, space, server);
|
|
899
1113
|
let child;
|
|
@@ -901,7 +1115,7 @@ async function launchDetachedWeb(raw, root, space, server, port, noOpen) {
|
|
|
901
1115
|
child = spawn(process.execPath, [...process.execArgv, process.argv[1], "web", ...childArgs], {
|
|
902
1116
|
cwd: root,
|
|
903
1117
|
detached: true,
|
|
904
|
-
env: { ...process.env, [DETACHED_ROOT_ENV]: root },
|
|
1118
|
+
env: { ...process.env, [DETACHED_ROOT_ENV]: root, [DETACHED_LOG_ENV]: "1" },
|
|
905
1119
|
stdio: ["ignore", logFd, logFd],
|
|
906
1120
|
});
|
|
907
1121
|
}
|
|
@@ -910,8 +1124,9 @@ async function launchDetachedWeb(raw, root, space, server, port, noOpen) {
|
|
|
910
1124
|
}
|
|
911
1125
|
child.unref();
|
|
912
1126
|
const url = webUrl(port);
|
|
1127
|
+
const sessionPath = localProcessPath(SESSION_FILE, context);
|
|
913
1128
|
try {
|
|
914
|
-
await waitForDetachedWeb(child, { pidPath, url: `http://127.0.0.1:${port}/`, space, timeoutMs: DETACHED_READY_TIMEOUT_MS });
|
|
1129
|
+
await waitForDetachedWeb(child, { pidPath, sessionPath, url: `http://127.0.0.1:${port}/`, space, timeoutMs: DETACHED_READY_TIMEOUT_MS });
|
|
915
1130
|
}
|
|
916
1131
|
catch (e) {
|
|
917
1132
|
let cleanupError;
|
|
@@ -924,11 +1139,36 @@ async function launchDetachedWeb(raw, root, space, server, port, noOpen) {
|
|
|
924
1139
|
const tail = appendedLogTail(logPath, logOffset);
|
|
925
1140
|
throw new Error(`${e.message}${cleanupError ? `; ${cleanupError.message}` : ""} - see ${logPath}${tail ? `\n${tail}` : ""}`);
|
|
926
1141
|
}
|
|
1142
|
+
// The child minted the token, so the parent reads the link rather than reconstructing it. If the
|
|
1143
|
+
// file is unreadable the dashboard is still up and the operator is told where the link lives,
|
|
1144
|
+
// instead of being handed a URL that will refuse them.
|
|
1145
|
+
const launchUrl = readSessionLaunchUrl(sessionPath);
|
|
927
1146
|
console.log(c.green(`✓ web dashboard ready at ${url} (pid ${child.pid})`));
|
|
1147
|
+
if (launchUrl)
|
|
1148
|
+
console.log(` ${c.cyan(launchUrl)} ${c.dim("(single-use link)")}`);
|
|
1149
|
+
else
|
|
1150
|
+
console.log(c.dim(` launch link: see ${sessionPath}`));
|
|
928
1151
|
console.log(c.dim(` log: ${logPath}`));
|
|
929
1152
|
console.log(c.dim(" stop: cotal down web"));
|
|
930
|
-
if (!noOpen)
|
|
931
|
-
openBrowser(
|
|
1153
|
+
if (!noOpen && launchUrl)
|
|
1154
|
+
openBrowser(launchUrl);
|
|
1155
|
+
}
|
|
1156
|
+
/** Open the persistent detached log privately even when it pre-existed with permissive metadata. */
|
|
1157
|
+
export function openDetachedLog(logPath) {
|
|
1158
|
+
const logFd = openSync(logPath, "a", 0o600);
|
|
1159
|
+
// Creation mode does not narrow a stale file. Harden the already-open descriptor before either
|
|
1160
|
+
// child stream can write to it; then apply the core secret-file ACL convention for win32, where
|
|
1161
|
+
// POSIX mode bits do not express privacy. Fail closed before spawning if either operation fails.
|
|
1162
|
+
try {
|
|
1163
|
+
fchmodSync(logFd, 0o600);
|
|
1164
|
+
if (process.platform === "win32")
|
|
1165
|
+
hardenPrivate(logPath, "file");
|
|
1166
|
+
return logFd;
|
|
1167
|
+
}
|
|
1168
|
+
catch (e) {
|
|
1169
|
+
closeSync(logFd);
|
|
1170
|
+
throw e;
|
|
1171
|
+
}
|
|
932
1172
|
}
|
|
933
1173
|
export function detachedArgs(raw, space, server) {
|
|
934
1174
|
const kept = [];
|
|
@@ -964,7 +1204,15 @@ export async function waitForDetachedWeb(child, opts) {
|
|
|
964
1204
|
if (child.exitCode !== null || child.signalCode !== null || !pidAlive(pid))
|
|
965
1205
|
throw new Error(`web dashboard exited before becoming ready (pid ${pid})`);
|
|
966
1206
|
if (pidFileOwned(opts.pidPath, pid)) {
|
|
967
|
-
|
|
1207
|
+
// The child writes its readiness nonce only after `listen()` succeeded, so an absent or
|
|
1208
|
+
// unreadable file simply means "not up yet" and the loop keeps waiting — exactly as it did
|
|
1209
|
+
// before this surface required authentication. The probe is otherwise unchanged: a squatter on
|
|
1210
|
+
// the port still answers with its own space/pid and still fails the match below.
|
|
1211
|
+
const readiness = readSessionSecret(opts.sessionPath);
|
|
1212
|
+
const meta = await fetch(`${opts.url}api/meta`, {
|
|
1213
|
+
signal: AbortSignal.timeout(500),
|
|
1214
|
+
headers: readiness ? { [READINESS_HEADER]: readiness } : {},
|
|
1215
|
+
})
|
|
968
1216
|
.then(async (res) => res.ok ? await res.json() : undefined)
|
|
969
1217
|
.catch(() => undefined);
|
|
970
1218
|
if (meta?.space === opts.space && meta.pid === pid) {
|
|
@@ -998,6 +1246,32 @@ export async function terminateDetachedWeb(child, pidPath) {
|
|
|
998
1246
|
if (pidFileOwned(pidPath, pid))
|
|
999
1247
|
rmSync(pidPath, { force: true });
|
|
1000
1248
|
}
|
|
1249
|
+
/** The readiness nonce, or `undefined` if the child has not written it yet. Never throws: a missing
|
|
1250
|
+
* file is the ordinary state during startup, not an error. */
|
|
1251
|
+
function readSessionSecret(path) {
|
|
1252
|
+
if (path === undefined)
|
|
1253
|
+
return undefined;
|
|
1254
|
+
try {
|
|
1255
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
1256
|
+
return typeof parsed.readiness === "string" ? parsed.readiness : undefined;
|
|
1257
|
+
}
|
|
1258
|
+
catch {
|
|
1259
|
+
return undefined;
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
/** The launch URL the child recorded, for a detached parent to open. Separate from the nonce reader
|
|
1263
|
+
* so a caller asks for exactly the one it needs. */
|
|
1264
|
+
function readSessionLaunchUrl(path) {
|
|
1265
|
+
if (path === undefined)
|
|
1266
|
+
return undefined;
|
|
1267
|
+
try {
|
|
1268
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
1269
|
+
return typeof parsed.launchUrl === "string" ? parsed.launchUrl : undefined;
|
|
1270
|
+
}
|
|
1271
|
+
catch {
|
|
1272
|
+
return undefined;
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1001
1275
|
function pidFileOwned(path, pid) {
|
|
1002
1276
|
try {
|
|
1003
1277
|
return readFileSync(path, "utf8").trim() === String(pid);
|
package/dist/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cotal-ai/web",
|
|
3
3
|
"description": "Cotal browser observability dashboard: adds the `web` command to the cotal CLI.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.32.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"dompurify": "^3.4.12",
|
|
26
26
|
"marked": "^18.0.6",
|
|
27
|
-
"@cotal-ai/core": "0.31.0",
|
|
28
27
|
"@cotal-ai/smoke-kit": "0.0.0",
|
|
29
|
-
"@cotal-ai/workspace": "0.
|
|
28
|
+
"@cotal-ai/workspace": "0.32.0",
|
|
29
|
+
"@cotal-ai/core": "0.32.0"
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
32
32
|
"dist"
|