feat: expand node artifact operations and retention

This commit is contained in:
lpf
2026-03-09 10:46:22 +08:00
parent be2e025fe5
commit ba3be33c91
22 changed files with 2724 additions and 151 deletions

View File

@@ -145,6 +145,21 @@ func Validate(cfg *Config) []error {
}
}
}
errs = append(errs, validateDispatchTagMap("gateway.nodes.dispatch.action_tags", cfg.Gateway.Nodes.Dispatch.ActionTags)...)
errs = append(errs, validateDispatchTagMap("gateway.nodes.dispatch.agent_tags", cfg.Gateway.Nodes.Dispatch.AgentTags)...)
errs = append(errs, validateDispatchTagMap("gateway.nodes.dispatch.allow_actions", cfg.Gateway.Nodes.Dispatch.AllowActions)...)
errs = append(errs, validateDispatchTagMap("gateway.nodes.dispatch.deny_actions", cfg.Gateway.Nodes.Dispatch.DenyActions)...)
errs = append(errs, validateDispatchTagMap("gateway.nodes.dispatch.allow_agents", cfg.Gateway.Nodes.Dispatch.AllowAgents)...)
errs = append(errs, validateDispatchTagMap("gateway.nodes.dispatch.deny_agents", cfg.Gateway.Nodes.Dispatch.DenyAgents)...)
if cfg.Gateway.Nodes.Artifacts.Enabled && cfg.Gateway.Nodes.Artifacts.KeepLatest <= 0 {
errs = append(errs, fmt.Errorf("gateway.nodes.artifacts.keep_latest must be > 0 when enabled=true"))
}
if cfg.Gateway.Nodes.Artifacts.KeepLatest < 0 {
errs = append(errs, fmt.Errorf("gateway.nodes.artifacts.keep_latest must be >= 0"))
}
if cfg.Gateway.Nodes.Artifacts.RetainDays < 0 {
errs = append(errs, fmt.Errorf("gateway.nodes.artifacts.retain_days must be >= 0"))
}
if cfg.Cron.MinSleepSec <= 0 {
errs = append(errs, fmt.Errorf("cron.min_sleep_sec must be > 0"))
}
@@ -239,6 +254,21 @@ func Validate(cfg *Config) []error {
return errs
}
func validateDispatchTagMap(prefix string, mapping map[string][]string) []error {
if len(mapping) == 0 {
return nil
}
errs := make([]error, 0)
for key, tags := range mapping {
if strings.TrimSpace(key) == "" {
errs = append(errs, fmt.Errorf("%s contains empty key", prefix))
continue
}
errs = append(errs, validateNonEmptyStringList(fmt.Sprintf("%s.%s", prefix, key), tags)...)
}
return errs
}
func validateMCPTools(cfg *Config) []error {
var errs []error
mcp := cfg.Tools.MCP