Governance layer test harness — chat, per-user cost logging, usage report.
Loading budget position…
Loading…
Configured per site in sites/<id>.json under webTools, then pushed with
scripts/sync-site-config.mjs. An empty domain list means unrestricted; add domains to restrict.
Loading…
Configured per site under allowedFileTypes, maxFileSizeMb,
maxAttachmentsPerMessage, and blockedFilenamePatterns
(* wildcard, matched against the filename only —
browsers don't expose a local file path to block).
Loading…
Google Drive access, where connected, is read-only and scoped to one shared folder (including its
subfolders) — enforced by the folder's own sharing permissions, not something a user in chat can widen.
OneDrive is scaffolded under cloudDrives in each site's config but has no connector built yet.
Loading…
Every query — whether written by Claude directly or built from a filter in the chat — runs read-only:
enforced both by the connected database user's own grants and by SET SESSION TRANSACTION READ ONLY
on every connection this Worker opens, so writes are blocked at the database engine itself regardless of
what any single query tries to do. Configured per site under mysqlDatabase.allowedTables.
Loading…
Applied to every message before it reaches Claude — matched patterns are checksum-validated (Luhn for cards, mod-97 for IBANs, Modulus 11 for NHS numbers) to keep false positives low. Does not yet cover text inside uploaded files, or the conversation history stored in your own browser.