# 資料庫可視化儀表板

本頁整理 MySQL / Schema Automation 目前完成度、資料表邊界、驗證狀態與後續風險，方便快速判斷第二階段資料庫能力已做到哪裡。

## 目前階段

| 項目 | 內容 |
|---|---|
| 目前階段 | 第二階段 A / B 已完成：TaskStore `task_executions`、`node_executions`、DB LogWriter `task_log_traces`、TaskTraceStore 查詢邊界設計與 Schema Apply 安全策略已收斂。 |
| 最新程式版本 | `84ec9a1` |
| 測試 DB | `hs_device_control_test` |
| 真實 DB 驗證 | `task_executions`、`node_executions`、`task_log_traces` manual-only 寫入 / 查詢 / cleanup 驗證已完成。 |
| 正式 DB | 尚未導入，不得自動 Apply。 |

## 資料庫進度

| 項目 | 進度 | 說明 |
|---|---:|---|
| Schema Attribute | 100% | 已可由 C# Class 維護 table / column / index / comment。 |
| SQL Generator / Dry Run | 100% | 已可產生 MySQL 5.6.2 相容 SQL preview 與 dry run plan。 |
| Schema Inspector | 100% | 已完成抽象、Mock Inspector 與真實 MySQL metadata 讀取。 |
| TaskStore `task_executions` | 100% | Save / FindById / ListRecent 與真實 DB manual-only 驗證已完成。 |
| TaskStore `node_executions` | 100% | 多表保存、schema precheck、真實 DB 寫入 / 查詢 / cleanup 驗證已完成。 |
| DB LogWriter `task_log_traces` | 100% | schema class、mapper、sanitizer、fallback、manual-only xUnit、測試 DB DDL 與真實 DB 驗證已完成。 |
| TaskTraceStore read-side 邊界 | 100% | 查詢條件、回傳資料、SQL 安全與 public contract 停止線已完成設計。 |
| Schema Apply 安全策略 | 100% | gate、權限、備份、rollback、plan hash、高風險分類與停止線已完成；正式 DDL executor 延後。 |

## 資料表邊界

| Table | 用途 | 第二階段狀態 |
|---|---|---|
| `task_executions` | 任務主檔，保存 TaskId、Workflow、Status、StartedAt、CompletedAt 等摘要。 | 已完成真實 DB manual-only 驗證。 |
| `node_executions` | 節點歷程，保存 NodeId、NodeName、Status、耗時、錯誤碼與重試資訊。 | 已完成真實 DB manual-only 驗證。 |
| `task_log_traces` | 詳細 Log / Trace，記錄 TaskId、NodeId、DeviceId、CommandName、Level、Status、ErrorCode、Data / Raw / Metadata 摘要。 | 已完成測試 DB DDL、manual-only 寫入 / 查詢 / cleanup 驗證。 |
| `command_executions` | 命令明細表候選。 | 已完成實作前確認；資料來源尚未定案，延後。 |
| `schema_migrations` / `schema_apply_history` | Apply 歷程候選。 | 未實作；若要做 DDL executor 前需重新確認。 |

## 已符合 / 延後

| 類別 | 狀態 | 說明 |
|---|---|---|
| 已符合 | MySQL TaskStore 主檔 / 節點保存 | 可保存與查詢任務主檔、節點歷程。 |
| 已符合 | DB LogWriter 詳細 trace 寫入 | 可將 `LogEntry` 寫入 `task_log_traces`，並具備 sanitizer 與 fallback。 |
| 已符合 | 測試 DB manual-only 驗證 | 需要 gate 與使用者授權；預設不連 DB。 |
| 已符合 | Schema Apply 安全策略 | 已有停止線，不等於正式 apply。 |
| 延後 | `TaskTraceStore` public 查詢介面 | 會新增 public contract，需第三階段前置確認。 |
| 延後 | 正式 DDL Executor | 需備份、rollback、權限與維運窗口。 |
| 延後 | Host DB 初始化 | 會影響專案啟動方式與部署流程。 |

## 風險邊界

- 測試 DB 不等於正式 DB。
- 本階段完成的 DDL 只有使用者授權的測試 DB `CREATE TABLE IF NOT EXISTS task_log_traces`。
- `TaskTraceStore` 目前是查詢邊界設計，不是 public 查詢 API。
- Schema Apply 目前是安全策略，不是正式 DDL executor。
- Host DB 初始化、WebApi、ServiceHost、Plugin Loader 與正式 DB Apply 都屬後續階段。
- 密碼、Token、Host 與連線字串不得寫入 repo。

## 建議下一步

建議下一步進入第三階段前置規劃，優先討論 `TaskTraceStore` public 查詢介面、`ManualApplyPreview` 程式實作與 Host DB 初始化的先後順序。
