docs: rebuild architecture and taskplans for role-site model

This commit is contained in:
Chris
2026-04-02 23:35:05 +08:00
parent 7cdf2b5a51
commit 16bbfdba24
8 changed files with 263 additions and 286 deletions

View File

@@ -1,4 +1,4 @@
# Local Dev Runbook
# Local Dev RunbookKeycloak
## 1) 啟動後端
```bash
@@ -13,18 +13,29 @@ npm install
npm run dev
```
## 3) 要環境變數
- `backend/.env.development`
- `ADMIN_REQUIRED_GROUPS=member-admin`
- `KEYCLOAK_*`
## 3) 要環境變數backend/.env.development
- `KEYCLOAK_BASE_URL`
- `KEYCLOAK_REALM`
- `KEYCLOAK_CLIENT_ID`
- `KEYCLOAK_CLIENT_SECRET`
- `KEYCLOAK_ADMIN_CLIENT_ID`
- `KEYCLOAK_ADMIN_CLIENT_SECRET`
- `ADMIN_REQUIRED_GROUPS`
## 4) 基本檢查
- `GET http://127.0.0.1:8000/healthz`
- 登入後打 `GET /me` 應可回資料
- 非 admin 群組帳號打 `/admin/*` 應回 `403`
1. `GET http://127.0.0.1:8000/healthz` 應為 200。
2. 前端按「前往 Keycloak 登入」應可成功導轉與回跳。
3. `GET /me` 登入後應有資料。
4. 非 admin 群組帳號打 `/admin/*` 應為 403。
## 5) 會員流程驗收
1. 新增會員(開啟 `sync_to_idp`
2. 確認列表可看到新會員與 `user_sub`
3. 點「重設密碼」,取得臨時密碼
4. 到 Keycloak 驗證該會員可用新密碼登入
## 5) 新模型驗收路徑
1. 新增 Company、Site。
2. 新增 System、Role。
3. 對 Site 指派 Role。
4. 新增 User加入 Site。
5. 驗證 User 的角色是由 Site 推導,不是 direct assign。
## 6) API 白名單驗收
1. 建立 `api_client`
2.`X-Client-Key` + `X-API-Key` 呼叫 `/internal/*`
3. 驗證未授權 key 會被拒絕。