big juicy update
This commit is contained in:
parent
8fa8d04427
commit
b58086263b
10 changed files with 106 additions and 427 deletions
40
config.go
40
config.go
|
|
@ -9,49 +9,25 @@ import (
|
|||
)
|
||||
|
||||
type Config struct {
|
||||
Port string
|
||||
DatabaseURL string
|
||||
StorageDir string
|
||||
DevMode bool
|
||||
OIDCIssuer string
|
||||
OIDCAudience string
|
||||
OIDCJWKSURL string
|
||||
OIDCAuthURL string
|
||||
OIDCTokenURL string
|
||||
OIDCClientID string
|
||||
OIDCClientSecret string
|
||||
OIDCRedirect string
|
||||
OIDCLogoutURL string
|
||||
Port string
|
||||
DatabaseURL string
|
||||
StorageDir string
|
||||
DevMode bool
|
||||
}
|
||||
|
||||
func LoadConfig() (Config, error) {
|
||||
_ = godotenv.Load()
|
||||
|
||||
cfg := Config{
|
||||
Port: envOrDefault("PORT", "8080"),
|
||||
DatabaseURL: os.Getenv("DATABASE_URL"),
|
||||
StorageDir: envOrDefault("STORAGE_DIR", "uploads"),
|
||||
DevMode: strings.EqualFold(envOrDefault("DEV_MODE", "false"), "true"),
|
||||
OIDCIssuer: os.Getenv("OIDC_ISSUER"),
|
||||
OIDCAudience: os.Getenv("OIDC_AUDIENCE"),
|
||||
OIDCJWKSURL: os.Getenv("OIDC_JWKS_URL"),
|
||||
OIDCAuthURL: os.Getenv("OIDC_AUTH_URL"),
|
||||
OIDCTokenURL: os.Getenv("OIDC_TOKEN_URL"),
|
||||
OIDCClientID: os.Getenv("OIDC_CLIENT_ID"),
|
||||
OIDCClientSecret: os.Getenv("OIDC_CLIENT_SECRET"),
|
||||
OIDCRedirect: os.Getenv("OIDC_REDIRECT_URL"),
|
||||
OIDCLogoutURL: os.Getenv("OIDC_LOGOUT_URL"),
|
||||
Port: envOrDefault("PORT", "8080"),
|
||||
DatabaseURL: os.Getenv("DATABASE_URL"),
|
||||
StorageDir: envOrDefault("STORAGE_DIR", "uploads"),
|
||||
DevMode: strings.EqualFold(envOrDefault("DEV_MODE", "false"), "true"),
|
||||
}
|
||||
|
||||
if cfg.DatabaseURL == "" {
|
||||
return Config{}, fmt.Errorf("DATABASE_URL is required")
|
||||
}
|
||||
if !cfg.DevMode && (cfg.OIDCIssuer == "" || cfg.OIDCAudience == "" || cfg.OIDCJWKSURL == "") {
|
||||
return Config{}, fmt.Errorf("OIDC_ISSUER, OIDC_AUDIENCE, and OIDC_JWKS_URL are required")
|
||||
}
|
||||
if !cfg.DevMode && (cfg.OIDCAuthURL == "" || cfg.OIDCTokenURL == "" || cfg.OIDCClientID == "" || cfg.OIDCClientSecret == "" || cfg.OIDCRedirect == "") {
|
||||
return Config{}, fmt.Errorf("OIDC_AUTH_URL, OIDC_TOKEN_URL, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, and OIDC_REDIRECT_URL are required when DEV_MODE=false")
|
||||
}
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue