Skip to content
Open
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
629 changes: 609 additions & 20 deletions api/dms/service/v1/masking.go

Large diffs are not rendered by default.

1,766 changes: 1,485 additions & 281 deletions api/swagger.json

Large diffs are not rendered by default.

1,169 changes: 1,049 additions & 120 deletions api/swagger.yaml

Large diffs are not rendered by default.

662 changes: 564 additions & 98 deletions internal/apiserver/service/data_mask_controller.go

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion internal/dms/biz/data_export_workflow.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ type DataExportWorkflowUsecase struct {
dbServiceRepo DBServiceRepo
dataExportTaskRepo DataExportTaskRepo
maskingConfigRepo DataExportMaskingConfigRepo
maskingRuleRepo DataExportMaskingRuleRepo
dmsProxyTargetRepo ProxyTargetRepo
opPermissionVerifyUsecase *OpPermissionVerifyUsecase
projectUsecase *ProjectUsecase
Expand All @@ -138,12 +139,13 @@ type DataExportWorkflowUsecase struct {
reportHost string
}

func NewDataExportWorkflowUsecase(logger utilLog.Logger, tx TransactionGenerator, repo WorkflowRepo, dataExportTaskRepo DataExportTaskRepo, dbServiceRepo DBServiceRepo, maskingConfigRepo DataExportMaskingConfigRepo, opPermissionVerifyUsecase *OpPermissionVerifyUsecase, projectUsecase *ProjectUsecase, proxyTargetRepo ProxyTargetRepo, clusterUseCase *ClusterUsecase, webhookUsecase *WebHookConfigurationUsecase, userUsecase *UserUsecase, systemVariableUsecase *SystemVariableUsecase, maskingTaskRepo MaskingTaskRepo, reportHost string) *DataExportWorkflowUsecase {
func NewDataExportWorkflowUsecase(logger utilLog.Logger, tx TransactionGenerator, repo WorkflowRepo, dataExportTaskRepo DataExportTaskRepo, dbServiceRepo DBServiceRepo, maskingConfigRepo DataExportMaskingConfigRepo, maskingRuleRepo DataExportMaskingRuleRepo, opPermissionVerifyUsecase *OpPermissionVerifyUsecase, projectUsecase *ProjectUsecase, proxyTargetRepo ProxyTargetRepo, clusterUseCase *ClusterUsecase, webhookUsecase *WebHookConfigurationUsecase, userUsecase *UserUsecase, systemVariableUsecase *SystemVariableUsecase, maskingTaskRepo MaskingTaskRepo, reportHost string) *DataExportWorkflowUsecase {
return &DataExportWorkflowUsecase{
tx: tx,
repo: repo,
dbServiceRepo: dbServiceRepo,
maskingConfigRepo: maskingConfigRepo,
maskingRuleRepo: maskingRuleRepo,
opPermissionVerifyUsecase: opPermissionVerifyUsecase,
projectUsecase: projectUsecase,
dmsProxyTargetRepo: proxyTargetRepo,
Expand Down
2 changes: 2 additions & 0 deletions internal/dms/biz/data_mask_ce.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@
package biz

type DataExportMaskingConfigRepo interface{}

type DataExportMaskingRuleRepo interface{}
54 changes: 53 additions & 1 deletion internal/dms/service/data_masking_ce.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func (d *DMSService) ListSensitiveDataDiscoveryTaskHistories(ctx context.Context
return nil, errNotSupportDataMasking
}

func (d *DMSService) ListMaskingRules(ctx context.Context) (reply *dmsV1.ListMaskingRulesReply, err error) {
func (d *DMSService) ListMaskingRules(ctx context.Context, req *v1.ListMaskingRulesReq) (reply *dmsV1.ListMaskingRulesReply, err error) {
return nil, errNotSupportDataMasking
}

Expand All @@ -73,6 +73,54 @@ func (d *DMSService) ListCreatableDBServicesForMaskingTask(ctx context.Context,
return nil, errNotSupportDataMasking
}

func (d *DMSService) GetMaskingRuleDetail(ctx context.Context, req *v1.GetMaskingRuleDetailReq) (*v1.GetMaskingRuleDetailReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) AddMaskingRule(ctx context.Context, req *v1.AddMaskingRuleReq) (*v1.AddMaskingRuleReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) UpdateMaskingRule(ctx context.Context, req *v1.UpdateMaskingRuleReq) (*v1.UpdateMaskingRuleReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) UpdateSensitiveDataType(ctx context.Context, req *v1.UpdateSensitiveDataTypeReq) (*v1.UpdateSensitiveDataTypeReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) DeleteMaskingRule(ctx context.Context, req *v1.DeleteMaskingRuleReq) error {
return errNotSupportDataMasking
}

func (d *DMSService) ListSensitiveTypes(ctx context.Context, req *v1.ListSensitiveTypesReq) (*v1.ListSensitiveTypesReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) AddSensitiveDataType(ctx context.Context, req *v1.AddSensitiveDataTypeReq) (*v1.AddSensitiveDataTypeReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) DeleteSensitiveDataType(ctx context.Context, req *v1.DeleteSensitiveDataTypeReq) error {
return errNotSupportDataMasking
}

func (d *DMSService) TestSensitiveDataTypeMatch(ctx context.Context, req *v1.TestSensitiveDataTypeMatchReq) (*v1.TestSensitiveDataTypeMatchReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) PreviewMaskingEffect(ctx context.Context, req *v1.PreviewMaskingEffectReq) (*v1.PreviewMaskingEffectReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) ListDBServiceSchemasForMaskingTask(ctx context.Context, req *v1.ListDBServiceSchemasForMaskingTaskReq) (*v1.ListDBServiceSchemasForMaskingTaskReply, error) {
return nil, errNotSupportDataMasking
}

func (d *DMSService) ListDBServiceTablesForMaskingTask(ctx context.Context, req *v1.ListDBServiceTablesForMaskingTaskReq) (*v1.ListDBServiceTablesForMaskingTaskReply, error) {
return nil, errNotSupportDataMasking
}

func initDataMaskingUsecase(_ utilLog.Logger, _ *storage.Storage, _ *biz.DBServiceUsecase, _ *biz.ClusterUsecase, _ biz.ProxyTargetRepo) (*dataMaskingUsecase, func(), error) {
return nil, func() {}, nil
}
Expand All @@ -95,6 +143,10 @@ func initDataExportMaskingConfigRepo(_ utilLog.Logger, _ *storage.Storage) biz.D
return nil
}

func initDataExportMaskingRuleRepo(_ utilLog.Logger, _ *storage.Storage) biz.DataExportMaskingRuleRepo {
return nil
}

// registerFunctionProvidersToRegistry 在 CE 版本中为空实现
func registerFunctionProvidersToRegistry(_ *biz.FunctionSupportRegistry, _ *dataMaskingUsecase) {
// CE 版本无功能提供者需要注册
Expand Down
3 changes: 2 additions & 1 deletion internal/dms/service/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,8 @@ func NewAndInitDMSService(logger utilLog.Logger, opts *conf.DMSOptions) (*DMSSer
CbOperationLogUsecase := biz.NewCbOperationLogUsecase(logger, cbOperationRepo, opPermissionVerifyUsecase, dmsProxyTargetRepo, systemVariableUsecase)
workflowRepo := storage.NewWorkflowRepo(logger, st)
dataExportMaskingConfigRepo := initDataExportMaskingConfigRepo(logger, st)
DataExportWorkflowUsecase := biz.NewDataExportWorkflowUsecase(logger, tx, workflowRepo, dataExportTaskRepo, dbServiceRepo, dataExportMaskingConfigRepo, opPermissionVerifyUsecase, projectUsecase, dmsProxyTargetRepo, clusterUsecase, webhookConfigurationUsecase, userUsecase, systemVariableUsecase, discoveryTaskRepo, fmt.Sprintf("%s:%d", opts.ReportHost, opts.APIServiceOpts.Port))
dataExportMaskingRuleRepo := initDataExportMaskingRuleRepo(logger, st)
DataExportWorkflowUsecase := biz.NewDataExportWorkflowUsecase(logger, tx, workflowRepo, dataExportTaskRepo, dbServiceRepo, dataExportMaskingConfigRepo, dataExportMaskingRuleRepo, opPermissionVerifyUsecase, projectUsecase, dmsProxyTargetRepo, clusterUsecase, webhookConfigurationUsecase, userUsecase, systemVariableUsecase, discoveryTaskRepo, fmt.Sprintf("%s:%d", opts.ReportHost, opts.APIServiceOpts.Port))
dataMaskingUsecase, stopDataMaskingScheduler, err := initDataMaskingUsecase(logger, st, dbServiceUseCase, clusterUsecase, dmsProxyTargetRepo)
if err != nil {
return nil, fmt.Errorf("failed to initialize data masking usecase: %v", err)
Expand Down