0.11.3: 旗舰版第四轮完善(统一审批中心/工具治理/平台环境变量/数字员工入口/个人渠道/报表多维/租户配额)
- 统一审批中心:模型/资源/渠道/工具四类申请聚合审批,通过自动开通 (marketplace 安装/渠道授权),outbox 双向站内信;门户可发起/撤回。 - 工具治理:rate_limit_rpm(固定窗口原子 upsert,多实例共享)+ approval_required (首次调用自动发起审批,批准前一律拒绝)。 - 平台环境变量:平台级注入 skill/MCP 运行时,个人可覆盖;系统管理员可写。 - 数字员工会话入口:门户列表/对话/调用记录,复用用户运行时凭据。 - 个人渠道:webhook 入站令牌 SHA-256 摘要 + constant-time 校验,绑定已批准 模型,用量归属用户 Key。 - 报表多维:工具调用/审批授权/安全事件三组统计端点与页面。 - 租户配额:部门 Key/月 Token 上限,运行时凭据开通强制校验,概览展示用量。 - 迁移 000042-000045;修复渠道空 API Key NOT NULL 违约与 inet 扫描; 25 包测试通过,前后端构建通过,端到端验证完成。
This commit is contained in:
+17
-2
@@ -11,10 +11,10 @@ import (
|
||||
"time"
|
||||
|
||||
"aigateway.local/core/internal/agentnode"
|
||||
"aigateway.local/core/internal/channel"
|
||||
"aigateway.local/core/internal/assistant"
|
||||
"aigateway.local/core/internal/apikey"
|
||||
"aigateway.local/core/internal/assistant"
|
||||
"aigateway.local/core/internal/audit"
|
||||
"aigateway.local/core/internal/channel"
|
||||
"aigateway.local/core/internal/contentpolicy"
|
||||
"aigateway.local/core/internal/factcheck"
|
||||
"aigateway.local/core/internal/gateway"
|
||||
@@ -265,6 +265,7 @@ func main() {
|
||||
}
|
||||
envVarService := workbench.NewEnvVarService(db, envVarCipher)
|
||||
envVarHandler := workbench.NewEnvVarHTTPHandler(envVarService, identityService)
|
||||
adminEnvVarHandler := workbench.NewAdminEnvVarHTTPHandler(envVarService, identityService)
|
||||
toolService := workbench.NewToolService(workbenchService, toolCipher, cfg.Credentials.AllowPrivateToolURL)
|
||||
notificationService := workbench.NewNotificationService(workbenchService, notificationCipher, cfg.Credentials.AllowPrivateWebhookURL)
|
||||
workbenchHandler := workbench.NewAdminHTTPHandler(workbenchService, toolService, notificationService, identityService)
|
||||
@@ -400,6 +401,8 @@ func main() {
|
||||
controlMux.Handle("/api/v1/admin/knowledge-bases/", workbenchHandler)
|
||||
controlMux.Handle("/api/v1/admin/tools", workbenchHandler)
|
||||
controlMux.Handle("/api/v1/admin/tools/", workbenchHandler)
|
||||
controlMux.Handle("/api/v1/admin/tool-approvals", workbenchHandler)
|
||||
controlMux.Handle("/api/v1/admin/tool-approvals/", workbenchHandler)
|
||||
controlMux.Handle("/api/v1/admin/applications", workbenchHandler)
|
||||
controlMux.Handle("/api/v1/admin/applications/", workbenchHandler)
|
||||
controlMux.Handle("/api/v1/admin/marketplace-categories", marketplaceHandler)
|
||||
@@ -422,6 +425,7 @@ func main() {
|
||||
controlMux.Handle("/api/v1/admin/model-requests/", portalAdminHandler)
|
||||
controlMux.Handle("/api/v1/admin/system-info", operationsHandler)
|
||||
controlMux.Handle("/api/v1/admin/monitoring/overview", operationsHandler)
|
||||
controlMux.Handle("/api/v1/admin/reports/", operationsHandler)
|
||||
controlMux.Handle("/api/v1/admin/tenants/", operationsHandler)
|
||||
controlMux.Handle("/api/v1/admin/files", filesAdminHandler)
|
||||
controlMux.Handle("/api/v1/admin/files/", filesAdminHandler)
|
||||
@@ -479,6 +483,16 @@ func main() {
|
||||
controlMux.Handle("/api/v1/portal/stats", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/tools", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/chat/", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/personal-channels", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/personal-channels/", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/digital-employees", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/digital-employees/", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/resource-requests", portalHandler)
|
||||
controlMux.Handle("/api/v1/portal/resource-requests/", portalHandler)
|
||||
controlMux.Handle("/api/v1/admin/resource-requests", portalAdminHandler)
|
||||
controlMux.Handle("/api/v1/admin/resource-requests/", portalAdminHandler)
|
||||
controlMux.Handle("/api/v1/admin/env-vars", adminEnvVarHandler)
|
||||
controlMux.Handle("/api/v1/admin/env-vars/", adminEnvVarHandler)
|
||||
controlMux.Handle("/api/v1/", identityHandler)
|
||||
publicMux := http.NewServeMux()
|
||||
publicMux.Handle("/v1/prompts", workbenchRuntime)
|
||||
@@ -491,6 +505,7 @@ func main() {
|
||||
publicMux.Handle("/v1/mcp-servers", workbenchRuntime)
|
||||
publicMux.Handle("/v1/mcp-servers/", workbenchRuntime)
|
||||
publicMux.Handle("/v1/channels/", channelInboundHandler)
|
||||
publicMux.Handle("/v1/personal-channels/", portalHandler)
|
||||
publicMux.Handle("/v1/digital-employees/", workbenchRuntime)
|
||||
publicMux.Handle("/v1/", governedGateway)
|
||||
server := httpserver.New(httpserver.Dependencies{
|
||||
|
||||
Reference in New Issue
Block a user