Saltar a contenido

Admin Hub

El Admin Hub proporciona un panel para monitorizar trabajos del pipeline, gestionar agentes IA, ver datos de facturacion y gestionar la lista de espera beta.

Vision General

Backend: /opt/mdu-api/admin-hub.js (modulo ESM) Frontend: admin.minidreamuniverse.com

Todos los endpoints admin requieren autenticacion JWT + verificacion de email admin.

Endpoints

Pipeline

Metodo Ruta Auth Descripcion
GET /api/admin/pipeline/jobs Admin Listar trabajos pipeline
GET /api/admin/pipeline/metrics Admin Metricas diarias pipeline
GET /api/admin/pipeline/stream Admin SSE actualizaciones tiempo real

Agentes

Metodo Ruta Auth Descripcion
GET /api/admin/agents Admin Listar agentes registrados
POST /api/admin/agents Admin Registrar nuevo agente
GET /api/admin/agents/stream Admin SSE actualizaciones agentes
GET /api/admin/agents/:id Admin Obtener detalles agente
PUT /api/admin/agents/:id Admin Actualizar agente
DELETE /api/admin/agents/:id Admin Eliminar agente

Facturacion

Metodo Ruta Auth Descripcion
GET /api/admin/billing/overview Admin Vision general ingresos
GET /api/admin/billing/invoices Admin Facturas recientes

Lista de Espera

Metodo Ruta Auth Descripcion
GET /api/admin/waitlist Admin Listar lista de espera
POST /api/admin/waitlist/invite Admin Enviar invitacion
GET /api/admin/waitlist/funnel Admin Metricas funnel conversion

RAG

Metodo Ruta Auth Descripcion
POST /api/admin/rag/ingest Admin Fragmentar + embeber + almacenar
POST /api/admin/rag/query Admin Busqueda semantica + respuesta LLM
GET /api/admin/rag/documents Admin Listar documentos
GET /api/admin/rag/metrics Admin Metricas RAG
DELETE /api/admin/rag/documents/:id Admin Eliminar documento

Logs

Metodo Ruta Auth Descripcion
WS /ws/admin/logs Admin Streaming logs Docker

Autenticacion WebSocket via parametro query: /ws/admin/logs?token=<jwt>.

Funciones en Tiempo Real

SSE (Server-Sent Events)

Los streams de pipeline y agentes usan SSE basado en polling:

const events = new EventSource('/api/admin/pipeline/stream', {
  headers: { 'Authorization': `Bearer ${token}` }
});

events.onmessage = (e) => {
  const data = JSON.parse(e.data);
  // Actualizar dashboard
};

WebSocket (Logs Docker)

const ws = new WebSocket(`wss://admin.minidreamuniverse.com/ws/admin/logs?token=${token}`);

ws.onmessage = (e) => {
  const log = JSON.parse(e.data);
  // { container, timestamp, message }
};