Manual del Super Administrador
Guía completa de administración de la plataforma Revo Analytics.
Introducción
Como Super Administrador tienes acceso total a la plataforma. Puedes:
- Crear y gestionar distribuidores (partners que agrupan empresas).
- Crear y gestionar tenants (cada restaurante/negocio).
- Crear usuarios de cualquier rol.
- Generar y revocar API Keys para acceso BI.
- Impersonar cualquier distribuidor o tenant para diagnóstico.
- Ejecutar y monitorizar el proceso ETL de carga de datos.
- Configurar tokens OAuth de Revo y la hora de ejecución ETL por tenant.
Acceso al panel
Abre /panel en tu navegador (ej: https://tu-dominio.com/panel).
Introduce tu email y contraseña.
Se genera un JWT válido 24 horas. Tu badge mostrará superadmin.
📊 Dashboard
Pantalla principal con el estado global de la plataforma:
| KPI | Descripción |
|---|---|
| Tenants | Total de empresas registradas (activas / total). |
| Distribuidores | Número de partners dados de alta. |
| Usuarios | Usuarios del panel admin. |
| Informes | Total de informes BI generados. |
Debajo se muestra una tabla con las últimas 5 ejecuciones ETL: tenant, estado (success / error / running), duración, órdenes y facturas procesadas.
🏢 Distribuidores
Los distribuidores son partners o empresas intermediarias que agrupan y gestionan varios tenants. Un distribuidor puede tener su propio acceso al panel para gestionar sus empresas.
Crear distribuidor
Pestaña "Distribuidores" → botón "+ Nuevo Distribuidor".
Rellena los campos:
| Campo | Descripción | Obligatorio |
|---|---|---|
| Nombre | Nombre comercial del distribuidor | Sí |
| Slug | Identificador único, sin espacios (ej: partner-norte) | Sí |
| Email de contacto | No | |
| Teléfono | Teléfono de contacto | No |
| Máx Tenants | Cuántos tenants puede tener como máximo (defecto: 50) | No |
Haz clic en Guardar.
Acciones sobre distribuidores
| Icono | Acción | Descripción |
|---|---|---|
| 👁️ | Impersonar | Ver la plataforma como ese distribuidor. Aparece un banner amarillo. |
| ✏️ | Editar | Modificar datos, desactivar/activar. |
| 🗑 | Eliminar | Elimina el distribuidor. Sus tenants quedan sin asignar. |
🏪 Tenants (Empresas)
Cada tenant es un restaurante, cafetería o negocio cuyos datos se extraen de Revo XEF.
Crear tenant
Pestaña "Tenants" → "+ Nuevo Tenant".
Campos:
| Campo | Descripción |
|---|---|
| Nombre | Nombre visible del negocio |
| Slug | Identificador único (ej: pizzeria-roma) |
| Empresa ID | ID de la empresa en Revo XEF (numérico) |
| Distribuidor | Asignar a un distribuidor (opcional) |
Columnas de la tabla
| Columna | Significado |
|---|---|
| ETL | 🟢 On / 🔴 Off — Si el proceso de carga nocturno está habilitado. |
| Hora ETL | Hora programada para la carga automática (ej: 03:00). |
| Último ETL | Fecha y hora de la última ejecución exitosa. |
| Tokens | ✅ Tokens OAuth configurados / ❌ Sin tokens. |
Acciones sobre tenants
| Icono | Acción |
|---|---|
| 👁️ | Impersonar: Ver como si fueras ese tenant. |
| ✏️ | Editar: Nombre, estado, ETL, hora, tokens OAuth. |
| ⚙️ | Ejecutar ETL: Lanza carga de datos manual e incremental. |
| 🗑 | Eliminar: Borra el tenant. ¡Se pierden todos los datos analíticos! |
👥 Usuarios
Cuentas que acceden al panel de administración. Ves todos los usuarios del sistema.
Crear usuario
Pestaña "Usuarios" → "+ Nuevo Usuario".
Campos:
| Campo | Descripción |
|---|---|
| Nombre | Nombre completo |
| Email / login | |
| Contraseña | Mínimo 6 caracteres (se encripta con bcrypt) |
| Rol | superadmin, distribuidor o tenant_admin |
| Distribuidor | Asignar a un distribuidor (obligatorio para rol distribuidor) |
| Tenant | Asignar a un tenant (obligatorio para rol tenant_admin) |
Roles explicados
| Rol | Acceso |
|---|---|
| superadmin | Todo. Gestiona distribuidores, tenants, usuarios global. Impersona a todos. |
| distribuidor | Sus propios tenants y sus usuarios. Impersona solo sus tenants. |
| tenant_admin | Solo dashboard BI de su empresa. No accede al panel admin. |
Resetear contraseña
Con ✏️ edita el usuario y escribe la nueva contraseña en el campo correspondiente. Se encripta automáticamente al guardar.
🔑 API Keys
Claves de acceso para el Dashboard BI y la conexión OData/Power BI. Cada clave está vinculada a un tenant.
Crear API Key
Pestaña "API Keys" → "+ Nueva API Key".
Selecciona el Tenant e introduce un nombre descriptivo.
Al guardar se muestra la clave completa (ra_...). Cópiala inmediatamente.
Columnas
| Columna | Descripción |
|---|---|
| Prefijo | Primeros 8 caracteres para identificar la clave. |
| Requests hoy | Peticiones realizadas hoy (se resetea a medianoche). |
| Máx/día | Límite diario (por defecto 10.000). |
| Último acceso | Última vez que se usó la clave. |
⚙️ Log ETL
Registro completo de todas las ejecuciones del proceso de carga de datos.
| Columna | Significado |
|---|---|
| Tenant | Nombre de la empresa. |
| Modo | incremental, full o catalog. |
| Status | running, success o error. |
| Inicio / Duración | Cuándo empezó y cuánto tardó. |
| Órdenes / Facturas / Líneas | Volumen de datos procesados. |
| Error | Mensaje de error (si falló). Pasa el ratón para ver el texto completo. |
- incremental: Solo datos nuevos (último N días). El más eficiente.
- full: Recarga todos los datos históricos. Más lento pero corrige inconsistencias.
- catalog: Solo actualiza catálogos (productos, categorías). Rápido.
👁️ Impersonación
Permite "ver como" otro distribuidor o tenant sin cambiar de cuenta. Imprescindible para dar soporte.
Impersonar un distribuidor
Pestaña Distribuidores → clic en 👁️ de un distribuidor.
Aparece un banner amarillo pulsante: "Impersonando: Nombre Distribuidor".
Ahora solo ves los tenants, usuarios y API keys de ese distribuidor.
Haz clic en "✕ Salir de impersonación" para volver a tu vista completa.
Impersonar un tenant
Igual, pero desde la pestaña Tenants. Al impersonar un tenant, la vista se filtra por esa empresa específica.
⚡ Ejecutar ETL manual
Puedes lanzar el proceso de carga de datos manualmente para cualquier tenant:
Pestaña Tenants → clic en ⚙️ del tenant deseado.
Se lanza un ETL incremental en segundo plano.
El proceso aparece en el Log ETL con estado running. Una vez completo cambia a success o error.
🔐 Tokens OAuth de Revo
Cada tenant necesita tokens OAuth válidos para que el ETL pueda conectarse a la API de Revo XEF y extraer datos.
Configurar tokens
Pestaña Tenants → ✏️ Editar el tenant.
En la sección "Tokens Revo OAuth" pega:
- Access Token: El token JWT de acceso a la API de Revo.
- Refresh Token: El token para renovar automáticamente cuando expire.
Haz clic en Actualizar.
El sistema renueva automáticamente el Access Token usando el Refresh Token cuando detecta que ha expirado. Los nuevos tokens se guardan en la base de datos.
🕐 Programación ETL
Cada tenant tiene una hora de ejecución ETL configurable. El scheduler nocturno ejecuta automáticamente la carga de datos a esa hora.
Configurar hora
Pestaña Tenants → ✏️ Editar → campo "Hora ejecución ETL".
Selecciona la hora deseada (formato HH:MM, ej: 03:00).
Guarda. El próximo ciclo del scheduler ejecutará a esa hora.
Recomendaciones por tipo de negocio
| Tipo | Hora sugerida | Razón |
|---|---|---|
| Restaurante cierre temprano | 02:00 - 03:00 | Cierra sobre medianoche, datos completos a las 2h |
| Bar / Discoteca | 05:00 - 06:00 | Cierra de madrugada, esperar al cierre de caja |
| Cafetería / Desayuno | 01:00 | Cierra pronto, se puede ejecutar antes |
📡 Entidades OData
El sistema expone 22 entidades OData v4 para conexión con Power BI, Excel u otras herramientas BI. La URL base es /odata/v1/.
| Entidad | Descripción | Tipo |
|---|---|---|
| VentasLinea | Líneas de factura detalladas | Hecho |
| Facturas | Cabeceras de factura | Hecho |
| Productos | Catálogo de productos | Dimensión |
| Categorias | Categorías de productos | Dimensión |
| Grupos | Grupos de productos | Dimensión |
| MetodosPago | Métodos de pago | Dimensión |
| Camareros | Personal | Dimensión |
| Mesas | Mesas del local | Dimensión |
| Calendario | Dimensión tiempo (fechas) | Dimensión |
| Clientes | Segmentación RFM | Dimensión |
| KpisResumen | KPIs agregados | Analítico |
| Heatmap | Mapa calor ocupación | Analítico |
| Alertas | Anomalías detectadas | Analítico |
| Forecast | Predicción de ventas | Analítico |
| Combinaciones | Cross-selling | Analítico |
| DesglosePagos | Pagos por factura | Hecho |
| DesgloseImpuestos | Impuestos por factura | Hecho |
| Rentabilidad | Rentabilidad productos | Analítico |
| Anulaciones | Cancelaciones | Analítico |
| MenuEngineering | Clasificación BCG | Analítico |
| VelocidadServicio | Tiempos de servicio | Analítico |
| Cohortes | Retención por cohortes | Analítico |
Parámetros OData soportados: $filter, $select, $orderby, $top, $skip, $count. Máximo 5.000 registros por petición.
🛡️ Seguridad
Contraseñas
Todas las contraseñas se almacenan con bcrypt (hash irreversible). No se pueden recuperar, solo resetear.
API Keys
Se almacenan como hash SHA-256. Solo se muestran al crearlas. Prefijo de 8 caracteres para identificación.
Tokens JWT
JWT firmado con HS256. Expiran en 24 horas. No contienen datos sensibles (solo user ID y rol).
Aislamiento de datos
Cada tenant solo accede a sus propios datos. El campo empresa_id filtra automáticamente todos los queries OData y del dashboard. Un tenant nunca puede ver datos de otro.
Rate limiting
API Keys tienen un límite diario de peticiones (por defecto 10.000). Se resetea automáticamente a medianoche. Si un tenant excede su límite, recibe error 429.
Revo Analytics — Manual SuperAdmin v1.0 — Febrero 2026