Files
SamWaf/enums/batch_task_enum.go
T

69 lines
2.3 KiB
Go

package enums
const (
BATCHTASK_IPALLOW = "ipallow"
BATCHTASK_IPDENY = "ipdeny"
// BATCHTASK_IPGROUP 导入到 IP 组。IP 组是租户级资源、不带 host_code,
// 目标组由 batch_extra_config 里的 group_code 指定,与 batch_host_code 无关。
BATCHTASK_IPGROUP = "ipgroup"
BATCHTASK_SENSITIVE = "sensitive"
BATCHTASK_EXECUTEMETHODAPPEND = "append"
BATCHTASK_EXECUTEMETHODOVERWRITE = "overwrite"
// 来源类型。local=本地文件;remote 是前端在用的值,url 是模型注释里的历史写法,
// 两者语义相同(HTTP 拉取),都要认,否则存量任务与现有前端会一起失效。
BATCHTASK_SOURCETYPE_LOCAL = "local"
BATCHTASK_SOURCETYPE_REMOTE = "remote"
BATCHTASK_SOURCETYPE_URL = "url"
// 触发类型
BATCHTASK_TRIGGERTYPE_CRON = "cron"
BATCHTASK_TRIGGERTYPE_MANUAL = "manual"
)
// 以下四个白名单是批量任务的枚举边界。这些字段来自管理端提交、直接决定
// 「读哪里、写哪张表、怎么写」,不校验的后果不只是脏数据:未知的执行方式会让
// 各 processor 静默 return false(任务像成功一样什么都没做),未知的来源类型
// 会走进远端分支。所以保存时就拒,执行时再兜一次。
// IsValidBatchType 任务类型是否合法
func IsValidBatchType(v string) bool {
switch v {
case BATCHTASK_IPALLOW, BATCHTASK_IPDENY, BATCHTASK_IPGROUP, BATCHTASK_SENSITIVE:
return true
}
return false
}
// IsValidBatchSourceType 来源类型是否合法
func IsValidBatchSourceType(v string) bool {
switch v {
case BATCHTASK_SOURCETYPE_LOCAL, BATCHTASK_SOURCETYPE_REMOTE, BATCHTASK_SOURCETYPE_URL:
return true
}
return false
}
// IsBatchLocalSource 是否为本地文件来源(非本地即远端拉取)
func IsBatchLocalSource(v string) bool {
return v == BATCHTASK_SOURCETYPE_LOCAL
}
// IsValidBatchTriggerType 触发类型是否合法
func IsValidBatchTriggerType(v string) bool {
switch v {
case BATCHTASK_TRIGGERTYPE_CRON, BATCHTASK_TRIGGERTYPE_MANUAL:
return true
}
return false
}
// IsValidBatchExecuteMethod 执行方式是否合法
func IsValidBatchExecuteMethod(v string) bool {
switch v {
case BATCHTASK_EXECUTEMETHODAPPEND, BATCHTASK_EXECUTEMETHODOVERWRITE:
return true
}
return false
}