# OpenAPI 草案(完整) 已補上完整端點與資料結構,並提供 `docs/openapi.yaml` 作為可直接擴充的版本。 ## 版本 - OpenAPI: 3.1.0 - 檔案:`docs/openapi.yaml` ## 核心資源 - OAuth2/OIDC:授權、token、discovery、JWKS - Auth:註冊、登入(password grant)、刷新、登出、忘記/重設密碼、Email 驗證 - User:個人資料 - Newsletter:訂閱/確認/退訂/偏好 - Admin:Tenants/Lists/OAuth Clients(MVP CRUD) ## Security Schemes - OAuth2 (Authorization Code + PKCE) - Bearer JWT(API 使用) ## 補充說明 - `/oauth/token`、`/auth/login`、`/auth/refresh` 使用 `application/x-www-form-urlencoded` - `/auth/email/verify` 需要 `token` + `email` - `/newsletter/subscribe` 會回傳 `confirm_token` - `/newsletter/unsubscribe-token` 需要 `list_id + email` 才能申請 `unsubscribe_token` - `/newsletter/preferences`(GET/POST)需要 `list_id + email`,避免跨租戶資料讀取/更新 ## 多租戶資料隔離原則 - 與訂閱者資料(preferences、unsubscribe token)相關的查詢與寫入,一律必須帶 `list_id + email` 做租戶邊界約束。 - 不提供僅靠 `email` 或單純 `subscription_id` 的公開查詢/操作端點。