diff --git a/internal/praefect/config/config.go b/internal/praefect/config/config.go index 31b1b4d256726db8b3828b56f6f1e9d7994d6527..6e26cd8c545c2d2641cf14439b61fd31e15e0aa5 100644 --- a/internal/praefect/config/config.go +++ b/internal/praefect/config/config.go @@ -178,6 +178,7 @@ type DB struct { Port int `toml:"port"` User string `toml:"user"` Password string `toml:"password"` + Role string `toml:"role"` DBName string `toml:"dbname"` SSLMode string `toml:"sslmode"` SSLCert string `toml:"sslcert"` @@ -197,6 +198,7 @@ func (db DB) ToPQString() string { {"host", db.Host}, {"user", db.User}, {"password", db.Password}, + {"role", db.Role}, {"dbname", db.DBName}, {"sslmode", db.SSLMode}, {"sslcert", db.SSLCert}, diff --git a/internal/praefect/config/config_test.go b/internal/praefect/config/config_test.go index 1ffde42eef0dcec151451d3d0f519f3beee6c656..432c0a0bfe844bd91a67246ce76ac4c945525839 100644 --- a/internal/praefect/config/config_test.go +++ b/internal/praefect/config/config_test.go @@ -365,6 +365,13 @@ func TestToPQString(t *testing.T) { }, out: `statement_timeout=0 password=secret\ foo\'bar binary_parameters=yes`, }, + { + desc: "with role defined", + in: DB{ + Role: "praefect-owner", + }, + out: `statement_timeout=0 role=praefect-owner binary_parameters=yes`, + }, } for _, tc := range testCases {