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