From d3dcc74e5aa6f640c3ad94bdfb4c0ded2d171e57 Mon Sep 17 00:00:00 2001 From: Ben Schumacher Date: Tue, 11 Feb 2025 10:06:27 +0100 Subject: [PATCH] [MM-62762] Make config location in Support Packet human-readable (#30027) Co-authored-by: Mattermost Build --- server/public/utils/sql/sql_utils.go | 10 +++++++++- server/public/utils/sql/sql_utils_test.go | 12 ++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/server/public/utils/sql/sql_utils.go b/server/public/utils/sql/sql_utils.go index 337804ad1dd..1434ade67aa 100644 --- a/server/public/utils/sql/sql_utils.go +++ b/server/public/utils/sql/sql_utils.go @@ -108,11 +108,19 @@ func SanitizeDataSource(driverName, dataSource string) (string, error) { return "", err } u.User = url.UserPassword("****", "****") + + // Remove username and password from query string params := u.Query() params.Del("user") params.Del("password") u.RawQuery = params.Encode() - return u.String(), nil + + // Unescape the URL to make it human-readable + out, err := url.QueryUnescape(u.String()) + if err != nil { + return "", err + } + return out, nil case model.DatabaseDriverMysql: cfg, err := mysql.ParseDSN(dataSource) if err != nil { diff --git a/server/public/utils/sql/sql_utils_test.go b/server/public/utils/sql/sql_utils_test.go index 30a5818220b..d107f658c66 100644 --- a/server/public/utils/sql/sql_utils_test.go +++ b/server/public/utils/sql/sql_utils_test.go @@ -72,13 +72,21 @@ func TestSanitizeDataSource(t *testing.T) { Original string Sanitized string }{ + { + "", + "//****:****@", + }, + { + "postgres://mmuser:mostest@localhost", + "postgres://****:****@localhost", + }, { "postgres://mmuser:mostest@localhost/dummy?sslmode=disable", - "postgres://%2A%2A%2A%2A:%2A%2A%2A%2A@localhost/dummy?sslmode=disable", + "postgres://****:****@localhost/dummy?sslmode=disable", }, { "postgres://localhost/dummy?sslmode=disable&user=mmuser&password=mostest", - "postgres://%2A%2A%2A%2A:%2A%2A%2A%2A@localhost/dummy?sslmode=disable", + "postgres://****:****@localhost/dummy?sslmode=disable", }, } driver := model.DatabaseDriverPostgres