Files
ai-operator/internal/config/masking.go
T

61 lines
1.1 KiB
Go

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:]
}