deriveAPIKeyEnvName builds a valid env-var name from an endpoint name by upper-casing it, replacing any character that is not a letter or digit with an underscore, and appending "_API_KEY".
(endpointName string)
| 116 | // upper-casing it, replacing any character that is not a letter or digit with |
| 117 | // an underscore, and appending "_API_KEY". |
| 118 | func deriveAPIKeyEnvName(endpointName string) string { |
| 119 | var b strings.Builder |
| 120 | for _, r := range strings.ToUpper(strings.TrimSpace(endpointName)) { |
| 121 | switch { |
| 122 | case r >= 'A' && r <= 'Z', r >= '0' && r <= '9': |
| 123 | b.WriteRune(r) |
| 124 | default: |
| 125 | b.WriteByte('_') |
| 126 | } |
| 127 | } |
| 128 | name := b.String() |
| 129 | if name == "" { |
| 130 | return "API_KEY" |
| 131 | } |
| 132 | if name[0] >= '0' && name[0] <= '9' { |
| 133 | name = "_" + name |
| 134 | } |
| 135 | return name + "_API_KEY" |
| 136 | } |
| 137 | |
| 138 | // MaskedAPIKey returns a redacted form suitable for display. |
| 139 | func MaskedAPIKey(key string) string { |