- todo 文件:H1 由 PR #71、#72 完成;H2 已於 VPS 確認 APP_DEBUG=false、APP_ENV=production、未使用預設 DB 密碼 - .env.example:APP_DEBUG 上方加註正式環境必須的值 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
APP_NAME=Laravel
|
||||
APP_ENV=local
|
||||
APP_KEY=
|
||||
# 正式環境必須設為 APP_ENV=production、APP_DEBUG=false,否則錯誤頁會洩漏堆疊追蹤與環境變數
|
||||
APP_DEBUG=true
|
||||
APP_TIMEZONE=UTC
|
||||
APP_URL=http://localhost
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
|
||||
| # | 優先 | 項目 | 是否走 OpenSpec | 建議 change 名稱 |
|
||||
|---|------|------|----------------|------------------|
|
||||
| H1 | 🔴 高 | member/provider 路由缺角色 middleware | 是 | `add-role-middleware` |
|
||||
| H2 | 🔴 高 | 正式環境 `APP_DEBUG` 與預設值風險 | 否(設定確認)+ 視情況改 `.env.example` | — |
|
||||
| H1 | ✅ 已完成(PR #71、#72) | member/provider 路由缺角色 middleware | 是 | `add-role-middleware` |
|
||||
| H2 | ✅ 已完成(2026-10-18 確認) | 正式環境 `APP_DEBUG` 與預設值風險 | 否(設定確認)+ 視情況改 `.env.example` | — |
|
||||
| M1 | 🟡 中 | AuthController 過大、無 FormRequest/Service 層 | 是 | `refactor-auth-controller` |
|
||||
| M2 | 🟡 中 | 預約名額邏輯重複 | 是 | `extract-booking-service` |
|
||||
| M3 | 🟡 中(已下修,見內文) | 通知派送的例外處理與失敗可觀測性 | 視範圍而定 | `harden-notification-dispatch` |
|
||||
@@ -40,12 +40,12 @@
|
||||
- 目前只有 `ReviewController`、refresh 端點自己檢查角色,其餘端點無防護。
|
||||
|
||||
**待辦**
|
||||
- [ ] 新增 `EnsureMember`、`EnsureProvider` middleware(仿 `app/Http/Middleware/EnsureAdmin.php`),並在 `bootstrap/app.php` 註冊 alias
|
||||
- [ ] 套用到 `member`、`provider` 路由群組
|
||||
- [ ] 通知、即時訊息這類「member + provider 共用」群組維持現狀,但需確認 admin 是否應被排除
|
||||
- [ ] 新增 Feature 測試(仿 `tests/Feature/AdminEndpointAuthTest.php`):每個角色 × 每組路由,期望 403
|
||||
- [ ] 更新 spec:`provider-auth`、`admin-auth`;視需要新增 `role-authorization` spec
|
||||
- [ ] 更新 Swagger 註解(`app/Docs/*`)的 403 回應
|
||||
- [x] 新增 `EnsureMember`、`EnsureProvider` middleware(仿 `app/Http/Middleware/EnsureAdmin.php`),並在 `bootstrap/app.php` 註冊 alias
|
||||
- [x] 套用到 `member`、`provider` 路由群組
|
||||
- [ ] 通知、即時訊息這類「member + provider 共用」群組維持現狀,但需確認 admin 是否應被排除(未定案:本次維持現狀,admin 是否排除另案決定)
|
||||
- [x] 新增 Feature 測試(仿 `tests/Feature/AdminEndpointAuthTest.php`):每個角色 × 每組路由,期望 403
|
||||
- [x] 更新 spec:`provider-auth`、`admin-auth`;視需要新增 `role-authorization` spec(實際做法:新增 `role-authorization` 主規格,未修改 `provider-auth`、`admin-auth`)
|
||||
- [x] 更新 Swagger 註解(`app/Docs/*`)的 403 回應
|
||||
|
||||
**驗收條件(草案,需轉為 spec Scenario)**
|
||||
1. member 呼叫任一 `/api/provider/*` 回 403
|
||||
@@ -70,11 +70,11 @@
|
||||
若 VPS 上 `.env` 沿用相同值,錯誤頁會洩漏堆疊追蹤、環境變數與 SQL。
|
||||
|
||||
**待辦**
|
||||
- [ ] **需要你確認**:登入 VPS 檢查實際 `.env` 的 `APP_DEBUG`、`APP_ENV`(我無法從此環境確認)
|
||||
- [ ] 確認 `config:cache` 後的實際值:`docker compose exec app php artisan tinker --execute="dump(config('app.debug'));"`
|
||||
- [ ] `.env.example` 加註解說明正式環境必須 `APP_DEBUG=false`
|
||||
- [ ] 評估是否在 deploy.yml 加入啟動檢查:`APP_ENV=production` 且 `APP_DEBUG` 為 false,否則部署失敗
|
||||
- [ ] 本機 `.env` 中的 DB 密碼為弱密碼(`cfdivepass`),確認正式環境未使用
|
||||
- [x] **需要你確認**:登入 VPS 檢查實際 `.env` 的 `APP_DEBUG`、`APP_ENV`(我無法從此環境確認)(2026-10-18:`APP_DEBUG=false`、`APP_ENV=production`)
|
||||
- [x] 確認 `config:cache` 後的實際值:`docker compose exec app php artisan tinker --execute="dump(config('app.debug'));"`
|
||||
- [x] `.env.example` 加註解說明正式環境必須 `APP_DEBUG=false`
|
||||
- [x] 評估是否在 deploy.yml 加入啟動檢查:`APP_ENV=production` 且 `APP_DEBUG` 為 false,否則部署失敗(2026-10-18 決定暫不做:正式環境已確認,需要時另開 change)
|
||||
- [x] 本機 `.env` 中的 DB 密碼為弱密碼(`cfdivepass`),確認正式環境未使用(2026-10-18:正式環境未使用預設密碼,且 MySQL 未對外開 port)
|
||||
|
||||
**備註**
|
||||
這項大多是設定確認,不一定需要 OpenSpec change;若加入部署檢查則屬 `env-cloud-annotations` spec 範圍。
|
||||
|
||||
Reference in New Issue
Block a user