Documentation
¶
Index ¶
- func AddMapToHTTPHeader(baseHeaders http.Header, headerMap map[string]string) http.Header
- func CreateHTTPHeaderFromMap(headerMap map[string]string) http.Header
- func NewPersistentCookieStore(config CookieConfig) (*sessions.CookieStore, error)
- func NewSessionCookieStore(config CookieConfig) (*sessions.CookieStore, error)
- func NewUnixSocketClient(path string) *http.Client
- func StandardLogger(r *http.Request, status, size int, duration time.Duration) *zerolog.Logger
- type Client
- type ClientConfig
- type Config
- type CookieConfig
- type DefaultResource
- type EnforceTLSHandler
- type HandlerWrapper
- type LogLevelSetter
- type MetricSet
- type PathResource
- type Resource
- type RootResource
- type Server
- func (s *Server) AddHandler(path string, handler http.Handler)
- func (s *Server) AddHandlerFunc(path string, handler http.HandlerFunc)
- func (s *Server) AddResource(pathPrefix string, r Resource, middlewares ...mux.MiddlewareFunc)
- func (s *Server) AddRootResource(r RootResource)
- func (s *Server) AddStatusStaticMetadataItem(key string, value any)
- func (s *Server) ListenAndServe() error
- func (s *Server) ListenAndServeTLS(tlsConfig *tls.Config) error
- func (s *Server) RegisterOnShutdown(f func())
- func (s *Server) Serve(ln net.Listener) error
- func (s *Server) ServeTLS(ln net.Listener) error
- func (s *Server) Shutdown(ctx context.Context) error
- func (s *Server) Use(middlewares ...mux.MiddlewareFunc)
- type ServerOption
- func WithLogWriter(w io.Writer) ServerOption
- func WithLogger(l zerolog.Logger) ServerOption
- func WithOAuth2Validator(v []oidc.ValidatorConfig) ServerOption
- func WithPrometheusRegistry(r prometheus.Registerer) ServerOption
- func WithServerAuth(cfg auth.ServerConfig) ServerOption
- func WithTelemetryInstrument(i middleware.Instrument) ServerOption
- type StatusResource
- type StructuredLoggerFormatter
- type UseResource
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddMapToHTTPHeader ¶
AddMapToHTTPHeader adds a map[string]string to an existing http.Header
func CreateHTTPHeaderFromMap ¶
CreateHTTPHeaderFromMap creates a new http.Header from a map[string]string
func NewPersistentCookieStore ¶
func NewPersistentCookieStore(config CookieConfig) (*sessions.CookieStore, error)
func NewSessionCookieStore ¶
func NewSessionCookieStore(config CookieConfig) (*sessions.CookieStore, error)
func NewUnixSocketClient ¶ added in v0.39.0
Types ¶
type Client ¶
type Client struct {
Config *ClientConfig
}
func NewClient ¶
func NewClient(config *ClientConfig) *Client
func NewDefaultClient ¶
func NewDefaultClient() *Client
type ClientConfig ¶
type Config ¶
type Config struct {
ListenAddress string
EnablePrometheusMetrics bool
EnableDebug bool
EnableStatus bool
EnableProxyProtocol bool
TLSConfig *tls.Config
AuthConfig auth.ServerConfig
}
Config ...
type CookieConfig ¶
type DefaultResource ¶
type EnforceTLSHandler ¶ added in v0.37.0
type EnforceTLSHandler struct {
EnforceTLS bool
}
type HandlerWrapper ¶
func DefaultCombinedLogHandler ¶
func DefaultCombinedLogHandler(logWriter io.Writer) HandlerWrapper
DefaultCombinedLogHandler returns a HandlerWrapper that logs HTTP requests using the combined log format.
func ZerologStructuredLogHandler ¶
func ZerologStructuredLogHandler(logger zerolog.Logger) HandlerWrapper
ZerologStructuredLogHandler returns a HandlerWrapper that uses zerolog for structured logging.
func ZerologStructuredLogHandlerWithFormatter ¶ added in v0.36.1
func ZerologStructuredLogHandlerWithFormatter(logger zerolog.Logger, formatter StructuredLoggerFormatter) HandlerWrapper
ZerologStructuredLogHandlerWithFormatter returns a HandlerWrapper that uses a custom formatter for structured logging.
type LogLevelSetter ¶ added in v0.48.0
type LogLevelSetter interface {
// SetLogLevel sets the global log level for zerolog.
SetLogLevel(level string) error
// SetLogLevelWithDuration sets the global log level for zerolog and returns the time when it expires.
SetLogLevelWithDuration(level string, duration time.Duration) (time.Time, error)
// OriginalLogLevel returns the original log level before any changes.
OriginalLogLevel() string
// CurrentLogLevel returns the current log level.
CurrentLogLevel() string
// ResetLogLevel resets the log level to the original level.
ResetLogLevel()
// ExpiresAt returns the time when the current log level will expire.
ExpiresAt() time.Time
}
LogLevelSetter defines an interface for setting and managing log levels.
func NewZeroLogLevelSetter ¶ added in v0.48.0
func NewZeroLogLevelSetter() LogLevelSetter
NewZeroLogLevelSetter creates a new LogLevelSetter for zerolog.
type MetricSet ¶
type MetricSet struct {
RequestCounter *prometheus.CounterVec
RequestDuration *prometheus.HistogramVec
RequestSize *prometheus.HistogramVec
ResponseSize *prometheus.HistogramVec
InFlightGauge prometheus.Gauge
}
func NewMetricSet ¶
func NewMetricSet(r *prometheus.Registry) *MetricSet
func (*MetricSet) Middleware ¶
Middleware - to make it a middleware for mux probably a better way. TODO: need to extract this from this struct to remove the coupling with mux
func (*MetricSet) Register ¶
func (m *MetricSet) Register(r prometheus.Registerer)
type PathResource ¶
type RootResource ¶
type RootResource interface {
// Resource
Index() http.HandlerFunc
}
type Server ¶
type Server struct {
Config Config
Router *mux.Router
Logger zerolog.Logger
ResourceMap map[string]Resource
ListenAddr net.Addr
LogHandler HandlerWrapper
// contains filtered or unexported fields
}
Server ...
func NewServerWithLogger
deprecated
func (*Server) AddHandlerFunc ¶
func (s *Server) AddHandlerFunc(path string, handler http.HandlerFunc)
func (*Server) AddResource ¶
func (s *Server) AddResource(pathPrefix string, r Resource, middlewares ...mux.MiddlewareFunc)
AddResource ...
func (*Server) AddRootResource ¶
func (s *Server) AddRootResource(r RootResource)
func (*Server) AddStatusStaticMetadataItem ¶
func (*Server) ListenAndServe ¶
func (*Server) ListenAndServeTLS ¶
ListenAndServeTLS ... tlsConfig will override any prior configuration in s.Config
func (*Server) RegisterOnShutdown ¶
func (s *Server) RegisterOnShutdown(f func())
func (*Server) Use ¶ added in v0.43.0
func (s *Server) Use(middlewares ...mux.MiddlewareFunc)
type ServerOption ¶ added in v0.43.0
type ServerOption func(*Server)
func WithLogWriter ¶ added in v0.43.0
func WithLogWriter(w io.Writer) ServerOption
func WithLogger ¶ added in v0.43.0
func WithLogger(l zerolog.Logger) ServerOption
func WithOAuth2Validator ¶ added in v0.43.0
func WithOAuth2Validator(v []oidc.ValidatorConfig) ServerOption
func WithPrometheusRegistry ¶ added in v0.46.0
func WithPrometheusRegistry(r prometheus.Registerer) ServerOption
func WithServerAuth ¶ added in v0.46.0
func WithServerAuth(cfg auth.ServerConfig) ServerOption
func WithTelemetryInstrument ¶ added in v0.46.0
func WithTelemetryInstrument(i middleware.Instrument) ServerOption
type StatusResource ¶
type StatusResource interface {
Status() (interface{}, error)
}
type StructuredLoggerFormatter ¶ added in v0.36.1
type UseResource ¶ added in v0.43.1
type UseResource interface {
Use(...mux.MiddlewareFunc) UseResource
}