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:

Acceso al panel

1

Abre /panel en tu navegador (ej: https://tu-dominio.com/panel).

2

Introduce tu email y contraseña.

3

Se genera un JWT válido 24 horas. Tu badge mostrará superadmin.

ℹ️ Sesión El token se almacena en el navegador. Si cierras y vuelves a abrir, la sesión permanece activa hasta que expire (24h) o hagas logout.

📊 Dashboard

Pantalla principal con el estado global de la plataforma:

KPIDescripción
TenantsTotal de empresas registradas (activas / total).
DistribuidoresNúmero de partners dados de alta.
UsuariosUsuarios del panel admin.
InformesTotal 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

1

Pestaña "Distribuidores" → botón "+ Nuevo Distribuidor".

2

Rellena los campos:

CampoDescripciónObligatorio
NombreNombre comercial del distribuidor
SlugIdentificador único, sin espacios (ej: partner-norte)
EmailEmail de contactoNo
TeléfonoTeléfono de contactoNo
Máx TenantsCuántos tenants puede tener como máximo (defecto: 50)No
3

Haz clic en Guardar.

Acciones sobre distribuidores

IconoAcciónDescripción
👁️ImpersonarVer la plataforma como ese distribuidor. Aparece un banner amarillo.
✏️EditarModificar datos, desactivar/activar.
🗑EliminarElimina el distribuidor. Sus tenants quedan sin asignar.
⚠️ Desactivar vs Eliminar Si un distribuidor deja de operar temporalmente, desactívalo en vez de eliminarlo. Así conservas el historial y los tenants siguen asignados. Eliminar es irreversible.

🏪 Tenants (Empresas)

Cada tenant es un restaurante, cafetería o negocio cuyos datos se extraen de Revo XEF.

Crear tenant

1

Pestaña "Tenants""+ Nuevo Tenant".

2

Campos:

CampoDescripción
NombreNombre visible del negocio
SlugIdentificador único (ej: pizzeria-roma)
Empresa IDID de la empresa en Revo XEF (numérico)
DistribuidorAsignar a un distribuidor (opcional)

Columnas de la tabla

ColumnaSignificado
ETL🟢 On / 🔴 Off — Si el proceso de carga nocturno está habilitado.
Hora ETLHora programada para la carga automática (ej: 03:00).
Último ETLFecha y hora de la última ejecución exitosa.
Tokens✅ Tokens OAuth configurados / ❌ Sin tokens.

Acciones sobre tenants

IconoAcció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

1

Pestaña "Usuarios""+ Nuevo Usuario".

2

Campos:

CampoDescripción
NombreNombre completo
EmailEmail / login
ContraseñaMínimo 6 caracteres (se encripta con bcrypt)
Rolsuperadmin, distribuidor o tenant_admin
DistribuidorAsignar a un distribuidor (obligatorio para rol distribuidor)
TenantAsignar a un tenant (obligatorio para rol tenant_admin)

Roles explicados

RolAcceso
superadminTodo. Gestiona distribuidores, tenants, usuarios global. Impersona a todos.
distribuidorSus propios tenants y sus usuarios. Impersona solo sus tenants.
tenant_adminSolo 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

1

Pestaña "API Keys""+ Nueva API Key".

2

Selecciona el Tenant e introduce un nombre descriptivo.

3

Al guardar se muestra la clave completa (ra_...). Cópiala inmediatamente.

🔴 Clave irrecuperable La API Key se muestra una sola vez. Se almacena como hash SHA-256. Si se pierde hay que crear una nueva y entregarla al cliente.

Columnas

ColumnaDescripción
PrefijoPrimeros 8 caracteres para identificar la clave.
Requests hoyPeticiones realizadas hoy (se resetea a medianoche).
Máx/díaLí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.

ColumnaSignificado
TenantNombre de la empresa.
Modoincremental, full o catalog.
Statusrunning, success o error.
Inicio / DuraciónCuándo empezó y cuánto tardó.
Órdenes / Facturas / LíneasVolumen de datos procesados.
ErrorMensaje de error (si falló). Pasa el ratón para ver el texto completo.
ℹ️ Modos ETL
  • 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

1

Pestaña Distribuidores → clic en 👁️ de un distribuidor.

2

Aparece un banner amarillo pulsante: "Impersonando: Nombre Distribuidor".

3

Ahora solo ves los tenants, usuarios y API keys de ese distribuidor.

4

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.

💡 Caso de uso Un cliente reporta que no ve datos. Impersonas su tenant → vas a ETL log → ves que la última ejecución falló con error de token expirado → editas el tenant y actualizas el token → lanzas ETL manual → problema resuelto.

⚡ Ejecutar ETL manual

Puedes lanzar el proceso de carga de datos manualmente para cualquier tenant:

1

Pestaña Tenants → clic en ⚙️ del tenant deseado.

2

Se lanza un ETL incremental en segundo plano.

3

El proceso aparece en el Log ETL con estado running. Una vez completo cambia a success o error.

⚠️ Limitación El ETL manual desde el panel siempre ejecuta en modo incremental. Para un ETL full o catalog, usa la línea de comandos (ver manual técnico).

🔐 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

1

Pestaña Tenants → ✏️ Editar el tenant.

2

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.
3

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.

ℹ️ Verificar tokens En la tabla de tenants, la columna "Tokens" muestra ✅ si hay tokens configurados y ❌ si no. Si el ETL falla con error de autenticación, probablemente el Refresh Token también haya expirado y necesites pegar nuevos tokens.

🕐 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

1

Pestaña Tenants → ✏️ Editar → campo "Hora ejecución ETL".

2

Selecciona la hora deseada (formato HH:MM, ej: 03:00).

3

Guarda. El próximo ciclo del scheduler ejecutará a esa hora.

Recomendaciones por tipo de negocio

TipoHora sugeridaRazón
Restaurante cierre temprano02:00 - 03:00Cierra sobre medianoche, datos completos a las 2h
Bar / Discoteca05:00 - 06:00Cierra de madrugada, esperar al cierre de caja
Cafetería / Desayuno01:00Cierra 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/.

EntidadDescripciónTipo
VentasLineaLíneas de factura detalladasHecho
FacturasCabeceras de facturaHecho
ProductosCatálogo de productosDimensión
CategoriasCategorías de productosDimensión
GruposGrupos de productosDimensión
MetodosPagoMétodos de pagoDimensión
CamarerosPersonalDimensión
MesasMesas del localDimensión
CalendarioDimensión tiempo (fechas)Dimensión
ClientesSegmentación RFMDimensión
KpisResumenKPIs agregadosAnalítico
HeatmapMapa calor ocupaciónAnalítico
AlertasAnomalías detectadasAnalítico
ForecastPredicción de ventasAnalítico
CombinacionesCross-sellingAnalítico
DesglosePagosPagos por facturaHecho
DesgloseImpuestosImpuestos por facturaHecho
RentabilidadRentabilidad productosAnalítico
AnulacionesCancelacionesAnalítico
MenuEngineeringClasificación BCGAnalítico
VelocidadServicioTiempos de servicioAnalítico
CohortesRetención por cohortesAnalí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