You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.3 KiB
2.3 KiB
Arquitectura e implantación
Arquitectura limpia (monitor Python)
Bajo monitor/src/adn_monitor/:
- Dominio — entidades, errores,
Result, opcodes,UserSession. - Aplicación —
MonitorState, casos de uso (auth, self-service, informes, dashboard), puertos (AuthRepository,HttpFetcherPort, …). - Infraestructura — YAML, FastAPI (REST +
/ws), ingest TCP (Twisted en hilo) o MQTT, MySQL, decodificadores de informes.
El composition root está en infrastructure/fastapi/composition.py (build_monitor_api).
Proceso unificado (monitor.py)
Un solo proceso uvicorn/FastAPI:
| Ruta / rol | Contenido |
|---|---|
/api/* |
Config dashboard, auth, self-service, proxy alias/status |
/ws |
Protocolo conf,<grupo> — CTABLE, Last Heard, voz |
| Ingest (fondo) | MONITOR_APP.INGEST: tcp (cliente a ADN_CONNECTION) o mqtt (tópicos state + voice_event) |
| Alias (fondo) | Descarga → FILES.PATH; import con staging + RENAME (commits cada 10k en staging; swap breve); merge con commits cada 2k; PK en id |
Protocolo de informes (desde el peer server)
Modos de ingest según el peer: legacy (pickle), v1 HELLO, v2 slim (dashboard_state + voice_event). Ver Monitor e informes.
Frontend
- Vite + React en
frontend/; build →frontend/dist/. - Desarrollo: Vite hace proxy de
/apiy/wsaMONITOR_APP.LISTEN_PORT(p. ej. 8080). - Producción: Nginx sirve estáticos y proxifica
/api+/wsal mismo puerto FastAPI.
Proxy hotspot
Integrado (predeterminado): adn-server.py con PROXY + SELF_SERVICE en adn-server.yaml. Ver Proxy hotspot integrado.
El proceso adn-proxy independiente se eliminó del repositorio adn-monitor; usa solo PROXY integrado.
Topología típica
[Hotspots] --UDP--> [adn-server PROXY] --UDP--> [peer MASTER]
|
v
MySQL (Clients)
[Peer :REPORT_PORT] <--- TCP o MQTT --- [monitor.py ingest]
[Navegador] --HTTPS--> [Nginx: frontend/dist + proxy /api,/ws --> :8080]