Dashboard
Overview
The dashboard is a Svelte 5 + TypeScript single-page application (in
web/dashboard) that gives a human-readable view over everything
captured and scanned by Eon Insights. It talks exclusively to the
insights REST API — it holds no database
connection of its own — and authenticates against FusionAuth, with
optional two-factor authentication.
Running it
In development, Vite proxies /auth, /api, and /oauth to the
insights server on http://localhost:3000, so insights must already
be running:
cd web/dashboard
npm install
npm run devThis serves the dashboard (typically on http://localhost:5173, though
Vite will pick another port if that one is busy) with hot reload. Other
scripts:
npm run build # production build to dist/
npm run preview # preview a production build locally
npm run check # svelte-check (type checking)In production, the built dist/ output is served as static files
(see the dashboard-container Docker build target), fronted by nginx or
similar, with the same /api, /auth, /oauth paths reverse-proxied to
insights.
What it shows
The dashboard’s pages map fairly directly onto the insights API’s route
groups:
- Home — landing overview/dashboard summary
- Hosts / Host Details — discovered hosts, their security level, TLS scan history, nmap scan results, and tags; can trigger a fresh TLS or nmap scan on demand
- Clients / Client Details — discovered TLS clients (source IPs), their fingerprints, and tags
- Handshakes / Connection Details — captured TLS handshake records, searchable and filterable, with per-connection detail (cipher, version, JA3/JA3S, certificate)
- Certificates — the certificate inventory (deduplicated by SHA-256 fingerprint), including expiry status
- Compliance / Compliance Rules — compliance framework scores and findings, and a rule editor (see Compliance)
- Cbom — Cryptographic Bill of Materials generation, browsing, and download
- Sca / Sca Repo — connected Git repositories, OAuth connections, scan history, and vulnerability findings (SCA)
- Upload — PCAP file upload for offline analysis (processed by pcapworker)
- Status — service and asynq queue/worker health, driven by the
/api/statusendpoints and a WebSocket status feed - Chats — an AI assistant that can run read-only SQL against the ClickHouse schema to answer ad-hoc questions about the data
- Custom View — user-defined saved views (
/api/views) - Settings / Profile / Two-Factor Settings — account and application configuration, including two-factor authentication setup
- Login / Forgot Password — authentication flows against FusionAuth
- About — static copyright/info page
Custom periods and sharing
Time ranges used across charts and tables can be saved as reusable
“custom periods” (/api/periods). Data views can be exported as PDF or
sent elsewhere via the sharing endpoints (/api/sharing/pdf,
/api/sharing/send).