Arquitectura, módulos y roles

Esta página resume la arquitectura de la aplicación Omniscol y los roles visibles del lado del centro. Los compromisos contractuales precisos (disponibilidad, copias de seguridad, retención, supervisión) corresponden a los documentos jurídicos o comerciales validados.

Alojamiento y fiabilidad

Omniscol está alojado en la Unión Europea, más concretamente en AWS París y Scaleway París. El producto utiliza mecanismos de copia de seguridad, de supervisión y de aislamiento lógico entre las cuentas de los centros; los detalles aplicables a una cuenta dependen del contrato y del entorno correspondiente.

Consulte FAQ — Seguridad y alojamiento para el detalle del lado del usuario.

Arquitectura de software

  • Aplicación web: la aplicación se carga una sola vez, luego las pantallas se renderizan dinámicamente con intercambios REST/JSON (Single Page Application).
  • CouchDB como base de datos principal.
  • Redis como base de datos para la sincronización del lado de la aplicación y los registros.
  • TypeScript para la interfaz (webapp).
  • Backend Node.js / Express que orquesta los motores internos (api, webapp, portal, panel, ical, mcp, oauth2, etc.).
  • C++ para el algoritmo de generación, ejecutado en máquinas virtuales dedicadas que se inician bajo demanda.

Seguridad

  • HTTPS para las comunicaciones expuestas.
  • Cloudflare como puerta de entrada exclusiva (protección anti-DDOS).
  • Contraseñas prehasheadas del lado del cliente con scrypt, luego rehasheadas y saladas del lado del servidor. No se almacenan ni se transmiten en claro.
  • Autenticación JWT con claves de firma y tiempo de vida corto; una rotación o revocación de clave puede invalidar los tokens firmados.
  • Enlaces de compartición firmados, con caducidad, vinculados a la cuenta que los generó e invalidables mediante un cambio de contraseña o la desactivación de dicha cuenta.
  • Tokens de API con clave raíz y tokens derivados, ámbitos de endpoints y caducidades.
  • OIDC / SSO disponible según el contrato y la configuración de la cuenta.
  • Exportación y copias de seguridad internas en JSON para la reversibilidad de los datos.

Roles de usuario

Omniscol distingue varios roles del lado del centro:

Rol Uso habitual
Administrador Responsables de planificación, dirección, departamento de informática
Profesor Profesores, ponentes, formadores
Estudiante Estudiantes, alumnos, aprendices
Personal Vida escolar, auxiliares educativos, vigilantes si el Gestión de personal está activo
Enlace de compartición Acceso mediante URL firmada a un ámbito preciso

La correspondencia entre estas etiquetas y los identificadores técnicos de los roles se detalla en Usuarios y roles.

Un mismo usuario puede acumular varios roles. Por ejemplo, un profesor que participa en la planificación puede ser a la vez Profesor y Administrador.

El rol Enlace de compartición no corresponde a una cuenta de usuario clásica. Se trata de enlaces firmados: los enlaces web de horario son de solo lectura, mientras que algunos enlaces específicos pueden autorizar una acción limitada, como la introducción de las disponibilidades de un profesor hasta una fecha de caducidad.

Existen además roles internos reservados a los equipos de Omniscol: administración de la plataforma, traducción, acciones comerciales y socios distribuidores. Algunas de estas cuentas están autorizadas a conectarse a las cuentas de los centros, por motivos de mantenimiento. Intervienen entonces como superadministradores del centro, con más posibilidades que un administrador: importación de datos en bruto en la base de datos, activación o desactivación de opciones de pago, conexión en nombre de un usuario. Estos accesos desencadenan alertas de conexión visibles y sus tokens caducan muy rápido. Un gran poder conlleva una gran responsabilidad.

Roles personalizados: restrinja de forma precisa los derechos de determinadas cuentas de administrador sin abrir todos los derechos globales.

Roles personalizados

La opción Roles personalizados permite restringir los derechos de una cuenta de administrador módulo por módulo y operación por operación. Sirve para delegar una parte de la administración sin conceder todos los derechos globales.

Módulos

Los módulos visibles en una cuenta estándar:

  • Página de inicio (home) — página de entrada y síntesis del día.
  • Horario (schedules) — consulta y modificaciones puntuales.
  • Tablero de control (dashboard) — estadísticas de ocupación y de servicio.
  • Gestión de ausencias (absences) — declaraciones y sustituciones.
  • Gestión horarios (timetables) — construcción, generación y publicación de los horarios.
  • Administración (admin) — usuarios, parámetros, importación / exportación e integraciones.

Según el contrato, pueden aparecer otros módulos, en particular Gestión de personal para la planificación de las tareas de vida escolar y de vigilancia.

Multicentro

Cada centro está aislado lógicamente del lado del servidor y accede a su propio dominio. Los datos de un centro no son visibles para los demás centros desde la aplicación. Sin embargo, previa solicitud, es posible activar un canal de comunicación entre las cuentas distintas, con el fin de compartir los conflictos de ocupación de aulas y de profesores. Resulta muy útil en el marco de edificios compartidos, o para un grupo de centros que comparten recursos.

See also