本卡屬 FR-169(母卡 (建卡後補 Case No)),卡 B2,批 3。只改 BE(主 repo,Repo 欄空著)。依賴:B1。

這張卡做什麼(白話)

把主系統其餘十幾支匯出端點全部換成呼叫 B1 的 send_protected,每支一行。SSP、模組框架 SSP 匯出各自抄的 _send_attachment 複本刪掉。有三種下載不接:Agent 機器對機器拉的弱點資料庫包(不是人下載)、OSCAL 框架原始 JSON(公開框架內容,非機敏)、PoA&M 的 JSON 若也是機器匯出——回寫列出來給首腦核。診斷包原本是 tar.gz,改走 7z。SSP 的 odt 格式沒有原生密碼,走 7z 包。

reuse/extend/new

extend:每支端點把自己的 send_file/_send_attachment 換成 B1 的 send_protected 一行;刪掉 ssp_export、mf_ssp_export 各自的 _send_attachment 複本。不接:agent_vulndb_route(Agent 機器對機器拉的包,不是人下載)、oscal_framework_version_route OSCAL json 下載(框架公開內容,非機敏;回寫列出)、poam_objective_route json 若為機器匯出同上

在哪裡

repo:~/Projects/Billows/Audit-Manager/compliance-manager-be
改既有:api/oscal/routes/ssp/ssp_export_route.py
改既有:api/module_frame/routes/mf_ssp_export_route.py
改既有:api/oscal/routes/control_mapping_route.py
改既有:api/governance/routes/raci_defaults_io_route.py
改既有:api/governance/routes/risk_register_route.py
改既有:api/pre_engagement/routes/file_route.py
改既有:api/support/routes/diagnostic_bundle_route.py
改既有:api/ai_call_log/routes/ai_call_log_route.py
改既有:api/oscal/routes/ssp/ssp_control_impl_import_route.py
改既有:api/module_frame/routes/ssp_import_template_route.py
改既有:api/module_frame/routes/module_frame_template_import_route.py
改既有:api/source_scan/routes/scan_route.py
改既有:api/project/routes/ar_workbook_route.py
改既有:api/project/routes/pass_report_route.py
改既有:api/project/routes/poam_objective_route.py
改既有:api/project_summary_report/routes/project_summary_report_route.py
改既有:api/remote_agent/routes/agent_local_run_route.py
改既有:api/remote_agent/routes/agent_file_route.py

怎麼做

驗收(首腦照這個驗)

grep -rn 'send_file\|as_attachment' api/ | grep -v file_protect | grep -v vulndb | grep -v framework_version 只剩回寫列出的例外;每支端點實打一次:不帶 header 400、帶 header 回加密檔;tar.gz 診斷包改回 .7z;SSP 匯出 docx/pdf/odt 三格式都要密碼(odt 走 7z 包,回寫註明);守衛測試綠

必讀

紀律