Ir al contenido

Registros de aprendizaje

RODMENA LRS

Disponible a petición

El almacén de evidencias para el aprendizaje, que registra lo ocurrido una vez y lo conserva con total exactitud.

RODMENA LRS es un Learning Record Store. Recibe registros de actividad de aprendizaje en formato xAPI, los almacena sin modificaciones y los devuelve a través de la interfaz de consulta estándar de xAPI. Supera todas las pruebas de la ADL LRS Conformance Test Suite para xAPI 1.0.3 y xAPI 2.0. La propia base de datos mantiene separados los registros de los clientes entre sí. El contenido de los registros se cifra en reposo. Los identificadores de los alumnos se almacenan únicamente de forma seudonimizada con clave. Los registros almacenados no se pueden modificar, aunque los datos personales de un alumno pueden eliminarse previa solicitud y las supresiones se inscriben en un registro con detección de manipulaciones.

Para quién es. Plataformas de aprendizaje y proveedores de formación que necesitan un almacén conforme a los estándares para los registros de actividad de los alumnos. Se trata de un servicio de back-end sobre el que se desarrollan productos y al que estos llaman desde sus servidores; los alumnos y los navegadores no se comunican con él directamente. REES es su primer consumidor.

Estado
Disponible a petición
Forma parte de
Soluciones
Licencia
Software propietario. Copyright RODMENA LIMITED, todos los derechos reservados.
Conformidad
1,365 pruebas de conformidad xAPI 1.0.3, todas superadas
1,435 pruebas de conformidad xAPI 2.0, todas superadas
Verificado el 23 de septiembre de 2026
Etiquetas
xAPIRegistros de aprendizajeConformidadMultiinquilinoProtección de datosRegistro de auditoría

Especificación técnica

Redactado para un evaluador técnico. Se omiten las filas que no tienen ningún valor medido.

Estándares

xAPI 1.0.3
Especificación de ADL Experience API, versión 1.0.3
xAPI 2.0
IEEE 9274.1.1-2023
Selección de versión
Por solicitud, mediante la cabecera X-Experience-API-Version. Se aceptan 1.0.x y 2.0.x, y una versión ausente o desconocida se rechaza con un 400.
Suite de conformidad
ADL LRS Conformance Test Suite, última ejecución el 23 de septiembre de 2026
Resultado de conformidad
xAPI 1.0.3: 1.365 de 1.365. xAPI 2.0: 1.435 de 1.435.
Más allá de la suite
Donde la suite indica que no prueba un requisito, una comprobación específica lo cubre. También encontramos seis pruebas de la suite que no realizan aserciones y las cubrimos por separado.
Por diseño
OAuth 1.0 está obsoleto y no se acepta. Los productos basados en el servicio lo llaman de servidor a servidor. No admite llamadas de origen cruzado desde un navegador.

Interfaz

Recursos
Statements, State, Activity Profile, Agent Profile, Activities, Agents y About. Todas las rutas GET también responden a HEAD.
Autenticación
HTTP Basic mediante las credenciales que emite el servicio. Los secretos son de 256 bits y se almacenan únicamente como un verificador con clave. Las credenciales desconocidas, deshabilitadas y caducadas reciben respuestas 401 idénticas a nivel de bytes.
Alternate Request Syntax
Compatible con la versión 1.0.3 y rechazado con la 2.0, tal como exige esa especificación.
Declaraciones firmadas
JWS con RS256, RS384 y RS512, verificado cuando se incluye un certificado.
Adjuntos
multipart/mixed, cotejado mediante hash SHA-2. 5 MiB por archivo adjunto y 1 MiB por cuerpo de declaración, ambos configurables.
Paginación
Cursores sin estado firmados que siguen siendo válidos tras un reinicio. Todas las respuestas de declaraciones llevan el encabezado de consistencia de xAPI.
Idempotencia
El reenvío de un identificador de declaración idéntico se acepta sin duplicación. Uno en conflicto se rechaza con 409.
Limitación de frecuencia
Por credencial, más un presupuesto independiente por dirección de cliente para autenticaciones fallidas.

Aislamiento y seguridad

Aislamiento de inquilinos
Seguridad a nivel de fila de PostgreSQL, habilitada y forzada en todas las tablas que contienen datos de inquilinos. El rol de base de datos de la aplicación no posee nada y no puede eludirla. Cada transacción toma su inquilino únicamente de la credencial autenticada.
Aislamiento, aplicado
Una prueba del catálogo hace fallar la compilación si alguna tabla de inquilino, o alguna partición creada en tiempo de ejecución, carece de la política.
Cifrado en reposo
AES-256-GCM en cuerpos de declaración, documentos, archivos adjuntos, definiciones de actividad e identidades de credenciales, con una clave por registro derivada mediante HKDF-SHA256.
Vinculación de texto cifrado
Un texto cifrado está vinculado a la identidad de su fila y no se descifrará si se traslada a otra fila.
Custodia de claves
Tres claves custodiadas fuera de la base de datos, en archivos de claves con permisos 0600 o en el entorno. No hay clave predeterminada, y el servicio se niega a arrancar sin ellas.
Rotación de claves
La clave de índice se rota mediante un cambio de clave («rekey») sin conexión y reanudable, y la rotación de la clave de credenciales vuelve a emitir las credenciales. Dado que los registros almacenan el ID de la clave con la que se escribieron, una rotación no requiere ninguna migración de datos.
Identificadores de alumnos
Se conservan únicamente como tokens HMAC-SHA256 bajo una clave por inquilino, y un alumno en dos inquilinos genera dos tokens no relacionados. Ninguna columna almacena la identidad de un alumno en texto no cifrado.
Ámbitos de credenciales
El conjunto de ámbitos de xAPI de statements/write, statements/read, statements/read/mine, state, profile, all/read y all. El más restrictivo lee únicamente las declaraciones que esa misma credencial escribió.
Inmutabilidad
Los activadores de la base de datos mantienen las declaraciones y los archivos adjuntos en modo solo anexión al rechazar UPDATE, DELETE y TRUNCATE. Los únicos cambios permitidos son el indicador de anulación y un borrado.
Transporte de base de datos
TLS con verificación completa de certificado y nombre de host es obligatorio, y el servicio se niega a iniciarse sin él.
Eventos de auditoría de solicitudes
Un evento estructurado por solicitud que incluye el id de solicitud, el id de clave de credencial, el inquilino, el método, el recurso, el estado, el recuento de registros, la duración y los nombres de los filtros. Los valores del alumno en los filtros se tokenizan antes de registrarse.
Detección de manipulaciones
El registro de borrado está encadenado por hash, y un único comando verifica toda la cadena desde el primer eslabón hasta el último.

Protección de datos

Supresión
Una eliminación por seudonimización. El alumno se sustituye por un seudónimo aleatorio en cualquier posición en la que una declaración pueda nombrarlo, se eliminan las respuestas de texto libre y los archivos adjuntos, y se borran sus documentos de State y Agent Profile. No se utiliza el borrado físico.
Supresión, registrada
Los borrados se escriben en el registro encadenado por hash. Dado que el comando rechaza un borrado que no coincide con nada, un alumno escrito de forma errónea no puede pasar por un borrado completado.
Copias de seguridad
Una supresión se completa una vez que han caducado las copias de seguridad realizadas antes de ella. Tras una restauración, se reproduce el registro de supresiones.
Retención
Por mes natural, por instancia. El mes se separa, se exporta como un archivo por inquilino y se elimina. La eliminación se rechaza a menos que el número de filas exportadas coincida.
Retención, por cliente
Un cliente que necesite su propio periodo de conservación necesita su propia instancia.
Exportación al salir
A través de la interfaz xAPI estándar, el cliente puede paginar todos sus registros y sus archivos adjuntos como xAPI JSON y llevárselo todo.
Residencia
Una instancia se ejecuta en la región que exige un contrato. El servicio solo necesita una base de datos PostgreSQL.

Operaciones y verificación

Modelo de despliegue
Una instancia multiinquilino compartida, o una instancia dedicada por cliente.
Las sondas demuestran que pueden fallar
El entorno de pruebas no dará por superada ninguna de las 47 comprobaciones de comportamiento hasta que se haya demostrado que dicha comprobación arroja el resultado FAIL frente a una compilación rota a propósito. También ejecutamos el conjunto de pruebas de conformidad frente a compilaciones rotas.

Qué hace

  • Conformidad probada

    Supera las 1.365 pruebas del ADL LRS Conformance Test Suite para xAPI 1.0.3, y las 1.435 para xAPI 2.0.

  • Los registros nunca cambian

    Una vez almacenada, una declaración no puede editarse ni sobrescribirse, solo anularse, tal como especifica el estándar.

  • Aislado por diseño

    Los registros de los clientes se mantienen separados mediante reglas que aplica la base de datos, además del código de la aplicación.

  • Cifrado y seudonimizado

    El contenido de los registros se cifra en reposo, y los identificadores de alumnos solo se indexan como tokens con clave.

  • Supresión con un registro de auditoría

    Previa solicitud, los datos personales de un alumno se eliminan de sus registros, y la supresión queda registrada en un registro con detección de manipulaciones y encadenamiento mediante hash.

  • Credenciales con ámbito

    Una credencial se limita a las operaciones que necesita, llegando incluso a leer únicamente los registros que ella misma ha escrito.

Para documentación, un piloto o una integración, contacte con nosotros.