公司/使用者 自行定義SSP功能實作規格

§1

原因

目前的專案啟動流程如下: 合規框架(compliant_frameworks)(oscal.catalog) -> 由User從合規框架挑選適合公司的控制項, 建立適合公司的合規資源庫(module_frames)(oscal.profile) -> 由User發起啟動專案(start_oscal_project) -> 專案建立流程: POST /oscal/projects/start

├─ 1. 驗證專案名稱不重複

├─ 2. 取得 Profile(by profile_uid)

├─ 3. 處理 SSP
│ ├─ 有帶 ssp_uid → 嘗試取得既有 SSP
│ └─ 沒有或找不到 → 建立空白 SSP ✦ 這裡才建 SSP

├─ 4. 建立 Assessment Plan (AP) + 空白 Assessment Result (AR)

├─ 5. 建立 Project + ProjectExtension
│ └─ ProjectExtension: module_frame_id(反查 profile→module_frame)、owner_id

├─ 6. 建立 Project ↔︎ AP mapping │
├─ 7. 初始化 AP(從 Profile clone 控制項/任務)
│ → assessment_plan_groups / controls / tasks / task_controls
│ (try/except 包裹,失敗不回滾)

├─ 8. 為每個 AP Task 建立定版 Workflow
│ ├─ 從 profile_assessment_workflow_mapping 找到預設 template
│ ├─ clone workflow_template(定版,獨立副本)
│ ├─ 建立 workflow_execution(子流程實例)
│ ├─ 建立 task ↔︎ workflow_template mapping
│ └─ 建立 task ↔︎ workflow_execution mapping

├─ A. 建立稽核系統(audit_systems)
│ → SSP system_characteristics 快照 + project 映射

├─ B. 加入額外參與者(排除建立者)

├─ C. 加入設備(project_device_mapping)

└─ 9. 把建立者加為專案管理員

目前希望把SSP編輯功能補上, 所以要調整合規資源庫和專案的啟動流程: 合規框架(compliant_frameworks)(oscal.catalog) -> 由User從合規框架挑選適合公司的控制項, 建立適合公司的合規資源庫(module_frames)(oscal.profile) -> 由User定義SSP(system_characteristics) ->

  • 目前公司如何符合這些控制項(目前先以文字描述,未來可考慮結構化資料)
  • 有哪些對應的表單, 應該會完成後續的專案任務(task)需要填寫這些表單, 以利後續稽核使用 由User發起啟動專案(start_oscal_project)