本卡屬 FR-132(母卡 CM-2510),A.1 第 5 份盤點:platform 平台(原廠)層(ai-dashboard、ai-call-log、ai-quota、bulletin、bulletin-list、feedback、feedback-view、log)。只讀不寫。
把「platform 平台(原廠)層(ai-dashboard、ai-call-log、ai-quota、bulletin、bulletin-list、feedback、feedback-view、log)」底下每一支需要登入的 API,逐支對到一個新的三段式能力點名字(例 grc.project.approve),並記下它現在掛了什麼守門、對應哪個畫面。外部套件(jedi-*)自帶的 route 一併列入——只看主專案 api/ 會漏掉整個模組。這張表是下一階段改名 migration 與補守門的唯一依據,漏一支就是上線後某個按鈕永遠 403 且沒有錯誤訊息。
這塊的能力點大多 is_platform = true(16 個平台層能力點集中在這),只有原廠/root 租戶能勾;*.*.* 展開時要扣掉它們。它們的歸屬錯了,會讓客戶管理員勾到原廠功能或反過來客戶付錢的功能被當成原廠。
首腦讀過盤點後認為最容易出錯的地方,是思考起點不是檢查清單:
is_platform 能力點:產出表加一欄 is_platform,DEV 共 16 個,逐一對到 route。ai-dashboard 是賣給租戶的加值包,放「platform(原廠)」名下會誤導。給建議:獨立成模組(例 ai)或併入別處,附理由。jedi-ai-dashboard 有 api/guards.py 自己的守門,一併看。ai-quota 歸屬爭議:platform 或 system 待首腦裁。api/ai_quota/routes/ai_quota_route.py 是 J 組只驗登入。api/support/routes/diagnostic_bundle_route.py 是 J 組只驗登入,下載診斷包可能含敏感資訊,判斷歸哪個資源。bulletin(管理)與 bulletin-list(閱讀)並存,確認是否該合成一個資源的 read/其他動詞。jedi-bulletin bulletin_route.py。feedback 與 feedback-view 同理;孤兒 feedback.export 查是否真的沒人用。jedi-issue feedback_route.py。api_log_route.py;api/ai_call_log/routes/ai_call_log_route.py(已守,ai-call-log 是基礎設施豁免)。is_platform 能力點與非 root 租戶 *.*.* 展開範圍有關:DEV 123 − 16 平台層 − 4 workflow = 103,T-3.1 會拿這個數驗,請在產出檔確認 16 這個數字。core/role_templates.py 引用了 bulletin-list.read、feedback-view.read、ai-dashboard.read、feedback.*(一般成員用),表內標出。<模組>.<資源>.<動詞>,三段小寫,資源名內部用連字號(ldap-config,不是 ldap_config)。前兩段就是角色矩陣的兩層分組,不另建群組表。