5B config schema 邊界分析

返回文件索引

本文件只整理 5B config schema 的邊界、候選檔案、設定欄位草案、測試策略與停止線。5B 會影響設定契約,因此在使用者完成七項確認前,不修改程式 repo。

0. 文件狀態

項目內容
文件狀態已建立,等待 5B 七項確認
建立日期2026-06-07
對應節點第五階段 5B config schema
程式基準bc3f191,外部 DLL manual-only fake verifier
本次是否修改程式 repo否,只做唯讀檢查與文件整理

1. 5B 目標

目標說明
固定 plugin / loader 設定位置建議放在 appsettings.json,避免新增啟動檔案或改變啟動方式。
建立安全預設值預設不掃描 plugin folder、不載入外部 DLL、不允許 manual external verification。
補上 validator缺少必要欄位、欄位型別錯誤、不安全摘要或不合法版本需回傳標準 config validation error。
保留舊設定相容性現有 samples/config/appsettings.json 不含 plugin 設定時,仍應可載入既有流程。

2. 唯讀檢查結果

檢查項目結果
現有 config loaderConfigLoader 只載入 devices.jsonworkflows.jsonappsettings.json
現有 appsettings modelAppSettingsConfig 目前只有 LogDebugWatchdog
現有 validatorConfigValidator 尚未驗證 PluginLoader / Plugins。
DB / WebApi / ServiceHost5B 不需要修改 DB、WebApi、ServiceHost 或 Windows Service。

3. 建議 schema 草案

{
  "PluginLoader": {
    "Enabled": false,
    "ExpectedContractVersion": "1.0",
    "ExpectedChecksum": "",
    "AllowDisabledPluginReview": false,
    "AllowManualExternalDllVerification": false
  },
  "Plugins": [
    {
      "PluginId": "mock-light-plugin",
      "DisplayName": "Mock Light Plugin",
      "ContractVersion": "1.0",
      "Checksum": "metadata-checksum",
      "SourceSummary": "built-in metadata sample",
      "Enabled": true,
      "DisabledReason": "",
      "Capabilities": [
        {
          "CapabilityId": "light-command",
          "DeviceType": "Light",
          "CommandName": "LightOn"
        }
      ]
    }
  ]
}

4. 明確排除

5. 下一步

請先確認 5B config schema 實作前確認表 七項。確認前,只能停留在文件與唯讀檢查;確認後才可進入程式 repo 的最小 config schema 實作。