@schlessera/brain-ui-server 0.34.0 → 0.35.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/README.md +28 -0
- package/dist/activity/notify.d.ts.map +1 -1
- package/dist/activity/notify.js +18 -8
- package/dist/activity/notify.js.map +1 -1
- package/dist/activity/push-sender.d.ts +7 -3
- package/dist/activity/push-sender.d.ts.map +1 -1
- package/dist/activity/push-sender.js +45 -11
- package/dist/activity/push-sender.js.map +1 -1
- package/dist/activity/query.d.ts.map +1 -1
- package/dist/activity/query.js +8 -0
- package/dist/activity/query.js.map +1 -1
- package/dist/activity/recorder.d.ts +11 -1
- package/dist/activity/recorder.d.ts.map +1 -1
- package/dist/activity/recorder.js +52 -2
- package/dist/activity/recorder.js.map +1 -1
- package/dist/activity/runtime.d.ts.map +1 -1
- package/dist/activity/runtime.js +2 -5
- package/dist/activity/runtime.js.map +1 -1
- package/dist/activity/sql.d.ts +34 -0
- package/dist/activity/sql.d.ts.map +1 -0
- package/dist/activity/sql.js +114 -0
- package/dist/activity/sql.js.map +1 -0
- package/dist/activity/store.d.ts +7 -0
- package/dist/activity/store.d.ts.map +1 -1
- package/dist/activity/store.js +48 -113
- package/dist/activity/store.js.map +1 -1
- package/dist/activity/stream.d.ts +3 -1
- package/dist/activity/stream.d.ts.map +1 -1
- package/dist/activity/stream.js +32 -17
- package/dist/activity/stream.js.map +1 -1
- package/dist/app-env.d.ts +8 -0
- package/dist/app-env.d.ts.map +1 -0
- package/dist/app-env.js +2 -0
- package/dist/app-env.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +28 -3
- package/dist/app.js.map +1 -1
- package/dist/brain/client.d.ts +4 -2
- package/dist/brain/client.d.ts.map +1 -1
- package/dist/brain/client.js +60 -20
- package/dist/brain/client.js.map +1 -1
- package/dist/brain/types.d.ts +9 -0
- package/dist/brain/types.d.ts.map +1 -1
- package/dist/cron/run-job.d.ts.map +1 -1
- package/dist/cron/run-job.js +60 -10
- package/dist/cron/run-job.js.map +1 -1
- package/dist/db/principals.d.ts +72 -0
- package/dist/db/principals.d.ts.map +1 -0
- package/dist/db/principals.js +294 -0
- package/dist/db/principals.js.map +1 -0
- package/dist/files/walker.d.ts.map +1 -1
- package/dist/files/walker.js +6 -1
- package/dist/files/walker.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/auth.d.ts +37 -9
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +148 -74
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/passkeys.d.ts +9 -7
- package/dist/middleware/passkeys.d.ts.map +1 -1
- package/dist/middleware/passkeys.js +25 -7
- package/dist/middleware/passkeys.js.map +1 -1
- package/dist/middleware/principals.d.ts +18 -0
- package/dist/middleware/principals.d.ts.map +1 -0
- package/dist/middleware/principals.js +138 -0
- package/dist/middleware/principals.js.map +1 -0
- package/dist/middleware/require-owner.d.ts +5 -0
- package/dist/middleware/require-owner.d.ts.map +1 -0
- package/dist/middleware/require-owner.js +10 -0
- package/dist/middleware/require-owner.js.map +1 -0
- package/dist/observability/loggers.js +1 -1
- package/dist/observability/loggers.js.map +1 -1
- package/dist/routes/activity.d.ts.map +1 -1
- package/dist/routes/activity.js +3 -0
- package/dist/routes/activity.js.map +1 -1
- package/dist/routes/brain.d.ts.map +1 -1
- package/dist/routes/brain.js +102 -63
- package/dist/routes/brain.js.map +1 -1
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +7 -2
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/push.d.ts +61 -2
- package/dist/routes/push.d.ts.map +1 -1
- package/dist/routes/push.js +8 -3
- package/dist/routes/push.js.map +1 -1
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +30 -4
- package/dist/routes/sessions.js.map +1 -1
- package/dist/share/staging.d.ts.map +1 -1
- package/dist/share/staging.js +11 -4
- package/dist/share/staging.js.map +1 -1
- package/dist/ws/bridge.d.ts.map +1 -1
- package/dist/ws/bridge.js +6 -2
- package/dist/ws/bridge.js.map +1 -1
- package/dist/ws/clients.d.ts +9 -2
- package/dist/ws/clients.d.ts.map +1 -1
- package/dist/ws/clients.js +44 -6
- package/dist/ws/clients.js.map +1 -1
- package/dist/ws/connection.d.ts +7 -4
- package/dist/ws/connection.d.ts.map +1 -1
- package/dist/ws/connection.js +83 -12
- package/dist/ws/connection.js.map +1 -1
- package/dist/ws/dispatch.d.ts +12 -1
- package/dist/ws/dispatch.d.ts.map +1 -1
- package/dist/ws/dispatch.js +46 -6
- package/dist/ws/dispatch.js.map +1 -1
- package/dist/ws/history.d.ts.map +1 -1
- package/dist/ws/history.js +7 -5
- package/dist/ws/history.js.map +1 -1
- package/dist/ws/host.d.ts +22 -0
- package/dist/ws/host.d.ts.map +1 -1
- package/dist/ws/host.js +39 -1
- package/dist/ws/host.js.map +1 -1
- package/dist/ws/run-session.d.ts +7 -7
- package/dist/ws/run-session.d.ts.map +1 -1
- package/dist/ws/run-session.js +208 -52
- package/dist/ws/run-session.js.map +1 -1
- package/dist/ws/shrink.d.ts +3 -1
- package/dist/ws/shrink.d.ts.map +1 -1
- package/dist/ws/shrink.js +46 -16
- package/dist/ws/shrink.js.map +1 -1
- package/dist/ws/turns.d.ts +58 -3
- package/dist/ws/turns.d.ts.map +1 -1
- package/dist/ws/turns.js +101 -2
- package/dist/ws/turns.js.map +1 -1
- package/migrations/011_principals.sql +13 -0
- package/migrations/012_activity_principals.sql +12 -0
- package/migrations/013_push_subscription_principals.sql +7 -0
- package/migrations/014_invalidate_legacy_sessions.sql +14 -0
- package/package.json +3 -3
- package/src/activity/notify.ts +16 -7
- package/src/activity/push-sender.ts +79 -16
- package/src/activity/query.ts +8 -0
- package/src/activity/recorder.ts +68 -3
- package/src/activity/runtime.ts +2 -5
- package/src/activity/sql.ts +122 -0
- package/src/activity/store.ts +73 -155
- package/src/activity/stream.ts +37 -17
- package/src/app-env.ts +8 -0
- package/src/app.ts +33 -4
- package/src/brain/client.ts +61 -20
- package/src/brain/types.ts +10 -0
- package/src/cron/run-job.ts +41 -17
- package/src/db/principals.ts +452 -0
- package/src/files/walker.ts +5 -1
- package/src/index.ts +6 -1
- package/src/middleware/auth.ts +241 -81
- package/src/middleware/passkeys.ts +35 -14
- package/src/middleware/principals.ts +189 -0
- package/src/middleware/require-owner.ts +13 -0
- package/src/observability/loggers.ts +1 -1
- package/src/routes/activity.ts +3 -0
- package/src/routes/brain.ts +107 -70
- package/src/routes/files.ts +10 -5
- package/src/routes/push.ts +11 -5
- package/src/routes/sessions.ts +45 -20
- package/src/share/staging.ts +11 -4
- package/src/ws/bridge.ts +14 -2
- package/src/ws/clients.ts +52 -7
- package/src/ws/connection.ts +98 -20
- package/src/ws/dispatch.ts +66 -6
- package/src/ws/history.ts +7 -5
- package/src/ws/host.ts +59 -1
- package/src/ws/run-session.ts +247 -74
- package/src/ws/shrink.ts +48 -14
- package/src/ws/turns.ts +136 -5
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
2
|
+
export const MAX_LIVE_PRINCIPALS = 100;
|
|
3
|
+
export const PRINCIPAL_RETENTION_MS = 30 * 24 * 60 * 60 * 1_000;
|
|
4
|
+
export const PRINCIPAL_PRUNE_INTERVAL_MS = 60 * 60 * 1_000;
|
|
5
|
+
export const LAST_SEEN_WRITE_INTERVAL_MS = 60_000;
|
|
6
|
+
const MAX_LABEL_LENGTH = 64;
|
|
7
|
+
const CONTROL_CHARACTER = /[\u0000-\u001f\u007f-\u009f]/u;
|
|
8
|
+
const lastPrincipalPruneByDb = new WeakMap();
|
|
9
|
+
export class PrincipalLimitError extends Error {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(`live principal limit of ${MAX_LIVE_PRINCIPALS} reached`);
|
|
12
|
+
this.name = "PrincipalLimitError";
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class PrincipalCredentialNotFoundError extends Error {
|
|
16
|
+
constructor(credentialId) {
|
|
17
|
+
super(`passkey credential ${credentialId} no longer exists`);
|
|
18
|
+
this.name = "PrincipalCredentialNotFoundError";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class PrincipalCreatorNotUsableError extends Error {
|
|
22
|
+
constructor(createdBy) {
|
|
23
|
+
super(`principal creator ${createdBy ?? "(missing)"} is not a usable owner`);
|
|
24
|
+
this.name = "PrincipalCreatorNotUsableError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const PRINCIPAL_COLUMNS = `id, kind, auth_method, label, credential_id,
|
|
28
|
+
created_by, created_at, expires_at, last_seen_at, revoked_at`;
|
|
29
|
+
function rowToPrincipal(row) {
|
|
30
|
+
return {
|
|
31
|
+
id: row.id,
|
|
32
|
+
kind: row.kind,
|
|
33
|
+
authMethod: row.auth_method,
|
|
34
|
+
label: row.label,
|
|
35
|
+
credentialId: row.credential_id,
|
|
36
|
+
createdBy: row.created_by,
|
|
37
|
+
createdAt: row.created_at,
|
|
38
|
+
expiresAt: row.expires_at,
|
|
39
|
+
lastSeenAt: row.last_seen_at,
|
|
40
|
+
revokedAt: row.revoked_at,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function validateLabel(label) {
|
|
44
|
+
if (typeof label !== "string")
|
|
45
|
+
throw new TypeError("principal label must be a string");
|
|
46
|
+
if (label.length > MAX_LABEL_LENGTH) {
|
|
47
|
+
throw new RangeError(`principal label must be at most ${MAX_LABEL_LENGTH} characters`);
|
|
48
|
+
}
|
|
49
|
+
if (CONTROL_CHARACTER.test(label)) {
|
|
50
|
+
throw new RangeError("principal label must not contain control characters");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function expiryFromTtl(now, ttlSeconds) {
|
|
54
|
+
if (!Number.isSafeInteger(ttlSeconds) || ttlSeconds <= 0) {
|
|
55
|
+
throw new RangeError("principal ttlSeconds must be a positive safe integer");
|
|
56
|
+
}
|
|
57
|
+
const expiresAt = now + ttlSeconds * 1_000;
|
|
58
|
+
if (!Number.isSafeInteger(expiresAt)) {
|
|
59
|
+
throw new RangeError("principal expiry must be a safe integer");
|
|
60
|
+
}
|
|
61
|
+
return expiresAt;
|
|
62
|
+
}
|
|
63
|
+
function generatePrincipalId() {
|
|
64
|
+
return randomBytes(16).toString("base64url");
|
|
65
|
+
}
|
|
66
|
+
function ambientPrincipalId(source, identity) {
|
|
67
|
+
return createHash("sha256")
|
|
68
|
+
.update("brain-ui:ambient-principal:v1\0")
|
|
69
|
+
.update(source)
|
|
70
|
+
.update("\0")
|
|
71
|
+
.update(identity)
|
|
72
|
+
.digest()
|
|
73
|
+
.subarray(0, 16)
|
|
74
|
+
.toString("base64url");
|
|
75
|
+
}
|
|
76
|
+
function systemPrincipalId(identity) {
|
|
77
|
+
return createHash("sha256")
|
|
78
|
+
.update("brain-ui:system-principal:v1\0")
|
|
79
|
+
.update(identity)
|
|
80
|
+
.digest()
|
|
81
|
+
.subarray(0, 16)
|
|
82
|
+
.toString("base64url");
|
|
83
|
+
}
|
|
84
|
+
function kindFromAuthMethod(authMethod) {
|
|
85
|
+
switch (authMethod) {
|
|
86
|
+
case "password":
|
|
87
|
+
case "passkey":
|
|
88
|
+
return "owner";
|
|
89
|
+
case "delegated":
|
|
90
|
+
return "agent";
|
|
91
|
+
default:
|
|
92
|
+
throw new TypeError(`unsupported principal auth method: ${String(authMethod)}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export function createPrincipal(db, input) {
|
|
96
|
+
validateLabel(input.label);
|
|
97
|
+
return db.transaction(() => {
|
|
98
|
+
const now = Date.now();
|
|
99
|
+
const expiresAt = expiryFromTtl(now, input.ttlSeconds);
|
|
100
|
+
if (input.authMethod === "delegated") {
|
|
101
|
+
// Request authentication may precede an awaited body read. Re-check the
|
|
102
|
+
// creator only after taking the write lock, in the transaction that
|
|
103
|
+
// inserts the delegated row, so revocation cannot race this authority.
|
|
104
|
+
const creator = input.createdBy
|
|
105
|
+
? resolvePrincipal(db, input.createdBy)
|
|
106
|
+
: null;
|
|
107
|
+
if (!creator ||
|
|
108
|
+
creator.kind !== "owner" ||
|
|
109
|
+
!isUsablePrincipal(creator, now)) {
|
|
110
|
+
throw new PrincipalCreatorNotUsableError(input.createdBy);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (input.credentialId !== undefined &&
|
|
114
|
+
!db.prepare("SELECT 1 FROM passkey_credentials WHERE id = ?").get(input.credentialId)) {
|
|
115
|
+
throw new PrincipalCredentialNotFoundError(input.credentialId);
|
|
116
|
+
}
|
|
117
|
+
if (countLivePrincipals(db, now) >= MAX_LIVE_PRINCIPALS) {
|
|
118
|
+
throw new PrincipalLimitError();
|
|
119
|
+
}
|
|
120
|
+
let id = generatePrincipalId();
|
|
121
|
+
const idExists = db.prepare("SELECT 1 FROM principals WHERE id = ?");
|
|
122
|
+
while (idExists.get(id))
|
|
123
|
+
id = generatePrincipalId();
|
|
124
|
+
db.prepare(`INSERT INTO principals
|
|
125
|
+
(id, kind, auth_method, label, credential_id, created_by, created_at, expires_at)
|
|
126
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(id, kindFromAuthMethod(input.authMethod), input.authMethod, input.label, input.credentialId ?? null, input.createdBy ?? null, now, expiresAt);
|
|
127
|
+
return resolvePrincipal(db, id);
|
|
128
|
+
}).immediate();
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Resolve the durable attribution row for an ambient authorization identity.
|
|
132
|
+
* The id is deterministic per mode and full identity so repeated requests —
|
|
133
|
+
* including concurrent first requests — cannot grow one row per authorization
|
|
134
|
+
* check, while bounded display-label collisions remain distinct.
|
|
135
|
+
*/
|
|
136
|
+
export function resolveAmbientPrincipal(db, source, identity, label) {
|
|
137
|
+
validateLabel(label);
|
|
138
|
+
const id = ambientPrincipalId(source, identity);
|
|
139
|
+
const existing = resolvePrincipal(db, id);
|
|
140
|
+
if (existing)
|
|
141
|
+
return resolveStoredIdentity(db, existing, label, "ambient");
|
|
142
|
+
return db.transaction(() => {
|
|
143
|
+
let principal = resolvePrincipal(db, id);
|
|
144
|
+
if (!principal) {
|
|
145
|
+
const now = Date.now();
|
|
146
|
+
db.prepare(`INSERT INTO principals
|
|
147
|
+
(id, kind, auth_method, label, credential_id, created_by,
|
|
148
|
+
created_at, expires_at, last_seen_at)
|
|
149
|
+
VALUES (?, 'ambient', 'ambient', ?, NULL, NULL, ?, ?, ?)`).run(id, label, now, Number.MAX_SAFE_INTEGER, now);
|
|
150
|
+
principal = resolvePrincipal(db, id);
|
|
151
|
+
}
|
|
152
|
+
return resolveStoredIdentity(db, principal, label, "ambient");
|
|
153
|
+
}).immediate();
|
|
154
|
+
}
|
|
155
|
+
/** Resolve the durable attribution row for a non-cookie system identity. */
|
|
156
|
+
export function resolveSystemPrincipal(db, input) {
|
|
157
|
+
validateLabel(input.label);
|
|
158
|
+
const id = systemPrincipalId(input.identity);
|
|
159
|
+
const existing = resolvePrincipal(db, id);
|
|
160
|
+
if (existing)
|
|
161
|
+
return resolveStoredIdentity(db, existing, input.label, "system");
|
|
162
|
+
return db.transaction(() => {
|
|
163
|
+
let principal = resolvePrincipal(db, id);
|
|
164
|
+
if (!principal) {
|
|
165
|
+
const now = Date.now();
|
|
166
|
+
db.prepare(`INSERT INTO principals
|
|
167
|
+
(id, kind, auth_method, label, credential_id, created_by,
|
|
168
|
+
created_at, expires_at)
|
|
169
|
+
VALUES (?, 'system', 'ambient', ?, NULL, NULL, ?, ?)`).run(id, input.label, now, Number.MAX_SAFE_INTEGER);
|
|
170
|
+
principal = resolvePrincipal(db, id);
|
|
171
|
+
}
|
|
172
|
+
return resolveStoredIdentity(db, principal, input.label, "system");
|
|
173
|
+
}).immediate();
|
|
174
|
+
}
|
|
175
|
+
function resolveStoredIdentity(db, principal, label, kind) {
|
|
176
|
+
if (principal.kind !== kind ||
|
|
177
|
+
principal.authMethod !== "ambient" ||
|
|
178
|
+
!isUsablePrincipal(principal, Date.now())) {
|
|
179
|
+
throw new Error(`Corrupt ${kind} principal ${principal.id}`);
|
|
180
|
+
}
|
|
181
|
+
if (principal.label !== label) {
|
|
182
|
+
db.prepare("UPDATE principals SET label = ? WHERE id = ?").run(label, principal.id);
|
|
183
|
+
principal = { ...principal, label };
|
|
184
|
+
}
|
|
185
|
+
if (kind === "ambient") {
|
|
186
|
+
// The UPDATE's WHERE throttles the write, but issuing it at all starts an
|
|
187
|
+
// implicit write transaction — on every request, in three of four auth
|
|
188
|
+
// modes. Decide from the row already in hand; the SQL predicate stays as
|
|
189
|
+
// the concurrency guard for the writes that do happen.
|
|
190
|
+
const now = Date.now();
|
|
191
|
+
if (isLastSeenStale(principal.lastSeenAt, now)) {
|
|
192
|
+
touchLastSeen(db, principal.id, now);
|
|
193
|
+
principal = { ...principal, lastSeenAt: now };
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return principal;
|
|
197
|
+
}
|
|
198
|
+
export function resolvePrincipal(db, id) {
|
|
199
|
+
const row = db
|
|
200
|
+
.prepare(`SELECT ${PRINCIPAL_COLUMNS} FROM principals WHERE id = ?`)
|
|
201
|
+
.get(id);
|
|
202
|
+
return row ? rowToPrincipal(row) : null;
|
|
203
|
+
}
|
|
204
|
+
/** List currently usable cookie-bearing principals, newest first. */
|
|
205
|
+
export function listLivePrincipals(db, now) {
|
|
206
|
+
return db
|
|
207
|
+
.prepare(`SELECT ${PRINCIPAL_COLUMNS} FROM principals
|
|
208
|
+
WHERE kind IN ('owner', 'agent')
|
|
209
|
+
AND revoked_at IS NULL AND expires_at > ?
|
|
210
|
+
ORDER BY created_at DESC, id ASC`)
|
|
211
|
+
.all(now).map(rowToPrincipal);
|
|
212
|
+
}
|
|
213
|
+
export function isUsablePrincipal(row, now) {
|
|
214
|
+
assertPrincipalTimestamp(row, "created_at", row.createdAt, false);
|
|
215
|
+
assertPrincipalTimestamp(row, "expires_at", row.expiresAt, false);
|
|
216
|
+
assertPrincipalTimestamp(row, "last_seen_at", row.lastSeenAt, true);
|
|
217
|
+
assertPrincipalTimestamp(row, "revoked_at", row.revokedAt, true);
|
|
218
|
+
return row.revokedAt === null && now < row.expiresAt;
|
|
219
|
+
}
|
|
220
|
+
/** Whether this principal kind may be carried by an authenticated cookie. */
|
|
221
|
+
export function isCookieBearingPrincipal(principal) {
|
|
222
|
+
return principal.kind === "owner" || principal.kind === "agent";
|
|
223
|
+
}
|
|
224
|
+
function assertPrincipalTimestamp(row, column, value, nullable) {
|
|
225
|
+
if ((nullable && value === null) || Number.isSafeInteger(value))
|
|
226
|
+
return;
|
|
227
|
+
throw new Error(`Corrupt principal ${row.id}: ${column} must be an integer`);
|
|
228
|
+
}
|
|
229
|
+
/** Whether a stored last_seen_at is old enough to be worth a write. */
|
|
230
|
+
export function isLastSeenStale(lastSeenAt, now) {
|
|
231
|
+
return lastSeenAt === null || lastSeenAt < now - LAST_SEEN_WRITE_INTERVAL_MS;
|
|
232
|
+
}
|
|
233
|
+
export function touchLastSeen(db, id, now) {
|
|
234
|
+
db.prepare(`UPDATE principals SET last_seen_at = ?
|
|
235
|
+
WHERE id = ? AND (last_seen_at IS NULL OR last_seen_at < ?)`).run(now, id, now - LAST_SEEN_WRITE_INTERVAL_MS);
|
|
236
|
+
}
|
|
237
|
+
export function revokePrincipal(db, id, now) {
|
|
238
|
+
return idsFromRows(db
|
|
239
|
+
.prepare(`UPDATE principals SET revoked_at = ?
|
|
240
|
+
WHERE id = ? AND kind IN ('owner', 'agent')
|
|
241
|
+
AND revoked_at IS NULL RETURNING id`)
|
|
242
|
+
.all(now, id));
|
|
243
|
+
}
|
|
244
|
+
export function revokeAllPrincipals(db, now) {
|
|
245
|
+
return idsFromRows(db
|
|
246
|
+
.prepare(`UPDATE principals SET revoked_at = ?
|
|
247
|
+
WHERE kind IN ('owner', 'agent')
|
|
248
|
+
AND revoked_at IS NULL RETURNING id`)
|
|
249
|
+
.all(now));
|
|
250
|
+
}
|
|
251
|
+
export function revokeByCredential(db, credentialId, now) {
|
|
252
|
+
return idsFromRows(db
|
|
253
|
+
.prepare(`UPDATE principals SET revoked_at = ?
|
|
254
|
+
WHERE credential_id = ? AND revoked_at IS NULL RETURNING id`)
|
|
255
|
+
.all(now, credentialId));
|
|
256
|
+
}
|
|
257
|
+
function idsFromRows(rows) {
|
|
258
|
+
return rows.map(({ id }) => id);
|
|
259
|
+
}
|
|
260
|
+
export function prunePrincipals(db, now) {
|
|
261
|
+
// Thirty days preserves a useful audit/debug window after a principal stops
|
|
262
|
+
// being usable while still placing a fixed bound on terminal-row growth.
|
|
263
|
+
const cutoff = now - PRINCIPAL_RETENTION_MS;
|
|
264
|
+
db.prepare(`DELETE FROM principals
|
|
265
|
+
WHERE (kind = 'ambient' AND COALESCE(last_seen_at, created_at) < ?)
|
|
266
|
+
OR (kind <> 'ambient' AND (
|
|
267
|
+
(revoked_at IS NOT NULL AND revoked_at < ?)
|
|
268
|
+
OR expires_at < ?
|
|
269
|
+
))`).run(cutoff, cutoff, cutoff);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Run principal retention at most once per database per process interval.
|
|
273
|
+
* Authentication paths call this cheaply; only the due call reaches SQLite.
|
|
274
|
+
*/
|
|
275
|
+
export function prunePrincipalsIfDue(db, now) {
|
|
276
|
+
const lastPrunedAt = lastPrincipalPruneByDb.get(db);
|
|
277
|
+
if (lastPrunedAt !== undefined &&
|
|
278
|
+
now >= lastPrunedAt &&
|
|
279
|
+
now - lastPrunedAt < PRINCIPAL_PRUNE_INTERVAL_MS) {
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
prunePrincipals(db, now);
|
|
283
|
+
lastPrincipalPruneByDb.set(db, now);
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
export function countLivePrincipals(db, now) {
|
|
287
|
+
const row = db
|
|
288
|
+
.prepare(`SELECT COUNT(*) AS count FROM principals
|
|
289
|
+
WHERE kind IN ('owner', 'agent')
|
|
290
|
+
AND revoked_at IS NULL AND expires_at > ?`)
|
|
291
|
+
.get(now);
|
|
292
|
+
return row.count;
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=principals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"principals.js","sourceRoot":"","sources":["../../src/db/principals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/files/walker.ts"],"names":[],"mappings":"AACA,OAAO,EAAuC,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAgCpF,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,GAAG,EAAE,MAAM;CAIxB;AAED,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,GAAG,EAAE,MAAM;CAIxB;AAED,qBAAa,aAAc,SAAQ,KAAK;IACnB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAIhC;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiE5E;AAyCD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAyDnF;AAsBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAsB1E;AAmBD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CAOnE;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgDrF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAY1I;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"walker.d.ts","sourceRoot":"","sources":["../../src/files/walker.ts"],"names":[],"mappings":"AACA,OAAO,EAAuC,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAgCpF,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,GAAG,EAAE,MAAM;CAIxB;AAED,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,GAAG,EAAE,MAAM;CAIxB;AAED,qBAAa,aAAc,SAAQ,KAAK;IACnB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAIhC;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiE5E;AAyCD;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAyDnF;AAsBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAsB1E;AAmBD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM,CAOnE;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgDrF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAY1I;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkEpF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAAC,CAe1I;AAGD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/files/walker.js
CHANGED
|
@@ -378,11 +378,16 @@ export async function resolveForRaw(rel, root) {
|
|
|
378
378
|
*/
|
|
379
379
|
export async function buildWikilinkMap(root) {
|
|
380
380
|
const matcher = await loadIgnore(root);
|
|
381
|
-
const out =
|
|
381
|
+
const out = Object.create(null);
|
|
382
|
+
const visited = new Set();
|
|
382
383
|
async function walk(rel) {
|
|
383
384
|
const abs = await safeResolve(rel, root);
|
|
384
385
|
let dirents;
|
|
385
386
|
try {
|
|
387
|
+
const canonical = await realpath(abs);
|
|
388
|
+
if (visited.has(canonical))
|
|
389
|
+
return;
|
|
390
|
+
visited.add(canonical);
|
|
386
391
|
dirents = await readdir(abs, { withFileTypes: true });
|
|
387
392
|
}
|
|
388
393
|
catch {
|
package/dist/files/walker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/files/walker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"walker.js","sourceRoot":"","sources":["../../src/files/walker.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,12 +11,15 @@
|
|
|
11
11
|
export { createApp, type CreateAppOptions, type BrainUiApp, type AppRenderer, } from "./app.js";
|
|
12
12
|
export { ENV_VARS, resolveServerConfig, type EnvVarDescriptor, type ServerConfig, type AuthConfig, type WebAuthnConfig, type AgentConfig, type VoiceConfig, } from "./config/env.js";
|
|
13
13
|
export { assertBackendResolvable, createBackendRegistry, createStaticBackendRegistry, type BackendLogFn, type BackendRegistry, type ModelDiscoverySource, type ModelDiscoveryState, } from "./agent/backend.js";
|
|
14
|
-
export { authGuard,
|
|
14
|
+
export { authGuard, isWsAuthorized, resolveCookiePrincipal, resolveAuthMode, revokeAllSessions, type AuthMode, type AuthRuntime, } from "./middleware/auth.js";
|
|
15
|
+
export { type Principal } from "./db/principals.js";
|
|
16
|
+
export { type AppEnv } from "./app-env.js";
|
|
15
17
|
export { createUiDb } from "./db/client.js";
|
|
16
18
|
export { openBrainDb, withBrainDb, BrainDbUnavailableError, MIN_BRAIN_SCHEMA_VERSION, } from "./db/brain-db.js";
|
|
17
19
|
export { WsHost, type WsHostOptions } from "./ws/host.js";
|
|
18
20
|
export { createWsUpgrade, createWsHandlers, websocket } from "./ws/connection.js";
|
|
19
21
|
export { handleClientMessage, turnIdMatches, type ConnectionState, } from "./ws/dispatch.js";
|
|
22
|
+
export { type AuthorizationContext } from "./ws/turns.js";
|
|
20
23
|
export { resolveTurnTarget } from "./ws/routing.js";
|
|
21
24
|
export { createSessionCatalog, type SessionCatalog, } from "./ws/session-catalog.js";
|
|
22
25
|
export { createBrainClient, MIN_BRAIN_CLI_VERSION, type BrainClient, } from "./brain/client.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ export { ENV_VARS, resolveServerConfig, } from "./config/env.js";
|
|
|
15
15
|
// Boot-time diagnostics (fail fast on a bad AGENT_BACKEND / profile config,
|
|
16
16
|
// log the resolved auth mode).
|
|
17
17
|
export { assertBackendResolvable, createBackendRegistry, createStaticBackendRegistry, } from "./agent/backend.js";
|
|
18
|
-
export { authGuard,
|
|
18
|
+
export { authGuard, isWsAuthorized, resolveCookiePrincipal, resolveAuthMode, revokeAllSessions, } from "./middleware/auth.js";
|
|
19
19
|
// The app's own SQLite database (sessions, passkeys, settings).
|
|
20
20
|
export { createUiDb } from "./db/client.js";
|
|
21
21
|
// Brain database access (read-only, schema-gated) for embedders adding
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,SAAS,GAIV,MAAM,UAAU,CAAC;AAElB,6EAA6E;AAC7E,8EAA8E;AAC9E,OAAO,EACL,QAAQ,EACR,mBAAmB,GAOpB,MAAM,iBAAiB,CAAC;AAEzB,4EAA4E;AAC5E,+BAA+B;AAC/B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,GAK5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EACL,SAAS,GAIV,MAAM,UAAU,CAAC;AAElB,6EAA6E;AAC7E,8EAA8E;AAC9E,OAAO,EACL,QAAQ,EACR,mBAAmB,GAOpB,MAAM,iBAAiB,CAAC;AAEzB,4EAA4E;AAC5E,+BAA+B;AAC/B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,2BAA2B,GAK5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,SAAS,EACT,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAK9B,gEAAgE;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,uEAAuE;AACvE,qBAAqB;AACrB,OAAO,EACL,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,+CAA+C;AAC/C,OAAO,EAAE,MAAM,EAAsB,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EACL,mBAAmB,EACnB,aAAa,GAEd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,oBAAoB,GAErB,MAAM,yBAAyB,CAAC;AAEjC,0EAA0E;AAC1E,2BAA2B;AAC3B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAE3B,8EAA8E;AAC9E,yEAAyE;AACzE,yCAAyC;AACzC,OAAO,EAAE,aAAa,EAAsB,MAAM,qBAAqB,CAAC;AAExE,0EAA0E;AAC1E,6EAA6E;AAC7E,oCAAoC;AACpC,OAAO,EACL,mBAAmB,EACnB,aAAa,GAQd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAE9B,0EAA0E;AAC1E,6DAA6D;AAC7D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,4EAA4E;AAC5E,4EAA4E;AAC5E,yCAAyC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,4EAA4E;AAC5E,+EAA+E;AAC/E,2EAA2E;AAC3E,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,UAAU,EACV,YAAY,EACZ,SAAS,GACV,MAAM,0BAA0B,CAAC;AAiBlC,wEAAwE;AACxE,OAAO,EACL,aAAa,EACb,UAAU,GAEX,MAAM,4BAA4B,CAAC"}
|
|
@@ -4,7 +4,9 @@ import { Hono } from "hono";
|
|
|
4
4
|
import type { Context, MiddlewareHandler } from "hono";
|
|
5
5
|
import type { Database } from "bun:sqlite";
|
|
6
6
|
import type { AuthConfig } from "../config/env.js";
|
|
7
|
-
import type
|
|
7
|
+
import { type Principal } from "../db/principals.js";
|
|
8
|
+
import type { AppEnv } from "../app-env.js";
|
|
9
|
+
import type { WsHost } from "../ws/host.js";
|
|
8
10
|
/**
|
|
9
11
|
* Authentication for a remote surface to an agent with write access to the
|
|
10
12
|
* user's files. Modes (AUTH_MODE):
|
|
@@ -34,6 +36,7 @@ export interface AuthRuntime extends AuthConfig {
|
|
|
34
36
|
/** Bind host, for the loopback check on AUTH_MODE=none. */
|
|
35
37
|
host: string;
|
|
36
38
|
}
|
|
39
|
+
export declare const SESSION_TTL_SECONDS: number;
|
|
37
40
|
export declare const LOGIN_RATE_LIMIT = 5;
|
|
38
41
|
export declare const GLOBAL_LOGIN_RATE_LIMIT = 100;
|
|
39
42
|
export declare const PASSKEY_LOGIN_RATE_LIMIT = 5;
|
|
@@ -44,23 +47,47 @@ export declare function resolveAuthMode(auth: AuthRuntime, log?: Logger): AuthMo
|
|
|
44
47
|
*/
|
|
45
48
|
export declare function assertAuthConfig(mode: AuthMode, auth: AuthRuntime, log?: Logger): void;
|
|
46
49
|
/** Middleware guarding /api/* according to the resolved mode. */
|
|
47
|
-
export declare function authGuard(mode: AuthMode, auth: AuthRuntime, db: Database): MiddlewareHandler
|
|
50
|
+
export declare function authGuard(mode: AuthMode, auth: AuthRuntime, db: Database): MiddlewareHandler<AppEnv>;
|
|
48
51
|
/**
|
|
49
52
|
* Authorize a WebSocket upgrade. The upgrade handler must call this itself —
|
|
50
53
|
* browsers can't set headers on the WS handshake, so the session cookie (sent
|
|
51
54
|
* automatically same-origin) is the credential, and no header-modifying
|
|
52
55
|
* middleware may sit on the WS route (immutable-header errors). Mirrors
|
|
53
56
|
* {@link authGuard} without emitting a response.
|
|
57
|
+
*
|
|
58
|
+
* @returns The resolved principal for an authorized upgrade, otherwise null.
|
|
54
59
|
*/
|
|
55
|
-
export declare function isWsAuthorized(c: Context
|
|
60
|
+
export declare function isWsAuthorized(c: Context<AppEnv>, mode: AuthMode, auth: AuthRuntime, db: Database): Promise<Principal | null>;
|
|
56
61
|
/**
|
|
57
62
|
* Mint the session cookie. The single place a session comes into existence —
|
|
58
63
|
* both password login and passkey login (middleware/passkeys.ts) call this, so
|
|
59
64
|
* authGuard / isWsAuthorized / TTL semantics stay identical across methods.
|
|
60
65
|
*/
|
|
61
|
-
export declare function issueSessionCookie(c: Context, auth: AuthRuntime, db: Database): Promise<void>;
|
|
62
|
-
/**
|
|
63
|
-
export declare function
|
|
66
|
+
export declare function issueSessionCookie(c: Context, auth: AuthRuntime, db: Database, principalId: string): Promise<void>;
|
|
67
|
+
/** Turn the client-controlled User-Agent into a short, log-safe display hint. */
|
|
68
|
+
export declare function sanitizeLoginLabel(userAgent: unknown): string;
|
|
69
|
+
type LoginPrincipalLineage = {
|
|
70
|
+
authMethod: "password";
|
|
71
|
+
} | {
|
|
72
|
+
authMethod: "passkey";
|
|
73
|
+
credentialId: string;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Create the durable owner principal for a verified login and issue its cookie.
|
|
77
|
+
* Returns a response only when the live-principal cap refuses the login.
|
|
78
|
+
*/
|
|
79
|
+
export declare function issueLoginSession(c: Context, auth: AuthRuntime, db: Database, lineage: LoginPrincipalLineage): Promise<Response | null>;
|
|
80
|
+
/**
|
|
81
|
+
* Resolve the principal named by a valid session cookie. Signature and payload
|
|
82
|
+
* shape are checked before the principal store is queried.
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveCookiePrincipal(c: Context, auth: AuthRuntime, db: Database): Promise<Principal | null>;
|
|
85
|
+
/** Apply durable revocation to every live runtime authorization context. */
|
|
86
|
+
export declare function applyPrincipalRevocation(revoker: Pick<WsHost, "revokePrincipals">, principalIds: readonly string[]): void;
|
|
87
|
+
/**
|
|
88
|
+
* Revoke every cookie-bearing principal and disconnect its attached clients.
|
|
89
|
+
*/
|
|
90
|
+
export declare function revokeAllSessions(db: Database, revoker: Pick<WsHost, "revokePrincipals">): void;
|
|
64
91
|
/** Record one genuine authentication failure in a fixed one-minute window. */
|
|
65
92
|
export declare function recordLoginFailure(key: string, limit: number): void;
|
|
66
93
|
/** Read without allocating: junk requests cannot grow the failure map. */
|
|
@@ -77,8 +104,8 @@ export declare function consumeLoginToken(key: string, limit: number): boolean;
|
|
|
77
104
|
export declare function authRoutes(mode: AuthMode, auth: AuthRuntime, deps: {
|
|
78
105
|
/** Authoritative session state. */
|
|
79
106
|
db: Database;
|
|
80
|
-
/**
|
|
81
|
-
|
|
107
|
+
/** Runtime connections and queued work invalidated by principal revocation. */
|
|
108
|
+
revoker: Pick<WsHost, "revokePrincipals">;
|
|
82
109
|
/**
|
|
83
110
|
* When provided and returning true, password login is refused (the app
|
|
84
111
|
* injects passkeys' passwordLoginDisabled so the shared password dies
|
|
@@ -92,5 +119,6 @@ export declare function authRoutes(mode: AuthMode, auth: AuthRuntime, deps: {
|
|
|
92
119
|
failures?: Counter;
|
|
93
120
|
/** Test-only password verifier; production uses Bun.password.verify. */
|
|
94
121
|
verifyPassword?: (password: string, hash: string) => Promise<boolean>;
|
|
95
|
-
}): Hono
|
|
122
|
+
}): Hono<AppEnv>;
|
|
123
|
+
export {};
|
|
96
124
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/middleware/auth.ts"],"names":[],"mappings":"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"}
|