package config import ( "net/url" "strings" ) func MaskSecret(value string) string { if strings.TrimSpace(value) == "" { return "***EMPTY***" } return "***MASKED***" } func MaskOpenAIKey(value string) string { if strings.TrimSpace(value) == "" { return "***EMPTY***" } if strings.HasPrefix(value, "sk-") { return "sk-***MASKED***" } return "***MASKED***" } func MaskURLCredentials(value string) string { if strings.TrimSpace(value) == "" { return "***EMPTY***" } parsed, err := url.Parse(value) if err != nil || parsed.User == nil { return value } if username := parsed.User.Username(); username != "" { parsed.User = url.UserPassword("***MASKED***", "***MASKED***") } return parsed.String() } func MaskEndpoint(value string) string { v := strings.TrimSpace(value) if v == "" { return "" } if strings.Contains(v, "@") { parts := strings.Split(v, "@") return "***MASKED***@" + parts[len(parts)-1] } return v } func MaskPhoneNumber(value string) string { v := strings.TrimSpace(value) if len(v) < 6 { return "***MASKED***" } if len(v) <= 7 { return v[:3] + "***" } return v[:4] + "***" + v[len(v)-4:] }