---
generated_at: 2026-01-29 10:00:00
metrics:
  claims_total: 48
  claims_with_evidence: 45
  claims_without_evidence: 3
confidence_derived: 0.94
---

# 根拠レポート：非機能要件定義書

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.94**
  - 根拠あり：45 / 48、根拠なし：3
- 優先レビュー（高）
  1. **稼働率目標値**：明示的な数値目標がコードに存在しない
  2. **RTO（障害復旧時間）**：具体的な目標時間の定義が見つからない
  3. **計画停止時間**：運用ポリシーとしての定義が見つからない

## 2) 参照した情報（Evidence一覧）

- E-01: `src/backend/InvenTree/InvenTree/settings.py`（Django設定ファイル）
- E-02: `src/backend/InvenTree/InvenTree/config.py`（設定ヘルパー関数）
- E-03: `src/backend/InvenTree/InvenTree/cache.py`（キャッシュ設定）
- E-04: `src/backend/InvenTree/InvenTree/middleware.py`（ミドルウェア）
- E-05: `contrib/container/gunicorn.conf.py`（Gunicorn設定）
- E-06: `contrib/container/docker-compose.yml`（Docker構成）
- E-07: `src/backend/InvenTree/InvenTree/backup.py`（バックアップ設定）
- E-08: `src/backend/InvenTree/InvenTree/sentry.py`（Sentry統合）
- E-09: `src/backend/InvenTree/InvenTree/tracing.py`（OpenTelemetry統合）
- E-10: `src/backend/InvenTree/common/setting/system.py`（システム設定定義）
- E-11: `src/backend/InvenTree/config_template.yaml`（設定テンプレート）

## 3) Claims と根拠の対応（レビューの主戦場）

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | バックグラウンドタスクタイムアウト90秒 | E-01（Q_CLUSTER['timeout']）, E-11（background.timeout） | ○ |
| C-02 | データベース接続タイムアウト2秒 | E-01（db_options['connect_timeout']） | ○ |
| C-03 | キャッシュ接続タイムアウト5秒 | E-03（SOCKET_CONNECT_TIMEOUT） | ○ |
| C-04 | キャッシュ操作タイムアウト3秒 | E-03（SOCKET_TIMEOUT） | ○ |
| C-05 | メール送信タイムアウト60秒 | E-01（EMAIL_TIMEOUT） | ○ |
| C-06 | マジックリンク有効期限300秒 | E-01（SESAME_MAX_AGE） | ○ |
| C-07 | Gunicornワーカー数（CPU*2+1） | E-05（workers計算式） | ○ |
| C-08 | ワーカースレッド数4 | E-05（threads = 4） | ○ |
| C-09 | バックグラウンドワーカー数4 | E-01（BACKGROUND_WORKER_COUNT）, E-11 | ○ |
| C-10 | 最大リクエスト数1000 | E-05（max_requests = 1000） | ○ |
| C-11 | キュー制限50 | E-01（Q_CLUSTER['queue_limit']） | ○ |
| C-12 | データアップロード最大フィールド数10000 | E-01（DATA_UPLOAD_MAX_NUMBER_FIELDS） | ○ |
| C-13 | PostgreSQL TCPキープアライブ有効 | E-01（db_options['keepalives']） | ○ |
| C-14 | 稼働率目標値 | **根拠なし** | △ |
| C-15 | 計画停止時間目標値 | **根拠なし** | △ |
| C-16 | RTO目標値 | **根拠なし** | △ |
| C-17 | RPO1日（デフォルト） | E-10（INVENTREE_BACKUP_DAYS）, E-11 | ○ |
| C-18 | メンテナンスモードリトライ10秒 | E-01（MAINTENANCE_MODE_RETRY_AFTER） | ○ |
| C-19 | Docker自動再起動設定 | E-06（restart: unless-stopped, restart: always） | ○ |
| C-20 | 自動バックアップ対応 | E-07, E-10（INVENTREE_BACKUP_ENABLE） | ○ |
| C-21 | GPGバックアップ暗号化対応 | E-07（backup_gpg_recipient） | ○ |
| C-22 | 多要素認証対応 | E-01（MFA_SUPPORTED_TYPES） | ○ |
| C-23 | ログイン試行制限5回/分 | E-01（ACCOUNT_RATE_LIMITS） | ○ |
| C-24 | パスワード検証4種類 | E-01（AUTH_PASSWORD_VALIDATORS） | ○ |
| C-25 | CSRF保護有効 | E-01（CSRF_COOKIE_NAME）, E-04 | ○ |
| C-26 | クリックジャッキング保護有効 | E-01（XFrameOptionsMiddleware） | ○ |
| C-27 | CORS設定対応 | E-01（CORS_*設定）, E-11 | ○ |
| C-28 | Sentry統合対応 | E-08, E-01（SENTRY_ENABLED） | ○ |
| C-29 | Sentryサンプルレート0.1 | E-01（SENTRY_SAMPLE_RATE） | ○ |
| C-30 | プラグインシステム対応 | E-01（PLUGINS_ENABLED）, E-02 | ○ |
| C-31 | S3ストレージ対応 | E-11（storage.s3） | ○ |
| C-32 | SFTPストレージ対応 | E-11（storage.sftp） | ○ |
| C-33 | 署名付きURL有効期限600秒 | E-01（PRESIGNED_URL_EXPIRATION） | ○ |
| C-34 | 多言語対応 | E-01（LANGUAGES）, E-11 | ○ |
| C-35 | ログレベルWARNING（デフォルト） | E-01（LOG_LEVEL）, E-11 | ○ |
| C-36 | 構造化ログ対応（structlog） | E-01（structlog.configure） | ○ |
| C-37 | JSONログ出力対応 | E-01（JSON_LOG）, E-11 | ○ |
| C-38 | タスク結果保持30日 | E-10（INVENTREE_DELETE_TASKS_DAYS） | ○ |
| C-39 | エラーログ保持30日 | E-10（INVENTREE_DELETE_ERRORS_DAYS） | ○ |
| C-40 | OpenTelemetryトレーシング対応 | E-09, E-01（TRACING_ENABLED） | ○ |
| C-41 | Django自動インストゥルメンテーション | E-09（DjangoInstrumentor） | ○ |
| C-42 | Redis自動インストゥルメンテーション | E-09（RedisInstrumentor） | ○ |
| C-43 | グローバルキャッシュRedis対応 | E-03（get_cache_config）, E-11 | ○ |
| C-44 | リクエストキャッシュ対応 | E-04（InvenTreeRequestCacheMiddleware） | ○ |
| C-45 | django-qタスクキュー対応 | E-01（Q_CLUSTER） | ○ |
| C-46 | タスク最大試行回数5回 | E-01（Q_CLUSTER['max_attempts']） | ○ |
| C-47 | Django Silk対応（デバッグ） | E-01（DJANGO_SILK_ENABLED） | ○ |
| C-48 | QueryCount対応（デバッグ） | E-01（QUERYCOUNT設定） | ○ |

## 4) 不足情報（Unknown / Missing）

- **稼働率目標値（C-14）**：SLA/SLOとしての具体的な稼働率目標（例：99.9%）はコードレベルでは定義されていない。運用ドキュメントやサービスレベル契約が別途必要。
  - 候補：運用マニュアル / SLA文書 / インフラ設計書

- **計画停止時間（C-15）**：メンテナンスウィンドウの具体的な時間帯や頻度の定義が見つからない。
  - 候補：運用マニュアル / 変更管理プロセス文書

- **RTO目標値（C-16）**：障害復旧時間の具体的な目標値はコードに定義されていない。バックアップ機能は実装されているが、復旧手順・時間目標は運用レベルで定義が必要。
  - 候補：災害復旧計画 / BCPドキュメント

## 5) リスクフラグ（レビュー観点）

| フラグ | レベル | 説明 |
|---|---|---|
| SLA未定義 | 1（中リスク） | 稼働率・RTO等のSLA目標値がコードに存在しない。本番運用前に明確化が必要 |
| セキュリティ設定依存 | 0（低リスク） | 多くのセキュリティ設定がデフォルトで安全側に設定されているが、CORS_ALLOW_ALL等は本番環境で見直しが必要 |
| キャッシュ依存 | 0（低リスク） | グローバルキャッシュ無効時は単一ワーカーに制限される設計は適切 |
| バックアップ検証 | 1（中リスク） | 自動バックアップ機能は実装されているが、リストア手順・検証の定義は別途必要 |

## 6) レビュアーチェックリスト（最小）

- [ ] 本番環境のSLA目標値（稼働率、RTO、RPO）が別途文書化されているか確認
- [ ] `CORS_ALLOW_ALL_ORIGINS`が本番環境で`False`に設定されているか確認
- [ ] `DEBUG`フラグが本番環境で`False`に設定されているか確認
- [ ] グローバルキャッシュ（Redis）が本番環境で有効化されているか確認
- [ ] バックアップのリストア手順が文書化・テストされているか確認
- [ ] 多要素認証（MFA）強制の要否がセキュリティ要件と整合しているか確認
- [ ] Sentry/OpenTelemetry統合が監視要件を満たしているか確認
- [ ] ログ保持期間（30日）がコンプライアンス要件を満たしているか確認
