core

package
v0.85.0 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2020 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 CreateConfig added in v0.84.0

func CreateConfig(downstreamConfig, createService, serviceInterface interface{}) interface{}

CreateConfig uses reflection to create a new type derived from DefaultConfig, but with new GenCode.Downstream and App fields holding the same types as downstreaConfig and appConfig.

func GetCreateServiceConfigType added in v0.84.0

func GetCreateServiceConfigType(createService, serviceInterface interface{}) reflect.Type

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 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{},
	newServer 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 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