package bootstrap import ( "fmt" "github.com/gin-gonic/gin" "github.com/geo-platform/tenant-api/internal/shared/config" ) const MaxMultipartMemory = 8 << 20 func NewEngine(server config.ServerConfig) (*gin.Engine, error) { config.NormalizeServerConfig(&server) if server.Mode == "release" { gin.SetMode(gin.ReleaseMode) } engine := gin.New() engine.MaxMultipartMemory = MaxMultipartMemory engine.ForwardedByClientIP = true engine.RemoteIPHeaders = []string{"X-Forwarded-For", "X-Real-IP"} if err := engine.SetTrustedProxies(server.TrustedProxies); err != nil { return nil, fmt.Errorf("set trusted proxies: %w", err) } return engine, nil }