本文へ移動

2026-05-01 時点の資料です。読みやすさのために、一部の文字の色を濃くしています。

要件/ Functional & non-functional

要件は機能要件 10 カテゴリ・合計 約 135 件と、非機能要件 5 カテゴリで構成しています。本ページでは、各カテゴリの担当範囲・要件数のサマリ、代表的な要件のハイライト、非機能要件の数値ターゲットを示します。要件 ID(F-*)は設計書の参照キーです。

01

機能要件のサマリFunctional categories

機能要件は要件 ID のプレフィックスで 10 カテゴリに分かれます。それぞれの担当範囲と要件数の目安、参照すべき機能カタログ ID(FE-*)を表にまとめます。

カテゴリ担当範囲要件数
F-ACCアカウント・組織 — 社内 SSO / 社外メール + Google / MFA / 信頼デバイス / バックアップコード / プロフィール / アカウント無効化・5 年消去14
F-BOXBox(共有箱)— CRUD / メンバー 4 ロール / 検索 / Drive 同期設定 / 可視性 3 段階 / 参加申請 / 最近のファイル / アクティビティタブ16
F-FILEファイル・フォルダ — UL / 差し替え / 世代管理 / フォルダ / バッジ / プレビュー / ウイルススキャン / 保持 UI / Box 内検索 / 一括 DL23
F-SHARE共有リンク — 発行 / アクセス / 無効化 / 受取人 OTP / ZIP 配信 / メール送信8
F-NOT通知 — 即時 / digest / off / テンプレ / ゼロベース / Box 別 / 参加申請 / アプリ内バッジ / 削除関連16
F-AUD監査 — 追記専用 RLS / バックアップ / GCS 退避 / CSV エクスポート / Box アクティビティ6
F-RET保持・自動削除 — 全社デフォルト / Box デフォルト / Hold / 削除実行 / 影響シミュレーション9
F-ADM管理者 — /admin 全体 / 重大操作の理由必須 / メール通知 / アラート / 設定編集19
F-SYNCDrive 同期 — 片方向 / appProperties / 補修バッチ / orphan・削除検知 / DLQ12
F-OPS自動メンテナンス — パーティション / アーカイブ / JWKS / 検証 / クリーンアップ等のバッチ12
合計135
02

代表的な要件のハイライトKey requirements

約 135 件の機能要件のうち、運用や利用感を方向づける 8 つを抜粋します。

F-FILE-02

1 ファイル最大 200 MB

図面や動画などの大きなファイルを想定し、Resumable Upload(再開可能アップロード)で大容量も安定。環境変数で運用中変更可。

F-ACC-06

信頼デバイス 30 日

OTP 入力後に信頼デバイスとして 30 日記録し、その間は OTP を再要求しません。パスワード / MFA 変更で全失効。

F-SHARE-02

共有リンク最長 14 日

無期限の共有リンクは作れません。24 時間 / 7 日 / 14 日 / カスタム(最長 14 日)から選択します。

F-SHARE-04

ZIP しきい値 200 MB / 10 件

合計サイズ 200 MB 超、またはファイル数 10 件超は ZIP を作らず個別 DL に誘導します。受信側のメモリ事故を防ぎます。

F-RET-01

保持期間 全社デフォルト 180 日

初期値 180 日。Box ごとに 30 / 90 / 180 / 365 / 無制限から上書き可能。重要ファイルは Hold で対象外に。

F-AUD-01

監査ログ 2 年保持 + GCS 退避

すべての操作(認証 / Box 操作 / ファイル操作 / 共有リンク / 重大操作)をオンラインで 2 年、退避後も一定期間保持。

F-ADM-19

Hold バッジ 一定容量以上で常時表示

Box 内の Hold 合計容量がしきい値を超えると、Box 一覧 / Box 詳細 / 管理画面の 3 箇所にバッジが常時表示されます。

F-BOX-09

Drive 同期 Box 単位 ON / OFF

Box ごとに同期 ON / OFF。同期 ON にすると、社内 Drive の任意フォルダへ片方向で自動ミラーされます。

03

非機能要件Non-functional

性能・可用性・セキュリティ・監査・コンプライアンスを、判断可能な数値で定めています。

性能Performance

指標目標値備考
ファイル一覧表示P95 < 1.5 秒200 ファイル / Box、Server Components + 部分プリレンダリング
アップロード(100 MB)P95 < 30 秒Resumable Upload、エンド回線速度に依存
ダウンロード初回バイトP95 < 1 秒署名 URL(短時間だけ有効)から GCS 直配信
PDF プレビュー(10 MB)初表示 5 秒以内@react-pdf-viewer/core、レンジリクエスト対応
ウイルススキャンP95 < 15 秒(100 MB) / 30 秒(200 MB)ClamAV 1.4 on Cloud Run(常時稼働)
Drive 同期遅延P95 < 60 秒scan_clean 後、Pub/Sub Push 経由

可用性Availability

指標目標値備考
月次稼働率(24/7)99.5% 以上asia-northeast1(東京)の単一リージョン
月次稼働率(業務時間内)99.9% 以上平日の業務時間帯
RPO(目標復旧時点)目標値ありSupabase Postgres 自動スナップショット + PITR
RTO(目標復旧時間)目標値あり四半期に 1 回 PITR 復元演習

セキュリティSecurity

項目仕様
TLS1.2 以上必須、Cloud Load Balancer 終端、HSTS preload
署名 URL の有効期限DL 短時間 / UL 一定時間(Resumable)
OTP(社外)6 桁、有効期限 5 分、続けて失敗すると 15 分ロック
共有リンク レート制限1 token あたり 回数の上限あり、続けて失敗すると 一定時間ロック
共有リンク token32 桁ランダム base64url、約 192 bit エントロピー
パスワードハッシュBetter Auth 標準(scrypt ベース、OWASP 推奨パラメータ)
シークレット管理Secret Manager に集約、年次一括ローテ(JWKS は自動・旧鍵を一定期間並行公開)
Drive サービスアカウントWorkload Identity Federation で JSON キー不発行

監査Audit

項目仕様
監査ログ欠損率0%
完整性追記専用 RLS(UPDATE / DELETE 拒否) + Supabase 自動バックアップ + 月次パーティション GCS 退避の 3 重防御
保持期間オンライン 2 年、GCS 退避で一定期間(25 ヶ月超を archive class)
記録対象認証 / Box 操作 / ファイル操作 / 共有リンク / 重大操作(admin) / Drive 同期 / 保持削除

コンプライアンスCompliance

項目仕様
適用法令個人情報保護法準拠
データ保管リージョン東京固定(asia-northeast1)、Terraform で固定化
無効化ユーザ・Box の完全消去5 年保持後に disabled-user-cleanup-5y バッチで消去(system_admin 承認制)
監査ログの actor 仮名化無効化ユーザの actor は仮名化(IDは保持)
取扱ベンダーGoogle Cloud / Supabase / Resend のみ、いずれも東京リージョン
04

要件 ID の使い方Requirement IDs

F-* : 要件 ID(例 F-ACC-05)は docs/01基本構想/01_要件.md で一意に定義されています。設計書 / 機能カタログ / 画面カタログ / 監査ログ / テストケースの全てがこの ID を参照します。

FE-* : 機能カタログの ID(例 FE-FILE-UPLOAD)。要件 ID をまとめた業務処理単位を表します。

P-* : 画面カタログの ID(例 P-BOX-DETAIL-FILES)。URL を持つ画面(タブ・サブビュー含む)を一意に表します。

三者は相互にトレース可能で、たとえば「F-FILE-13(ClamAV 自動スキャン)」は機能 FE-FILE-VIRUS-SCAN に属し、画面 P-FILE-DETAIL と P-ADM-SCAN-QUEUE から参照されます。