diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index 3f0e65a1711..4544b72d97e 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -563,6 +563,10 @@ func ToAbsUrl(relativeUrl string) string { } func RedactedValue(key, value string) string { + if value == "" { + return "" + } + uppercased := strings.ToUpper(key) // Sensitive information: password, secrets etc for _, pattern := range []string{ diff --git a/pkg/setting/setting_test.go b/pkg/setting/setting_test.go index 2bc539cbeb4..81521e55a86 100644 --- a/pkg/setting/setting_test.go +++ b/pkg/setting/setting_test.go @@ -767,3 +767,37 @@ func TestAlertingEnabled(t *testing.T) { }) } } + +func TestRedactedValue(t *testing.T) { + testCases := []struct { + desc string + key string + value string + expected string + }{ + { + desc: "non-sensitive key", + key: "admin_user", + value: "admin", + expected: "admin", + }, + { + desc: "sensitive key with non-empty value", + key: "private_key_path", + value: "/path/to/key", + expected: RedactedPassword, + }, + { + desc: "sensitive key with empty value", + key: "private_key_path", + value: "", + expected: "", + }, + } + + for _, tc := range testCases { + t.Run(tc.desc, func(t *testing.T) { + require.Equal(t, tc.expected, RedactedValue(tc.key, tc.value)) + }) + } +}