- env_helpers.go: getEnv*, parseLogAggregationLabels - db_init.go: initDatabaseWithRetry - redis_init.go: initRedis, filteredRedisLogger - rabbitmq.go: getRabbitMQURL - cors.go: CORS, cookies - rate_limit.go: rate limit defaults - services_init.go: initServices - middlewares_init.go: initMiddlewares, SetupMiddleware - config.go réduit de ~1487 à ~550 LOC
27 lines
910 B
Go
27 lines
910 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
// getRabbitMQURL récupère l'URL RabbitMQ avec validation selon l'environnement
|
|
// BE-SEC-014: En production, RABBITMQ_URL doit être explicitement défini (pas de valeur par défaut avec credentials)
|
|
func getRabbitMQURL(env string, appDomain string) string {
|
|
rabbitMQURL := os.Getenv("RABBITMQ_URL")
|
|
if rabbitMQURL != "" {
|
|
return rabbitMQURL
|
|
}
|
|
|
|
// En production, ne pas utiliser de valeur par défaut avec credentials
|
|
if env == EnvProduction {
|
|
return "" // Will be validated in ValidateForEnvironment
|
|
}
|
|
|
|
// En développement: par défaut veza:password sur port 15672 (aligné docker-compose)
|
|
// Port 15672 = host mapping, 5672 = port interne container
|
|
port := getEnv("RABBITMQ_PORT", "15672")
|
|
user := getEnv("RABBITMQ_USER", "veza")
|
|
pass := getEnv("RABBITMQ_PASS", "password")
|
|
return fmt.Sprintf("amqp://%s:%s@%s:%s/", user, pass, appDomain, port)
|
|
}
|