feat(dashboard): visualisation clusters HDBSCAN

- Page /campaigns dédiée avec 4 vues graphiques :
  · Scatter plot (score vs vélocité, bulles colorées par campagne)
  · Graphe réseau force-directed (IPs liées par JA4 partagé)
  · Grille de cartes campagne (KPIs, ASN, pays, JA4)
  · Panneau détail (radar comportemental, timeline horaire, table membres)
- 4 nouveaux endpoints API :
  · GET /api/campaigns (fix: campaign_id >= 0 au lieu de != '')
  · GET /api/campaigns/graph (nœuds + arêtes)
  · GET /api/campaigns/scatter (score/vélocité par IP)
  · GET /api/campaigns/{cid} (détail + profil + timeline)
- Sidebar: lien Campagnes ajouté dans Surveillance
- Overview: campagnes clickables → lien vers /campaigns

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
toto
2026-04-09 01:11:16 +02:00
parent f1547423b5
commit 396baa90d2
5 changed files with 870 additions and 3 deletions

View File

@ -56,3 +56,8 @@ async def models(request: Request):
@router.get("/network")
async def network(request: Request):
return templates.TemplateResponse("network.html", _ctx(request, "network"))
@router.get("/campaigns")
async def campaigns_page(request: Request):
return templates.TemplateResponse("campaigns.html", _ctx(request, "campaigns"))