Skip to content

Commit 436d26c

Browse files
committed
feat: add instance name and schema name fields to DirectAudit request and enhance auditing logic
1 parent 3b93289 commit 436d26c

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

sqle/api/controller/v1/sql_audit.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func DirectAudit(c echo.Context) error {
118118

119119
var task *model.Task
120120
if instance != nil && schemaName != "" {
121-
task, err = server.DirectAuditByInstance(l, sql, schemaName, instance)
121+
task, err = server.DirectAuditByInstance(l, sql, schemaName, instance, "")
122122
} else {
123123
task, err = server.AuditSQLByDBType(l, sql, req.InstanceType, projectUid, "")
124124
}
@@ -226,7 +226,7 @@ func DirectAuditFiles(c echo.Context) error {
226226

227227
var task *model.Task
228228
if instance != nil && schemaName != "" {
229-
task, err = server.DirectAuditByInstance(l, sqls, schemaName, instance)
229+
task, err = server.DirectAuditByInstance(l, sqls, schemaName, instance, "")
230230
} else {
231231
task, err = server.AuditSQLByDBType(l, sqls, req.InstanceType, projectUid, "")
232232
}

sqle/api/controller/v2/sql_audit.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ import (
2020
type DirectAuditReqV2 struct {
2121
InstanceType string `json:"instance_type" form:"instance_type" example:"MySQL" valid:"required"`
2222
// 调用方不应该关心SQL是否被完美的拆分成独立的条目, 拆分SQL由SQLE实现
23-
SQLContent string `json:"sql_content" form:"sql_content" example:"select * from t1; select * from t2;" valid:"required"`
24-
SQLType string `json:"sql_type" form:"sql_type" example:"sql" enums:"sql,mybatis," valid:"omitempty,oneof=sql mybatis"`
25-
ProjectId string `json:"project_id" form:"project_id" example:"700300" valid:"required"`
26-
RuleTemplateName string `json:"rule_template_name" form:"rule_template_name" example:"default" valid:"required"`
23+
SQLContent string `json:"sql_content" form:"sql_content" example:"select * from t1; select * from t2;" valid:"required"`
24+
SQLType string `json:"sql_type" form:"sql_type" example:"sql" enums:"sql,mybatis," valid:"omitempty,oneof=sql mybatis"`
25+
ProjectId string `json:"project_id" form:"project_id" example:"700300" valid:"required"`
26+
RuleTemplateName string `json:"rule_template_name" form:"rule_template_name" example:"default" valid:"required"`
27+
InstanceName *string `json:"instance_name" form:"instance_name" example:"instance1"`
28+
SchemaName *string `json:"schema_name" form:"schema_name" example:"schema1"`
2729
}
2830

2931
type AuditResDataV2 struct {
@@ -72,7 +74,24 @@ func DirectAudit(c echo.Context) error {
7274

7375
l := log.NewEntry().WithField(c.Path(), "direct audit failed")
7476

75-
task, err := server.AuditSQLByDBType(l, sql, req.InstanceType, req.ProjectId, req.RuleTemplateName)
77+
var instance *model.Instance
78+
if req.ProjectId != "" && req.InstanceName != nil {
79+
var exist bool
80+
instance, exist, err = dms.GetInstanceInProjectByName(c.Request().Context(), req.ProjectId, *req.InstanceName)
81+
if err != nil {
82+
return controller.JSONBaseErrorReq(c, err)
83+
}
84+
if !exist {
85+
return controller.JSONBaseErrorReq(c, v1.ErrInstanceNotExist)
86+
}
87+
}
88+
89+
var task *model.Task
90+
if instance != nil && req.SchemaName != nil {
91+
task, err = server.DirectAuditByInstance(l, sql, *req.SchemaName, instance, req.RuleTemplateName)
92+
} else {
93+
task, err = server.AuditSQLByDBType(l, sql, req.InstanceType, req.ProjectId, req.RuleTemplateName)
94+
}
7695
if err != nil {
7796
l.Errorf("audit sqls failed: %v", err)
7897
return controller.JSONBaseErrorReq(c, v1.ErrDirectAudit)
@@ -180,7 +199,7 @@ func DirectAuditFiles(c echo.Context) error {
180199

181200
var task *model.Task
182201
if instance != nil && schemaName != "" {
183-
task, err = server.DirectAuditByInstance(l, sqls, schemaName, instance)
202+
task, err = server.DirectAuditByInstance(l, sqls, schemaName, instance, "")
184203
} else {
185204
task, err = server.AuditSQLByDBType(l, sqls, req.InstanceType, projectUid, "")
186205
}

0 commit comments

Comments
 (0)