Registri di apprendimento
RODMENA LRS
Disponibile su richiestaL'archivio delle evidenze per l'apprendimento, che registra ciò che è accaduto una volta e lo conserva con esattezza.
RODMENA LRS è un Learning Record Store. Riceve i record delle attività di apprendimento nel formato xAPI, li archivia inalterati e li restituisce tramite l'interfaccia di query xAPI standard. Supera tutti i test della ADL LRS Conformance Test Suite per xAPI 1.0.3 e xAPI 2.0. Il database stesso mantiene separati i record dei clienti l'uno dall'altro. I contenuti dei record sono cifrati a riposo. Gli identificatori dei discenti vengono archiviati esclusivamente in forma pseudonima con chiave. I record archiviati non possono essere modificati, sebbene i dati personali di un discente possano essere cancellati su richiesta e le cancellazioni vengano annotate in un registro tamper-evident.
A chi è destinato. Piattaforme di apprendimento e fornitori di formazione che necessitano di un archivio conforme per i record delle attività dei discenti. Si tratta di un servizio di back-end su cui si basano i prodotti e che viene chiamato dai rispettivi server; i discenti e i browser non comunicano direttamente con esso. REES ne è il primo utilizzatore.
- Stato
- Disponibile su richiesta
- Parte di
- Soluzioni
- Licenza
- Proprietario. Copyright RODMENA LIMITED, tutti i diritti riservati.
- Conformità
- 1,365 Test di conformità xAPI 1.0.3, tutti superati
- 1,435 test di conformità xAPI 2.0, tutti superati
- Verificato 23 settembre 2026
- Tag
- xAPIRecord di apprendimentoConformitàMulti-tenantProtezione dei datiAudit trail
Specifica tecnica
Redatto per un valutatore tecnico. Le righe prive di valori misurati sono omesse.
Standard
- xAPI 1.0.3
- ADL Experience API Specification, versione 1.0.3
- xAPI 2.0
- IEEE 9274.1.1-2023
- Selezione della versione
- Per richiesta, tramite l'header X-Experience-API-Version. Le versioni 1.0.x e 2.0.x sono accettate, mentre una versione mancante o sconosciuta viene rifiutata con 400.
- Suite di conformità
- ADL LRS Conformance Test Suite, ultima esecuzione 23 settembre 2026
- Esito di conformità
- xAPI 1.0.3: 1.365 su 1.365. xAPI 2.0: 1.435 su 1.435.
- Oltre la suite
- Laddove la suite dichiara di non testare un requisito, questo viene coperto da un controllo dedicato. Abbiamo inoltre riscontrato sei test della suite che non eseguono alcuna asserzione e li abbiamo coperti separatamente.
- Per progettazione
- OAuth 1.0 è deprecato e non è accettato. I prodotti basati sul servizio lo chiamano server to server. Non accetta chiamate cross-origin da browser.
Interfaccia
- Risorse
- Statements, State, Activity Profile, Agent Profile, Activities, Agents e About. Tutte le route GET rispondono anche a HEAD.
- Autenticazione
- HTTP Basic utilizzando credenziali rilasciate dal servizio. I secret sono a 256 bit e vengono memorizzati solo come verificatore con chiave. Le credenziali sconosciute, disabilitate e scadute ricevono risposte 401 identiche a livello di byte.
- Sintassi alternativa delle richieste
- Supportato con 1.0.3 e rifiutato con 2.0, come richiede quella specifica.
- Statement firmati
- JWS con RS256, RS384 e RS512, verificato quando è incluso un certificato.
- Allegati
- multipart/mixed, verificato tramite hash SHA-2. 5 MiB per allegato e 1 MiB per corpo di statement, entrambi configurabili.
- Paginazione
- Cursori stateless firmati che rimangono validi anche dopo un riavvio. Tutte le risposte statements includono l'header di coerenza xAPI.
- Idempotenza
- Il reinvio di un id di statement identico è accettato senza duplicazione. Uno in conflitto viene rifiutato con 409.
- Limitazione della frequenza
- Per credenziale, oltre a un budget separato per indirizzo client per le autenticazioni non riuscite.
Isolamento e sicurezza
- Isolamento dei tenant
- Sicurezza a livello di riga PostgreSQL, abilitata e forzata su ogni tabella che contiene dati dei tenant. Il ruolo del database dell'applicazione non possiede nulla e non può aggirarla. Ogni transazione ricava il proprio tenant esclusivamente dalla credenziale autenticata.
- Isolamento, applicato
- Un test del catalogo fa fallire la build se una qualsiasi tabella tenant, o una qualsiasi partizione creata a runtime, è priva della policy.
- Cifratura a riposo
- AES-256-GCM sui corpi degli statement, sui documenti, sugli allegati, sulle definizioni delle attività e sulle identità delle credenziali, con una chiave per record derivata tramite HKDF-SHA256.
- Associazione del testo cifrato
- Il testo cifrato è vincolato all'identità della propria riga e non viene decifrato se viene spostato in un'altra riga.
- Custodia delle chiavi
- Tre chiavi conservate all'esterno del database, in file di chiavi con permessi 0600 o nell'ambiente. Non esiste una chiave predefinita e il servizio rifiuta di avviarsi senza di esse.
- Rotazione delle chiavi
- La chiave di indice ruota tramite un rekey offline e ripristinabile, mentre la rotazione della chiave delle credenziali comporta la riemissione delle credenziali. Poiché i record memorizzano l'ID della chiave che li ha scritti, una rotazione non richiede alcuna migrazione dei dati.
- Identificatori del discente
- Conservati solo come token HMAC-SHA256 con una chiave specifica per tenant; uno stesso discente in due tenant distinti genera due token non correlati. Nessuna colonna contiene l'identità di un discente in chiaro.
- Ambiti delle credenziali
- L'insieme di scope xAPI include statements/write, statements/read, statements/read/mine, state, profile, all/read e all. Il più restrittivo legge solo gli statement scritti da quella stessa credenziale.
- Immutabilità
- I trigger del database mantengono statement e allegati in sola aggiunta (append-only) rifiutando UPDATE, DELETE e TRUNCATE. Le uniche modifiche consentite sono il flag di annullamento (voiding) e la cancellazione definitiva.
- Trasporto del database
- TLS con verifica completa del certificato e dell'hostname è obbligatorio, e il servizio rifiuta di avviarsi in sua assenza.
- Eventi di audit delle richieste
- Un evento strutturato per richiesta contenente request id, credential key id, tenant, metodo, risorsa, stato, numero di record, durata e nomi dei filtri. I valori del discente nei filtri vengono tokenizzati prima di essere registrati.
- Rilevabilità delle manomissioni
- Il registro delle cancellazioni è concatenato tramite hash e un singolo comando verifica l'intera catena dal primo all'ultimo anello.
Protezione dei dati
- Cancellazione
- Una rimozione per pseudonimizzazione. Il discente viene sostituito da uno pseudonimo casuale in qualsiasi posizione uno statement possa indicarlo, le risposte a testo libero e gli allegati vengono rimossi, e i relativi documenti State e Agent Profile vengono eliminati. L'eliminazione fisica non viene utilizzata.
- Cancellazione, registrata
- Le cancellazioni vengono registrate nel log con concatenazione hash (hash-chained). Poiché il comando rifiuta una cancellazione che non corrisponde ad alcun elemento, un discente digitato in modo errato non può passare per una cancellazione completata.
- Backup
- Una cancellazione è completa una volta scaduti i backup effettuati prima di essa. Dopo un ripristino, il registro delle cancellazioni viene rieseguito.
- Conservazione
- Per mese di calendario, per istanza. Il mese viene staccato, esportato come un file per tenant e rimosso. La rimozione viene rifiutata se il numero di righe esportate non corrisponde.
- Conservazione, per cliente
- Un cliente che necessita di un proprio periodo di conservazione necessita di una propria istanza.
- Esportazione all'uscita
- Tramite l'interfaccia xAPI standard, un cliente può sfogliare tutti i propri record e i relativi allegati in formato JSON xAPI ed estrarli interamente.
- Residenza
- Un'istanza viene eseguita nella regione richiesta da un contratto. Il servizio necessita solo di un database PostgreSQL.
Operazioni e verifica
- Modello di distribuzione
- Un'istanza multi-tenant condivisa, oppure un'istanza dedicata per cliente.
- Le sonde dimostrano di poter fallire
- L'harness non considererà superata alcuna delle 47 probe comportamentali finché non sarà stato dimostrato che tale probe dia esito FAIL a fronte di una build deliberatamente non funzionante. Eseguiamo inoltre la suite di conformità su build non funzionanti.
Cosa fa
-
Testato per la conformità
Supera tutti i 1.365 test dell'ADL LRS Conformance Test Suite per xAPI 1.0.3 e tutti i 1.435 per xAPI 2.0.
-
I record non cambiano mai
Una volta memorizzato, uno statement non può essere modificato o sovrascritto, ma solo annullato, come specifica lo standard.
-
Isolati per progettazione
I record dei clienti sono mantenuti separati mediante regole applicate direttamente dal database, oltre che dal codice dell'applicazione.
-
Crittografato e pseudonimo
Il contenuto dei registri è cifrato a riposo, e gli identificatori dei discenti sono indicizzati solo come token con chiave.
-
Cancellazione con audit trail
Su richiesta, i dati personali di un discente vengono rimossi dai relativi record e la cancellazione viene registrata in un log tamper-evident con catena di hash.
-
Credenziali con ambito definito
Una credenziale è limitata alle sole operazioni necessarie, fino alla lettura esclusiva dei record che ha scritto essa stessa.
Per la documentazione, un progetto pilota o un'integrazione, ci contatti.