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. Every file path this page cites belongs to the marketplace server repository, not to the host app repository.
Admins can search the catalog directly / trigger uploads (web/src/pages/AdminPage.tsx useCatalog + apiRequest).
Audit Log
A single AuditLog table (models.py) 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). Verification uses secrets.compare_digest (security.py). Supports revocation + expiry + rotation grace.