# 5C DB audit 實作前確認表

本文件承接 [5C DB audit 邊界分析](phase-five-c-db-audit-boundary-analysis.md)。5C 牽涉 audit event、資料庫寫入與 schema 風險，因此本確認表必須在任何程式 repo 修改前完成。

## 0. 文件狀態

| 項目 | 內容 |
|---|---|
| 文件狀態 | 待確認 |
| 建立日期 | 2026-06-07 |
| 對應節點 | 第五階段 5C DB audit |
| 程式 repo | `hs-device-control-template` |
| 程式 branch | `poc/nmodbus-tcp` |
| 程式基準 | `1f635d6` |
| 本文件是否授權程式修改 | 尚未；需等待使用者回覆七項皆同意 |

## 1. 實作前七項確認

| 編號 | 確認項 | 建議決策 |
|---|---|---|
| 1 | 實作範圍 | 同意 5C 第一批只建立 audit event / writer contract、fake writer 與測試，不新增正式 DB table。 |
| 2 | 資料最小化 | 同意 audit record 只保存安全摘要、決策、錯誤碼、關聯 id、操作者摘要與 UTC 時間，不保存 raw payload。 |
| 3 | 敏感資訊停止線 | 同意 audit 不得保存 secret、token、connection string、完整路徑、正式 IP、正式 port、正式帳號或未遮蔽外部資訊。 |
| 4 | DB 停止線 | 同意本批不執行 DDL / ALTER TABLE / formal Apply，不對真實 DB 寫入資料，也不建立正式 audit table。 |
| 5 | 既有 MySQL 邊界 | 同意 5C 第一批不修改 `MySqlTaskStore`、`MySqlLogWriter`、`MySqlTaskTraceStore` 既有 public contract；若需要 MySQL writer，另開確認。 |
| 6 | 測試與驗收 | 同意實作後至少執行 Application tests、Infrastructure.MySql tests、solution tests、停止線掃描、污染字串掃描與 commit 前檢查。 |
| 7 | 排除項目 | 同意 5C 不做 WebApi auth / Swagger、Windows Service、外部 DLL 載入、plugin folder 掃描或 Adapter public contract 變更。 |

## 2. 候選變更檔案

| 類型 | 候選檔案 |
|---|---|
| Audit contract | `src/HS.DeviceControl.Application/Plugins/` 或 `src/HS.DeviceControl.Application/Auditing/` |
| Error codes | `src/HS.DeviceControl.Application/Common/ApplicationErrorCodes.cs` |
| Application tests | `tests/HS.DeviceControl.Application.Tests` |
| Infrastructure tests | `tests/HS.DeviceControl.Infrastructure.MySql.Tests` 僅作既有邊界回歸，不新增真實 DB write |
| 程式 repo docs | `docs/` 內新增 5C 程式實作與停止線紀錄 |

若實作時發現必須新增 audit table、MySQL writer、DDL、formal Apply、真實 DB manual write、public method 簽章或新套件，需停下重新確認。

## 3. 驗收條件

| 項目 | 驗收方式 |
|---|---|
| audit contract | 必要欄位、事件類型、決策、錯誤碼與時間欄位有單元測試。 |
| fake writer | 測試確認可記錄與查詢安全 audit record，且不碰真實 DB。 |
| 敏感資訊 | 測試確認敏感資訊會被拒絕或遮蔽。 |
| DB 停止線 | 掃描確認未新增 DDL、ALTER TABLE、formal Apply 或真實 DB 寫入。 |
| 回歸測試 | Application tests、Infrastructure.MySql tests 與 solution tests 通過。 |
| 文件 | README、docs README、status / progress 與 public 鏡像同步。 |

## 4. 建議回覆格式

若同意進入 5C 第一批 audit contract / fake writer 程式實作，建議回覆：

```text
5C DB audit 實作前確認：
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意
```

## 5. 未確認前停止線

在使用者完成七項確認前，不得修改程式 repo，不得新增 audit table，不得執行 DDL / ALTER TABLE / formal Apply，不得對真實 DB 寫入資料，也不得新增 WebApi auth / Swagger 或 Windows Service 相關程式。
