本卡屬 FR-132(母卡 CM-2510),A.3 判定層第 7 張。依賴:T-3.1。建議 model:sonnet。
角色要能匯出成 JSON、在別的環境匯入——用途是跨環境搬角色、範例被改壞後還原、留稽核證據。匯入時每條 pattern 在目標環境至少要命中一個能力點,命中零個就整份報錯並列出哪幾條,不靜默跳過(跳過會讓匯入後的角色比來源少權限且沒人發現)。
~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/api/routing.py:107-111 現有角色端點(5 個 CRUD/狀態)
~/Projects/Jedicogy/module/jedi-python-package/jedi-iam/jedi_iam/api/routes/role_route.py 角色 route
~/Projects/Billows/Audit-Manager/compliance-manager-be/app/auth/service/role_app_service.py:54-91 寫入端 license 守門(T-2.5 已改讀 license_module)
{"name","description","is_admin","capabilities":[pattern...]},可匯出單一或多個(陣列)。不帶 id,以名字對應。GET 角色 → JSON(存的 pattern 原樣,不展開)。POST:① 每條用 T-3.1 驗證格式;② 每條展開,零命中者收集,有任一條零命中整份 400 並列出;③ 同名:request 帶 on_conflict: overwrite | save_as_new,未帶時回 409 讓前端問使用者;④ 與內建系統管理員同名一律另存(不改內建那個,is_system 角色永遠不可被覆蓋);⑤ 走既有寫入端 license 守門。iam.role.export、匯入要 iam.role.import(新名以 T-1.6 全表為準,沒有就回寫首腦)。<模組前綴>_<HTTP狀態碼><序號> 規則新增,並同步 FE error-code.json i18n(先 grep 既有 role 相關碼)。