Admin UI API Contract¶
The Admin UI at office.growing-europe.com exposes three API tiers. This page documents the surface.
AUTHORITATIVE SOURCE: The Admin UI codebase (Next.js app in ge-system namespace). This wiki page is documentation, not the source of truth. If endpoints have changed, update this page.
Tier 1: Public APIs (no auth required -- used by agents and internal services)¶
| Endpoint | Methods | Purpose |
|---|---|---|
| /api/discussions | GET, POST | List/create discussions |
| /api/discussions/{id} | GET | Get discussion details |
| /api/discussions/{id}/messages | GET, POST | List/add messages |
| /api/discussions/{id}/proposals | GET, POST | List/submit proposals |
| /api/discussions/{id}/vote | POST | Vote on proposal |
| /api/discussions/{id}/escalate | POST | Escalate to human |
| /api/discussions/{id}/decide | POST | Human decision |
| /api/agent-tasks | GET, POST | List/create agent tasks |
| /api/agent-tasks/approve | POST | Approve a task plan |
| /api/authority | GET, POST | Authority decisions |
| /api/authority/halt | GET, POST, DELETE | HALT flag management |
| /api/authority/check | POST | Check authority status |
| /api/system/health | GET | Health check |
| /api/system/sync-completions | POST | Sync COMP files to DB |
| /api/system/sync-notifications | POST | Sync notifications to DB |
Tier 2: Internal APIs (token-authenticated -- executor -> admin-ui)¶
| Endpoint | Methods | Purpose |
|---|---|---|
| /api/internal/agents/{id} | GET | Get agent config (provider, model) |
| /api/internal/consumption/llm | POST | Record token consumption |
| /api/internal/budget/check | POST | Pre-execution budget check |
| /api/internal/budget/status | GET | Current budget status |
| /api/internal/discussions | GET, POST | Internal discussion access |
| /api/internal/discussions/{id}/notify-decided | POST | Notify agents of decision |
Tier 3: Authenticated APIs (WebAuthn session -- human via browser)¶
| Endpoint | Methods | Purpose |
|---|---|---|
| /api/agents | GET | List all agents |
| /api/agents/{id}/chat | GET, POST | Chat with agent |
| /api/agents/{id}/identity | GET | View agent identity |
| /api/agents/{id}/provider | PATCH | Change agent LLM provider |
| /api/billing | GET, POST | Billing management |
| /api/billing/consumption | GET | Token consumption reports |
| /api/billing/budgets | GET | Budget status |
| /api/billing/overview | GET | Billing dashboard data |
| /api/clients | GET, POST | Client management |
| /api/projects | GET, POST | Project management |
| /api/tasks | GET, POST | Task management |
| /api/inbox | GET, POST | Inbox management |
| /api/queue | GET, POST | Queue management |
| /api/knowledge | GET | Knowledge patterns |
| /api/audit | GET | Audit log |
| /api/sse | GET | Server-sent events (real-time updates) |
| /api/auth/challenge | GET | WebAuthn challenge |
| /api/auth/verify | POST | WebAuthn verification |
| /api/auth/logout | POST | Logout |
Known DNS Issue¶
DNS from executor pods to admin-ui is unreliable. Agents trying to curl the discussion API may fail with "Could not resolve host." Workaround: host cron + scripts/k8s-health-dump.sh -> public/k8s-health.json.