5A PluginLoader 實作前確認表

返回

5A PluginLoader 實作前確認表

本文件承接 4E 後續功能節點決策確認表。使用者已確認 4E 七項決策,因此本節點正式進入 5A PluginLoader 實作前確認。

本文件仍不是程式實作授權。完成本文件確認前,不得建立 IPluginLoader public contract、不得建立真正 Loader、不得掃描 plugin folder、不得載入外部 DLL、不得修改 config schema、不得建立 DB audit table、不得導入 WebApi auth / Swagger,也不得建立 Windows Service。

0. 文件狀態

項目內容
文件狀態已建立,待使用者確認
建立日期2026-06-07
對應節點5A PluginLoader 安全模型與最小 Loader
前置確認4E 七項決策皆已同意
程式 repo 基準a8b522b main 已合併 poc/nmodbus-tcp;4D 功能基準為 6f34bb9
本文件目的固定 5A 的最小實作範圍、候選檔案、測試策略、停止線與七項確認
是否啟用程式修改否,需等使用者確認本文件七項決策後再評估

1. 4E 確認紀錄

使用者已確認 4E 七項決策皆同意。

2. 5A 定位

原則說明
先 contract,再 implementation若要建立 IPluginLoader,需先確認 request / result / state / error 語意。
最小 Loader 不等於外部 DLL 載入5A 第一版建議只做 metadata-only / catalog-driven loader 驗證,不執行 assembly loading。
外部 DLL 另走 manual-only測試 DLL、隔離資料夾、checksum / signature 與來源白名單需另行確認,不進一般 CI。
不擴大到 config / DB / auth / service5A 不修改 config schema、不建 audit table、不改 WebApi auth、不改 Windows Service。
Application 層優先5A 第一版建議承接既有 Application plugin contract,不進 Core、不改 Adapter。

3. 候選範圍與停止線

類型候選內容邊界
Loader public contractIPluginLoaderPluginLoadRequestPluginLoadResultPluginLoaderOptions不包含外部 DLL 載入 API,不保證執行 plugin。
Metadata-only loader以既有 PluginDescriptor / catalog 資料做驗證與狀態轉換不掃描正式 plugin folder,不讀未知 DLL。
Trust policy model來源、contract version、checksum、enabled / disabled、人工核准摘要只做 model / validation,不保存正式路徑或 secret。
TestsApplication.Tests 的 unit tests不跑外部 DLL、不跑 DB manual-only、不改部署設定。

4. 明確不做

不載入外部 DLL、不呼叫 Assembly.Load / LoadFrom / LoadFile、不掃描正式 plugin folder、不修改 config schema、不建立 DB audit table、不修改 WebApi auth / Swagger、不建立 Windows Service、不接真實硬體或案場 plugin。

5. 5A 七項確認

編號決策項建議同意後後續動作
15A 第一版是否只做 metadata-only / catalog-driven 最小 Loader同意不直接載入 DLL,先固定 Loader request / result / state。
2是否允許在 Application 層建立 IPluginLoader 最小 public contract同意後續程式修改可新增 contract,但不得含外部 DLL 載入方法。
3是否保留外部 DLL 載入為獨立 manual-only 驗證同意不在一般 CI 載入 DLL,不使用未知來源 DLL。
4是否延後 config schema 修改到 5B同意5A 不新增 plugin path / trust policy / service install 設定欄位。
5是否延後 DB audit table 到 5C同意5A 可保留 audit summary model,不執行 DDL / ALTER TABLE / Apply。
6是否不修改 WebApi auth / Swagger / Windows Service同意WebApi 安全留 5D,Windows Service 留 5E。
7是否先做程式 repo 唯讀結構檢查與 stage / commit 前確認同意實作前先回報候選檔案、測試命令與停止線。

6. 建議使用者回覆格式

5A PluginLoader 實作前確認:
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意

7. 建議下一步

請使用者確認 5A 七項決策。確認後,才進入程式 repo 唯讀結構檢查與 5A 最小 PluginLoader 實作評估。