Integraciones
Servicios externos con los que se conecta la Academia - YouTube, Cloudflare (R2 y proxy), Office 365, Groq, PowerBuilder y la app móvil.
Resumen
| Integración | Estado | Dirección | Detalle |
|---|---|---|---|
| YouTube | En uso | Navegador → YouTube; servidor → YouTube (comprobación) | Videos embebidos en mod_interactivevideo |
| Cloudflare R2 (videos) | En uso según docs/drp.md | Por confirmar | Alojamiento de videos fuera del servidor |
| Cloudflare (proxy y DNS) | Planificado (hoy la Academia se usa en la red interna, en http://192.168.0.192) | Usuarios → Cloudflare → servidor | Ver Infraestructura |
| Office 365 (SMTP) | Configurado en producción | Servidor → smtp.office365.com:587 | Ver Correo |
| Groq | En uso | Servidor → api.groq.com | Ver Inteligencia artificial |
| Cliente MCP externo | Disponible | Cliente → /webservice/mcp/server.php | Ver Inteligencia artificial |
| PowerBuilder | Pendiente | Por definir | Solo se guarda el código de documento de cada tema |
| App Moodle Mobile | Prevista | App → servicios web REST sobre HTTPS | Configuración del servicio móvil Por confirmar |
| Dify | Planificada (Fase 5) | Moodle → Dify → proveedor LLM | No desplegada |
YouTube
- Los cerca de 400 videos de capacitación de la empresa son videos no listados de YouTube. Está prohibido alojarlos en el servidor interno (política de respaldo).
- Se insertan con actividades de
mod_interactivevideo(tipo YouTube), que permiten agregar interactividad sobre el video. El constructor de módulos (local_deltamodules\builder) normaliza el enlace y crea siempre actividades de este tipo. - Completado: la actividad se marca "Hecho" al ver el video hasta el final. Para el usuario, el reproductor se muestra en modo sin distracciones, sin herramientas de autor y sin confeti al terminar (parche).
- Comprobación de disponibilidad: la revisión de módulos (
local_deltamodules\health, página de revisión de módulos) consulta el servicio oEmbed de YouTube para cada video. Un video eliminado, privado o que no permite insertarse nunca llega al final, así que nadie podría completarlo. Requiere salida del servidor awww.youtube.com. - El inventario de temas con sus enlaces vive en
docs/modules-info/academia_dm_contenido.json. ElREADME.mdregistra un chequeo del 2026-08-26: de 128 videos, 122 disponibles y 6 caídos (5 eliminados y 1 privado), pendientes de volver a subir o corregir en el canal de la empresa.
Las URL del inventario son mixtas: YouTube, Google Drive (PDF), TikTok, un blog externo y el SRI. Algunos temas no tienen enlace todavía.
Cloudflare R2
docs/drp.md indica que parte de los videos están alojados en Cloudflare R2 (fuera del servidor y fuera del respaldo) y que la cuenta usada para los videos es personal y debe migrarse a una cuenta de la empresa.
R2 es también el destino recomendado para la copia externa cifrada de los respaldos (bucket previsto delta-lms-backups, con un token de API limitado a ese bucket), pendiente de configurar.
Por confirmar:
- Qué videos están en R2 y cómo se insertan en las actividades (el código del repositorio solo crea actividades de YouTube).
- La fecha y el responsable de la migración de la cuenta de R2 a la empresa.
Office 365
Correo saliente de la Academia con la cuenta info@deltamontero.com por SMTP autenticado (puerto 587, STARTTLS). Requisitos del lado de Microsoft 365: SMTP AUTH activo en el buzón y que ninguna política de acceso condicional por ubicación o IP bloquee el inicio de sesión del servidor. Detalle en Correo.
Groq
Proveedor de IA del chat por su API compatible con OpenAI, con la clave en GROQ_API_KEY. Detalle, modelos y frontera de datos en Inteligencia artificial.
PowerBuilder
Deltamontero tiene un sistema de gestión heredado en PowerBuilder, con una base de datos por empresa cliente. Cada video o tema de la Academia tiene un código de documento de ese sistema (por ejemplo G-3-OP-01-GE-01002), que funciona como identificador único del contenido.
Lo que existe hoy:
- El código PowerBuilder se guarda junto a cada tema en el inventario y se usa al crear módulos (columna "Código PowerBuilder", opcional, en la plantilla de importación).
Lo que está pendiente:
- La integración entre sistemas. El protocolo (HTTP/REST o COM+/DCOM) no está definido; la sincronización por VPN la maneja el equipo de TI.
App Moodle Mobile
La app oficial de Moodle consume los servicios web REST sobre HTTPS; no necesita WebSockets para las funciones básicas (el chat de IA podría necesitarlos para respuestas en streaming).
Cuidados documentados para el proxy: no comprimir las respuestas JSON, no modificar la cabecera Authorization y dar tiempos de espera generosos para subir archivos.
Por confirmar: en moodle-config.sh se activan los servicios web y los protocolos rest y mcp, pero no se configura explícitamente el servicio de la app móvil (enablemobilewebservice). Su estado en producción y si la app forma parte del alcance de esta entrega deben verificarse. El tema theme_boost_union no afecta a la app, que tiene su propia interfaz.
Empresas cliente
No es una integración técnica con otro sistema, sino un canal de acceso externo: cada empresa cliente es una cohorte (cli_*) con módulos asignados por matrícula de cohorte y un código de registro con vencimiento y número de usos. Una tarea diaria suspende a los usuarios de las empresas cuyo acceso venció. Ver Roles y permisos.
Inteligencia artificial
Chat de IA actual con local_ai_manager, block_ai_chat y Groq; niveles por perfil, persona, agente de acciones, servicio MCP y plan de la Fase 5 con Dify.
Discrepancias y puntos por confirmar
Diferencias entre la documentación del repositorio y el código, y datos de arquitectura que deben confirmarse antes del cierre.