utils

package
v0.0.0-...-99f93f6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2021 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AdjustLogLevel

func AdjustLogLevel(increment bool) error

AdjustLogLevel increases/decreases the log level, return error if the operation is invaild.

func GetPathRelativeToConfig

func GetPathRelativeToConfig(configuration *viper.Viper, key string) string

GetPathRelativeToConfig gets a configuration key which is a path, and if it is not empty or an absolute path, returns the absolute path relative to the configuration file

func LogLevelSignalHandle

func LogLevelSignalHandle(sig os.Signal)

LogLevelSignalHandle will increase/decrease the logging level via the signal we get.

func ParseBugsnag

func ParseBugsnag(configuration *viper.Viper) (*bugsnag.Configuration, error)

ParseBugsnag tries to parse out a Bugsnag Configuration from a Viper. If no values are provided, returns a nil pointer.

func ParseLogLevel

func ParseLogLevel(configuration *viper.Viper, defaultLevel logrus.Level) (
	logrus.Level, error)

ParseLogLevel tries to parse out a log level from a Viper. If there is no configuration, defaults to the provided error level

func ParseServerTLS

func ParseServerTLS(configuration *viper.Viper, tlsRequired bool) (*tls.Config, error)

ParseServerTLS tries to parse out valid server TLS options from a Viper. The cert/key files are relative to the config file used to populate the instance of viper.

func ParseViper

func ParseViper(v *viper.Viper, configFile string) error

ParseViper tries to parse out a Viper from a configuration file.

func RootHandlerFactory

func RootHandlerFactory(ctx context.Context, auth auth.AccessController, trust signed.CryptoService) func(ContextHandler, ...string) *rootHandler

RootHandlerFactory creates a new rootHandler factory using the given Context creator and authorizer. The returned factory allows creating new rootHandlers from the alternate http handler contextHandler and a scope.

func SetLastModifiedHeader

func SetLastModifiedHeader(headers http.Header, lmt time.Time)

SetLastModifiedHeader takes a time and uses it to set the LastModified header using the right date format

func SetUpBugsnag

func SetUpBugsnag(config *bugsnag.Configuration) error

SetUpBugsnag configures bugsnag and sets up a logrus hook

func SetupSignalTrap

func SetupSignalTrap(handler func(os.Signal)) chan os.Signal

SetupSignalTrap is a utility to trap supported signals hand handle them (currently by increasing logging)

func SetupViper

func SetupViper(v *viper.Viper, envPrefix string)

SetupViper sets up an instance of viper to also look at environment variables

func WrapWithCacheHandler

func WrapWithCacheHandler(ccc CacheControlConfig, handler http.Handler) http.Handler

WrapWithCacheHandler wraps another handler in one that can add cache control headers given a 200 response

Types

type AuthWrapper

type AuthWrapper func(ContextHandler, ...string) *rootHandler

AuthWrapper wraps a Handler with and Auth requirement

type CacheControlConfig

type CacheControlConfig interface {
	// SetHeaders will actually set the cache control headers on a Headers object
	SetHeaders(headers http.Header)
}

CacheControlConfig is an interface for something that knows how to set cache control headers

func NewCacheControlConfig

func NewCacheControlConfig(maxAgeInSeconds int, mustRevalidate bool) CacheControlConfig

NewCacheControlConfig returns CacheControlConfig interface for either setting cache control or disabling cache control entirely

type ContextHandler

type ContextHandler func(ctx context.Context, w http.ResponseWriter, r *http.Request) error

ContextHandler defines an alternate HTTP handler interface which takes in a context for authorization and returns an HTTP application error.

type NoCacheControl

type NoCacheControl struct{}

NoCacheControl is an object which represents a directive to cache nothing

func (NoCacheControl) SetHeaders

func (n NoCacheControl) SetHeaders(headers http.Header)

SetHeaders sets the public headers cache-control headers and pragma to no-cache

type PublicCacheControl

type PublicCacheControl struct {
	MustReValidate  bool
	MaxAgeInSeconds int
}

PublicCacheControl is a set of options that we will set to enable cache control

func (PublicCacheControl) SetHeaders

func (p PublicCacheControl) SetHeaders(headers http.Header)

SetHeaders sets the public headers with an optional must-revalidate header

type RethinkDBStorage

type RethinkDBStorage struct {
	Storage
	CA       string
	Cert     string
	DBName   string
	Key      string
	Username string
	Password string
}

RethinkDBStorage is configuration about a RethinkDB backend service

func ParseRethinkDBStorage

func ParseRethinkDBStorage(configuration *viper.Viper) (*RethinkDBStorage, error)

ParseRethinkDBStorage tries to parse out Storage from a Viper. If backend and URL are not provided, returns a nil pointer. Storage is required (if a backend is not provided, an error will be returned.)

type Storage

type Storage struct {
	Backend string
	Source  string
}

Storage is a configuration about what storage backend a server should use

func ParseSQLStorage

func ParseSQLStorage(configuration *viper.Viper) (*Storage, error)

ParseSQLStorage tries to parse out Storage from a Viper. If backend and URL are not provided, returns a nil pointer. Storage is required (if a backend is not provided, an error will be returned.)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL