跳转到主要内容
hs-sql-agent

ASP.NET Core · NuGet

完整产品用 Hosting;需要自定义集成时用 Server。

HsSqlAgent.Hosting 提供与官方 Docker 镜像一致的完整组合;已有 ASP.NET Core 应用如果要自己掌握身份验证、中间件、管理界面、遥测或审批流程,则使用 HsSqlAgent.Server。

01

嵌入完整产品

HsSqlAgent.Hosting 使用与 Docker 相同的第一方标准组合和配置契约。

02

自定义集成

HsSqlAgent.Server 让宿主明确选择运行时、持久化、MCP、管理 API、身份体系、遥测与审批能力。

03

边界由宿主掌握

现有应用可以继续使用自己的身份验证、授权、前端、异常处理、遥测和中间件顺序。

三种使用方式

独立服务直接部署官方 Docker 镜像;.NET 应用若要嵌入同一套完整产品组合,使用 HsSqlAgent.Hosting;只有在需要替换或省略某些能力时,才直接使用 HsSqlAgent.Server。

  • 独立部署:官方 Docker 镜像
  • 嵌入完整产品:HsSqlAgent.Hosting
  • 自定义 ASP.NET Core 集成:HsSqlAgent.Server
嵌入完整主机

            
              using HsSqlAgent.Hosting;

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

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

用 HsSqlAgent.Server 保留现有应用的控制权

现有 API 从 AddHsSqlAgentCore() 开始,只添加实际需要的能力。管理端授权可以委托给宿主已有的策略,DML 审批提供程序也可以独立替换。

模块化集成

            
              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 适配器;模块化宿主则可注册 HsSqlAgent.Approvals.Webhook 或自己的 IDmlApprovalProvider。SQL 验证、审批证据绑定、提交前重新验证以及原子执行仍由 HsSqlAgent 负责。