diff --git a/README.md b/README.md index bc143cd..3300c24 100644 --- a/README.md +++ b/README.md @@ -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.