vibe-proxy/backend/sdk/cliproxy/auth/metadata_keys.go
2026-08-24 00:10:41 +02:00

45 lines
1.2 KiB
Go

package auth
// CanonicalCredentialMetadataKey returns the canonical snake_case name for
// credential metadata keys that previously also accepted config-style aliases.
func CanonicalCredentialMetadataKey(key string) string {
switch key {
case "api-key":
return "api_key"
case "base-url":
return "base_url"
case "disable-cooling":
return "disable_cooling"
case "excluded-models":
return "excluded_models"
case "fingerprint-profile":
return "fingerprint_profile"
case "model-aliases":
return "model_aliases"
case "proxy-url":
return "proxy_url"
case "request-retry":
return "request_retry"
case "request-scoped-errors":
return "request_scoped_errors"
case "tool-prefix-disabled":
return "tool_prefix_disabled"
default:
return key
}
}
// NormalizeCredentialMetadata rewrites recognized legacy keys to their
// canonical snake_case names. An explicitly present canonical value wins.
func NormalizeCredentialMetadata(metadata map[string]any) {
for key, value := range metadata {
canonical := CanonicalCredentialMetadataKey(key)
if canonical == key {
continue
}
if _, exists := metadata[canonical]; !exists {
metadata[canonical] = value
}
delete(metadata, key)
}
}