Project

General

Profile

Actions

CR #892

open
RA

[CR-079] POC-13 收單授權分流真機驗證發現:13-5 分流熱更新寫入回 500(設定檔不可寫/應為4xx)/13-1~4 轉接無 LOG/13-3 無 NCCC 轉送實作/13-6 回退未實測

CR #892: [CR-079] POC-13 收單授權分流真機驗證發現:13-5 分流熱更新寫入回 500(設定檔不可寫/應為4xx)/13-1~4 轉接無 LOG/13-3 無 NCCC 轉送實作/13-6 回退未實測

Added by Redmine Admin 1 day ago. Updated about 19 hours ago.

Status:
In Progress
Priority:
P0-Urgent
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Story Points:

Description

【發現情境】POC-13 收單授權分流(新舊系統並存)真機驗證(2026-10-24,api-gateway 8081/authorization 8092;FR AUT-1.2/AUT-1.3)。

【本 POC 有專屬實作(先肯定)】

  • CycleSplitGlobalFilter、CycleSplitProperties(enabled/percentage/legacyUri/merchantHeader/pathPrefix)
  • CycleSplitConfigAdapter implements SplitRatioConfigPort(SCS-020 §9.12),註解明載「分流(Cycle Split)熱更新檔(SYS-8/SAD-002 §6;POC-13)」
  • SplitRatioController:GET/PUT /api/v1/gateway/split-ratio;SplitRatioAdminService 含「讀現值→定點寫檔→refresh→回讀驗證」;GatewayRouteService 不快取

【13-5 分流比例熱更新:部分(讀取 OK/寫入 500)】

  • 實測 GET /api/v1/gateway/split-ratio → 200:enabled=false、percentage=0、legacyUri=http://localhost:8080、merchantHeader=X-Merchant-Id、pathPrefix=/auth-api/、configFileWritable=**false**。
  • 實測 PUT {"enabled":true,"percentage":10} → 500 CC-PLT-5000「寫入分流熱更新檔失敗:…/config/cycle-split.yml」。
  • 待改:①設定檔 config/cycle-split.yml 於本環境不可寫(或不存在)→ 熱更新無法生效;②「設定檔不可寫」屬可預期之客戶端/環境錯誤,應回明確 4xx(如 409/422)與具體原因,現回 500+空 details,不利排查與維運。

【13-1~13-4、13-6:未驗證(無轉接 LOG)】

  • 13-1 新系統收單、13-2 轉接舊系統、13-3 轉送 NCCC(他行卡)、13-4 轉送舊系統(本行卡):BRD 要求「每一筆轉接均須有可追溯之 LOG」;
    本次因 enabled=false 且未實際轉接,均未取得 LOG,故不宣告通過。
  • 13-3 另未見明確之 NCCC 轉送/模擬器實作(僅見 Stand-in 降級機制)。
  • 13-6 回退:可經 /split-ratio 調整,但「≤ 1 分鐘完成」未實測;且寫入路徑目前 500(見 13-5),須先修復後再驗。

【交付】docs/09-demo/poc-13-cycle-split/(overview+13-1~13-6);證據 docs/08-evidence/POC-13_* 與 DEMO_POC-13_step-*;poc-flows/POC-13 已標「已驗證(部分)」。

RA Updated by Redmine Admin 1 day ago Actions #1

【追蹤中(#A-394)】①13-5 部分:GET /api/v1/gateway/split-ratio → 200(enabled=false/percentage=0/legacyUri/merchantHeader/pathPrefix 齊備、configFileWritable=false);PUT → 500 CC-PLT-5000「寫入分流熱更新檔失敗」→ 待改:設定檔不可寫(或不存在)之熱更新可用性;且此類可預期錯誤應回明確 4xx+具體原因,現回 500+空 details。②13-1~13-4 未驗證:BRD 要求每筆轉接有可追溯 LOG,本次 enabled=false 且未轉接,一筆 LOG 皆無;13-3 另未見 NCCC 轉送/模擬器實作。③13-6 回退未實測(寫入目前 500,須先修 13-5)。已具備(肯定):CycleSplitGlobalFilter/Properties/ConfigAdapter(註明 POC-13)/SplitRatioController(GET·PUT,含讀值→寫檔→refresh→回讀驗證)、GatewayRouteService 不快取。證據 docs/08-evidence/POC-13_* 與 DEMO_POC-13_step-*;動畫 docs/09-demo/poc-13-cycle-split/。本 CR 暫不結案。

RA Updated by Redmine Admin about 19 hours ago Actions #2

【CR-079 修復+查證更正完成(2026-10-25,#A-396)】■ 13-5 修復:分流熱更新寫入失敗(組態檔不可寫等環境狀態)自 500 CC-PLT-5000 更正為 409 CC-PLT-4090(SDD-006 v1.26 新登錄;D-050;SCS-020 v1.12 §9.12.2 #6 更正)——gateway 測試 0 失敗(斷言更新);真機(8100):組態檔不可寫時 PUT → 409 CC-PLT-4090 帶原因(舊版 500)。■ 13-1~4 查證更正:「轉接無 LOG」為stale 誤判——CycleSplitGlobalFilter 之每筆決策 LOG 自初始提交即存在;本輪真機複驗:分流決策 LEGACY(轉接 8080)與 NEW 各一筆 log.info 落日誌。■ 13-6 回退真機驗證:PUT percentage=0 → 200、回讀 effectiveMatchesRequest=true。★ 未解:13-3 NCCC 轉送仍未驗證(需 NCCC STIP mock,GAP-001 相關)——本 CR 維持 In Progress。證據 docs/08-evidence/CR-079_修復驗證_20261025/。

Actions

Also available in: PDF Atom