docs: agregar flujo de trabajo, soporte de internet y diagrama mermaid en README.md
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user