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

FR-188 Agent 掃描回傳主系統修正與多語

📋 開卡完成(2026-11-09),27 張子卡(含 FR-187 資安修正 9 張,批次待排),等決策者在工作坊派

狀態:📋 已開卡 文件 0 份

FR-188 Agent 掃描回傳主系統修正與多語

§1

這案在做什麼

客戶在 Agent 主控台自己按的第三方元件掃描,結果要回到主系統整理、出報告。2026-11-09 在 201(Agent)接雲端主系統實測,這條路斷了好幾處:掃完要等最多五分鐘才送出;Agent 顯示「已回傳」主系統卻是失敗;失敗了只能整個重掃,不能把報告再送一次;Agent 上看不到給人看的 PDF。另外 Agent 英文介面的工具名稱、表單與版本說明仍是中文,以及「新增租戶後手動新增使用者」建的管理員沒掛部門、新增設備被權限規則擋成 500。

前門 nginx 413 與主系統 API/worker 暫存不共用兩項已先修(FE 908a78be、BE 4f09e9033,雲端已臨時套用),不在本案。刪除執行紀錄決策者裁不做。

§2

關鍵決策

  • 最終狀態由主系統決定:Agent「回傳主系統」改三態(已送出/已回傳/主系統處理失敗),主系統處理完經既有長輪詢通知,不夾帶在心跳。
  • 重傳不是重新執行:重傳只把同一份報告再送一次、沿用同一筆紀錄;兩邊都有入口(Agent「重傳報告」、主系統「重新取檔」)。主系統對失敗那筆的重送要重新取檔,不能當重複忽略。
  • PDF 送回 Agent 沿用既有 fetch_file,不新增協定指令。
  • 多語存在資料:工具名稱與表單欄位的英文跟著工具資料走;版本說明分中英兩組存、不並列,從下一版開始。
  • 新使用者沒選部門時掛租戶根部門;顯式「不指定部門」照舊不掛。RLS 擋下的寫入回看得懂的 403。
§3

📊 總進度

批 卡 repo 做什麼 狀態
1 CM-3729 A-1 agent Agent 掃完立即送出結果,不等下一次心跳 Not started
1 CM-3730 S-1 jedi-packages jedi-source-scan:Agent 手動掃描失敗的那筆可以重送與重新取檔 Not started
1 CM-3731 D-1 jedi-packages jedi-detection:檢測工具名稱與表單欄位加英文 Not started
1 CM-3732 U-1 update-center 更新站:版本說明加英文欄,舊版照讀中文 Not started
1 CM-3733 I-1 jedi-packages jedi-iam:新增使用者沒選部門時預設掛租戶根部門 Not started
2 CM-3734 E-1 main 主 repo 環境卡:jedi-source-scan/jedi-detection/jedi-iam 改走工作坊工作區的本機路徑 Not started
3 CM-3735 M-1 main 主系統:取檔錯誤分清楚、處理完通知 Agent 最終狀態、失敗筆可重新取檔 Not started
3 CM-3736 M-2 main 主系統:工具目錄下發英文名稱與表單欄位 Not started
3 CM-3737 R-1 main 主系統出包:版本說明產中英兩份並登記到更新站 Not started
4 CM-3738 M-3 main 主系統:資料庫權限規則擋下的寫入回看得懂的錯誤,不回 500 Not started
4 CM-3739 M-4 main 主系統:第三方元件處理完把 PDF 送回 Agent Not started
5 CM-3740 AG-2 agent Agent:回傳狀態改三態、重傳報告、收主系統送回的 PDF、出包產英文版本說明 Not started
5 CM-3741 F-1 fe 主系統前端:失敗列「重新取檔」、新錯誤碼翻譯、更新中心依語系顯示版本說明 Not started
6 CM-3742 F-2 fe Agent 主控台前端:回傳狀態三態、「重傳報告」按鈕、英文版本說明 Not started
1 CM-3744 A-3 agent Agent 註冊時就帶首次設定的顯示名稱,待核准列不再顯示容器主機名(190 實裝 1.7.4 補卡) Not started
7 CM-3745 F-3 fe Agent 主控台:待核准不再寫「已被撤銷或停用」、白名單說明對齊安裝不問(FR-185 CM-3727 漏網) Not started
7 CM-3746 F-4 fe 平台待核准列報到時間改顯示最近一次報到 Not started
7 CM-3743 Z-1 main 結案:三支套件發版、主 repo 改回釘版、更新站 migration 待放行 Not started
待排 CM-3748 SEC-1 main 落地版子公司拿到整機診斷包、升級紀錄與升級操作(FR-187 #252/#253/#255) Not started
待排 CM-3749 SEC-2 main 設給 Agent 的工具帳密明文存資料庫(FR-187 #241) Not started
待排 CM-3750 SEC-3 jedi-packages jedi-remote-agent:Agent 憑證比對「是不是發給這台的那張」(FR-187 #245/#249) Not started
待排 CM-3751 SEC-4 main 信任庫不再併 Agent 憑證中心;Redis 密碼不上指令列;Agent 金鑰目錄真唯讀(FR-187 #254/#257/#258) Not started
待排 CM-3752 SEC-5 main Agent 回報收緊:日誌截斷、去重鍵、稽核操作者、升級批次分租戶、升級紀錄上傳(FR-187 #242/#243/#244/#247/#248) Not started
待排 CM-3753 SEC-6 main 檢查更新只回必要欄位、線上開通限流、壓測端點只認專用開關(FR-187 #246/#250/#262) Not started
待排 CM-3754 SEC-7 main 升級進度檔不寫管理員帳號、完成後清(FR-187 #256 主機端) Not started
待排 CM-3755 SEC-8 fe 前門 nginx 升級進度檔只在維護期間給讀(FR-187 #256 前門) Not started
待排 CM-3756 SEC-9 jedi-packages jedi-common/jedi-masking 遮罩加開通碼(FR-187 #251) Not started

批次規則:同一批可同時派、不改同一個檔;登記型共用檔(error code 表、api.js、i18n、套件 pin/lock)不同批。三支套件改動由 E-1 環境卡讓主 repo 走本機路徑,Z-1 結案發版並改回釘版。

§4

FR-187 資安修正併進本案

FR-187 資安掃描(母卡 CM-3711)找到 22 條,這裡修其中 19 條,開成 SEC-1~SEC-9 九張卡。出版管線那三條(#259、#260、#261)決策者裁定先不做。每條的檔名、行號、面板票數在總表 docs/features/security-scan-consolidated/README.md §3.1 #241~262。

SEC 九張的批次還沒排,排的時候要注意幾個同檔衝突:

  • SEC-2 與 M-1 都改 agent_request_service.py。
  • SEC-6 若改 common/code/error_code.py,會跟 M-1、M-3 衝突;卡上建議改加在 agent_license_error_code.py。
  • SEC-3(jedi-remote-agent)、SEC-9(jedi-common、jedi-masking)改套件,所以 E-1 環境卡要排在它們之後,Z-1 結案卡的發版範圍也擴成六支套件(兩張卡上都已補說明)。
§5

驗證提醒

主系統 API 收檔、worker 讀檔這類跨容器行為,本機 DEV 測不出來(api 與 worker 共用同一個 /tmp);最終驗收要在 docker 安裝版跑一次「Agent 手動第三方元件掃描回傳主系統」整條流程。

沿革見 docs/features/FR-173-2611-release-pipeline/handoff/FR-173-LOG.md 第 8 棒與 git log。

§6

Notion 卡

卡片內容(決策紀錄、驗收條件)以 Notion 為準,本頁只記座標。

關係 卡號 標題 狀態
母案 CM-3728 — —
子卡 CM-3729 — —
子卡 CM-3730 — —
子卡 CM-3731 — —
子卡 CM-3732 — —
子卡 CM-3733 — —
子卡 CM-3734 — —
子卡 CM-3735 — —
子卡 CM-3736 — —
子卡 CM-3737 — —
子卡 CM-3738 — —
子卡 CM-3739 — —
子卡 CM-3740 — —
子卡 CM-3741 — —
子卡 CM-3742 — —
子卡 CM-3743 — —
子卡 CM-3744 — —
子卡 CM-3745 — —
子卡 CM-3746 — —
子卡 CM-3748 — —
子卡 CM-3749 — —
子卡 CM-3750 — —
子卡 CM-3751 — —
子卡 CM-3752 — —
子卡 CM-3753 — —
子卡 CM-3754 — —
子卡 CM-3755 — —
子卡 CM-3756 — —