package squad import ( "fmt" "regexp" "strings" ) // idPattern 限制 run、角色、蓝图 key:首字符为字母或数字,其余为字母、数字、点、下划线、连字符,最长 128,且不得含 ".."。 var idPattern = regexp.MustCompile(`^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$`) // ValidID 报告 id 是否可安全拼进数据目录路径。 func ValidID(id string) bool { return idPattern.MatchString(id) && !strings.Contains(id, "..") } func invalidID(id string) error { return fmt.Errorf("invalid id %q", id) }