跳至主要內容
hs-sql-agent

ASP.NET Core · NuGet

要完整產品就用 Hosting;需要客製整合就用 Server。

HsSqlAgent.Hosting 提供與官方 Docker 映像相同的完整組合;既有 ASP.NET Core 應用若要自行掌握驗證、Middleware、管理介面、遙測或核准流程,則使用 HsSqlAgent.Server。

01

嵌入完整產品

HsSqlAgent.Hosting 使用與 Docker 相同的第一方標準組合與設定契約。

02

客製整合

HsSqlAgent.Server 讓宿主自行選擇執行環境、持久化、MCP、管理 API、身分驗證、遙測與核准能力。

03

邊界由宿主掌握

既有應用可保留自己的驗證、授權、前端、例外處理、遙測與 Middleware 順序。

三種使用方式

獨立服務直接部署官方 Docker 映像;.NET 應用若要嵌入同一套完整產品組合,使用 HsSqlAgent.Hosting;需要替換或省略個別能力時,才直接使用 HsSqlAgent.Server。

  • 獨立部署:官方 Docker 映像
  • 嵌入完整產品:HsSqlAgent.Hosting
  • 客製 ASP.NET Core 整合:HsSqlAgent.Server
csharp
using HsSqlAgent.Hosting;

var builder = WebApplication.CreateBuilder(args);
builder.AddHsSqlAgentStandardHost();

var app = builder.Build();
app.UseHsSqlAgentStandardHost();
await app.RunAsync();
using HsSqlAgent.Hosting;

var builder = WebApplication.CreateBuilder(args);
builder.AddHsSqlAgentStandardHost();

var app = builder.Build();
app.UseHsSqlAgentStandardHost();
await app.RunAsync();

用 HsSqlAgent.Server 保留既有應用的主導權

既有 API 從 AddHsSqlAgentCore() 開始,只加入實際需要的能力。管理端授權可以委派給宿主既有 policy,不必安裝內建 member/role 身分系統;DML 核准提供者也可以獨立替換。

csharp
var hs = builder.Services.AddHsSqlAgentCore();

hs.AddHsSqlAgentRuntime();
hs.AddHsSqlAgentAdminStore(options =>
{
    options.Provider = "Postgres";
    options.ConnectionString =
        builder.Configuration.GetConnectionString("HsSqlAgent")!;
});
hs.AddHsSqlAgentHostAuthorization("SqlAgentAdmin");
hs.AddHsSqlAgentAdminApi();
var hs = builder.Services.AddHsSqlAgentCore();

hs.AddHsSqlAgentRuntime();
hs.AddHsSqlAgentAdminStore(options =>
{
    options.Provider = "Postgres";
    options.ConnectionString =
        builder.Configuration.GetConnectionString("HsSqlAgent")!;
});
hs.AddHsSqlAgentHostAuthorization("SqlAgentAdmin");
hs.AddHsSqlAgentAdminApi();

核准整合不會取得 SQL 執行權

MCP Elicitation 仍是第一方預設核准方式。標準 Hosting 可透過設定切換官方 Webhook adapter;模組化宿主則可註冊 HsSqlAgent.Approvals.Webhook 或自己的 IDmlApprovalProvider。SQL 驗證、核准證據綁定、提交前重新驗證與原子交易仍由 HsSqlAgent 掌握。