学習記録
RODMENA LRS
近日公開学習のためのエビデンスストア:起きたことを一度だけ記録し、正確に保持します。
RODMENA LRSはLearning Record Storeです。xAPI形式の学習活動の記録を受け取り、そのまま保存し、標準のxAPIクエリインターフェースを通じて返します。xAPI 1.0.3およびxAPI 2.0のADL LRS Conformance Test Suiteのすべてのテストに合格しています。各お客様の記録は、データベース自体の中で他のすべてのお客様の記録から分離されています。記録の内容は保存時に暗号化され、学習者の識別子は鍵付きの仮名化された形式でのみ保存されます。保存された記録は変更できません。学習者の個人データは要求に応じて消去でき、各消去は改ざん検知可能なログに記録されます。
対象となるお客様。 適合した形で学習者の活動記録を保管する必要がある学習プラットフォームおよびトレーニングプロバイダー向けです。これはバックエンドサービスであり、製品はその上に構築され、各社のサーバーから呼び出します。学習者やブラウザーが直接やり取りすることはありません。REESが最初の利用者です。
- ステータス
- 近日公開
- 所属
- 提供内容
- ライセンス
- プロプライエタリ。Copyright RODMENA LIMITED、All rights reserved。
- 適合性
- 1,365 xAPI 1.0.3適合性テスト、すべて合格
- 1,435 xAPI 2.0適合性テスト、すべて合格
- 2026年9月23日に検証済み
- タグ
- xAPI学習記録適合性マルチテナントデータ保護監査証跡
技術仕様
技術評価者向けに記載しています。測定値のない行は省略しています。
標準
- xAPI 1.0.3
- ADL Experience API Specification、バージョン1.0.3
- xAPI 2.0
- IEEE 9274.1.1-2023
- バージョン選択
- リクエストごとに、X-Experience-API-Versionヘッダーによって判定します。1.0.xと2.0.xが受け入れられ、欠落または不明なバージョンは400で拒否されます。
- 適合性テストスイート
- ADL LRS Conformance Test Suite、最終実行日2026年9月23日
- 適合性結果
- xAPI 1.0.3:1,365件中1,365件。xAPI 2.0:1,435件中1,435件。
- スイートの対象外の検証
- スイートがテストしないと明示している要件は、それぞれ専用のチェックでカバーされています。何もアサートしない6件のスイートテストが特定され、別途カバーされています。
- 設計によるもの
- OAuth 1.0は非推奨のため、受け付けていません。このサービスは、その上に構築された製品からサーバー間で呼び出されるものであり、ブラウザからのクロスオリジン呼び出しは受け付けていません。
インターフェース
- リソース
- Statements、State、Activity Profile、Agent Profile、Activities、Agents、About。すべてのGETルートでHEADをサポートします。
- 認証
- サービスが発行するクレデンシャルによるHTTP Basicです。256ビットのシークレットを、キー付き検証子としてのみ保存します。不明、無効、期限切れのクレデンシャルは、バイト単位で同一の401応答を受け取ります。
- 代替リクエスト構文
- 1.0.3ではサポートされ、2.0では拒否されます。これは当該仕様が要求するとおりです。
- 署名済みステートメント
- RS256、RS384、RS512によるJWSで、証明書が含まれる場合に検証されます。
- 添付ファイル
- multipart/mixed、SHA-2ハッシュで照合されます。添付ファイルごとに5 MiB、ステートメント本文ごとに1 MiBで、いずれも設定可能です。
- ページング
- 再起動後も有効な署名付きステートレスカーソルを備え、すべてのステートメント応答にxAPI整合性ヘッダーが付きます。
- 冪等性
- 同一のステートメントIDを再送信しても、重複することなく受け入れられます。競合するものは409で拒否されます。
- レート制限
- クレデンシャルごとに制限し、認証失敗にはクライアントアドレスごとに別枠の上限を設けます。
分離とセキュリティ
- テナント分離
- PostgreSQLの行レベルセキュリティは、テナントデータを保持するすべてのテーブルで有効化され、強制されています。アプリケーションのデータベースロールは何も所有せず、これをバイパスできません。各トランザクションは、認証済みクレデンシャルのみからテナントを取得します。
- 分離の強制確認
- テナントテーブル、または実行時に作成されたパーティションがポリシーを欠いている場合、カタログテストはビルドを失敗させます。
- 保存時の暗号化
- ステートメント本文、ドキュメント、添付ファイル、アクティビティ定義、クレデンシャル識別子にAES-256-GCMを適用し、HKDF-SHA256で導出したレコードごとの鍵を使用します。
- 暗号文バインディング
- 各暗号文はその行の識別情報に結び付けられているため、別の行に移動しても復号できません。
- 鍵の保管
- データベース外の0600のキーファイルまたは環境に保持される3つのキー。デフォルトキーは存在せず、これらがない場合、サービスは起動を拒否します。
- キーローテーション
- インデックスキーはオフラインで再開可能な再鍵生成によってローテーションされ、クレデンシャルキーをローテーションするとクレデンシャルが再発行されます。すべてのレコードは書き込みに使用したキーのIDを保存するため、ローテーションにデータ移行は不要です。
- 学習者識別子
- テナントごとの鍵の下でHMAC-SHA256トークンとしてのみ保持されるため、2つのテナントにおける同一の学習者は無関係なトークンを生成します。学習者の識別情報を平文で保持する列はありません。
- クレデンシャルのスコープ
- xAPIのスコープセット:statements/write、statements/read、statements/read/mine、state、profile、all/read、allです。最も狭い読み取りは、そのクレデンシャル自身が書き込んだステートメントのみを読み取ります。
- 不変性
- ステートメントと添付ファイルは追加専用であり、UPDATE、DELETE、TRUNCATEを拒否するデータベーストリガーによって強制されます。許可される変更は、無効化フラグと消去のみです。
- データベーストランスポート
- 完全な証明書検証とホスト名検証を伴うTLSが必須であり、そうでない場合、サービスは起動を拒否します。
- リクエスト監査イベント
- リクエストごとに1件の構造化イベントを記録し、リクエストID、クレデンシャルキーID、テナント、メソッド、リソース、ステータス、レコード件数、所要時間、フィルター名を含みます。フィルター内の学習者値は、ログに記録される前にトークン化されます。
- 改ざん検知
- 消去ログはハッシュチェーンで連結されており、1つのコマンドでチェーン全体をエンドツーエンドで検証できます。
データ保護
- 消去
- 仮名化による墨消しです。ステートメントが学習者を特定し得るすべての位置で、学習者はランダムな仮名に置き換えられ、自由記述の回答と添付ファイルは削除され、その学習者のStateドキュメントとAgent Profileドキュメントは削除されます。物理的な削除は行いません。
- 消去の記録
- すべての消去はハッシュチェーン化されたログに書き込まれます。このコマンドは何にも一致しない消去を拒否するため、学習者の指定を誤った消去が、完了した消去のように見えることはありません。
- バックアップ
- 消去は、それ以前に取得されたバックアップが期限切れになった時点で完了します。復元後は、消去ログが再適用されます。
- 保持
- 暦月ごと、インスタンス単位です。当月分は切り離され、テナントごとに1ファイルとしてエクスポートされたうえで削除されます。エクスポートされた行数が一致しない限り、削除は拒否されます。
- 保持期間(お客様ごと)
- 独自の保持期間を必要とするお客様には、独自のインスタンスが必要です。
- 契約終了時のエクスポート
- 標準のxAPIインターフェースです。お客様はすべてのレコードを添付ファイルごとxAPI JSONとしてページングし、一括で取得できます。
- データ所在
- インスタンスは、契約が要求するリージョンで稼働します。サービスに必要なのはPostgreSQLデータベースのみです。
運用と検証
- デプロイモデル
- 共有マルチテナントインスタンス、またはお客様ごとの専用インスタンス。
- 失敗できることを示すプローブ
- 47件の動作プローブはそれぞれ、合格として計上される前に、意図的に壊したビルドに対してFAILすることを示さなければならず、ハーネスがそれを強制します。適合性スイートも同じ理由で壊したビルドに対して実行されます。
できること
-
適合性テスト済み
xAPI 1.0.3向けADL LRS Conformance Test Suiteの1,365件のテストすべてに合格し、xAPI 2.0向けの1,435件のテストすべてにも合格しています。
-
記録は変更されません
一度保存されたステートメントは編集も上書きもできず、標準が定めるとおり、無効化のみが可能です。
-
設計による分離
各お客様の記録は、アプリケーションコードだけでなく、データベース内で適用されるルールによって分離されています。
-
暗号化と仮名化
レコードの内容は保存時に暗号化され、学習者の識別子はキー付きトークンとしてのみインデックス化されます。
-
監査証跡を伴う消去
学習者の個人データは、要求に応じてその記録から削除され、すべての消去は改ざん検知可能なハッシュチェーンログに記録されます。
-
スコープ付きクレデンシャル
各クレデンシャルは、必要な操作のみに制限され、自身が書き込んだ記録の読み取りだけに限定することもできます。
ドキュメント、パイロット、統合については、お問い合わせください。