package config import ( "strings" "git.secnex.io/secnex/auth-api/utils" ) type Config struct { Debug bool FiberShowStartupMessage bool CorsAllowOrigins string CorsAllowHeaders string CorsAllowMethods string Address string DatabaseHost string DatabasePort string DatabaseUser string DatabasePassword string DatabaseName string RedisHost string RedisPort string RedisPassword string JwtSecret string ENV string UNPROTECTED_ENDPOINTS []string } var CONFIG *Config func generateSecret() string { return utils.GenerateRandomString(32) } func NewConfig() *Config { ENV := utils.GetEnv("ENV", "development") UNPROTECTED_ENDPOINTS := strings.Split(utils.GetEnv("UNPROTECTED_ENDPOINTS", ""), ",") if ENV == "development" { UNPROTECTED_ENDPOINTS = append(UNPROTECTED_ENDPOINTS, "/api_keys") } c := &Config{ Debug: utils.GetEnvBool("DEBUG", false), FiberShowStartupMessage: utils.GetEnvBool("FIBER_SHOW_STARTUP_MESSAGE", false), CorsAllowOrigins: utils.GetEnv("CORS_ALLOW_ORIGINS", "*"), CorsAllowHeaders: utils.GetEnv("CORS_ALLOW_HEADERS", "Origin, Content-Type, Accept"), CorsAllowMethods: utils.GetEnv("CORS_ALLOW_METHODS", "GET, POST, PUT, DELETE"), Address: utils.GetEnv("ADDRESS", ":3000"), DatabaseHost: utils.GetEnv("DATABASE_HOST", "localhost"), DatabasePort: utils.GetEnv("DATABASE_PORT", "5432"), DatabaseUser: utils.GetEnv("DATABASE_USER", "postgres"), DatabasePassword: utils.GetEnv("DATABASE_PASSWORD", "postgres"), DatabaseName: utils.GetEnv("DATABASE_NAME", "secnex"), JwtSecret: utils.GetEnv("JWT_SECRET", "your-256-bit-secret"), RedisHost: utils.GetEnv("REDIS_HOST", "localhost"), RedisPort: utils.GetEnv("REDIS_PORT", "6379"), RedisPassword: utils.GetEnv("REDIS_PASSWORD", ""), ENV: ENV, UNPROTECTED_ENDPOINTS: UNPROTECTED_ENDPOINTS, } CONFIG = c return c }