跳轉到

Guidant AI v1.23.1 Release Note

項目 內容
版本 1.23.1(BUG 版號;主軸=資安 hotfix——子單位讀不到上層授權(1.21.0 起所有安裝都帶著)、代理程式「測試連線」改收編號、Discord 通知只放行官方網域、拔除沒人用的流程討論)
發布日期 2026-10-01
上一版本 1.23.0(2026-10-01)
涵蓋區間 2026-10-01(BE 98a9a8022..284ed4765;FE b0e90ca..7368d98;同版號重出一次補入 CM-2374)
涵蓋需求 FR-123 1.21.1 資安 hotfix(母卡 CM-2368;原定版號 1.21.1,因 1.22.0/1.23.0 已先出,改以 1.23.1 承載)
規模 jedi-* 套件升版 4 支(remote-agent 1.2.4、notification 1.2.2、license-runtime 1.1.4、compliance-audit 1.3.3);主線 DB migration 新增 1 支(結構類,已進出貨基線);無新服務
適用部署 188 STG → 189 POC(install.sh --upgrade);仍為 --skip-prod-key-check 內部測試包
部署性質 服務組成不變;一支結構 migration(授權三表 policy)隨 migrate 輪套;拔掉一條 socketio 頻道與兩條流程留言 API

0. 發版前回歸 gate

比照 v1.23.0,本版不跑 site-regression 自動回歸。把關方式:四張子卡各自單元測試(含突變驗證)+首腦實打本機 BE;CM-2369 以真 DEV 資料庫跑 12 條 RLS 測試(子單位讀上層 1 筆、改刪 0 筆、兄弟互看 0 筆)並實打 /license/status、/detection-tools/configs。

1. 概述

資安報告逐條複核(CM-2367)後,真正還沒修的只剩三件,本版一次修完,外加拔掉一條沒人用的功能線:

  • 子單位讀不到上層授權(CM-2369,第一優先):1.21.0 把授權三張表的 RLS 改成前綴比對後,子單位切過去看不到母公司的授權,所有要授權的功能全部被擋。本版加一條「只管讀」的 policy,讀取=自己+底下+上層,改刪仍只看自己與底下。
  • 代理程式「測試連線」可探測內網(CM-2370,報告 M01-2):原本收任意網址就去連,改收代理程式編號、用它登記的網址連,回應只說通不通。
  • Discord 測試什麼網址都打(CM-2371,報告 M16-4):只放行 https 的 discord.com/discordapp.com(含 ptb./canary.)且路徑 /api/webhooks/;不符回 NOTIFY_400007。順手修掉「token 錯也顯示測試成功」。
  • 拔除流程討論(CM-2373,報告 M24 第 9 條):即時通知頻道 /socket/notification、流程留言 API、前端元件整條拿掉;問卷討論、任務留言、問卷共編是另一套,不受影響。
  • AI 服務設定頁租戶管理員進不去(CM-2374,同版號重出補入):1.23.0 開放租戶自填金鑰後,AI_PROVIDER_CONFIG 沒登記在能力點對照表,租戶管理員開頁回 403;另外從沒設定過金鑰時誤跳「系統設定資料不存在」。兩處皆修。

2. 使用者可見變更

2.1 授權(有子單位的客戶,升級後要特別看)

  • 切到子單位後,授權狀態頁顯示完整授權(標 is_inherited=true),檢測工具、AI 等要授權的頁面能開。
  • 子單位仍不能改、不能刪上層的授權與停權紀錄。

2.2 代理程式管理

  • 「測試連線」改用已登記的代理程式去連,不再接受手填網址。操作會變:新增代理程式時還沒有編號,對話框內的「測試連線」停用、儲存前不再先測;存完列表自動重測顯示在線/離線。編輯既有代理程式照舊可測。
  • 測試結果只回「可達/不可達」,不再顯示狀態碼與錯誤文字(錯誤只記 log)。

2.3 通知設定

  • Discord webhook 非官方網址存不了、測不了,回「Discord webhook 網址不是官方網域」。
  • 官方網址但 token 錯的情況,「測試」正確回「通知測試失敗」(原本誤報成功)。

2.4 流程討論

  • 流程頁不再有討論區;相關 API 回 404。

3. Breaking Changes

  • GET/PUT /flow-engine/process/comments 與 socketio 頻道 /socket/notification 移除(無人使用)。
  • POST /remote-agents/health-check 的 body 從 base_url 改為 agent_uid;舊 body 會被忽略並回 404。

4. DB Migration

主線(scripts/sql/manifest.tsv 新增 1 列)

檔案 類別 內容
2026-10-01-cm2369-license-tables-ancestor-read.sql 結構 tenant_licenses/tenant_license_events/tenant_license_suspensions 各加一條祖先可讀 policy,重用既有函式 app_tenant_is_ancestor_of_session;原前綴比對 policy 不動

出貨基線

已重產(33340e914):188 基線庫套過,02-schema.sql 多三條 policy,99-stamp.sql 蓋章並隨本版重生 marker v1.23.1。升級既有客戶:migrate 輪套這一支,只加 policy、不動資料。套件側 jedi-license-runtime 002/003 加同名 policy,新裝一致。

5. 相依套件版本

套件 v1.23.0 本版 變了什麼
jedi-license-runtime 1.1.3 1.1.4 002/003 migration 加祖先可讀 policy
jedi-remote-agent 1.2.3 1.2.4 健康檢查改收 agent_uid、只回可達與否
jedi-notification 1.2.1 1.2.2 Discord 發送元件只放行官方網域;非 204 正確回失敗
jedi-compliance-audit 1.3.2 1.3.3 鏡像錯誤碼表對齊主專案

其餘不變。檢測 Agent 不變(1.1.0)。

6. 部署順序

  1. 188 build 機:三個 clone git pull 到本版 commit,build_all.sh --all(沙箱 image 源碼未變可沿用),build_bundle.sh --skip-prod-key-check。smoke 連庫走 README「smoke 用臨時庫」SOP。
  2. 開包驗:BE 版本烙印;四支套件版號;init image 99-stamp.sql 含 cm2369 且 marker v1.23.1。
  3. STG(188):先 sudo docker compose stop guidant-api guidant-socketio 再 install.sh --upgrade;驗有子單位的租戶切過去授權頁完整、檢測工具頁 200。
  4. 放行後 POC(189)。

7. 已知限制與 follow-up(不擋本版)

  • 代理程式「可達=通」只有單元測試涵蓋(DEV 唯一代理程式離線)。
  • Discord 實際送達沒有真 webhook 可驗。
  • jedi-license-runtime 整合測試從 CM-2271 後起不來、test_migrations_are_shipped_and_ordered 少列 004(舊債)。
  • 簽發站 CM-2372 基礎包鎖死屬 license_center 獨立系統,不隨本包。
  • PROD 簽章鑰仍缺。

8. 相關文件

  • Notion:CM-2368(母卡)、CM-2369~2373
  • 資安報告站 docs/security-report/(1.21.1 四件已標已修)