本卡屬 FR-132(母卡 CM-2510),A.3 判定層第 2 張。依賴:T-3.1。建議 model:opus。
展開只跟「角色有哪些 pattern」與「清單有哪些能力點」有關、跟使用者無關,可以跨請求快取。多台 api/worker 行程時只有共用的 Redis 能一致清除,所以放 Redis。權限的錯誤方向是「拔了還有效」,不能只靠時間到期。
~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/authz/capability.py:48,51-66,99-106 現有單一請求快取(flask.g `_authz_capability_names`)
core/extensions.py 主專案 Redis 單例(先 grep 既有 redis client 取得方式)
~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/ 角色寫入、停用、刪除的 service(清快取的掛點)
authz:exp:{tenant_id}:{catalog_version}:{role_id} → 該角色展開後的能力點名集合。catalog_version 是 T-2.3 加的版本號。authz:exp:{tenant_id}:*(用 SCAN,不要 KEYS)。能力點新增或改名 → 版本號加一,舊鍵自然不命中;找出能力點 upsert 的地方(_capabilities.sql 是 SQL,加一行 UPDATE 版本號),回寫說明怎麼保證版本號會加。flask.g 單一請求快取保留。