跳至主要內容
hs-sql-agent
3.0.0
文件 3.0.0
文件 維運

部署

hs-sql-agent 獨立服務、標準嵌入與模組化 Host 的正式環境部署指南。

必要的秘密保護設定

啟動 Docker 或註冊執行階段前,請設定三組獨立、隨機產生的 32-byte Base64 秘密。所有節點須使用相同金鑰,重新啟動後也須保留。HMAC_KEY 與 JWT_KEY 仍為獨立的簽署秘密。請分別執行三次 openssl rand -base64 32。

Docker 環境變數ASP.NET Core 設定
DB_ENCRYPTION_KEYSecretProtection:DatabasePasswords:Keys:db-1
DML_ENCRYPTION_KEYSecretProtection:DmlPayloads:Keys:dml-1
DML_FINGERPRINT_KEYSecretProtection:DmlFingerprintKey

將 SecretProtection:DatabasePasswords:ActiveKeyId 設為 db-1,SecretProtection:DmlPayloads:ActiveKeyId 設為 dml-1。缺少、無效或重複使用的金鑰會使啟動失敗;範例佔位值刻意設為無效。

HsSqlAgent.Hosting 會自動繫結 SecretProtection;模組化主機須明確繫結:

hs.AddHsSqlAgentRuntime(options =>
{
    builder.Configuration.GetSection("SecretProtection").Bind(options.SecretProtection);
});

新 bootstrap MCP 金鑰須明確提供 Bootstrap:Databases:*:McpKeys:*:Key,啟動時不再產生或記錄金鑰。既有加密資料庫密碼須重新輸入。變更既有部署前,請閱讀升級指南。

先決定誰要掌握 Web Host,再選部署方式。

方式建議用途
官方 Docker 映像獨立 hs-sql-agent 服務
HsSqlAgent.Hosting在 .NET Host 嵌入完整產品
HsSqlAgent.Server客製 ASP.NET Core 組合

獨立 Docker

從 repository 的 .env.example 開始,替換所有範例 secrets。使用預設本機 Control Plane 時請持久化 /app/data;啟用受保護 Identity State 時也要持久化 DATA_PROTECTION_KEY_PATH。

MCP_PUBLIC_ENDPOINT 必須是 MCP Client 真正可連線的絕對 URL,並包含 /mcp。Reverse Proxy 可以讓 Admin UI、MCP、Metrics 與 Approval Callback 使用不同公開路徑。

標準 Embedded Host

HsSqlAgent.Hosting 嵌入與官方 Docker 相同的標準第一方組合與設定契約。URL Binding 與 Logging 仍由一般 ASP.NET Core Host 掌握。

若應用需要替換 Authentication、Authorization、UI、Telemetry、Middleware 順序或 DML Approval Provider,改用 HsSqlAgent.Server。

Webhook 核准部署

設定 DML_APPROVAL_PROVIDER=Webhook 時,Webhook Endpoint 必須能由 hs-sql-agent 連線;Callback URL 必須能由核准服務連線;Signing Secret 必須唯一且至少 32 UTF-8 bytes。公開正式流量應使用 TLS。

Callback 只會恢復受保護的執行意圖,commit 前仍重新驗證目前授權、Database Configuration、Policy、Plan 與 Row Set Evidence。核准系統不會取得 SQL 執行權。

Scale-out

多 Instance 部署需要共享 Admin Database 與 Distributed Coordination Provider。Redis-backed Cache、Rate Limiting、Security Policy Sync、Outbound Delivery Sync、SQL Concurrency 可避免 process-local 狀態分岔。

Durable Pending Approval 也依賴持久化 Admin Store;重啟或由其他 Instance 恢復時仍會重新載入目前狀態並驗證 Evidence。

正式環境檢查

  • 替換 HMAC_KEY、JWT_KEY、Webhook Signing Secret、DB Password、SMTP 與 OIDC secrets。
  • 持久化 Admin Database、Data Protection Keys 與需要保留的 Audit Archive。
  • 設定外部可達的 MCP 與 Approval Callback URL。
  • 公開 Endpoint 使用 TLS 與合適的 Reverse Proxy。
  • 視需求啟用 Prometheus / OTLP。
  • 超過單一 Instance 前先切換 Distributed Providers。

另見 設定參考與 分散式部署。