Documentation
¶
Overview ¶
Package dashboard is the server-rendered web UI (AC-4.9 third surface). It renders a search form and result table from the SAME SearchService the CLI and REST API use — GQL semantics, pagination, and freshness notices are identical across all three surfaces.
The dashboard is read-only: it never triggers scanning (ADR-0010) and imports only internal/search (AC-3.1 import-graph test).
Package dashboard implements the server-rendered pages (v0.0.1: /, /search, /assets/{id}, /about) calling the same SearchService server-side (AC-4.9 third surface).
M1: package skeleton only (this doc.go). M10 lands the pages and the three-surface parity (CLI -o json vs REST vs Dashboard server-side call return identical row identity sets + total across F1–F17).
The dashboard package depends on internal/search and internal/config; it never imports any collector or egress package (ADR-0010; AC-3.1).
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Dashboard ¶
type Dashboard struct {
// contains filtered or unexported fields
}
Dashboard serves the web UI over the shared SearchService.
func (*Dashboard) Handler ¶
Handler returns the dashboard's http.Handler (mounted at "/" by the server command). Hardening (M16 security review):
- security response headers on every response (nosniff, DENY framing, no-referrer, a scriptless CSP);
- GET-only serving: the dashboard has no state-changing endpoint and no cookies, so there is no CSRF surface by construction — the method guard pins that invariant instead of trusting future code to keep it (405 for anything but GET/HEAD).