コンテンツにスキップ
getnextpdf.com

Enterprise エディション

AST 監査証跡

NextPDF Enterprise は、すべての AST ミューテーションを追記専用のドキュメントごとの監査証跡として記録し、下流のパイプライン向けに、意味的に境界づけられた引用アンカー付きの AST チャンクを生成します。この証跡は、監査およびトレーサビリティのワークフローをサポートします。法的証明やドキュメント完全性の認証ではありません。

この機能は NextPDF Enterprise (nextpdf/enterprise) に同梱されており、Enterprise ティアのライセンスエンベロープで有効化されます。そのエンタイトルメントのないデプロイメントでは、この機能のクラスは読み込まれません。エディションを比較してライセンスを取得

Terminal window
composer require nextpdf/enterprise:^3

AstAuditTrailInterface が記録コントラクトです。record($documentSourceHash, $log) は、Pro の AST MutationLog の各エントリを AstAuditEntry に変換して追記します。同じドキュメントハッシュで繰り返し呼び出すと、エントリが累積されます。実装はコントラクトとして追記専用です。いったん記録されたエントリは、変更も削除もできません。findByDocument($hash) は、1 つのドキュメントのエントリを挿入順で返します。count() は、すべてのドキュメントにわたる合計を返します。InMemoryAstAuditTrail がリファレンス実装です。

AstAuditEntry は、1 件のミューテーションの不変レコードです。ドキュメントソースハッシュ、正規ノード ID、ミューテーションタイプ (updated / inserted / deleted)、0 始まりのページインデックス、変更前/変更後の属性スナップショット、およびエントリが記録された UTC 時刻を保持します。取得はドキュメントハッシュごとにスコープされるため、監査履歴はドキュメントごとに分離された状態を保ちます。

AstAwareChunker は、AST を深さ優先で走査し、ドキュメント構造を尊重する AstChunk インスタンスを出力します。見出しは新しいチャンクを開始し、リーフテキストは構成されたサイズまで蓄積され、オーバーラップウィンドウが分割境界をまたいだ連続性を保ちます。各チャンクは、最初に寄与したノードのノード ID、ページインデックス、バウンディングボックス、およびノードタイプを保持するため、下流のシステムは正確なソース位置を引用できます。

このモジュールは、ミューテーション履歴を記録し、構造化されたチャンクを生成します。完全性を認証したり、法的証明を提供したりするものではありません。

  • 監査証跡は、構成されたストア内ではコントラクトとして追記専用です。改ざん検知性と否認防止性は、それをどこにどのように永続化しタイムスタンプを付与するか (Evidence を参照) の性質であり、このモジュール単独が保証するものではありません。
  • ミューテーションを記録することは、それが起きたことを記録します。変更を検証したり承認したりするものではありません。
  • チャンクの引用はソース位置を指します。これはナビゲーションの補助であり、適合性の主張ではありません。

監査証跡は監査ワークフローをサポートします。法的証明でも監査認証でもありません。

  • NextPDF Core / Pro AST は、AST モデルとミューテーションログを提供します。
  • NextPDF Enterprise AST (このページ) は、それらのミューテーションに対する追記専用のドキュメントごとの監査証跡と、引用アンカー付きチャンカーを追加します。Pro のミューテーションログを利用するものであり、AST モデルを置き換えるものではありません。

要となる決定はスコープの抑制です。このモジュールはミューテーションが起きたことを記録します。耐久性、改ざん検知性、否認防止性は、バッキングストアと Evidence モジュールに委譲されます。これにより約束が誠実に保たれます。すなわち、監査担当者のための記録保持の補助であり、モジュール単独では裏付けられない認証ではありません。取得は documentSourceHash をキーとするため、あるドキュメントの履歴が別のドキュメントに漏れ出すことはありません。チャンカーはすべてのチャンクを最初のノードにアンカーし、maxChunkCharsoverlapChars を事前に検証するため、引用は正確に保たれます。永続化とレジデンシーはオペレーターの手に委ねられるため、同じサーフェスが WORM 対応のエビデンスストアと軽量なパイプラインの双方に対応します。

設計の背景: 監査担当者に手渡せるコンプライアンス

クラス / インターフェース責務
AstAuditTrailInterface追記専用の記録とドキュメントごとの取得のコントラクト。
AstAuditEntry変更前/変更後のスナップショットを伴う 1 件のミューテーションの不変レコード。
InMemoryAstAuditTrailリファレンスの追記専用証跡実装。
AstAwareChunker構造を尊重する引用アンカー付き AST チャンカー。
AstChunkノード ID、ページインデックス、bbox、ノードタイプを持つ 1 つのチャンク。
$trail->record($documentSourceHash, $mutationLog);
$entries = $trail->findByDocument($documentSourceHash);
$trail->record($documentSourceHash, $mutationLog);
foreach ($trail->findByDocument($documentSourceHash) as $entry) {
$logger->info('ast.audit', [
'node' => $entry->nodeId,
'type' => $entry->mutationType,
'page' => $entry->pageIndex,
'recorded' => $entry->occurredAt->format(DATE_RFC3339),
]);
}
// Persist the trail in a WORM-backed store for tamper-evidence (see Evidence).
  • 同じ MutationLog を 2 回記録するとエントリが累積されます。冪等性が必要な場合は上流で重複排除してください。
  • インメモリの証跡は永続的ではありません。本番デプロイメントでは、永続的な AstAuditTrailInterface を提供してください。
  • 追記専用はストアのコントラクトであり、暗号的な性質ではありません。改ざん検知性のために Evidence パッケージングと組み合わせてください。

記録はミューテーションエントリ数に対して線形です。チャンク化は 1 回の深さ優先 AST 走査です。コストはノード数と構成されたチャンクサイズに応じて増減します。

変更前/変更後のスナップショットには、ドキュメントテキストが含まれる場合があります。証跡は保存時に機密として扱ってください。追記専用のコントラクトは、この API を通じたインプレース編集を防ぎますが、永続性と改ざん検知性はバッキングストアに依存します。

ミューテーションスナップショットには、ドキュメントから抽出された個人データが含まれる場合があります。永続化はお客様の証跡実装に委譲されるため、レジデンシーはお客様のストアに従います。記録されたスナップショットに対して、保持および最小化の管理策を適用してください。

ノード ID、ミューテーションタイプ、ページインデックス、およびタイムスタンプはログに記録しても安全です。変更前/変更後のスナップショットにはドキュメントコンテンツが含まれる場合があります。共有シンクへ転送する前に秘匿化してください。

挙動参照ステータス
インクリメンタル更新 / 完全性コンテキストISO 32000-2:2020 §12.8参照済み (改ざん検知性のためのコンテキスト)

この表は、このモジュールが動作する仕様コンテキストを記録したものです。監査証跡は記録保持の補助であり、認証でも法的証明でもありません。

このモジュールは暗号操作を実行しません。改ざん検知性のためのハッシュ化、署名、タイムスタンプ付与は、Evidence、Security、Signature の各モジュールが処理します。

入力はミューテーションログです。緩和策は、追記専用の記録コントラクト、履歴を分離するためのドキュメントごとのスコープ、および永続性と改ざん検知性の WORM 対応ストアと Evidence モジュールへの委譲です。

  • 監査証跡は、構成されたストア内ではコントラクトとして追記専用です。いったん記録されたエントリは、この API を通じて変更も削除もできません。
  • 各エントリは、1 件のミューテーションの不変レコードです (ドキュメントソースハッシュ、正規ノード ID、ミューテーションタイプ、ページインデックス、変更前/変更後のスナップショット、記録された UTC 時刻)。取得はドキュメントハッシュごとにスコープされます。
  • 同じミューテーションログを 2 回記録するとエントリが累積されます — 冪等性が必要な場合は上流で重複排除してください。
  • チャンカーは AST を深さ優先で走査し、正確なソース引用のためにノード ID、ページインデックス、バウンディングボックス、ノードタイプを保持する構造を尊重したチャンクを出力します。
  • ミューテーションを記録することは、それが起きたことを記録します。変更を検証したり承認したりするものではなく、チャンクの引用はナビゲーションの補助であり、適合性の主張ではありません。

このページは、外部から観測できる挙動とサポート対象の公開 API サーフェスのみを説明します。内部の名前空間パス、ヘルパークラス、メカニズムテーブル、ランブックのファイル名、チケットプレフィックスは範囲外です。

NextPDF Core / Pro AST は、AST モデルとミューテーションログを提供します。追記専用のドキュメントごとの監査証跡と引用アンカー付きチャンカーには、Core ティアの同等品はありません。Enterprise サーフェスはミューテーションログを利用するものであり、AST モデルを置き換えるものではありません。

NextPDF Pro AST は、AST モデルとミューテーションログを提供しますが、追記専用のドキュメントごとの監査証跡や引用アンカー付きチャンカーは提供しません。これらは nextpdf/enterprise パッケージにのみ同梱されています。Enterprise サーフェスは Pro のミューテーションログを利用します。

記録コントラクト、ドキュメントごとの取得、およびチャンカーは、挙動レベルで記述しています。リファレンスのインメモリ証跡は文書化されています。永続的な永続化はホストが提供し、内部のストアの内部仕様は公開サーフェスの範囲外です。

追記専用はストアのコントラクトであり、暗号的な性質ではありません。オペレーターは永続的な証跡実装を提供し、改ざん検知性のために WORM 対応ストアにそれを永続化する責任を負います。永続性と否認防止性は、そのストアと Evidence モジュールに依存し、このモジュール単独には依存しません。ミューテーションスナップショットには個人データが含まれる場合があります。レジデンシーはオペレーターのストアに従います。

AST 監査証跡サーフェスには輸出管理の制限は適用されません。監査証跡は監査ワークフローをサポートします。法的証明でも監査認証でもありません。このドキュメントは法的見解ではありません。ご自身のコンプライアンスおよび法務の助言者にご相談ください。