学習記録
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は非推奨であり、受け付けられません。本サービス上に構築された製品は、サーバー間通信で呼び出します。ブラウザからのクロスオリジン呼び出しは受け付けません。
インターフェース
- リソース
- ステートメント、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で導出したレコードごとの鍵を使用します。
- 暗号文バインディング
- 暗号文はその行のIDにバインドされており、別の行に移動された場合は復号されません。
- 鍵の保管
- データベース外の0600のキーファイルまたは環境に保持される3つのキー。デフォルトキーは存在せず、これらがない場合、サービスは起動を拒否します。
- キーローテーション
- インデックスキーはオフラインで再開可能な再暗号化によってローテーションされ、認証情報キーをローテーションすると認証情報が再発行されます。レコードにはそれらを書き込んだキーのIDが保存されるため、ローテーションにデータ移行は不要です。
- 学習者識別子
- テナントごとのキーによるHMAC-SHA256トークンとしてのみ保持され、2つのテナントに存在する1人の学習者からは関連性のない2つのトークンが生成されます。学習者のIDを平文で保持する列はありません。
- クレデンシャルのスコープ
- statements/write、statements/read、statements/read/mine、state、profile、all/read、allのxAPIスコープセット。最も制限されたスコープは、その認証情報自体が書き込んだステートメントのみを読み取ります。
- 不変性
- データベーストリガーが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件のテストすべてにも合格しています。
-
記録は変更されません
一度保存されたステートメントは編集も上書きもできず、標準が定めるとおり、無効化のみが可能です。
-
設計による分離
お客様のレコードは、アプリケーションコードに加えて、データベースが適用するルールによって分離されます。
-
暗号化と仮名化
レコードの内容は保存時に暗号化され、学習者の識別子はキー付きトークンとしてのみインデックス化されます。
-
監査証跡を伴う消去
要請に応じて、学習者の個人データがレコードから削除され、その消去はハッシュチェーン化された改ざん検知可能なログに記録されます。
-
スコープ付きクレデンシャル
クレデンシャルは、自身が書き込んだレコードの読み取りのみに制限するなど、必要な操作だけに限定されます。
ドキュメント、パイロット、統合については、お問い合わせください。