feat: prepare for multiple database types (#4068)

BREAKING CHANGE: the database and admin user config has changed.
This commit is contained in:
Livio Spring
2022-07-28 16:25:42 +02:00
committed by GitHub
parent bc9a85daf3
commit f610d48569
19 changed files with 354 additions and 161 deletions

View File

@@ -9,15 +9,16 @@ import (
)
type Config struct {
Database database.Config
AdminUser database.User
Machine *id.Config
Log *logging.Config
Database database.Config
Machine *id.Config
Log *logging.Config
}
func MustNewConfig(v *viper.Viper) *Config {
config := new(Config)
err := v.Unmarshal(config)
err := v.Unmarshal(config,
viper.DecodeHook(database.DecodeHook),
)
logging.OnError(err).Fatal("unable to read config")
err = config.Log.SetLogger()
@@ -25,21 +26,3 @@ func MustNewConfig(v *viper.Viper) *Config {
return config
}
func adminConfig(config *Config) database.Config {
adminConfig := config.Database
adminConfig.Username = config.AdminUser.Username
adminConfig.Password = config.AdminUser.Password
adminConfig.SSL.Cert = config.AdminUser.SSL.Cert
adminConfig.SSL.Key = config.AdminUser.SSL.Key
if config.AdminUser.SSL.RootCert != "" {
adminConfig.SSL.RootCert = config.AdminUser.SSL.RootCert
}
if config.AdminUser.SSL.Mode != "" {
adminConfig.SSL.Mode = config.AdminUser.SSL.Mode
}
//use default database because the zitadel database might not exist
adminConfig.Database = ""
return adminConfig
}