Skip to content

Commit

Permalink
provider: support for username and password file (#1455)
Browse files Browse the repository at this point in the history
Signed-off-by: patrickap <[email protected]>
  • Loading branch information
patrickap authored Nov 24, 2023
1 parent 62854e4 commit a91cf22
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
4 changes: 4 additions & 0 deletions internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,9 @@ func Init() {
Host: "",
Port: 0,
Username: "",
UsernameFile: "",
Password: "",
PasswordFile: "",
ConnectionString: "",
SQLTablesPrefix: "",
SSLMode: 0,
Expand Down Expand Up @@ -2067,7 +2069,9 @@ func setViperDefaults() {
viper.SetDefault("data_provider.host", globalConf.ProviderConf.Host)
viper.SetDefault("data_provider.port", globalConf.ProviderConf.Port)
viper.SetDefault("data_provider.username", globalConf.ProviderConf.Username)
viper.SetDefault("data_provider.username_file", globalConf.ProviderConf.UsernameFile)
viper.SetDefault("data_provider.password", globalConf.ProviderConf.Password)
viper.SetDefault("data_provider.password_file", globalConf.ProviderConf.PasswordFile)
viper.SetDefault("data_provider.sslmode", globalConf.ProviderConf.SSLMode)
viper.SetDefault("data_provider.disable_sni", globalConf.ProviderConf.DisableSNI)
viper.SetDefault("data_provider.target_session_attrs", globalConf.ProviderConf.TargetSessionAttrs)
Expand Down
18 changes: 18 additions & 0 deletions internal/dataprovider/dataprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -355,8 +355,10 @@ type Config struct {
Port int `json:"port" mapstructure:"port"`
// Database username
Username string `json:"username" mapstructure:"username"`
UsernameFile string `json:"username_file" mapstructure:"username_file"`
// Database password
Password string `json:"password" mapstructure:"password"`
PasswordFile string `json:"password_file" mapstructure:"password_file"`
// Used for drivers mysql and postgresql.
// 0 disable SSL/TLS connections.
// 1 require ssl.
Expand Down Expand Up @@ -875,6 +877,22 @@ func Initialize(cnf Config, basePath string, checkAdmins bool) error {
config.Actions.ExecuteOn = util.RemoveDuplicates(config.Actions.ExecuteOn, true)
config.Actions.ExecuteFor = util.RemoveDuplicates(config.Actions.ExecuteFor, true)

if config.Username == "" && config.UsernameFile != "" {
user, err := os.ReadFile(config.UsernameFile)
if err != nil {
return err
}
config.Username = string(user)
}

if config.Password == "" && config.PasswordFile != "" {
password, err := os.ReadFile(config.PasswordFile)
if err != nil {
return err
}
config.Password = string(password)
}

cnf.BackupsPath = getConfigPath(cnf.BackupsPath, basePath)
if cnf.BackupsPath == "" {
return fmt.Errorf("required directory is invalid, backup path %q", cnf.BackupsPath)
Expand Down

0 comments on commit a91cf22

Please sign in to comment.