詳細なリクエスト/レスポンスは backend/API_SPEC.md を正とする。この文書は結合時に破ってはいけない境界を規定する。
flowchart LR
C[Client] -->|HTTPS /api/v1| H[Handler]
H --> S[Service]
S --> R[Repository]
R --> P[(PostgreSQL)]
S --> F[Ciphertext storage]
/healthz、/readyz、/api/v1/*、OAuth callback以外のUIを配信しない。Authorization: Bearer <access_token>。token形式をクライアントが推測しない。CLIENT_ORIGIN、開発・testではDEV_CLIENT_ORIGINと固定したローカルWeb開発Origin(http://localhost:8081、http://127.0.0.1:8081)の完全一致だけを許可する。ワイルドカード・Origin反射は禁止。/auth/completeだけを許可する。任意URLへのredirectは禁止。{ "error": "stable_code" } を組み合わせる。画面文言にサーバー内部エラーを流用しない。