Skip to content
Dashboard

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 dev

This 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/status endpoints 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).