38 lines
1.9 KiB
Markdown
38 lines
1.9 KiB
Markdown
# 監査・移出パッケージ
|
||
|
||
## 概要
|
||
本パッケージは「販売アシスト1号」のSQLite DBからエクスポートした伝票データと、ハッシュチェーン検証結果を含みます。
|
||
|
||
## ファイル
|
||
- `invoices.jsonl` : 伝票1件ごとに1行のJSON(payload_json含む)
|
||
- `audit_summary.json` : 全件数・赤伝件数・チェーン検証結果
|
||
- `README.md` : 本ファイル
|
||
|
||
## ハッシュチェーン方式(改ざん検知)
|
||
- 各伝票は `payload_json` を正規化JSONとし、その SHA256 を `payload_hash` として保持
|
||
- `chain_hash = SHA256(prev_chain_hash + ':' + payload_hash)` で直前伝票と連鎖
|
||
- 先頭伝票の `prev_chain_hash` は 64文字のゼロ(genesis)
|
||
- `node_id` はDB単位のUUIDで、端末故障時の復旧・識別に使用
|
||
|
||
## 検証手順
|
||
1. `audit_summary.json` の `chain_verification.ok` が `true` であること
|
||
2. `false` の場合は `chain_verification.errors` を確認
|
||
3. 任意:スクリプトで `invoices.jsonl` を読み込み、先頭から `chain_hash` を再計算して一致を確認
|
||
|
||
## 再現性(PDF生成)
|
||
- `payload_json` と `pdf_template_version`/`company_info_version` があれば、
|
||
同一内容のPDFを再生成可能(PDFバイナリの完全一致は保証しない)
|
||
- PDFは永続保存せず、必要時に再生成して利用・共有・削除する方針
|
||
|
||
## 赤伝(相殺)の扱い
|
||
- `is_offset=true` の伝票は赤伝(相殺伝票)
|
||
- `offset_target_uuid` で元伝票を指す
|
||
- 集計・表示ではデフォルト除外(UIの「赤伝を表示」スイッチで切替)
|
||
|
||
## 10年保管について
|
||
- SQLite DB(本エクスポート元)を正とし、10年間保管
|
||
- バックアップ・復旧はDBファイル単位で行う(Google Drive等)
|
||
- 必要に応じて本エクスポートパッケージを外部システムへ移行可能
|
||
|
||
---
|
||
生成日時: 2026-02-21T07:57:34.454286
|