- analysis.py: suppression du LIMIT 10 dans la requête user-agents
→ limitée à 500 (cohérent avec la page /detections/ip/<ip> qui montre 278)
→ total_count calculé via requête séparée pour des pourcentages corrects
- CountryAnalysis.tsx: ajout d'un InfoTip ⓘ sur 'PAYS DE L'IP' expliquant
que la source est le GeoIP du pipeline d'ingestion (ClickHouse) et peut
différer des APIs de réputation externes pour les IPs anycast/CDN/cloud
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- CampaignsView: update ClusterData interface to match real API response
(severity/unique_ips/score instead of threat_level/total_ips/confidence_range)
Fix fetch to use data.items, rewrite ClusterCard and BehavioralTab
Remove unused getClassificationColor and THREAT_ORDER constants
- analysis.py: fix IPv4Address object has no attribute 'split' on line 322
Add str() conversion before calling .split('.')
- entities.py: fix Date vs DateTime comparison — log_date is a Date column,
comparing against now()-INTERVAL HOUR caused yesterday's entries to be excluded
Use toDate(now() - INTERVAL X HOUR) for correct Date-level comparison
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>