# Backend TaskPlan ## 待辦 - [ ] Keycloak 同步器優化:Company/Site group 同步、System client role 同步、Site 角色套用同步(含效能與重複同步抑制)。 - [ ] 補齊 pytest API 測試(CRUD、關聯、同步、刪除、錯誤碼)。 - [ ] 補一支「一鍵重建 schema」腳本(串 `init_schema.sql`)。 ## 進行中 - [ ] Swagger response model 與前端實際畫面持續對齊。 ## 已完成 - [x] schema 重建:清除舊表,改為 `roles`、`site_roles`、`user_sites` 主流程。 - [x] 移除舊後端程式:`module/permission_group/user_scope_permissions` 相關 model/repo/api。 - [x] Admin API 改版:`Company/Site/System/Role/User` CRUD 與關聯 API。 - [x] Role 指派只允許綁 Site,不提供 user direct role API。 - [x] `/me/permissions/snapshot` 改為 role 聚合格式。 - [x] Internal API 改版:可取 `users/{user_sub}/roles` 聚合結果。 - [x] 保留 `api_clients` 白名單管理 API。 - [x] Keycloak OIDC 登入主流程。 - [x] `/admin/*` Bearer + admin 群組白名單安全線。 - [x] 公司/站台 CRUD 同步 Keycloak Group(create/update/delete)。 - [x] Keycloak -> DB 補齊同步(公司/站台/系統/角色/使用者)。 - [x] 系統改為 Keycloak 唯一來源(後台停用 system CRUD)。 - [x] Role CRUD 同步 Provider Client Role(新增/修改/刪除會同步到 Provider)。 - [x] Site/Role 關聯指派同步 Keycloak Group Role Mapping(雙向指派入口皆同步)。 - [x] 後端讀取快取(memory)與 CUD 自動失效機制(可後續切 Redis)。 - [x] 快取後端抽象完成:`.env` 可切換 `memory` / `redis`。