Marketplace · Admin
Admin Console — Four Tabs on a Single Page
AdminPage.tsx is one page with four tabs: Catalog · Approvals · Manage · API Keys. Every admin action runs behind the role guard <RequireRole role='admin'>, and there is no separate 'users' page. Statistics are handled by /telemetry/summary + /dlp/stats.
Admins can search the catalog directly / trigger uploads (web/src/pages/AdminPage.tsx:36 useCatalog + apiRequest).
Audit Log
A single AuditLog table (models.py:138) records every admin action. There is no dedicated UI; querying directly requires the DB or exporting via an alembic migration.
API Key Security
ApiKey never stores the raw key — only the sha256 hash + key_prefix are kept in the DB (
models.py:16-29). Verification uses secrets.compare_digest (security.py:61-72). Supports revocation + expiry + rotation grace.