FR-116 · 需求索引 · 本頁由 build 掃資料夾生成

FR-116 jedi-compliance-audit 全掃——套件本體+主專案接線

文件 11 份

FR-116 jedi-compliance-audit 全掃(套件本體+主專案接線)

母卡 CM-2088|盤點子卡 CM-2089|狀態:✅ 九棒全收(2026-09-23 盤點驗收、九張掃描子卡;2026-09-24 九棒全部驗收)|發現已全數處理——7 條已修、2 條隨功能拆除,隨 1.21.0 出貨(FR-114 修正線)

§1

結論

九棒全收(2026-09-24)。jedi-compliance-audit(稽核流程套件)套件本體與主專案接線兩側去重 124 檔/12,255 行全部掃完,淨新增 8 條、沒有高風險:

項次 問題 嚴重度 哪一棒
第 166 項 「任務設定樹」網址只查登入、不查專案成員,會洩漏被指派人姓名 低 C1b
第 167 項 「目前 SSP」網址只查登入、不查專案成員 低 C1b
第 168 項 專案經理能改寫、再刪掉稽核人員寫的改善建議 低 C2a
第 176 項 稽核計畫 Word 匯入是壓縮炸彈 中 C4a
第 177 項 稽核計畫 Word 解析器三條比對規則遇超長文字卡住 低 C4a
第 178 項 兩張解析工作單表的資料庫隔離規則照抄 5 月已判壞的寫法,子公司看得到母公司的工作單 低 C4a(C4b 確認 Excel 那張同條)
第 179 項 稽核結果 Excel 解析一路讀到上傳者決定的最後一列,4.9KB 的檔就吃 355MB 中 C4b
第 180 項 確認匯入稽核結果時,佐證資料照前端送來的存、不核是不是這一輪的 低 C4b

另外兩件不加條數、但改了總表:總表第 66 項(讀取只查登入不查專案成員)由中升高——C3 查出判定矩陣、風險、改善計畫內容也在同一批,三人面板一致評高;第 133 項修法前提推翻(FR-118 V4a 帶出)。

這支套件的病集中在四個主題:

  • 「有人守了一半」四次:C1b 網址掛了「要登入」「客戶有買模組」兩道檢查,就是沒問「你是不是這個專案的人」;C2a 稽核輪次路由 8 支讀取全漏;C3 服務本體只查「輪次存不存在」;C1c「更新稽核計畫」網址零守門(背後服務是空殼,現在不寫資料庫)。
  • 「有接零件才檢查」三個現場:C1 審閱簽核與 C5 SSP 匯出都是「組裝時傳了零件才守、沒傳就放行」。現在唯一組裝點都有傳、不出事,是未來地雷,併總表 §7 第 13 項。
  • 壓縮炸彈第三、第四個入口:C4a 稽核計畫 Word、C4b 稽核結果 Excel,病灶在套件共用讀檔器 RegistryBase;加上主專案 SSP 的 Word/Excel(第 124/127 項),合計四個入口兩個 repo,要同一張卡修。
  • 壞的隔離規則被照抄:兩張解析工作單表照抄 5 月已判定壞掉、SSP 那張早就修掉的寫法。

修正線處理結果(全部隨 1.21.0 出貨,2026-10-01 對照 docs/security-report/M12-compliance-audit.md 與 SUMMARY):本批 8 條+總表第 66 項的稽核輪次十支讀取(SUMMARY #57)合計 9 條,7 條已修、2 條裁定拆除——任務設定樹與目前 SSP 兩支沒人用的網址已拆(CM-2176);改善建議改為稽核方專屬、確認匯入佐證核歸屬(CM-2174);壓縮炸彈與讀到最後一列(CM-2181);兩張工作單表隔離規則(CM-2195);稽核輪次讀取含稽核團隊名單跨客戶(CM-2037+CM-2172)。下列五件是掃描當時發現修正分支沒涵蓋的缺口,現況如下:

  1. 第 66 項的稽核計畫選單與儀表板兩支:已併入稽核輪次讀取修正(SUMMARY #57,CM-2037+CM-2172,✅ 已修)。
  2. 第 129 項(程序書掛載時換算編號不限計畫):✅ 已修(SUMMARY #153,CM-2173)。
  3. CM-2037 的稽核團隊名單修法擋不住跨客戶:✅ 已裁退回重修並修好(CM-2172,查不到輪次回 404)。
  4. 壓縮炸彈四個入口(第 124/127/176 項,第 179 項同一個讀檔器):✅ 已修(FR-114 CM-2181 同卡,套件 2cb9d2cd/BE 48638cbdb)。
  5. 第 178 項兩張表改隔離規則:✅ 已修(CM-2195,56dd4cdc8,隔離規則改標準四條)。

排除的也是結論:待辦清單、三種回退、round_id 可選參數、is_admin 放行、Excel 公式注入等卡片點名的懷疑都查過不成立,細節在各棒報告與總表 §3.4。存稽核判定與風險的六張 oscal 表資料庫隔離全關,程式這一關漏了就沒有備援。⚠️ 出貨 02-schema.sql 快照與 DEV 的隔離狀態不一致(套件 migration 002 沒重產進快照),屬出貨基線問題,不歸本批。

§2

總進度

棒 做什麼 規模(套件+主專案) 卡號 狀態
盤點 兩側配對切棒+範圍條件對照表+隔離對照表 124 檔/12,255 行,切 9 棒 CM-2089 ✅ 驗收通過(09-23,九棒行數全對零退回)
C3 🔴 稽核結果與改善計畫 6/1,934(5+1) CM-2097 ✅ 驗收通過(09-24):兩側 verified、15 票全投;判定矩陣、風險清單、POA&M 清單/詳情四支讀取全不查專案成員(套件側三條 3:0 評高,=總表第 66 項同批,淨新增 0;第 66 項由中等升高),修法 CM-2037+CM-2172,已修,1.21.0 出貨;卡片點名的 round_id 可選參數/查詢失敗行為/刪除檢查甲改乙三件查證排除;DEV 唯讀實查稽核判定/風險六張表(oscal schema)隔離全關。scan-C3.md
C2a 🔴 稽核輪次主體 10/1,939(8+2) CM-2098 ✅ 驗收通過(09-24):兩側 verified、18 票全投;稽核輪次路由 8 支讀取全都不查專案成員=總表第 66 項、階段歷程=第 52 項(修法 CM-2037+CM-2172,已修,1.21.0 出貨);新增專案經理能改寫再刪掉稽核建議=總表第 168 項(低,產品規則已裁:改善建議屬稽核方專屬,CM-2174 已修);三種回退、開輪指定範本查過不成立。scan-C2a.md
C2b 階段歷程、回退標記、規劃檢查 15/1,612(14+1) CM-2099 ✅ 驗收通過(09-24):兩側 verified、套件側 9 票全投皆 3:0、主專案側零候選;淨新增 0——三條全是 C2a 重複(階段歷程=總表第 52 項,輪次清單、單筆輪次=第 66 項;報告寫的「第 57 項」是 SUMMARY 編號);卡片點名四件全不成立;回退標記三支讀取確認死碼,已裁不清、記功能待補(總表 §7 第 39 項)。scan-C2b.md
C1b 🔴 任務設定樹、目前 SSP、待辦 21/1,404(19+2) CM-2100 ✅ 驗收通過(09-24):兩側 verified、6 票全投;任務設定樹、目前 SSP 都不查專案歸屬(前者洩漏指派人姓名),皆低=總表第 166/167 項;待辦清單不成立。scan-C1b.md
C5 程序書文件池資料層 12/1,213(9+3) CM-2101 ✅ 驗收通過(09-24):兩側 verified、12 票全投;淨新增 0——三條 3:0 全是總表第 118/119 項(修法 CM-2041,已修,1.21.0 出貨),add_mappings 面板 0:3 否決屬單側盲點、第 129 項維持;卡片點名三件查證排除,FR-113 O9 兩支懸案檔(oscal_containers.py、ssp_catalog_title_query.py)結清;⚠️ 第 129 項在 fix/security-b1 上尚無修法;SSP 匯出「有接才守」併總表 §7 第 13 項;DEV 唯讀實查程序書池兩張表隔離全關。scan-C5.md
C1 接線總裝+審閱簽核 22/1,739(20+2) CM-2102 ✅ 驗收通過(09-24):兩側 verified;淨新增 0——主專案側 5 條 15 票皆 3:0,全是舊案(改/刪/看單筆任務=總表第 45 項、任務清單=第 155 項、強制開始=第 159 項);套件側審閱簽核提早 return(review_service.py:41-42)面板 0:3 否決,首腦核實唯一組裝點兩零件都有傳,未來地雷併總表 §7 甲組(第 13 項);ap_uid 沒用、三支守門 adapter、接線缺了會不會安靜三件查過不成立。scan-C1.md
C4a 稽核計畫 Word 匯入 14/1,271(13+1) CM-2103 ✅ 驗收通過(09-24):兩側 verified、12 票全投、4 條全 3:0,兩側各自掃到壓縮炸彈互相印證;淨新增 3 條=總表第 176 項(壓縮炸彈,中,病灶在套件 RegistryBase、併第 124/127 項同卡)、第 177 項(三條比對規則卡死,低)、第 178 項(兩張解析工作單表隔離規則壞掉,低,出貨基線待重產);卡片點名五件不成立;「捨棄工作單」守門已裁收緊(CM-2174,總表 §7 第 47 項);blsadmin 旗標屬 DEV 測試資料、不開卡(第 48 項)。scan-C4a.md
C4b 稽核結果 Excel 匯入 19/1,585(18+1) CM-2104 ✅ 驗收通過(09-24):兩側 verified、9 票全投全 3:0;淨新增 2 條=總表第 179 項(Excel 讀到上傳者決定的最後一列,中,本機實測 4.9KB 檔 20 萬列 10.9 秒/355MB)、第 180 項(確認匯入時佐證照單全收,低,依附第 34 項);壓縮炸彈=第 176 項、工作單表壞規則=第 178 項,不另計;Excel 側預覽與捨棄要求稽核員或管理者,比 C4a 嚴;卡片點名五件不成立;round_id 改必填已裁(CM-2174,總表 §7 第 49 項)。scan-C4b.md
C1c 主專案兩支路由 11/1,255(9+2) CM-2105 ✅ 驗收通過(09-24):兩側 verified、12 票全投,兩側各自掃到同兩條;淨新增 0——稽核計畫選單、儀表板不查專案成員=總表第 66 項,掃描當時 CM-2037 只涵蓋 audit_round_route.py 那 8 支、這兩支沒修;後已併入稽核輪次讀取修正(CM-2172,1.21.0 出貨)(首腦 diff 核實,已補進第 66 項);專案路由讀寫守齊,「寫有守、讀沒守」不成立;「更新稽核計畫」服務是空殼、現在不是洞是地雷,已裁拆網址(CM-2177,總表 §7 第 44 項)。scan-C1c.md

盤點檔:scan-inventory.md。🔴 每棒跑兩次掃描(套件側 scanRoot=套件目錄、主專案側 scanRoot=BE)——掃描工具只認 scanRoot 那個 repo 追蹤的檔,跨 repo 路徑會被靜默丟掉。

§3

需求討論紀錄

  • 2026-09-23:待掃順序第 2 順位。FR-113 O6 證實此套件刪除方法查詢條件只有編號、沒有「屬於哪份計畫」(總表第 118/119 項根因在套件側),故盤點要求兩側配對切、並專列「範圍條件對照表」。
  • 2026-09-23:盤點驗收通過(首腦逐棒實跑兩側驗證指令全對)。決策者裁:api/flow_control/__init__.py 留在 C1(FR-095 H2 那邊比照不重報);出貨基線隔離不一致另開查證卡不塞進掃描棒;死碼 39 支記總表 §5 待辦。九張掃描子卡一次建完。建卡時首腦讀工具原始碼確認 --scope 不能跨 repo,改為每棒兩次掃描。
  • 2026-09-24:C3 驗收通過、淨新增 0,總表第 66 項由中等升高(同一張修正卡涵蓋的 8 支取最重那支)。runner 報告第 6 節說盤點檔 §5.3「八張全關」有誤——首腦查證是 runner 看錯表:有隔離的是舊表 compliance.poams,POA&M 實際存放的 oscal.poams 在 DEV 隔離是關的,盤點檔沒錯、不用改。
  • 2026-09-24:C1 驗收通過、淨新增 0。審閱簽核「零件沒裝就放行」不登新項次,併總表 §7 第 13 項;api/flow_control/__init__.py 已由本棒掃過,FR-095 H2 派時不重報。
  • 2026-09-24:C5 驗收通過、淨新增 0。面板否決 add_mappings 不推翻總表第 129 項(單側盲點);首腦開修正分支核實 CM-2041 已修第 118/119 項、第 129 項零修法。oscal_containers.py:343 與資料表定義的過期註解不屬資安、不登。
  • 2026-09-24:C1c 驗收通過、淨新增 0。首腦 diff 核實 CM-2037 沒涵蓋 assessment_plan_route.py,選單與儀表板補進總表第 66 項格內;「更新稽核計畫」空殼登總表 §7 第 44 項,已裁拆除(CM-2177)。專案選單永遠回空、套件 repo 介面漂移屬功能面,不登。
  • 2026-09-24:C4a 驗收通過、淨新增 3 條(總表第 176~178 項)。首腦核實套件 registry_base.py 零處解壓大小檢查、兩個修正分支都沒修;DEV 查 pg_policies 確認兩張工作單表規則原文與 migration 一致。確認匯入照寫人員編號、repo 只認編號兩件屬資料正確性,不登。
  • 2026-09-24:C4b 驗收通過、淨新增 2 條(總表第 179/180 項),FR-116 九棒全收。首腦核實 airasia_cmmc_l1_ar_v1.py:162-164 讀到 max_row;C4b 壓縮炸彈併第 176 項、工作單表併第 178 項不另計;jedi-compliance-audit 移入總表 §0.5「已掃完」。母卡轉「修正待驗證」,Done 等決策者收口令。
§4

文件

以下全部由 build 掃資料夾產生,新增檔案重 build 即自動出現。標題連結指向渲染後的 HTML,md 連向源檔。

證據與盤點

文件 類型 標題 最後更新
scan-C1 / md 盤點證據 C1 掃描報告——接線總裝+審閱簽核 2026-10-01
scan-C1b / md 盤點證據 C1b 掃描報告 — 任務設定樹、目前 SSP、稽核人員待辦清單(CM-2100) 2026-10-01
scan-C1c / md 盤點證據 C1c 掃描報告 — 專案清單/詳細與稽核計畫選單的主專案路由(CM-2105) 2026-10-01
scan-C2a / md 盤點證據 C2a 掃描報告 — 稽核輪次主體(CM-2098) 2026-10-01
scan-C2b / md 盤點證據 C2b 掃描報告:階段歷程、回退標記、規劃完成度檢查(CM-2099) 2026-10-01
scan-C3 / md 盤點證據 C3 掃描報告 — 稽核結果與改善計畫(CM-2097) 2026-10-01
scan-C4a / md 盤點證據 C4a 掃描報告 — 稽核計畫 Word 匯入(CM-2103) 2026-09-24
scan-C4b / md 盤點證據 C4b 掃描報告 — 稽核結果 Excel 匯入(CM-2104) 2026-09-24
scan-C5 / md 盤點證據 C5 掃描報告 — 程序書文件池的資料層+兩支懸案檔(CM-2101) 2026-09-24
scan-inventory / md 盤點證據 FR-116 掃描盤點——jedi-compliance-audit 套件本體+主專案接線:範圍界定與切棒 2026-09-23

其他文件

文件 類型 標題 最後更新
baseline-rls-check / md 文件 出貨基線 RLS 查證(CM-2107) 2026-09-23