# Architecture SentinelMesh ## Vue d'ensemble ``` ┌─────────────────────────────────────────────────────────┐ │ Dashboards (Glance…) │ │ widget-network-scan widget-agent-metrics │ └──────────────────────┬──────────────────────────────────┘ │ /api/v1/widgets/* ┌──────────────────────▼──────────────────────────────────┐ │ Backend central (Rust/Axum) │ │ /api/v1/agents /api/v1/metrics /api/v1/network │ │ SQLite (→ PostgreSQL futur) │ └────────────┬────────────────────────┬───────────────────┘ │ push JSON │ push JSON ┌────────────▼────────┐ ┌──────────▼────────────────────┐ │ agent-scan-network │ │ agent-metric │ │ ICMP/ARP/MAC/DNS │ │ CPU/RAM/HDD/GPU/DMI/Events │ │ Détection services │ │ Multi-fréquence │ │ API JSON locale │ │ API JSON locale │ └─────────────────────┘ └───────────────────────────────┘ ``` ## Principes - **Séparation stricte** : collecte → centralisation → affichage. Jamais de lien direct widget ↔ agent. - **API-first** : toute donnée accessible via `/api/v1/`. - **Agents autonomes** : fonctionnent sans le dashboard, exposent leur propre API locale. - **Faiblement couplé** : les widgets sont remplaçables par n'importe quel dashboard. ## Flux de données 1. Les agents scannent / collectent en local. 2. Ils poussent les données vers le backend via HTTP JSON. 3. Le backend stocke, agrège et expose via `/api/v1/`. 4. Glance interroge les endpoints widgets (`/api/v1/widgets/*`) à la fréquence de cache configurée. ## Extensions futures Les agents pourront publier directement vers : MQTT, Prometheus, InfluxDB, Home Assistant, Grafana, Node-RED.