跳至主要內容
hs-sql-agent
2.0.4
文件 2.0.4
文件 參考

Admin HTTP API 參考

根據 hs-sql-agent 原始碼整理、供內建管理介面使用的 HTTP controller 路由參考。

驗證與身分 登入、token refresh、OIDC、MFA、密碼復原、帳號、工作階段、成員與角色。
執行階段管理 資料庫、MCP 金鑰、語意中繼資料、Custom Tools、安全政策、稽核與運作狀態。
MCP 為獨立介面 /mcp 的 Streamable HTTP transport 不屬於這份 Admin REST API 參考。

本頁列出 hs-sql-agent 原始碼中實際存在的 controller routes,但 controller 是否公開取決於選用的 capability。內附 Admin UI 一般使用內建身分組合;嵌入既有 ASP.NET Core host 時則可以選擇不同組合。

身分驗證、授權與 MVC ownership

選用 Admin API capability 時,公開掛載固定為 /api/auth/role/runtime/db-management 等 canonical permission paths 是授權資源識別碼,不是 HTTP paths。

在內建身分模式下,受保護的 Admin routes 使用 HsSqlAgent 身分驗證與 canonical permission/action 檢查;first-run、sign-in、部分 OIDC / password-recovery endpoints、MFA challenge completion 等流程有必要的匿名例外。

在 host-authorization 模式下,身分驗證預設值與 authorization policy 都由宿主擁有;要求的 canonical permission keys 會透過 HsSqlAgentPermissionResource.Permissions 傳給宿主。modular host 模式中的 UseHsSqlAgentAdminApi() 刻意不呼叫 MapControllers(),MVC controller endpoint mapping 由宿主決定。

請見 權限

下方 Auth、Member、Role 三節只適用於已選用內建身分 capability 的部署。

Auth — /api/Auth

MethodRoute用途
GET/api/Auth/first-run檢查首次設定狀態
POST/api/Auth/sign-in管理員登入
POST/api/Auth/sign-up在允許的首次設定流程建立第一位管理員
POST/api/Auth/refresh-token交換 refresh credential
POST/api/Auth/sign-out結束目前工作階段
GET/api/Auth/sessions列出目前使用者的工作階段
DELETE/api/Auth/sessions/{sessionId}撤銷一個工作階段
DELETE/api/Auth/sessions撤銷其他工作階段
GET/api/Auth/oidc/status檢查 OIDC 是否可用
GET/api/Auth/oidc/login開始 OIDC 登入
GET/api/Auth/oidc/callback外部登入 callback
POST/api/Auth/oidc/exchange交換短效 OIDC login code
GET/api/Auth/mfa/status檢查 MFA 狀態
POST/api/Auth/mfa/setup開始設定 TOTP
POST/api/Auth/mfa/confirm確認 TOTP 設定
POST/api/Auth/mfa/disable驗證後停用 TOTP
POST/api/Auth/mfa/verify完成 MFA 登入 challenge
POST/api/Auth/forgot-password要求重設密碼
POST/api/Auth/reset-password使用 reset token 重設密碼
GET/api/Auth/account讀取目前帳號
PUT/api/Auth/account更新使用者名稱 / email
PUT/api/Auth/account/password修改密碼

Members — /api/Member

MethodRoute權限
POST/api/Member/auth/usercreate
GET/api/Member/auth/userview
PUT/api/Member/{id}/roles/auth/useredit
PUT/api/Member/{id}/status/auth/useredit
DELETE/api/Member/{id}/sessions/auth/useredit
PUT/api/Member/{id}/password-change-required/auth/useredit
DELETE/api/Member/{id}/auth/userdelete

避免管理員把自己鎖在系統外的保護規則,請見 成員與角色

Roles — /api/Role

MethodRoute權限
GET/api/Role/auth/roleview
POST/api/Role/auth/rolecreate
PUT/api/Role/{id}/auth/roleedit
DELETE/api/Role/{id}?force=false/auth/roledelete
GET/api/Role/{id}/dependencies/auth/roleview
GET/api/Role/permission-action-templates/auth/roleview

Database Management — /api/DbManagement

MethodRoute權限
GET/api/DbManagementDB management view
GET/api/DbManagement/{id}DB management view
POST/api/DbManagementDB management create
PUT/api/DbManagement/{id}DB management edit
DELETE/api/DbManagement/{id}DB management delete
GET/api/DbManagement/{id}/schemasDB management view
GET/api/DbManagement/{id}/tables?schema=...DB management view
GET/api/DbManagement/{id}/columns?schema=...&table=...DB management view

此處的 DB management 代表 /runtime/db-management

Semantic metadata — /api/DbSemantic

MethodRoute權限
GET/api/DbSemantic/{dbManagementId}semantic view
GET/api/DbSemantic/{dbManagementId}/modelsemantic view
POST/api/DbSemanticsemantic edit
DELETE/api/DbSemantic/{id}semantic edit
POST/api/DbSemantic/relationshipsemantic edit
DELETE/api/DbSemantic/relationship/{id}semantic edit
POST/api/DbSemantic/metricsemantic edit
DELETE/api/DbSemantic/metric/{id}semantic edit

semantic 代表 /runtime/db-management/semantic

MCP 金鑰執行階段 — /api/runtime

MethodRoute權限
GET/api/runtime/mcp-keysMCP keys view
GET/api/runtime/mcp-keys/available-tools?dbManagementId=...MCP keys view
POST/api/runtime/mcp-keysMCP keys create
PUT/api/runtime/mcp-keys/{id}MCP keys edit
POST/api/runtime/mcp-keys/{id}/rotateMCP keys edit
POST/api/runtime/mcp-keys/{id}/cloneMCP keys create
POST/api/runtime/mcp-keys/{id}/revokeMCP keys revoke
POST/api/runtime/mcp-keys/test-db-connection已設定的 MCP-key / DB create-edit 權限之一
GET/api/runtime/client-configMCP keys view

client-config 路由會回傳產生 MCP 用戶端設定時使用的公開端點。

Custom Tools — /api/CustomSqlTool

MethodRoute用途
GET/api/CustomSqlTool列出工具
GET/api/CustomSqlTool/{id}讀取單一工具
POST/api/CustomSqlTool建立草稿
PUT/api/CustomSqlTool/{id}編輯草稿
DELETE/api/CustomSqlTool/{id}刪除
GET/api/CustomSqlTool/{id}/revisions取得修訂版本
GET/api/CustomSqlTool/{id}/impact查看影響與相依關係
POST/api/CustomSqlTool/{id}/publish驗證後發布
POST/api/CustomSqlTool/{id}/disable停用
POST/api/CustomSqlTool/{id}/rollback/{revisionId}驗證後回復到指定修訂版本
POST/api/CustomSqlTool/test-execute測試;DML 只預覽、不提交

這些路由會依操作檢查 /runtime/custom-toolsviewcreateeditdelete 權限。

Audit / Operability — /api/runtime

區域路由
Audit/audit, /audit/daily-summary, /audit/export, /audit/retention, /audit/retention/dry-run, /audit/retention/execute
Operability/operability/metrics, /operability/db-health, /operability/key-usage, /operability/deliveries, /operability/deliveries/{id}/retry

篩選條件、回應欄位與權限請見 稽核運作狀態

Security Policy — /api/runtime/security

MethodRoute權限
GET/api/runtime/security/runtime/securityview
PUT/api/runtime/security/runtime/securityedit

Credential status

hs-sql-agent 提供 GET /api/Credential/status,只回傳簡單的 Credential API 運作狀態;controller 本身沒有 [Authorize] attribute。應把它視為用途有限的狀態端點,而不是經驗證的憑證管理 API。

錯誤與相容性

Controllers 使用一般 HTTP status code,例如驗證錯誤 400、身分驗證 / 授權錯誤 401 / 403、找不到資源 404、衝突 409、稽核匯出過大 413,以及部分受限制 SQL 壓力路徑的 429。

若外部自動化直接依賴這套 API,請固定使用 hs-sql-agent,並驗證實際使用的 response model。本文件刻意記錄路由與重要契約,不把所有管理端 view model 宣稱成永久、版本化的外部 SDK。