Console: replace the dashboard, logs and cache pages with a status page and links

With the resolver no longer storing traffic history or a query log, the pages
built on them have nothing to show. The Dashboard becomes a Status page: health
and the reasons for a degraded state, uptime, what is compiled (blocklist rules,
local zone records), the cache with a flush button, per-pod upstream health and
the listeners. Logs and Cache are removed along with the SSE client, the chart
code and the recharts dependency.

api.links (grafana, logs, metrics) names where the charts and the query log
live. GET /api/links serves them and the Status page shows buttons for the ones
that are set, or says how to set them. They are rendered as hrefs, so config
validation refuses anything but http(s) and the page checks again.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
matsandClaude Sonnet 5.5 committed 2026-10-16 09:56:26 +02:00
1 parent c6c5ca4ff7
commit 01202f9785
17 files changed
+277 -1980

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
package api
import "net/http"
// handleLinks returns the configured pointers to the metrics and log tools. The
// console builds its "Dashboards and logs" buttons from it; an empty value
// means that tool is not set up.
func (s *Server) handleLinks(w http.ResponseWriter, _ *http.Request) {
writeJSON(w, http.StatusOK, s.hooks.Store.Get().API.Links)
}