第四階段後續功能節點切分表
本文件承接 第四階段線上驗收紀錄,用來回答「真正 Loader、外部 DLL、DB audit、config schema、WebApi auth / Swagger / 正式部署安全模型、Windows Service 什麼時候開始驗證並撰寫程式」。
本表不是程式實作授權。它只把第四階段最小範圍完成後,後續功能的建議切分、開始條件、驗證方式與停止線整理清楚。
0. 文件狀態
| 項目 | 內容 |
| 文件狀態 | 已建立 |
| 建立日期 | 2026-06-07 |
| 承接基準 | 第四階段最小範圍已完成線上驗收 |
| 程式基準 | 6f34bb9 新增 4D 最小 Application plugin contract |
| 目前結論 | 可開始後續節點規劃;尚未授權 Loader、DLL、DB、config、auth 或 Windows Service 程式修改 |
1. 目前已完成與尚未啟用
| 項目 | 目前狀態 | 說明 |
| 4B WebApi 第一版 | 已完成 | 已有最小 WebApi route / DTO / controller / API tests;尚未做正式 auth、Swagger、正式部署安全模型。 |
| 4C ServiceHost 第一版 | 已完成 | 已有最小 ServiceHost runtime / state / status / options / tests;尚未做 Windows Service 安裝、正式背景服務部署或 recovery 設定。 |
| 4D 最小 Application plugin contract | 已完成 | 已有 plugin metadata、state、verification result、audit record model 與 tests;尚未建立真正 Loader。 |
| 真正 PluginLoader | 未啟用 | 尚未建立 IPluginLoader、Loader class、plugin folder 掃描或外部 DLL 載入。 |
| 外部 DLL 載入 | 未啟用 | 尚未定義 trust model 落地、簽章 / checksum、來源白名單、測試 DLL 或隔離策略。 |
| config schema | 未啟用 | 尚未新增 plugin path、enable flag、trust policy、service install 或 auth 設定欄位。 |
| DB audit table | 未啟用 | 尚未新增正式 DB table、DDL、migration、Apply 或真實 DB 寫入節點。 |
| WebApi auth / Swagger | 未啟用 | 尚未導入身分驗證、權限、token、Swagger 或外部發布設定。 |
| Windows Service | 未啟用 | 尚未做 install / uninstall、start / stop、recovery、服務帳號或正式 log 路徑。 |
2. 建議切分總覽
| 建議節點 | 主題 | 何時開始驗證 | 何時開始寫程式 | 必備前置 |
| 4E | 後續功能總切分與決策確認 | 現在即可開始文件確認 | 不寫程式 | 本文件完成後,使用者確認切分順序與停止線 |
| 5A | PluginLoader 安全模型與最小 Loader | 4E 七項決策確認後 | 5A 實作前確認通過後 | trust model、來源白名單、checksum / signature、錯誤隔離、測試 DLL 規則 |
| 5B | config schema for plugin / service / auth | 5A contract 穩定後 | config 欄位確認後 | 需先知道 Loader、Service、auth 需要哪些非敏感欄位 |
| 5C | DB audit table / audit writer | 5A audit event 與欄位固定後 | DB DDL / manual-only 驗證確認後 | 欄位、索引、保留策略、DDL 權限、rollback、測試 DB gate |
| 5D | WebApi auth / Swagger / 正式 API 安全 | 4B route 穩定且使用場景確認後 | auth 決策確認後 | 使用者角色、token 方式、Swagger 開放範圍、部署環境 |
| 5E | Windows Service 正式部署 | 4C ServiceHost lifecycle 穩定後 | service install 設計確認後 | service account、start/stop/recovery、log path、設定位置、部署權限 |
| 5F | 整合驗證與部署驗收 | 5A 至 5E 各自完成後 | 不作為第一個程式節點 | 需先完成 isolated tests,再做整合與回復測試 |
3. 功能逐項說明
| 功能 | 建議所屬節點 | 第一個可做的工作 | 第一個程式驗證 | 不可直接跳過的停止線 |
| 真正 PluginLoader | 5A | 建立 Loader 實作前確認表 | 不載入外部 DLL 的 fake loader / metadata validation tests | 不得未確認就建立 IPluginLoader public contract 或掃描 plugin folder |
| 外部 DLL 載入 | 5A 後段或 5F | 建立 DLL trust / checksum / signature 決策表 | 使用測試 DLL 與隔離資料夾做 manual-only 驗證 | 不得載入未知來源 DLL;不得在一般 CI 跑外部 DLL |
| config schema | 5B | 列出 plugin、service、auth 所需非敏感欄位 | ConfigValidator / ConfigLoader tests | 不得把 token、密碼、正式 IP、正式 path 寫進 repo |
| DB audit table | 5C | 建立 audit 欄位 / 索引 / DDL 安全表 | fake gateway + manual-only 測試 DB write/read/cleanup | 不得未確認就執行 DDL / ALTER TABLE / Apply |
| WebApi auth | 5D | 建立 auth / role / token / route protection 決策表 | API tests 驗證 unauthorized / forbidden / success | 不得未確認就導入套件、secret、正式帳號或公開 Swagger |
| Swagger | 5D | 決定只限開發環境或內網 | WebApi 啟動與文件可見性測試 | 不得預設外網公開正式 API 文件 |
| Windows Service | 5E | 建立 service install / recovery / log path 設計 | 本機 install / start / stop manual-only 驗證 | 不得未確認就修改啟動方式、服務帳號或正式機器設定 |
4. 建議實作順序
- 先做 4E 後續功能總切分與決策確認。
- 再做 5A PluginLoader 安全模型與最小 Loader。
- Loader contract 穩定後,再做 5B config schema。
- audit event 與欄位穩定後,再做 5C DB audit table。
- WebApi 正式對外或跨主機使用前,再做 5D auth / Swagger / 正式 API 安全。
- ServiceHost 要進現場常駐執行前,再做 5E Windows Service。
- 各節點各自通過後,再做 5F 整合驗證與部署驗收。
5. 不建議的順序
| 不建議做法 | 原因 |
| 直接先寫 DLL 載入 | trust model、來源白名單、checksum、隔離與測試 DLL 尚未固定,風險最高。 |
| 先改 config schema | Loader / Service / auth 欄位未固定,容易讓未成熟欄位變成正式契約。 |
| 先建 DB audit table | audit event 還未固定,DDL 與資料保留策略容易返工。 |
| 先做 Windows Service 安裝 | ServiceHost 第一版只驗證 lifecycle,尚未確認服務帳號、recovery、log path 與部署權限。 |
| 先開 Swagger / auth 套件 | route protection、角色與部署環境尚未固定,容易引入未確認套件與 secret 流程。 |
6. 驗證節點規劃
| 節點 | 驗證類型 | 驗證內容 |
| 5A PluginLoader | Unit + manual-only | metadata validation、safe path、checksum mismatch、disabled plugin、loader error mapping、測試 DLL 載入停止線 |
| 5B config schema | Unit | 缺欄位、錯誤欄位、敏感資訊拒絕、路徑白名單、向下相容 |
| 5C DB audit | Unit + manual-only DB | fake gateway insert mapping、schema precheck、write/read/cleanup、DDL gate |
| 5D WebApi auth | API tests | unauthorized、forbidden、valid token、role mapping、Swagger 可見性 |
| 5E Windows Service | manual-only | install、start、stop、restart、recovery、log path、config path |
| 5F 整合驗收 | manual-only | ServiceHost + Loader + config + audit + WebApi 的最小閉環與回復測試 |
7. 建議決策確認項目
| 編號 | 決策項 | 建議 |
| 1 | 是否接受先做 4E 後續節點決策確認 | 建議同意,先固定順序,不直接寫程式。 |
| 2 | 第一個程式節點是否從 5A PluginLoader 開始 | 建議同意,因 Loader 是 DLL、config、audit 的上游。 |
| 3 | 外部 DLL 是否需獨立 manual-only 驗證 | 建議同意,不進一般 CI,不載入未知 DLL。 |
| 4 | config schema 是否等 Loader contract 穩定後再改 | 建議同意,避免不成熟設定欄位進入正式契約。 |
| 5 | DB audit 是否獨立成 DB 安全節點 | 建議同意,DDL / ALTER TABLE / Apply 需單獨確認。 |
| 6 | auth / Swagger 是否獨立成 WebApi 安全節點 | 建議同意,避免把安全模型混入 Loader 或 Service 節點。 |
| 7 | Windows Service 是否獨立成正式部署節點 | 建議同意,需另行確認服務帳號、recovery、log path 與部署權限。 |
8. 結論
這些功能可以開始「規劃與決策確認」,但不建議同時開始寫程式。第一個適合進入程式實作的後續節點是 5A PluginLoader 安全模型與最小 Loader;外部 DLL、config schema、DB audit、WebApi auth / Swagger 與 Windows Service 都應排在各自前置決策完成之後。
9. 建議下一步
建議下一步整理「4E 後續功能節點決策確認表」,請使用者逐項確認上方七項決策。確認後,才進入 5A PluginLoader 實作前確認。