同步完整源码至远程:扁平化重构现状 + 未入库源文件
- 补入库:server/internal/db/dump.go、redis 分页/扫描预算测试、opsxdb-mcp main_test、 packages/opsxdb-mcp package-lock、docs 审计与对比文档等 37 个新文件 - 含结构扁平化进行中的 80 处修改与 155 处旧结构删除(server/ src/ src-tauri/ 为当前有效源) - 构建产物(bin/target/dist)与签名私钥仍按规则排除
This commit is contained in:
1 parent
5c0be49217
commit
2c0bfafd8d
269 files changed
+10372
-16435
No files matched your search
@@ -65,4 +65,30 @@ func TestDangerousSQLRequiresAllowFlag(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDefaultWritePolicyStillRequiresConfirmation(t *testing.T) {
|
||||
p := DefaultPolicy()
|
||||
if !p.WritesEnabled() || !p.AllowsDangerousDDL() {
|
||||
t.Fatal("新配置应默认允许读写和危险 SQL")
|
||||
}
|
||||
if err := p.AllowConnection("c1"); err == nil {
|
||||
t.Fatal("默认权限不能自动授权连接")
|
||||
}
|
||||
p.AllowedConnectionIDs = []string{"c1"}
|
||||
rt := NewRuntime(p)
|
||||
rt.RejectCallerConfirm = true
|
||||
rt.Audit = func(AuditEntry) {}
|
||||
rt.FindConn = func(id string) (*SavedConnection, error) {
|
||||
return &SavedConnection{ID: id, Driver: "mysql"}, nil
|
||||
}
|
||||
out, err := rt.Call(context.Background(), ToolExecuteQuery, map[string]any{
|
||||
"connection_id": "c1", "sql": "DROP TABLE demo", "confirm_danger": true,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if out.(map[string]any)["needConfirm"] != true {
|
||||
t.Fatalf("默认允许危险 SQL 后,Agent 仍必须等待用户确认: %v", out)
|
||||
}
|
||||
}
|
||||
|
||||
func contains(s, sub string) bool { return strings.Contains(s, sub) }
|
||||
Reference in new issue
Block a user