core

package
v0.90.0 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2021 License: Apache-2.0 Imports: 31 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// Name is set at the build time
	Name = ""

	// Version is set at the build time
	Version = ""

	// BuildID is set at the build time
	BuildID = ""

	// CommitSha is set at the build time
	CommitSha = ""

	// BranchName is set at the build time
	BranchName = ""

	// TagName is set at the build time
	TagName = ""
)

Functions

func BuildDownstreamGRPCClient added in v0.56.0

func BuildDownstreamGRPCClient(_ string, cfg *config.CommonGRPCDownstreamData) (*grpc.ClientConn, error)

func BuildDownstreamHTTPClient

func BuildDownstreamHTTPClient(serviceName string, cfg *config.CommonDownstreamData) (*http.Client, error)

func ConfigFileSystemOnto added in v0.84.0

func ConfigFileSystemOnto(ctx context.Context, fs afero.Fs) context.Context

ConfigFileSystemOnto adds a config filesystem to ctx.

func GetAppConfigType added in v0.87.0

func GetAppConfigType(createService interface{}) reflect.Type

GetAppConfigType extracts the app's config type from createService. Precondition: MustTypeCheckCreateService(createService, serviceInterface) succeeded.

func InitialiseLogging added in v0.85.0

func InitialiseLogging(ctx context.Context, configs []log.Config, logrusLogger *logrus.Logger) context.Context

initialise the logger sysl-go always uses a pkg logger internally. if custom code passes in a logrus logger, a mechanism which is deprecated, then a hook is added to the internal pkg logger that forwards logged events to the provided logrus logger. sysl-go can be requested to log in a verbose manner. logger in a verbose manner logs additional details within log events where appropriate. the mechanism to set this verbose manner is to either have a sufficiently high logrus log level or the verbose mode set against the pkg logger.

func LoadCustomConfig added in v0.87.0

func LoadCustomConfig(ctx context.Context, customConfig interface{}) (interface{}, error)

LoadCustomConfig populates the given zero customConfig value with configuration data.

func MustTypeCheckCreateService added in v0.87.0

func MustTypeCheckCreateService(createService, serviceInterface interface{})

MustTypeCheckCreateService checks that the given createService has an acceptable type, and panics otherwise.

func NewZeroCustomConfig added in v0.87.0

func NewZeroCustomConfig(downstreamConfigType, appConfigType reflect.Type) interface{}

NewZeroCustomConfig uses reflection to create a new type derived from DefaultConfig, but with new GenCode.Downstream and App fields holding the same types as downstreamConfig and appConfig. It returns a pointer to a zero value of that new type.

func Recoverer

func Recoverer(ctx context.Context) func(http.Handler) http.Handler

func SelectBasePath

func SelectBasePath(fromSpec, dynamic string) string

SelectBasePath chooses between a specified base path and a dynmaically chosen one.

func Serve added in v0.84.0

func Serve(
	ctx context.Context,
	downstreamConfig, createService, serviceInterface interface{},
	newManager func(cfg *config.DefaultConfig, serviceIntf interface{}, callback *RestCallback) (interface{}, error),
) error

Serve serves an auto-generated service.

func Server deprecated

func Server(ctx context.Context, name string, hl Manager, grpcHl GrpcManager, logger *logrus.Logger, promRegistry *prometheus.Registry) error

Deprecated: Use ServerParams instead

Types

type GrpcGenCallback added in v0.4.0

type GrpcGenCallback interface {
	DownstreamTimeoutContext(ctx context.Context) (context.Context, context.CancelFunc)
}

GrpcGenCallback is currently a subset of RestGenCallback so is defined separately for convenience.

type GrpcManager

type GrpcManager interface {
	Interceptors() []grpc.UnaryServerInterceptor
	EnabledGrpcHandlers() []handlerinitialiser.GrpcHandlerInitialiser
	GrpcAdminServerConfig() *config.CommonServerConfig
	GrpcPublicServerConfig() *config.CommonServerConfig
}

type HTTPManager added in v0.87.0

type HTTPManager struct {
	// contains filtered or unexported fields
}

func NewHTTPManager added in v0.87.0

func NewHTTPManager(libraryConfig *config.LibraryConfig, adminServerConfig *config.CommonHTTPServerConfig, publicServerConfig *config.CommonHTTPServerConfig, enabledHandlers []handlerinitialiser.HandlerInitialiser) *HTTPManager

func (*HTTPManager) AdminServerConfig added in v0.87.0

func (h *HTTPManager) AdminServerConfig() *config.CommonHTTPServerConfig

func (*HTTPManager) EnabledHandlers added in v0.87.0

func (h *HTTPManager) EnabledHandlers() []handlerinitialiser.HandlerInitialiser

func (*HTTPManager) LibraryConfig added in v0.87.0

func (h *HTTPManager) LibraryConfig() *config.LibraryConfig

func (*HTTPManager) PublicServerConfig added in v0.87.0

func (h *HTTPManager) PublicServerConfig() *config.CommonHTTPServerConfig

type Manager

type Manager interface {
	EnabledHandlers() []handlerinitialiser.HandlerInitialiser
	LibraryConfig() *config.LibraryConfig
	AdminServerConfig() *config.CommonHTTPServerConfig
	PublicServerConfig() *config.CommonHTTPServerConfig
}

type RestCallback added in v0.85.0

type RestCallback struct {
	MapError func(ctx context.Context, err error) *common.HTTPError
}

type RestGenCallback added in v0.4.0

type RestGenCallback interface {
	// AddMiddleware allows hand-crafted code to add middleware to the router
	AddMiddleware(ctx context.Context, r chi.Router)
	// BasePath allows hand-crafted code to set the base path for the Router
	BasePath() string
	// Config returns a structure representing the server config
	// This is returned from the status endpoint
	Config() interface{}
	// MapError maps an error to an HTTPError in instances where custom error mapping is required. Return nil to perform default error mapping; defined as:
	// 1. CustomError.HTTPError if the original error is a CustomError, otherwise
	// 2. common.MapError
	MapError(ctx context.Context, err error) *common.HTTPError
	// DownstreamTimeoutContext add the desired timeout duration to the context for downstreams
	// A separate service timeout (usually greater than the downstream) should also be in
	// place to automatically respond to callers
	DownstreamTimeoutContext(ctx context.Context) (context.Context, context.CancelFunc)
}

RestGenCallback is used by `sysl-go` to call hand-crafted code.

type ServerOption added in v0.24.0

type ServerOption interface {
	// contains filtered or unexported methods
}

func WithGrpcManager added in v0.24.0

func WithGrpcManager(manager GrpcManager) ServerOption

func WithLogrusLogger deprecated added in v0.24.0

func WithLogrusLogger(logger *logrus.Logger) ServerOption

Deprecated: Use WithPkgLogger instead.

func WithPkgLogger added in v0.32.0

func WithPkgLogger(configs ...log.Config) ServerOption

func WithPrometheusRegistry added in v0.24.0

func WithPrometheusRegistry(prometheusRegistry *prometheus.Registry) ServerOption

func WithRestManager added in v0.24.0

func WithRestManager(manager Manager) ServerOption

type ServerParams added in v0.24.0

type ServerParams struct {
	Ctx  context.Context
	Name string
	// contains filtered or unexported fields
}

func NewServerParams added in v0.24.0

func NewServerParams(ctx context.Context, name string, opts ...ServerOption) *ServerParams

func (*ServerParams) Start added in v0.24.0

func (params *ServerParams) Start() error

type TLSLogFilter

type TLSLogFilter struct {
	// contains filtered or unexported fields
}

func (*TLSLogFilter) Write

func (t *TLSLogFilter) Write(p []byte) (n int, err error)

Jump to

Keyboard shortcuts

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