Harden production workflows and agent admission

This commit is contained in:
Stanislav Rossovskii
2026-05-28 14:19:27 +04:00
parent a2e88b4e76
commit 37b1a1d6d6
109 changed files with 4927 additions and 894 deletions

View File

@@ -1,6 +1,6 @@
# Monlet Web
Read-only dashboard for Monlet.
Dashboard for Monlet. Monitoring pages are read-only; agent admission and blacklist controls can mutate server state.
## Stack
@@ -36,13 +36,17 @@ Do not install Node packages globally. Project dependencies live in `web/node_mo
| `MONLET_API_BASE_URL` | `http://127.0.0.1:8000` | Server base URL (server-side fetch) |
| `MONLET_API_TOKEN` | _(none)_ | Bearer token sent to server |
| `MONLET_WEB_TIME_ZONE` | `UTC` | IANA timezone used to render timestamps |
| `MONLET_WEB_AUTH_USERNAME` | _(none)_ | Optional Basic Auth username for the web UI |
| `MONLET_WEB_AUTH_PASSWORD` | _(none)_ | Optional Basic Auth password for the web UI |
| `MONLET_WEB_TRUST_PROXY_AUTH` | `false` | Trust `X-Forwarded-User` from an upstream auth proxy |
The token never reaches the browser — all server calls happen in Server Components / route handlers.
The API token never reaches the browser — all server calls happen in Server Components / route handlers. Agent admission actions are blocked unless Basic Auth is configured or trusted proxy auth is enabled.
## Pages
- `/`overview
- `/`redirects to `/agents`
- `/agents` — agent list
- `/agents/blacklist` — blocked agent keys
- `/agents/[id]` — agent detail
- `/checks` — current check states
- `/incidents` — incident list