Passare al contenuto

Registri di apprendimento

RODMENA LRS

Disponibile su richiesta

L'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.