概要
ADR-0012 の楽観ロック適用基準(#680 で追記)に基づき、PATCH /api/tasks/{id}/visibility に If-Match を付与する。現状バックエンドは visibility 変更に If-Match を要求しておらず楽観ロック対象外。
根拠(事故分析)
- visibility 変更は visibility + stakeholderUserIds を束ねるアクセス制御変更で、silent な後勝ち上書きは「見えるべき人が見えない / 見えてはいけない人が見える」状態を生みうる(実害が高い)。
- 変更経路は所有者のみ・
/visibility 限定で低頻度 → If-Match を付けても誤検知 412 はほぼ出ず、コストほぼゼロの保険。
やること
受入条件
関連
blocked_by #680(ADR-0012 適用基準の追記が前提)/ ADR-0012
概要
ADR-0012 の楽観ロック適用基準(#680 で追記)に基づき、
PATCH /api/tasks/{id}/visibilityに If-Match を付与する。現状バックエンドは visibility 変更に If-Match を要求しておらず楽観ロック対象外。根拠(事故分析)
/visibility限定で低頻度 → If-Match を付けても誤検知 412 はほぼ出ず、コストほぼゼロの保険。やること
TaskController.changeVisibilityに@RequestHeader(IF_MATCH)を追加ChangeVisibilityUseCaseに version 一致チェック(PreconditionFailedException→ 412)を追加/visibilityに If-Match parameter(必須)+ 412 を追記web/js/api.jsの visibility 変更呼び出しで If-Match 送出 + 412 ハンドリング受入条件
関連
blocked_by #680(ADR-0012 適用基準の追記が前提)/ ADR-0012