feat: IoT Admin Stats page — /iot-admin (v0.1.70)

- GET /iot-admin — HTML страница администратора (go:embed)
- GET /iot-admin/stats — JSON API с данными (Bearer ADMIN_STATS_TOKEN)
- Источники: Kafka consumer lag, K8s pod statuses, PostgreSQL per-tenant stats
- Авторизация: ADMIN_STATS_TOKEN env var
- Auto-refresh каждые 30 секунд
- Nubes brand style
This commit is contained in:
Naeel
2026-04-06 19:14:57 +03:00
parent 69451007f6
commit 7220fe5b8b
8 changed files with 906 additions and 9 deletions
+5
View File
@@ -44,6 +44,11 @@ func NewRouter(h *handler.Handler, log *slog.Logger) http.Handler {
// IoT Консоль — статический HTML, публично доступен
r.HandleFunc("/console", ServeIoTConsole).Methods(http.MethodGet)
// IoT Admin — страница администратора (HTML без auth + JSON API с ADMIN_STATS_TOKEN)
// Не для конечных пользователей: показывает Kafka lag, pod statuses, PG stats per tenant.
r.HandleFunc("/iot-admin", ServeIoTAdmin).Methods(http.MethodGet)
r.HandleFunc("/iot-admin/stats", h.AdminStats).Methods(http.MethodGet)
// Публичный прокси для вызова HTTP-триггеров — без auth токена
// Все HTTP методы разрешены (GET/POST/PUT/... — решает сама функция)
r.PathPrefix("/fn/{namespace}/{name}").HandlerFunc(h.InvokeFunction)