feat(dashboard): fingerprint discovery page — extract and group JA4/H2/headers from traffic

- GET /api/fingerprint-discovery: queries http_logs, groups by JA4, aggregates
  UA family, header presence rates (Sec-CH-UA, Sec-Fetch, Accept-Language,
  zstd, brotli, gzip, XFF), H2 data, TLS info, dict lookups
- /fingerprints page: KPIs, doughnut chart by family, stacked header bars,
  filterable/sortable profile table, expandable detail panel
- Promote button: push H2 fingerprints to browser_h2_signatures via existing
  POST /api/browser-signatures/entries endpoint
- Nav link: Découverte added after Navigateurs in sidebar

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
toto
2026-04-10 15:02:53 +02:00
parent fde6864311
commit fb73c60e7d
4 changed files with 538 additions and 0 deletions

View File

@ -96,3 +96,8 @@ async def health_page(request: Request):
@router.get("/browsers")
async def browsers_page(request: Request):
return templates.TemplateResponse("browsers.html", _ctx(request, "browsers"))
@router.get("/fingerprints")
async def fingerprints_page(request: Request):
return templates.TemplateResponse("fingerprints.html", _ctx(request, "fingerprints"))