テーマ
書類 / ファイル管理
目的
- 保険証券、申込書、本人確認書類、案件メモなど、紙 / 画像で発生する情報を電子化して紐付け管理
- 顧客 / 契約 / スケジュール / アクティビティに添付できる
ストレージ
- 実体は Cloudflare R2 に保存
- メタ情報(オーナー、紐付け、サイズ、種別、ハッシュ)は D1 の
filesテーブル
添付できる対象
| 添付先 | 例 |
|---|---|
| 顧客 | 名刺、本人確認書類 |
| 契約 | 証券、申込書、約款 |
| スケジュール | 訪問予定の参考資料 |
| アクティビティ | 商談メモのスキャン、写真 |
| LINE メッセージ | 受信した画像 / ファイル(自動取り込み) |
種別 / サイズ制限(暫定)
| 種別 | 上限 | 用途 |
|---|---|---|
| 画像 (JPEG / PNG / HEIC / WebP) | 20MB | 証券スキャン、本人確認 |
| 30MB | 約款、申込書 | |
| Office (xlsx / docx) | 20MB | 見積書、提案書 |
| その他 | 10MB | 補助資料 |
プラン別の総容量上限は 課金とプラン で規定(未確定)。
アップロード
- 直アップロード(署名付きPUT URL)でWorkerを経由しない
- 完了通知でメタを確定。クライアント計算した SHA-256 をサーバ側でも検証
ダウンロード / 表示
- 公開しない(テナント越境禁止)
- 短時間有効の 署名付き GET URL を都度発行
- 画像は CRM 内ビューアでサムネイル表示。原寸はダウンロードか別タブ
- PDF はインラインプレビュー(ブラウザネイティブ)
サムネイル / プレビュー
- 画像は WebP に変換してサムネイル化(クライアント側 or 後段ジョブ)
- PDF の1ページ目サムネイルは後続検討
検索
- ファイル名 / メモ / タグ / 添付先(顧客名・契約番号)で検索
- OCR 全文検索は MVP では入れない(後続検討)
削除
- 論理削除のみ(
deleted_at)。R2 のオブジェクトは即削除せず、遅延ジョブで物理削除 - 添付元のリソース削除時は連動削除(オプションで保留可)
機密区分とセキュリティ
アップロード時に 機密区分 を選択する(既定 internal):
| 区分 | 用途 | 暗号化 | プレビュー / サムネ | 署名URL有効期限 |
|---|---|---|---|---|
public | テナント外への共有想定 | R2 SSE | ✅ | 60分 |
internal | テナント内で広く参照 | R2 SSE | ✅ | 30分 |
confidential | 業務上重要 | R2 SSE + アクセス強監査 | ✅ | 5分 |
sensitive | 要配慮個人情報を含む | アプリ層 AES-GCM (テナントDEK) + R2 SSE | ❌ | 2分 |
sensitiveファイルは Worker 経由でアップロード/ダウンロード(直署名URLは使わない)- LINE 受信添付は既定
internal、ユーザー操作で昇格可能 - ウイルススキャン: 後続検討(外部スキャナ連携)
- 詳細はセキュリティ設計参照
監査
- アップロード / ダウンロード / 削除を監査ログへ
- ダウンロードは「誰が・いつ・どのファイルを」を必ず残す(個人情報の追跡性)
権限
| 操作 | OWNER | MEMBER | ADMIN |
|---|---|---|---|
| アップロード / 自添付の閲覧 | ✅ | ✅ | 参照のみ |
| 他担当の添付の閲覧 | ✅ | 設定依存 | 参照のみ |
| 削除 | ✅ | ❌ | ✅(物理) |