Add administrator sign-in and private-safe room directory

Connect personal operator-provisioned admin keys, persisted roles and eight-hour sessions, current/all-session revocation and a filtered room directory. Additive schema protects final owner, revokes disabled accounts and records safe audit history. No game state changes; remaining administration scope stays explicit.

Verified: typecheck, lint, 5196 offline tests, 52 HTTP tests, production build; authenticated local HTTP and desktop/mobile browser checks. Independent privacy/security review fixed malformed nested roster searches and read-time session revocation. Preserved 1,671 prior rooms and 3,538 seats. Container/deployed acceptance follows publication.
This commit is contained in:
Quintine committed 2026-09-22 09:36:11 +10:00
1 parent 36a03bda9c
commit c2d392e155
27 files changed
+3164 -13

No files matched your search

+11
View File
@@ -0,0 +1,11 @@
import { env } from 'cloudflare:workers';
import { requireAdmin } from '@/db/admin-access';
import { readAdminDirectory } from '@/db/admin-directory';
import { adminFailure, adminResponse, adminToken } from '@/lib/admin-http';
export async function GET(request: Request) {
try {
const identity = await requireAdmin(env.DB, adminToken(request), ['owner', 'operator', 'viewer']);
return adminResponse(await readAdminDirectory(env.DB, identity, new URL(request.url).searchParams));
} catch (error) { return adminFailure(error); }
}