手冊首頁 / 合規稽核 / 資源庫明細

資源庫明細(ModuleFrame Detail)

功能群:合規框架與 SSP|上層導航頁見 範本管理 / 合規資源庫|資產模型先讀 功能群總覽

事實基準:2026-07-05 從 FE ModuleFrameDetail.vue + BE code 掃出;endpoint 對 routes.json、schema 對 db_schema.json

變更紀錄

日期 FR 變更
2026-07-06 FR-047 module-frame.md 拆出:資源庫明細(群組→控制項→AO 下鑽檢視)獨立成子頁
2026-07-06 FR-047 頁名由「資源庫明細下鑽」正名為「資源庫明細」(「下鑽」為動作、不宜當頁名;對齊 hub 既有連結文字)

1. 功能描述

資源庫明細是 範本管理 清單「明細」導向的唯讀檢視頁ModuleFrameDetail.vue):把一筆資源庫綁定的基準線(oscal_profile_uid)納入的控制集,以群組 → 控制項 → 評估目標(AO)三層樹狀展開,供作者檢視這份資源庫「涵蓋哪些控制、每個控制的現況預設值長怎樣」。內容一律讀自 template_ssp_id 指向的樣板 SSP(單一真相來源),本頁只讀不寫;實際編輯在 樣板編輯器

主要使用者:資源庫作者(管理員,檢視用);scope=SYSTEM 公版人人可讀。

角色速覽(本群非專案層角色,見 _overview §5):資源庫作者(管理員)為主;scope=SYSTEM 公版 root 租戶維護、人人可讀。

1.1 功能總覽(本頁全部功能)

# 功能 說明 位置 詳述
1 群組樹 控制群組(catalog_groups)逐層展開 左側樹 / 上層 §5
2 控制項清單 該群組下的控制項(catalog_controls),標控制編號 / 標題 明細表 §6.2
3 AO 下鑽 控制項下的評估目標(AO part),逐條列出 展開列 §6.2
4 現況預設值檢視 每控制 / AO 的實作現況(frequency / 風險 / 責任部門 / 任務),讀自樣板 SSP 明細欄 §6.2

本頁為純顯示 / 下鑽,無實質寫入 UC,故 §2 不另開 UC 流程圖;載入 / 資料對應見 §10。編輯這些預設值走 樣板編輯器 UC-MF-01

2. Use Case

角色速覽(同 §1)。

本頁為唯讀下鑽檢視,無獨立寫入 UC。控制項 / AO 現況預設值的編輯流程見 樣板編輯器 UC-MF-01

3. 權限矩陣

操作 FE 判定 BE 強制 BE 檢查位置
讀明細 / 下鑽 登入 + 選單權限 @jwt_required() route

本頁純讀,僅 JWT + 選單能力守門;scope=SYSTEM 公版人人可讀。寫入權(編輯預設值)見 樣板編輯器 §3

4. 狀態機與前置條件

條件 效果 出處
資源庫無樣板 SSP(template_ssp_id 空) 明細無內容可下鑽 module_frames.template_ssp_id
控制項不屬該 profile 不列於明細樹 profile 納入清單

本頁不觸發狀態轉換;編輯前置(MODULE_FRAME_400001 等)見 樣板編輯器 §4

5. UI 設計

資源庫明細 — 群組 → 控制項 → AO 三層唯讀檢視 開啟:§6.2 核心 endpoint(明細 / 控制樹) 群組樹(catalog_groups) 依 profile 納入的控制歸屬 逐層展開群組節點 GET /module-frame/{uid} → §6.2(點我) 開啟:§6.2 control-defaults 下鑽資料 控制項清單 → AO 下鑽 → 現況預設值 控制編號 ・ 標題(catalog_controls) 現況:implementation_status / responsible_role / control_origination └ AO(評估目標 part)逐條・key `_obj.N` objective-defaults → ssp_statements props GET /module-frame/{uid}/control-defaults GET /module-frame/{uid}/objective-defaults 讀自 template_ssp_id 樣板 SSP(單一真相來源) → §6.2(點我) 彩色=可點跳本頁小節錨點(teal=§6.2 明細/coral=§6.2 control-defaults 下鑽)|灰=結構描述|本頁純唯讀,編輯預設值走「樣板編輯器」子頁 API 僅列代表性,完整規格見 §6
資源庫明細版面 wireframe:左側群組樹、中間控制項清單、展開列下鑽 AO 與現況預設值;純唯讀,編輯導向樣板編輯器子頁

📸 實機截圖待補(亮色模式):待補群組樹展開態、控制項→AO 下鑽列、現況預設值明細欄。

版面骨架(三頁全景,本頁=頁2):

mf_ui_layout page 頁 1:資源庫清單 (ModuleFrame) 篩選(狀態/enable/provider/framework/group) +建立(手動/docx/excel)|複製|下載 SSP 樣板 列:名稱 / 群組 / provider / 框架 / profile / 狀態 / enable / 版本 / 稽核流程範本|⋮ 編輯基本/刪除/enable 切換 頁 2:明細 (ModuleFrameDetail)群組→控制項→AO 下鑽 樹 + 麵包屑;面板:頻率/風險/責任部門;任務表;每項編輯/刪除 頁 3:樣板編輯 (ModuleFrameTemplateEditView)=編樣板 SSP Tabs :基本資訊|適用控制項(控制樹→AO 現況/工作流/任務)|受評標的(system-characteristic)|負責單位(parties org)|負責人員(parties person)|元件+外部授權+資產|程序書池(reference-documents) 動作:發布|編輯納入控制項(樹選)|編輯基本資訊|下載 SSP 樣板  狀態徽章:draft/published 所有內容編輯都寫進 template_ssp_id 指向的樣板 SSP(單一真相來源)
資源庫管理版面:頁1 清單、頁2 明細下鑽、頁3 樣板編輯多 tab

狀態呈現:明細為群組 → 控制項 → AO 三層樹狀,每列顯示控制編號 / 標題與現況預設值摘要;無 socket、純唯讀。

6. API 規格

Envelope:成功 {"status": true, "data": …, "meta": …}、失敗 {"error_code": "…", "msg": "…"}

6.1 總清單(本頁呼叫的 endpoint)

分類 Method + Path 說明 完整規格
明細 GET /module-frame/{uid} 資源庫明細(含 profile / 樣板 SSP 指標) §6.2
控制樹 GET /module-frame/{uid}/control-defaults 該資源庫納入控制集的現況預設值(下鑽資料) §6.2
AO 預設 GET /module-frame/{uid}/objective-defaults AO 現況預設值 樣板編輯器 §6

6.2 核心 endpoint

[GET] /module-frame/{uid}

Response:ModuleFrameDTO(含 oscal_profile_uid / template_ssp_id 指標、framework / profile join 帶出),供本頁定位下鑽的控制母體。欄位卡見 範本管理 §6.2。出處:api/module_frame/routes/module_frame_route.py

[GET] /module-frame/{uid}/control-defaults

Response data(控制項現況預設值,供群組→控制項→AO 下鑽):

欄位 型別 說明
control_identifier string 控制項編號(納入 profile 的控制)
implementation_status 實作狀態(現況預設)
implementation_description 實作說明
responsible_role 責任角色 / 部門
control_origination 控制來源
objectives[] array 該控制項底下 AO 的現況預設(objective-defaults)

讀自 module_frame_uid → template_ssp_id 指向的樣板 SSP ssp_implemented_requirements / ssp_statements。出處:app/module_frame/service/module_frame_control_default_service.py(GET path)。逐欄語意與 lazy upsert 寫入行為見 樣板編輯器 §6.2

7. 前端檔案地圖(compliance-manager-fe/)

檔案 角色
src/views/module_frame/ModuleFrameDetail.vue 頁2 群組→控制項→AO 下鑽檢視
src/config/router/index.js:431-448 route module-frame-items(明細)
src/config/api/api.js endpoint 常數(MODULE_FRAME 等)

8. 後端檔案地圖(本頁核心鏈路)

鏈路 Route App Service 底層
明細 api/module_frame/routes/module_frame_route.py(單筆 GET) app/module_frame/service/module_frame_service.py domain/module_frame/service/module_frame_domain_service(join framework_version + profile)
控制樹下鑽 module_frame_control_default_route.py(GET list) module_frame_control_default_service.py(讀 template_ssp_id → IR / statements) jedi_oscal_v2 SspService(IR 讀取)

DDD 提醒:明細讀取一律解析到 template_ssp_id 對樣板 SSP 讀(單一真相來源);勿另建 sidecar 表存預設值。

9. DB

9.1 資料表總清單(本頁讀的表)

讀/寫 說明 欄位詳述
compliance.module_frames 資源庫主檔(定位 profile / 樣板 SSP) 範本管理 §9.3
oscal.profiles / catalogs 納入控制集母體 GAI-SD-03
oscal.catalog_groups / catalog_controls / catalog_control_parts 群組 / 控制項 / AO 三層樹 GAI-SD-03
oscal.ssp_implemented_requirements 控制項現況預設(顯示) 樣板編輯器 §9
oscal.ssp_statements AO 現況預設(顯示) 樣板編輯器 §9

9.2 ER 圖

資源庫 → template_ssp_id 樣板 SSP → ssp_* 子表關係見 範本管理 §9.2 ER;本頁純讀,不另繪。

10. 頁面邏輯與資料對應

載入:進頁 GET /module-frame/{uid}(定位 profile / 樣板 SSP)→ GET /module-frame/{uid}/control-defaults(下鑽資料)→ 依 catalog 群組結構組樹。

關鍵欄位對應

畫面元素 API 欄位
群組樹節點 catalog_groups(依 profile 納入的控制歸屬群組)
控制項列 control-defaults control_identifier + 標題(catalog_controls)
現況預設值 control-defaults implementation_status/description/responsible_role/control_origination(樣板 SSP IR props)
AO 下鑽 objective-defaults(樣板 SSP ssp_statements props)

儲存流程:本頁無寫入。編輯這些值走 樣板編輯器

11. 背景行為與外部依賴

類型 內容
Socket 本頁 socket
jedi-* 套件 jedi-oscal-v2(樣板 SSP / catalog / profile 讀取)
依賴 資源庫須有 template_ssp_id 與納入 profile 的控制集,才有內容可下鑽

12. 邊界情況與已知坑

  1. 純讀頁:本頁不寫任何表;所有現況預設值讀自 template_ssp_id 樣板 SSP(單一真相來源),要改值請至 樣板編輯器
  2. 無樣板 SSP 時明細空白:資源庫若 template_ssp_id 為空(異常資料),下鑽無內容——正常資源庫由建立流程生成樣板 SSP。
  3. 控制母體來自 profile 納入清單:明細樹只列該資源庫 profile 納入的控制集;調整納入範圍在 樣板編輯器(納入控制項動作)。

13. 開發與驗證

  • 跑起來:BE python main_socketio.py(port 8000,log 在 log/app.log);FE Vite dev server。BE 改 service code 必重啟
  • 測試帳號:資源庫作者 / 管理員;scope=SYSTEM 需 root 租戶帳號(密碼見 .env / 部署文件)
  • 導航路徑:側邊選單「範本管理 / 合規資源庫」→ 某列「明細」(/module-frame/module-frame-items
  • 前置資料:需一筆有 template_ssp_id + 納入 profile 控制集的資源庫
  • E2Ecompliance-manager-test/ repo;以 資源庫明細 / module-frame / ModuleFrameDetail 搜尋
  • 相關文件:上層導航 範本管理;編輯內容 樣板編輯器;資產模型 _overview