kuju63 / kuju63/code-review-agents
認可境界を定義し、設定および command ルートを保護する
- Dominant language
- HTML
- Stars
- 0
- Forks
- 0
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 96
Description
## 概要
Web API の認可境界を定義し、認可が必要なルートを一貫して保護する。
現状、`PUT /settings/github` を含む command ルートは無認可である。GitHub ホストは `GITHUB_ALLOWED_HOST` に固定済みであるため、既存 PAT の任意ホストへの送信は防止される。しかし、未認証の利用者は GitHub 設定の PAT を更新または置換できる。
## 必要な変更
- API 全体の認証および認可モデルを決定する。
- 認可が必要なルートを定義する。
- `PUT /settings/github` を含む設定更新ルートを認可で保護する。
- `POST /reviews` などの command ルートについても、同じ認可境界に従う。
- OpenAPI の `security` 定義、`servers` の運用前提、実装、およびテストを更新する。
- 認可失敗時の応答コードとエラー形式を API 契約として定義する。
## 対象領域
- `packages/web-api/src/app.ts`
- `packages/web-api/src/index.ts`
- `packages/web-api/src/modules/settings/settings.route.ts`
- `packages/web-api/src/modules/reviews/`
- `docs/openapi/reviews.yaml`
## 背景
`GITHUB_ALLOWED_HOST` と `updateGithubSettings()` のホストおよびルートパス検証は、PAT の送信先をオペレーター指定ホストに制限する。この対策は認可の代替ではない。設定変更および command 実行の権限を、アプリケーション全体で一貫して制御する必要がある。
## 受け入れ基準
- 認可境界と対象ルートが設計文書または ADR に明記される。
- 認可が必要な各ルートは、未認証または未認可の要求を拒否する。
- GitHub 設定の PAT を未認証の利用者が更新または置換できない。
- OpenAPI 契約が実装と一致する。
- 正常系、未認証、未認可の契約テストを追加する。
## 参照
- 起票依頼者: @kuju63
- PR: https://github.com/kuju63/code-review-agents/pull/448
- レビューコメント: https://github.com/kuju63/code-review-agents/pull/448#discussion_r3997531626
Contributor guide
Assessment
This issue has not been assessed yet.