Backend (Go): - Config: CORS, RabbitMQ, rate limit, main config updates - Routes: core, distribution, tracks routing changes - Middleware: rate limiter, endpoint limiter, response cache hardening - Handlers: distribution, search handler fixes - Workers: job worker improvements - Upload validator and logging config additions - New migrations: products, orders, performance indexes - Seed tooling and data Stream Server (Rust): - Audio processing, config, routes, simple stream server updates - Dockerfile improvements Infrastructure: - docker-compose.yml updates - nginx-rtmp config changes - Makefile improvements (config, dev, high, infra) - Root package.json and lock file updates - .env.example updates Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
27 lines
901 B
Go
27 lines
901 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
|
|
// Port 15672 = host mapping du port AMQP 5672 (docker-compose.yml/dev.yml)
|
|
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)
|
|
}
|