sqle icon indicating copy to clipboard operation
sqle copied to clipboard

重构规则列表

Open HuangWeiCen opened this issue 2 years ago • 0 comments

优化建议

当前问题

当前规则列表中的规则校验逻辑都是独立函数, 这种做法已经无法适应新的需求 新需求指部分场景可能会有特定的审核要求, 此时需要审核函数根据特定要求调整自身逻辑

建议优化方案

将校验逻辑的入参调整为一个结构化的数据, 便于以后增加参数

调整方案

相关定义

RuleHandler调整

旧定义

func(*session.Context, driver.Rule, *driver.AuditResult, ast.Node) error

新定义

func(input *RuleHandlerInput)error

RuleHandlerInput定义

如果需要审核规则在满足特定要求的情况下审核, 则可以将要求加入AdditionalRequire中

type RuleHandlerInput struct {
	context *session.Context
	rule    driver.Rule
	result  *driver.AuditResult
	node    ast.Node

	require AdditionalRequire
}

type AdditionalRequire struct {}

规则调整

  1. 规则函数定义调整
  2. 整理审核函数逻辑, 将不同SQL类型的处理逻辑拆开, 为以后根据条件判断哪些部分执行哪些不执行做准备

HuangWeiCen avatar Aug 03 '22 07:08 HuangWeiCen