本卡屬 FR-132(母卡 CM-2510),A.1 第 2 份盤點:oscal 合規框架模組(compliance-framework、module-frame、SSP)+ flow 流程設計模組(flow_template、流程執行)。只讀不寫。
把「oscal 合規框架模組(compliance-framework、module-frame、SSP)+ flow 流程設計模組(flow_template、流程執行)」底下每一支需要登入的 API,逐支對到一個新的三段式能力點名字(例 grc.project.approve),並記下它現在掛了什麼守門、對應哪個畫面。外部套件(jedi-*)自帶的 route 一併列入——只看主專案 api/ 會漏掉整個模組。這張表是下一階段改名 migration 與補守門的唯一依據,漏一支就是上線後某個按鈕永遠 403 且沒有錯誤訊息。
33 支漏網 route 裡有 21 支在這裡(SSP 13、framework 3、flow_engine 5),是補守門工作量最大的一塊;SSP 的匯入匯出動作多,獨立動詞(import/export)規則在這裡最常用到。
首腦讀過盤點後認為最容易出錯的地方,是思考起點不是檢查清單:
api/oscal/routes/ 下 ssp_components、ssp_control_impl_import、ssp_control_implementation、ssp_document_pool、ssp_docx_import、ssp_excel_import、ssp_export、ssp_inventory_items、ssp_leveraged、ssp_party、ssp_resources、ssp_scoped_excel_import、ssp_system_characteristic。SSP 今天沒有自己的能力點資源,要新開 oscal.ssp.*;子物件(components、party…)是否拆資源,照「客戶會不會分開授權」判,傾向不拆、歸 oscal.ssp.update。oscal_framework_version_route.py(用 compliance-framework.*)。api/flow_engine/routes/ 的 flow_engine_route、job_evidence、stage_advance、stage_object、stage_rollback。流程執行(推進、退回)與流程設計(flow_template_route.py,已守)是不同資源,判斷是否開 flow.workflow-run.* 這類新資源,或歸 grc。api/module_frame/routes/),重點是確認每個 method 都有、改名對照完整,以及 module_frame_template_ssp_route.py、resource_library_route.py 跨在 oscal 底下的歸屬。api/guards.py),確認它提供的守門被主專案哪些 route 用;jedi-oscal-v2 無 route。flow_template 是四個用底線的 resource_type 之一,新名一律連字號。docs/claude/memory/feedback_marshmallow_string_nested_is_grep_blind_spot.md:route 的 schema 用字串 Nested,grep 會漏,讀 route 檔本身不要只 grep。<模組>.<資源>.<動詞>,三段小寫,資源名內部用連字號(ldap-config,不是 ldap_config)。前兩段就是角色矩陣的兩層分組,不另建群組表。