docs: agregar flujo de trabajo, soporte de internet y diagrama mermaid en README.md

This commit is contained in:
Carlos Tello
2026-08-15 09:48:37 -03:00
parent e15a7a0362
commit d010abe05c
+50
View File
@@ -33,6 +33,56 @@ Plataforma empresarial centralizada de backup y sincronización para entornos Wi
---
## 🔄 Flujo de Trabajo (Workflow) y Resolución del Problema
OnEver Drive está diseñado específicamente para resolver la necesidad de **programar y monitorear backups en clientes fuera de la red local (a través de Internet)** mediante una consola de gestión web centralizada ejecutada en una VM Linux.
### 🌐 Conectividad a través de Internet (Sin VPN)
El agente de Windows no requiere de red local ni VPN para comunicarse con el servidor central. Toda la comunicación (Handshake, Sincronización de Tareas, Subida de Chunks e Historial de Ejecuciones) se realiza a través de **HTTPS/TLS** (puerto 443) con seguridad criptográfica robusta:
- Cada agente posee un par único de `device_id` y `device_token` permanente que se valida en el backend mediante un middleware de seguridad.
### 📦 Distribución del Agente "MeshCentral-Style" (Compilación y Enrolamiento)
Para facilitar el despliegue masivo y sencillo en clientes remotos:
1. **Compilación Centralizada**: El administrador puede empaquetar y generar el binario del agente directamente con el script de compilación `windows-agent/build_exe.py` (generando un archivo ejecutable portable de un solo archivo `OnEverDriveAgent-Standalone.exe`).
2. **Enrolamiento por Código**: Al igual que en MeshCentral, el administrador genera un **Código de Registro Único** (ej: `OED-5752-EFED`) con duración temporal (24 horas) en la interfaz web del servidor.
3. **Handshake Seguro**: El instalador del Agente de Windows se ejecuta en la máquina cliente, solicita este código y realiza una solicitud inicial segura. El servidor asocia la máquina al registro y devuelve un token exclusivo, vinculando el cliente de por vida.
### 📊 Diagrama de Secuencia del Flujo de Trabajo
```mermaid
sequenceDiagram
autonumber
actor Admin as Administrador Web
participant Server as VM Linux (FastAPI + React)
participant Agent as Agente Windows (en Internet)
Note over Admin,Server: 1. Descarga y Vinculación (Estilo MeshCentral)
Admin->>Server: Generar código de vinculación temporal (web)
Server-->>Admin: Código temporal (Ej: OED-5752-EFED)
Agent->>Server: Registro inicial con Código Temporal (HTTPS POST)
Server-->>Agent: device_id y device_token seguro (Guardado en config.json)
Note over Admin,Agent: 2. Sincronización de Configuración
Admin->>Server: Crear/Editar Trabajo (Filtros, Cron, Copia Local)
Agent->>Server: Consultar trabajos asignados (HTTPS GET)
Server-->>Agent: Retorna configuración del Trabajo
Agent->>Agent: Guarda/Actualiza config.json local
Note over Agent,Server: 3. Ejecución de Tarea y Sincronización
Agent->>Agent: Evalúa is_job_due (Planificador Cron / Proxmox)
Agent->>Server: Iniciar sesión de corrida (POST /runs/start)
Server-->>Agent: Retorna run_id
Agent->>Agent: Copia Local Duplicada Robusta (.tmp -> original)
Agent->>Server: Sube archivos por Chunks de 4MB (HTTPS)
Agent->>Server: Reporta métricas finales y estado (POST /runs/{id}/complete)
Note over Admin,Server: 4. Auditoría
Admin->>Server: Abre modal "Historial de Ejecuciones" (React)
Server-->>Admin: Muestra estadísticas de la corrida (eficiencia, errores, MBs)
```
---
## 📦 Estructura del Repositorio
- **`backend/`**: API REST FastAPI con autenticación JWT, registro de dispositivos por código temporal, motor de chunks con reanudación, políticas de retención y WebSockets.