Admin
Clients
OAuth clients + allowlist scopes. Create / revoke / reveal.
Users
List, create, delete, edit users and admin flags.
Phones / WA
LID and phone mapping, test WA send.
Force Password
Revoke tokens + force change on next login.
System Approvals
Queue + approve/deny (web or WA).
System Tokens
Inspect + revoke system JWTs.
Audit & Metrics
Events, counts, webhook health, flags, exports.
Admin scaffolding — each card is wired in its ADM-* task.
OAuth Clients
redirect_urls alias also accepted. Must be absolute https:// URLs.| ID | NAME | REDIRECT URIS | SECRET HASH (masked) | CREATED | ALLOWLIST | ACTIONS |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Create returns client_id/secret once. Reveal is one-time only via server. Revoke deletes client + codes/tokens. Allowlist toggles system_permission via oauth_client_allowlist.
Users
| ID | EMAIL_NORM | OWNER_ID | VERIFIED | CREATED_AT | IS_ADMIN | ACTIONS | |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Create (email+password+owner_id), edit email/owner_id/verified, delete. Audit logged to cellar_events. Force password (ADM-05) also available per row.
Phones / WA — User Contacts
Edit wa_lid (e.g. 40506004344899@lid), phone (E.164 like +165****9204), and link owner_id. LID format is digits+@lid (5-20 digits), unique. WA test sends a mock or real gateway message.
| USER_ID | OWNER_ID | PHONE | WA_LID | VERIFIED | ACTIONS | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Orphan owners
owners without a user row — link via Edit → Owner ID| OWNER_ID | DISPLAY | PHONE | WA_LID | IS_ADMIN | ACTIONS |
|---|
/v1/admin/user-contacts/test-wa with {wa_lid} — mockable, validates \d{5,20}@lid.All edits go through PATCH /v1/admin/users/{id}/contact with LID/phone validation + unique checks. Orphan owners help link existing owner rows to users.
System Approvals
| ID | CLIENT | SCOPE | METHOD | STATUS | WA STATUS | CREATED | EXPIRES | ACTION |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
Admin can approve/deny directly via web (bypasses WA). WA approvals also work via reply APPROVE <code> / DENY <code> (mention required in groups). Polls every 8s.
System Tokens — JWT Inspector
System tokens are 10-year JWTs (type=system, 3650d). They effectively never expire…
verify_system_token checks token iat >= users.password_changed_at. Force-password revokes.
| JTI | USER | CLIENT | ISSUED_AT | LAST_USED | REVOKED | ACTIONS |
|---|---|---|---|---|---|---|
| Loading… | ||||||
GET /v1/admin/system-tokens lists system_jwt_tokens (jti, user, client, issued_at, last_used_at, revoked). DELETE /v1/admin/system-tokens/{jti} revokes single. Bulk revoke via ?user_id or POST /revoke-all. Inspect shows synthetic JWT claims (DB-derived iat/exp) + password linkage.
Metrics & Health — Overview
Feature Flags
Flags are env-driven. SK_SUNSET=1 → 401 on sk_. SYSTEM_PERMISSION_ENABLED defaults on.
Webhook Health
| ID | WEBHOOK | HTTP | ATTEMPTS | CREATED |
|---|---|---|---|---|
| — | ||||
DB Migrations
| FILENAME | APPLIED | APPLIED_AT |
|---|---|---|
| Loading… | ||
Exports (CSV, no secrets)
Streams text/csv with Content-Disposition: attachment. No password_hash / secret_hash leaked — only ids, emails, allowlist flags.
Audit Log
| TIME | SOURCE | OP | OWNER / ACTOR | DETAIL | ID |
|---|---|---|---|---|---|
| Loading… | |||||
Unified view: cellar_events (add/consume/patch), system_approvals (pending→approved/rejected), oauth (client/token audit), admin_audit_log. Filter by source / op / search. Pagination 50/page.