3
0
Files
corteza/pkg/app/options/http.go
2020-01-18 07:05:10 +01:00

49 lines
1.2 KiB
Go

package options
import (
"github.com/cortezaproject/corteza-server/pkg/rand"
)
type (
HTTPServerOpt struct {
Addr string `env:"HTTP_ADDR"`
LogRequest bool `env:"HTTP_LOG_REQUEST"`
LogResponse bool `env:"HTTP_LOG_RESPONSE"`
Tracing bool `env:"HTTP_ERROR_TRACING"`
EnableVersionRoute bool `env:"HTTP_ENABLE_VERSION_ROUTE"`
EnableDebugRoute bool `env:"HTTP_ENABLE_DEBUG_ROUTE"`
EnableMetrics bool `env:"HTTP_METRICS"`
MetricsServiceLabel string `env:"HTTP_METRICS_NAME"`
MetricsUsername string `env:"HTTP_METRICS_USERNAME"`
MetricsPassword string `env:"HTTP_METRICS_PASSWORD"`
EnablePanicReporting bool `env:"HTTP_REPORT_PANIC"`
}
)
func HTTP(pfix string) (o *HTTPServerOpt) {
o = &HTTPServerOpt{
Addr: ":80",
LogRequest: false,
LogResponse: false,
Tracing: false,
EnableVersionRoute: true,
EnableDebugRoute: false,
EnableMetrics: false,
MetricsServiceLabel: "corteza",
MetricsUsername: "metrics",
// Reports panics to Sentry throught HTTP middleware
EnablePanicReporting: true,
// Setting metrics password to random string to prevent security accidents...
MetricsPassword: string(rand.Bytes(5)),
}
fill(o, pfix)
return
}