MySQL TaskStore node_executions 目標模式收斂稽核

返回

MySQL TaskStore node_executions 目標模式收斂稽核

1. 文件目的

本文件整理目標模式下,第二階段 MySQL TaskStore 與 Schema Automation 的收斂證據、已完成驗證與延後邊界。

本文件不執行真實 DB 寫入、不保存密碼、不修改 schema、不執行 DDL,只作為目前狀態稽核與下一步確認依據。

本文件的安全測試驗證範圍截至程式 repo commit 22d5eb6;文件本身後續以 commit 80c8e04 補齊並同步到文件網站。

2026-06-02 後續已在使用者明確同意下,於測試 DB 建立 node_executions,並以程式 repo commit 0216296 作為驗證執行版本完成真實 DB manual-only 寫入 / 查詢 / cleanup 驗證;驗證紀錄已於 commit ade8860 同步。驗證紀錄見 MySQL TaskStore node_executions 真實 DB 驗證紀錄

2. 稽核時間與版本

項目 內容
稽核日期 2026-06-02
程式 repo 分支 poc/nmodbus-tcp
已驗證程式 commit 22d5eb6
node_executions 真實 DB 驗證執行 commit 0216296
node_executions 驗證紀錄同步 commit ade8860
稽核文件 commit 80c8e04
目標 收斂第二階段 MySQL TaskStore 與 Schema Automation,補齊 node_executions 持久化前置確認、必要實作與驗證,並明確界定延後邊界。

3. 已完成證據

項目 目前狀態 主要證據
task_executions 第一版 PoC 已完成 已有 Save / FindById / ListRecent 與真實 DB manual-only 驗證紀錄。
node_executions schema class 已完成 MySqlTaskNodeExecutionSchema 維護 table、column、index 與 comment。
node_executions SQL builder 已完成 MySqlTaskStoreSqlBuilder 會先 delete 同 task id 的 node rows,再依 NodeRecords 順序 insert。
node_executions fake gateway 測試 已完成 MySqlTaskStoreTests 覆蓋 delete-before-insert、insert order、欄位 mapping、長欄位截斷與錯誤遮蔽。
schema precheck 停止線 已完成 MySqlTaskStoreNodeExecutionSchemaPrecheckTests 覆蓋缺表、缺欄位、缺 comment、PK 不符與缺 index。
manual-only xUnit 入口 已完成 MySqlTaskStoreNodeExecutionsManualMySql56Tests 預設 gate 關閉,只有明確開啟才會寫入測試 DB。
真實 DB 驗證前確認清單 已完成 mysql-taskstore-node-executions-real-db-precheck.md 已固定測試 DB、schema、gate、cleanup、通過條件與停止線。
node_executions 真實 DB 寫入 / 查詢 / cleanup 驗證 已完成 使用者確認後建立測試 DB table,manual-only 測試通過,NodeExecutionRowCount=2FindById / ListRecent 通過,cleanup 成功。
延後邊界 已完成 文件已明確標示 command_executions、詳細 log table、Schema Apply / DDL Executor 與 NodeRecords 查詢回填皆延後。
狀態同步流程 已補強 文件網站 status.json 可同步最新程式 commit,且可用 UTF-8 正確解析。

4. 本次安全驗證結果

本次只執行不碰真實 DB 的安全驗證,並明確關閉 manual gate:


$env:HS_MYSQL_TASKSTORE_ENABLED="false"
$env:HS_MYSQL_TASKSTORE_ALLOW_WRITE="false"
$env:HS_MYSQL_INSPECT_ENABLED="false"
驗證項目 指令 結果
MySQL Infrastructure 測試 dotnet test tests\HS.DeviceControl.Infrastructure.MySql.Tests\HS.DeviceControl.Infrastructure.MySql.Tests.csproj 59 passed
全專案測試 dotnet test HS.DeviceControl.sln 391 passed

已知警告:

5. 必要證據收斂結果

項目 狀態 收斂說明
node_executions 真實 DB 寫入 / 查詢驗證 已完成 使用者明確同意後執行 manual-only 測試,schema precheck、Save、node rows 查詢、FindById、ListRecent 與 cleanup 皆通過。
真實 DB 驗證紀錄 已完成 已新增 mysql-taskstore-node-executions-real-db-verification-record.md
第二階段 TaskStore 多表進度 可標記完成 task_executionsnode_executions 皆已有真實 DB manual-only 驗證證據;命令明細與詳細 log table 已明確延後,不阻塞本節點收斂。

6. 明確延後邊界

項目 狀態 延後原因
command_executions 延後 RawRequest / RawResponse 資料來源尚未固定,不宜直接改 public model。
詳細 log table 延後 建議獨立走 DB LogWriter / TraceStore,不應塞入 MySqlTaskStore.Save
Schema Apply / DDL Executor 延後 任何 CREATE TABLEALTER TABLEDROP 都屬高風險 DB 操作,需要另行確認。
FindById / ListRecent 回填 NodeRecords 延後 會改變查詢語意與 contract,需要另行設計。

7. 已完成驗證指令

本目標在使用者確認後已執行:


dotnet test tests\HS.DeviceControl.Infrastructure.MySql.Tests\HS.DeviceControl.Infrastructure.MySql.Tests.csproj --filter FullyQualifiedName~MySqlTaskStoreNodeExecutionsManualMySql56Tests --logger "console;verbosity=detailed"

通過重點:

8. 稽核結論

目前 node_executions 的前置確認、必要實作、fake gateway 測試、schema precheck、manual-only 驗證入口與真實測試 DB 寫入 / 查詢 / cleanup 驗證皆已完成。

本目標可標記完成。建議下一步同步文件網站進度,並進入 command_executions 或 DB LogWriter / TraceStore 設計前確認。