本卡屬 FR-132(母卡 CM-2510),A.1 第 4 份盤點:system 系統設定(smtp-config、ldap-config、notify_config、security-policy、log-forwarding、system_config、system-menu、issue-integrate-config、license)+ iam 身分與存取(user、role、department、tenant)。只讀不寫。
把「system 系統設定(smtp-config、ldap-config、notify_config、security-policy、log-forwarding、system_config、system-menu、issue-integrate-config、license)+ iam 身分與存取(user、role、department、tenant)」底下每一支需要登入的 API,逐支對到一個新的三段式能力點名字(例 grc.project.approve),並記下它現在掛了什麼守門、對應哪個畫面。外部套件(jedi-*)自帶的 route 一併列入——只看主專案 api/ 會漏掉整個模組。這張表是下一階段改名 migration 與補守門的唯一依據,漏一支就是上線後某個按鈕永遠 403 且沒有錯誤訊息。
iam 是本案自己要改的那塊(角色、指派的端點都在 jedi-iam),主專案 api/ 完全看不到;system 則有 system_config 缺 read、setup_route 疑似刻意不守等特例,需要一份專門把它們釐清。
首腦讀過盤點後認為最容易出錯的地方,是思考起點不是檢查清單:
/roles、/role、/role/<uid>、/role/status/<uid>、/roles/menu,見 jedi_iam/api/routing.py:107-111)、user_route、user_import_route、org_unit_route、tenant_route、capability_route、ui_route、ui_route_route、ldap_route、user_auth_provider_route、login_route、otp_route、change_password_route。登入/OTP/忘記密碼是免登入端點,標「豁免:免登入」。system_config_route 只驗登入(J 組):api/system_config/routes/system_config_route.py。system_config 現有 create/delete/update 三個能力點卻沒有 read,且三個都是孤兒。新名要補 system.system-config.read。jedi-system-core 也有 system_config_route.py、system_menu_route.py,一併盤並弄清楚兩支 system_config 的分工。setup_route 要給結論:api/setup/routes/setup_route.py 是安裝精靈,安裝當下沒有帳號。讀程式確認是否刻意不設守門(看有沒有「已安裝就拒絕」的閘門),是就登記成豁免並寫理由;不是就列為漏網。api/system_config/routes/security_policy_route.py(已守)、api/notify_config/routes/notify_config_route.py、api/version/routes/version_route.py、browser_report_route.py、api/support/routes/recent_error_route.py;套件 jedi-notification(mail_route,smtp-config)、jedi-issue(label_route,issue-integrate-config)、jedi-log 的 log_forwarding_route、jedi-license-runtime(license_route、license_admin_route)。INFRASTRUCTURE_MODULES(common/authz/license.py:107-121)。notify_config、system_config 新名改連字號。TENANT_ADMIN_EXCLUDED_RESOURCE_TYPES(core/plugins/identity.py:89-95)列了 cruise-project、dashboard、workflow、resource、report 五個不販售資源——查 DEV 這五個是否還有能力點,有就標出。/roles、/user 的 payload 裡帶 capability 的欄位位置記下(A.3 改判定時要用)。<模組>.<資源>.<動詞>,三段小寫,資源名內部用連字號(ldap-config,不是 ldap_config)。前兩段就是角色矩陣的兩層分組,不另建群組表。