Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions internal/dms/biz/cloudbeaver.go
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ func (cu *CloudbeaverUsecase) GraphQLDistributor() echo.MiddlewareFunc {
AuditSQLReq: cloudbeaver.AuditSQLReq{
InstanceType: dbService.DBType,
ProjectId: dbService.ProjectUID,
RuleTemplateName: dbService.SQLEConfig.RuleTemplateName,
RuleTemplateName: dbService.SQLEConfig.SQLQueryConfig.RuleTemplateName,
Comment thread
Jarvis1105 marked this conversation as resolved.
},
SQLEAddr: fmt.Sprintf("%s/v2/sql_audit", sqleUrl),
AllowQueryWhenLessThanAuditLevel: dbService.GetAllowQueryWhenLessThanAuditLevel(),
Expand Down Expand Up @@ -757,7 +757,10 @@ func (w *ResponseInterceptor) WriteHeader(code int) {
}

func (cu *CloudbeaverUsecase) isEnableSQLAudit(dbService *DBService) bool {
return dbService.SQLEConfig.SQLQueryConfig.AuditEnabled
if dbService.SQLEConfig == nil || dbService.SQLEConfig.SQLQueryConfig == nil {
return false
}
return dbService.SQLEConfig.AuditEnabled && dbService.SQLEConfig.SQLQueryConfig.AuditEnabled
}

func (cu *CloudbeaverUsecase) getDbService(ctx context.Context, params *graphql.RawParams) (*DBService, error) {
Expand Down
4 changes: 3 additions & 1 deletion internal/dms/biz/db_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,8 @@ func newDBService(args *BizDBServiceArgs) (*DBService, error) {
BackupMaxRows: args.BackupMaxRows,
}

if args.RuleTemplateName != "" {
if args.AuditEnabled {
dbService.SQLEConfig.AuditEnabled = args.AuditEnabled
dbService.SQLEConfig.RuleTemplateID = args.RuleTemplateID
dbService.SQLEConfig.RuleTemplateName = args.RuleTemplateName
}
Expand Down Expand Up @@ -717,6 +718,7 @@ func (d *DBServiceUsecase) UpdateDBServiceByArgs(ctx context.Context, dbServiceU
ds.SQLEConfig = &SQLEConfig{}
// 支持新增和更新sqleConfig,不允许删除sqle配置
if updateDBService.RuleTemplateName != "" {
ds.SQLEConfig.AuditEnabled = updateDBService.AuditEnabled
ds.SQLEConfig.RuleTemplateID = updateDBService.RuleTemplateID
ds.SQLEConfig.RuleTemplateName = updateDBService.RuleTemplateName
}
Expand Down
18 changes: 18 additions & 0 deletions internal/dms/service/db_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ func (d *DMSService) UpdateDBService(ctx context.Context, req *dmsV2.UpdateDBSer

sqleConfig := req.DBService.SQLEConfig
if sqleConfig != nil {
args.AuditEnabled = sqleConfig.AuditEnabled
args.RuleTemplateName = sqleConfig.RuleTemplateName
args.RuleTemplateID = sqleConfig.RuleTemplateID
if sqleConfig.SQLQueryConfig != nil {
Expand All @@ -76,6 +77,8 @@ func (d *DMSService) UpdateDBService(ctx context.Context, req *dmsV2.UpdateDBSer
QueryTimeoutSecond: sqleConfig.SQLQueryConfig.QueryTimeoutSecond,
AuditEnabled: sqleConfig.SQLQueryConfig.AuditEnabled,
AllowQueryWhenLessThanAuditLevel: string(sqleConfig.SQLQueryConfig.AllowQueryWhenLessThanAuditLevel),
RuleTemplateID: sqleConfig.SQLQueryConfig.RuleTemplateID,
RuleTemplateName: sqleConfig.SQLQueryConfig.RuleTemplateName,
}
}
}
Expand Down Expand Up @@ -273,6 +276,7 @@ func (d *DMSService) AddDBService(ctx context.Context, req *dmsV1.AddDBServiceRe

sqleConfig := req.DBService.SQLEConfig
if sqleConfig != nil {
args.AuditEnabled = sqleConfig.AuditEnabled
args.RuleTemplateName = sqleConfig.RuleTemplateName
args.RuleTemplateID = sqleConfig.RuleTemplateID
if sqleConfig.SQLQueryConfig != nil {
Expand All @@ -281,6 +285,8 @@ func (d *DMSService) AddDBService(ctx context.Context, req *dmsV1.AddDBServiceRe
QueryTimeoutSecond: sqleConfig.SQLQueryConfig.QueryTimeoutSecond,
AuditEnabled: sqleConfig.SQLQueryConfig.AuditEnabled,
AllowQueryWhenLessThanAuditLevel: string(sqleConfig.SQLQueryConfig.AllowQueryWhenLessThanAuditLevel),
RuleTemplateID: sqleConfig.SQLQueryConfig.RuleTemplateID,
RuleTemplateName: sqleConfig.SQLQueryConfig.RuleTemplateName,
}
}
}
Expand Down Expand Up @@ -334,6 +340,7 @@ func (d *DMSService) AddDBServiceV2(ctx context.Context, req *dmsV2.AddDBService

sqleConfig := req.DBService.SQLEConfig
if sqleConfig != nil {
args.AuditEnabled = sqleConfig.AuditEnabled
args.RuleTemplateName = sqleConfig.RuleTemplateName
args.RuleTemplateID = sqleConfig.RuleTemplateID
if sqleConfig.SQLQueryConfig != nil {
Expand All @@ -342,6 +349,8 @@ func (d *DMSService) AddDBServiceV2(ctx context.Context, req *dmsV2.AddDBService
QueryTimeoutSecond: sqleConfig.SQLQueryConfig.QueryTimeoutSecond,
AuditEnabled: sqleConfig.SQLQueryConfig.AuditEnabled,
AllowQueryWhenLessThanAuditLevel: string(sqleConfig.SQLQueryConfig.AllowQueryWhenLessThanAuditLevel),
RuleTemplateID: sqleConfig.SQLQueryConfig.RuleTemplateID,
RuleTemplateName: sqleConfig.SQLQueryConfig.RuleTemplateName,
}
}
}
Expand Down Expand Up @@ -403,6 +412,7 @@ func (d *DMSService) convertBizDBServiceArgs2ImportDBService(dbs []*biz.BizDBSer
Source: u.Source,
ProjectUID: u.ProjectUID,
SQLEConfig: &dmsCommonV1.SQLEConfig{
AuditEnabled: u.AuditEnabled,
RuleTemplateName: u.RuleTemplateName,
RuleTemplateID: u.RuleTemplateID,
SQLQueryConfig: nil,
Expand Down Expand Up @@ -431,6 +441,8 @@ func (d *DMSService) convertBizDBServiceArgs2ImportDBService(dbs []*biz.BizDBSer
QueryTimeoutSecond: u.SQLQueryConfig.QueryTimeoutSecond,
AuditEnabled: u.SQLQueryConfig.AuditEnabled,
AllowQueryWhenLessThanAuditLevel: dmsCommonV1.SQLAllowQueryAuditLevel(u.SQLQueryConfig.AllowQueryWhenLessThanAuditLevel),
RuleTemplateID: u.SQLQueryConfig.RuleTemplateID,
RuleTemplateName: u.SQLQueryConfig.RuleTemplateName,
}
}
}
Expand Down Expand Up @@ -480,6 +492,7 @@ func (d *DMSService) convertImportDBService2BizDBService(ctx context.Context, im

if u.SQLEConfig != nil {
sqlConfig := &biz.SQLEConfig{
AuditEnabled: u.SQLEConfig.AuditEnabled,
RuleTemplateName: u.SQLEConfig.RuleTemplateName,
RuleTemplateID: u.SQLEConfig.RuleTemplateID,
SQLQueryConfig: &biz.SQLQueryConfig{},
Expand All @@ -489,6 +502,8 @@ func (d *DMSService) convertImportDBService2BizDBService(ctx context.Context, im
sqlConfig.SQLQueryConfig.AuditEnabled = u.SQLEConfig.SQLQueryConfig.AuditEnabled
sqlConfig.SQLQueryConfig.MaxPreQueryRows = u.SQLEConfig.SQLQueryConfig.MaxPreQueryRows
sqlConfig.SQLQueryConfig.QueryTimeoutSecond = u.SQLEConfig.SQLQueryConfig.QueryTimeoutSecond
sqlConfig.SQLQueryConfig.RuleTemplateID = u.SQLEConfig.SQLQueryConfig.RuleTemplateID
sqlConfig.SQLQueryConfig.RuleTemplateName = u.SQLEConfig.SQLQueryConfig.RuleTemplateName
}
ret[i].SQLEConfig = sqlConfig
}
Expand Down Expand Up @@ -670,6 +685,7 @@ func (d *DMSService) ListDBServices(ctx context.Context, req *dmsCommonV2.ListDB

if u.SQLEConfig != nil {
sqlConfig := &dmsCommonV1.SQLEConfig{
AuditEnabled: u.SQLEConfig.AuditEnabled,
RuleTemplateName: u.SQLEConfig.RuleTemplateName,
RuleTemplateID: u.SQLEConfig.RuleTemplateID,
SQLQueryConfig: &dmsCommonV1.SQLQueryConfig{},
Expand All @@ -679,6 +695,8 @@ func (d *DMSService) ListDBServices(ctx context.Context, req *dmsCommonV2.ListDB
sqlConfig.SQLQueryConfig.AuditEnabled = u.SQLEConfig.SQLQueryConfig.AuditEnabled
sqlConfig.SQLQueryConfig.MaxPreQueryRows = u.SQLEConfig.SQLQueryConfig.MaxPreQueryRows
sqlConfig.SQLQueryConfig.QueryTimeoutSecond = u.SQLEConfig.SQLQueryConfig.QueryTimeoutSecond
sqlConfig.SQLQueryConfig.RuleTemplateID = u.SQLEConfig.SQLQueryConfig.RuleTemplateID
sqlConfig.SQLQueryConfig.RuleTemplateName = u.SQLEConfig.SQLQueryConfig.RuleTemplateName
}
ret[i].SQLEConfig = sqlConfig
}
Expand Down
6 changes: 6 additions & 0 deletions internal/dms/service/db_service_sync_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ func toBizDBServiceSyncTask(syncTask *v1.DBServiceSyncTask) *biz.DBServiceSyncTa
}
if syncTask.SQLEConfig != nil {
ret.SQLEConfig = &biz.SQLEConfig{
AuditEnabled: syncTask.SQLEConfig.AuditEnabled,
RuleTemplateName: syncTask.SQLEConfig.RuleTemplateName,
RuleTemplateID: syncTask.SQLEConfig.RuleTemplateID,
}
Expand All @@ -44,6 +45,8 @@ func toBizDBServiceSyncTask(syncTask *v1.DBServiceSyncTask) *biz.DBServiceSyncTa
QueryTimeoutSecond: syncTask.SQLEConfig.SQLQueryConfig.QueryTimeoutSecond,
AuditEnabled: syncTask.SQLEConfig.SQLQueryConfig.AuditEnabled,
AllowQueryWhenLessThanAuditLevel: string(syncTask.SQLEConfig.SQLQueryConfig.AllowQueryWhenLessThanAuditLevel),
RuleTemplateID: syncTask.SQLEConfig.SQLQueryConfig.RuleTemplateID,
RuleTemplateName: syncTask.SQLEConfig.SQLQueryConfig.RuleTemplateName,
}
}
}
Expand Down Expand Up @@ -101,6 +104,7 @@ func (d *DMSService) buildReplySqleConfig(params *biz.SQLEConfig) *dmsCommonV1.S
}

sqlConfig := &dmsCommonV1.SQLEConfig{
AuditEnabled: params.AuditEnabled,
RuleTemplateName: params.RuleTemplateName,
RuleTemplateID: params.RuleTemplateID,
SQLQueryConfig: &dmsCommonV1.SQLQueryConfig{},
Expand All @@ -110,6 +114,8 @@ func (d *DMSService) buildReplySqleConfig(params *biz.SQLEConfig) *dmsCommonV1.S
sqlConfig.SQLQueryConfig.AuditEnabled = params.SQLQueryConfig.AuditEnabled
sqlConfig.SQLQueryConfig.MaxPreQueryRows = params.SQLQueryConfig.MaxPreQueryRows
sqlConfig.SQLQueryConfig.QueryTimeoutSecond = params.SQLQueryConfig.QueryTimeoutSecond
sqlConfig.SQLQueryConfig.RuleTemplateID = params.SQLQueryConfig.RuleTemplateID
sqlConfig.SQLQueryConfig.RuleTemplateName = params.SQLQueryConfig.RuleTemplateName
}

return sqlConfig
Expand Down
39 changes: 26 additions & 13 deletions internal/dms/storage/convert.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ package storage
import (
"database/sql"
"fmt"
v1 "github.com/actiontech/dms/api/dms/service/v1"
"net/url"
"strings"
"time"

v1 "github.com/actiontech/dms/api/dms/service/v1"

"github.com/actiontech/dms/internal/dms/biz"
"github.com/actiontech/dms/internal/dms/storage/model"
"github.com/labstack/echo/v4/middleware"
Expand Down Expand Up @@ -65,6 +66,7 @@ func convertBizDBService(ds *biz.DBService) (*model.DBService, error) {
if ds.SQLEConfig != nil {
dbService.ExtraParameters = model.ExtraParameters{
SqleConfig: &model.SQLEConfig{
AuditEnabled: ds.SQLEConfig.AuditEnabled,
RuleTemplateName: ds.SQLEConfig.RuleTemplateName,
RuleTemplateID: ds.SQLEConfig.RuleTemplateID,
},
Expand All @@ -76,6 +78,8 @@ func convertBizDBService(ds *biz.DBService) (*model.DBService, error) {
AuditEnabled: sqleQueryConfig.AuditEnabled,
MaxPreQueryRows: sqleQueryConfig.MaxPreQueryRows,
QueryTimeoutSecond: sqleQueryConfig.QueryTimeoutSecond,
RuleTemplateName: sqleQueryConfig.RuleTemplateName,
RuleTemplateID: sqleQueryConfig.RuleTemplateID,
}
}
}
Expand Down Expand Up @@ -132,6 +136,7 @@ func convertModelDBService(ds *model.DBService) (*biz.DBService, error) {
modelSqleConfig := ds.ExtraParameters.SqleConfig
if modelSqleConfig != nil {
dbService.SQLEConfig = &biz.SQLEConfig{}
dbService.SQLEConfig.AuditEnabled = modelSqleConfig.AuditEnabled
dbService.SQLEConfig.RuleTemplateName = modelSqleConfig.RuleTemplateName
dbService.SQLEConfig.RuleTemplateID = modelSqleConfig.RuleTemplateID
sqleQueryConfig := modelSqleConfig.SqlQueryConfig
Expand All @@ -141,6 +146,8 @@ func convertModelDBService(ds *model.DBService) (*biz.DBService, error) {
AuditEnabled: sqleQueryConfig.AuditEnabled,
MaxPreQueryRows: sqleQueryConfig.MaxPreQueryRows,
QueryTimeoutSecond: sqleQueryConfig.QueryTimeoutSecond,
RuleTemplateName: sqleQueryConfig.RuleTemplateName,
RuleTemplateID: sqleQueryConfig.RuleTemplateID,
}
dbService.SQLEConfig.SQLQueryConfig = sqc
}
Expand Down Expand Up @@ -339,7 +346,7 @@ func convertModelMemberGroup(mg *model.MemberGroup) (*biz.MemberGroup, error) {

opPermissions := make([]biz.OpPermission, 0)
for _, permission := range mg.OpPermissions {
bizPermission, err:= convertModelOpPermission(&permission)
bizPermission, err := convertModelOpPermission(&permission)
if err != nil {
return nil, err
}
Expand All @@ -353,7 +360,7 @@ func convertModelMemberGroup(mg *model.MemberGroup) (*biz.MemberGroup, error) {
Name: mg.Name,
Users: users,
RoleWithOpRanges: roles,
OpPermissions: opPermissions,
OpPermissions: opPermissions,
}, nil
}

Expand Down Expand Up @@ -384,11 +391,11 @@ func convertModelRole(u *model.Role) (*biz.Role, error) {
}

return &biz.Role{
Base: convertBase(u.Model),
UID: u.UID,
Name: u.Name,
Desc: u.Desc,
Stat: stat,
Base: convertBase(u.Model),
UID: u.UID,
Name: u.Name,
Desc: u.Desc,
Stat: stat,
OpPermissions: opPermissions,
}, nil
}
Expand All @@ -402,8 +409,8 @@ func convertBizOpPermission(u *biz.OpPermission) (*model.OpPermission, error) {
Name: u.Name,
Desc: u.Desc,
RangeType: u.RangeType.String(),
Module: string(u.Module),
Service: string(u.Service),
Module: string(u.Module),
Service: string(u.Service),
}, nil
}

Expand All @@ -414,8 +421,8 @@ func convertModelOpPermission(u *model.OpPermission) (*biz.OpPermission, error)
Name: u.Name,
Desc: u.Desc,
RangeType: biz.OpRangeType(u.RangeType),
Module: biz.Module(u.Module),
Service: v1.Service(u.Service),
Module: biz.Module(u.Module),
Service: v1.Service(u.Service),
}, nil
}

Expand Down Expand Up @@ -522,7 +529,7 @@ func convertModelMember(m *model.Member) (*biz.Member, error) {
}
opPermissions := make([]biz.OpPermission, 0)
for _, permission := range m.OpPermissions {
bizPermission, err:= convertModelOpPermission(permission)
bizPermission, err := convertModelOpPermission(permission)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -1271,6 +1278,7 @@ func toModelDBServiceSyncTask(u *biz.DBServiceSyncTask) *model.DBServiceSyncTask
}
if u.SQLEConfig != nil {
ret.ExtraParameters.SqleConfig = &model.SQLEConfig{
AuditEnabled: u.SQLEConfig.AuditEnabled,
RuleTemplateName: u.SQLEConfig.RuleTemplateName,
RuleTemplateID: u.SQLEConfig.RuleTemplateID,
}
Expand All @@ -1280,6 +1288,8 @@ func toModelDBServiceSyncTask(u *biz.DBServiceSyncTask) *model.DBServiceSyncTask
QueryTimeoutSecond: u.SQLEConfig.SQLQueryConfig.QueryTimeoutSecond,
AuditEnabled: u.SQLEConfig.SQLQueryConfig.AuditEnabled,
AllowQueryWhenLessThanAuditLevel: u.SQLEConfig.SQLQueryConfig.AllowQueryWhenLessThanAuditLevel,
RuleTemplateName: u.SQLEConfig.SQLQueryConfig.RuleTemplateName,
RuleTemplateID: u.SQLEConfig.SQLQueryConfig.RuleTemplateID,
}
}
}
Expand All @@ -1304,6 +1314,7 @@ func toBizDBServiceSyncTask(m *model.DBServiceSyncTask) *biz.DBServiceSyncTask {
}
if m.ExtraParameters.SqleConfig != nil {
ret.SQLEConfig = &biz.SQLEConfig{
AuditEnabled: m.ExtraParameters.SqleConfig.AuditEnabled,
RuleTemplateName: m.ExtraParameters.SqleConfig.RuleTemplateName,
RuleTemplateID: m.ExtraParameters.SqleConfig.RuleTemplateID,
}
Expand All @@ -1313,6 +1324,8 @@ func toBizDBServiceSyncTask(m *model.DBServiceSyncTask) *biz.DBServiceSyncTask {
QueryTimeoutSecond: m.ExtraParameters.SqleConfig.SqlQueryConfig.QueryTimeoutSecond,
AuditEnabled: m.ExtraParameters.SqleConfig.SqlQueryConfig.AuditEnabled,
AllowQueryWhenLessThanAuditLevel: m.ExtraParameters.SqleConfig.SqlQueryConfig.AllowQueryWhenLessThanAuditLevel,
RuleTemplateName: m.ExtraParameters.SqleConfig.SqlQueryConfig.RuleTemplateName,
RuleTemplateID: m.ExtraParameters.SqleConfig.SqlQueryConfig.RuleTemplateID,
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions internal/dms/storage/model/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ func (e *ExtraParameters) Scan(input interface{}) error {
}

type SQLEConfig struct {
AuditEnabled bool `json:"audit_enabled"`
RuleTemplateID string `json:"rule_template_id"`
RuleTemplateName string `json:"rule_template_name"`
SqlQueryConfig *SqlQueryConfig `json:"sql_query_config"`
Expand All @@ -119,6 +120,8 @@ type SqlQueryConfig struct {
QueryTimeoutSecond int `json:"query_timeout_second"`
AuditEnabled bool `json:"audit_enabled"`
AllowQueryWhenLessThanAuditLevel string `json:"allow_query_when_less_than_audit_level"`
RuleTemplateID string `json:"rule_template_id"`
RuleTemplateName string `json:"rule_template_name"`
}

type User struct {
Expand Down
2 changes: 2 additions & 0 deletions internal/pkg/locale/active.en.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ DBServicePort = "DB instance port"
DBServiceProblem = "Problem"
DBServiceProjName = "Project name (Existing in the platform)"
DBServiceRuleTemplateName = "Audit rule template (Existing in the project)"
DBServiceSQLQueryRuleTemplateName = "SQL Workbench audit rule template (need to fill out the audit rule template first)"
DBServiceSyncExpand = "DB instance synchronization expansion service"
DBServiceSyncVersion = "Version (Supports DMP5.23.04.0 and above)"
DBServiceUser = "DB instance connection user"
Expand Down Expand Up @@ -67,6 +68,7 @@ IDBPCErrProjNonExist = "Project does not exist"
IDBPCErrProjNotActive = "Project status is abnormal"
IDBPCErrProjNotAllowed = "Project is not in operation"
IDBPCErrRuleTemplateInvalid = "Audit rule template does not exist or is incompatible with the db instance type"
IDBPCErrSQLQueryRuleTemplateInvalid = "SQL Workbench audit rule template does not exist or is incompatible with the db instance type"
LicenseAuthorizedDurationDay = "Authorized days"
LicenseDmsVersion = "DMS Version"
LicenseDurationOfRunning = "Running days"
Expand Down
2 changes: 2 additions & 0 deletions internal/pkg/locale/active.zh.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ DBServicePort = "数据源端口"
DBServiceProblem = "问题"
DBServiceProjName = "所属项目(平台已有的项目名称)"
DBServiceRuleTemplateName = "审核规则模板(项目已有的规则模板)"
DBServiceSQLQueryRuleTemplateName = "工作台操作审核规则模板(需要先填写审核规则模板)"
DBServiceSyncExpand = "数据源同步扩展服务"
DBServiceSyncVersion = "版本(支持DMP5.23.04.0及以上版本)"
DBServiceUser = "数据源连接用户"
Expand Down Expand Up @@ -67,6 +68,7 @@ IDBPCErrProjNonExist = "所属项目不存在"
IDBPCErrProjNotActive = "所属项目状态异常"
IDBPCErrProjNotAllowed = "所属项目不是操作中的项目"
IDBPCErrRuleTemplateInvalid = "审核规则模板不存在或数据源类型不匹配"
IDBPCErrSQLQueryRuleTemplateInvalid = "工作台操作审核规则模板不存在或数据源类型不匹配"
LicenseAuthorizedDurationDay = "授权运行时长(天)"
LicenseDmsVersion = "DMS版本"
LicenseDurationOfRunning = "已运行时长(天)"
Expand Down
Loading