refactor: use static HIS database per instance

This commit is contained in:
2026-09-04 08:56:29 +07:00
parent 10fa7a6e38
commit 9afd5b792c
15 changed files with 174 additions and 783 deletions

View File

@@ -10,19 +10,18 @@ import (
)
type Config struct {
AppHost string
AppPort string
BearerToken string
DBSettingsToken string
DBMaxOpenConns int
DBMaxIdleConns int
DBConnMaxLifetime time.Duration
ManagementDBHost string
ManagementDBPort string
ManagementDBDatabase string
ManagementDBUsername string
ManagementDBPassword string
DBCredentialSecret string
AppHost string
AppPort string
RSCode string
BearerToken string
DBMaxOpenConns int
DBMaxIdleConns int
DBConnMaxLifetime time.Duration
HISDBHost string
HISDBPort string
HISDBDatabase string
HISDBUsername string
HISDBPassword string
}
func Load(path string) (Config, error) {
@@ -31,26 +30,28 @@ func Load(path string) (Config, error) {
}
cfg := Config{
AppHost: env("APP_HOST", "0.0.0.0"),
AppPort: env("APP_PORT", "8080"),
BearerToken: env("CPONE_BEARER_TOKEN", ""),
DBSettingsToken: env("CPONE_DATABASE_SETTINGS_TOKEN", env("CPONE_BEARER_TOKEN", "")),
DBMaxOpenConns: envInt("DB_MAX_OPEN_CONNS", 25),
DBMaxIdleConns: envInt("DB_MAX_IDLE_CONNS", 25),
DBConnMaxLifetime: time.Duration(envInt("DB_CONN_MAX_LIFETIME_MINUTES", 5)) * time.Minute,
ManagementDBHost: env("CPONE_DB_HOST", "127.0.0.1"),
ManagementDBPort: env("CPONE_DB_PORT", "3306"),
ManagementDBDatabase: env("CPONE_DB_DATABASE", "cpone_middleware"),
ManagementDBUsername: env("CPONE_DB_USERNAME", "root"),
ManagementDBPassword: env("CPONE_DB_PASSWORD", ""),
DBCredentialSecret: env("CPONE_DATABASE_CREDENTIAL_KEY", env("CPONE_DATABASE_SETTINGS_TOKEN", env("CPONE_BEARER_TOKEN", ""))),
AppHost: env("APP_HOST", "0.0.0.0"),
AppPort: env("APP_PORT", "8080"),
RSCode: env("CPONE_RS_CODE", ""),
BearerToken: env("CPONE_BEARER_TOKEN", ""),
DBMaxOpenConns: envInt("DB_MAX_OPEN_CONNS", 25),
DBMaxIdleConns: envInt("DB_MAX_IDLE_CONNS", 25),
DBConnMaxLifetime: time.Duration(envInt("DB_CONN_MAX_LIFETIME_MINUTES", 5)) * time.Minute,
HISDBHost: env("CPONE_DB_HOST", "127.0.0.1"),
HISDBPort: env("CPONE_DB_PORT", "3306"),
HISDBDatabase: env("CPONE_DB_DATABASE", ""),
HISDBUsername: env("CPONE_DB_USERNAME", ""),
HISDBPassword: env("CPONE_DB_PASSWORD", ""),
}
if cfg.RSCode == "" {
return Config{}, fmt.Errorf("CPONE_RS_CODE wajib diisi")
}
if cfg.BearerToken == "" {
return Config{}, fmt.Errorf("CPONE_BEARER_TOKEN wajib diisi")
}
if cfg.ManagementDBDatabase == "" {
return Config{}, fmt.Errorf("CPONE_DB_DATABASE wajib diisi")
if cfg.HISDBDatabase == "" || cfg.HISDBUsername == "" {
return Config{}, fmt.Errorf("CPONE_DB_DATABASE dan CPONE_DB_USERNAME wajib diisi")
}
return cfg, nil