handler

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2026 License: MIT Imports: 26 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HealthHandler

func HealthHandler(w http.ResponseWriter, r *http.Request)

healthHandler handles requests to the /health endpoint.

func NewStdHandler

func NewStdHandler(ctx context.Context, mgr PluginManager, cfg *Config, moduleName string) (http.Handler, error)

NewStdHandler initializes a new processor with plugins and steps.

func RecordHTTPRequest added in v1.4.0

func RecordHTTPRequest(ctx context.Context, statusCode int, action, role, senderID, recipientID string)

func StatusClass added in v1.4.0

func StatusClass(statusCode int) string

StatusClass returns the HTTP status class string (e.g. 200 -> "2xx").

Types

type Config

type Config struct {
	Plugins          PluginCfg `yaml:"plugins"`
	Steps            []string
	Type             Type
	RegistryURL      string `yaml:"registryUrl"`
	Role             model.Role
	SubscriberID     string           `yaml:"subscriberId"`
	HttpClientConfig HttpClientConfig `yaml:"httpClientConfig"`
}

Config holds the configuration for request processing handlers.

type HTTPMetrics added in v1.4.0

type HTTPMetrics struct {
	HttpRequestCount metric.Int64Counter
}

func GetHTTPMetrics added in v1.4.0

func GetHTTPMetrics(ctx context.Context) (*HTTPMetrics, error)

type HandlerMetrics added in v1.3.0

type HandlerMetrics struct {
	SignatureValidationsTotal metric.Int64Counter
	SchemaValidationsTotal    metric.Int64Counter
	RoutingDecisionsTotal     metric.Int64Counter
}

HandlerMetrics exposes handler-related metric instruments.

func GetHandlerMetrics added in v1.3.0

func GetHandlerMetrics(ctx context.Context) (*HandlerMetrics, error)

GetHandlerMetrics lazily initializes handler metric instruments and returns a cached reference.

type HttpClientConfig

type HttpClientConfig struct {
	// MaxIdleConns controls the maximum number of idle (keep-alive)
	// connections across all hosts.
	MaxIdleConns int `yaml:"maxIdleConns"`

	// IdleConnTimeout is the maximum amount of time an idle
	// (keep-alive) connection will remain idle before closing itself.
	IdleConnTimeout time.Duration `yaml:"idleConnTimeout"`

	// MaxIdleConnsPerHost, if non-zero, controls the maximum idle
	// (keep-alive) connections to keep per-host.
	MaxIdleConnsPerHost int `yaml:"maxIdleConnsPerHost"`

	// ResponseHeaderTimeout, if non-zero, specifies the amount of time to wait
	// for a server's response headers after fully writing the request.
	ResponseHeaderTimeout time.Duration `yaml:"responseHeaderTimeout"`
}

HttpClientConfig defines the configuration for the HTTP transport layer.

type InstrumentedStep added in v1.3.0

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

InstrumentedStep wraps a processing step with telemetry instrumentation.

func NewInstrumentedStep added in v1.3.0

func NewInstrumentedStep(step StepRunner, stepName, moduleName string) (*InstrumentedStep, error)

NewInstrumentedStep returns a telemetry enabled wrapper around a definition.Step.

func (*InstrumentedStep) Run added in v1.3.0

func (is *InstrumentedStep) Run(ctx *model.StepContext) error

Run executes the underlying step and records RED style metrics.

type PluginCfg

type PluginCfg struct {
	SchemaValidator  *plugin.Config  `yaml:"schemaValidator,omitempty"`
	SignValidator    *plugin.Config  `yaml:"signValidator,omitempty"`
	Publisher        *plugin.Config  `yaml:"publisher,omitempty"`
	Signer           *plugin.Config  `yaml:"signer,omitempty"`
	Router           *plugin.Config  `yaml:"router,omitempty"`
	Cache            *plugin.Config  `yaml:"cache,omitempty"`
	Registry         *plugin.Config  `yaml:"registry,omitempty"`
	KeyManager       *plugin.Config  `yaml:"keyManager,omitempty"`
	TransportWrapper *plugin.Config  `yaml:"transportWrapper,omitempty"`
	Middleware       []plugin.Config `yaml:"middleware,omitempty"`
	Steps            []plugin.Config
}

PluginCfg holds the configuration for various plugins.

type PluginManager

PluginManager defines an interface for managing plugins dynamically.

type StepMetrics added in v1.3.0

type StepMetrics struct {
	StepExecutionDuration metric.Float64Histogram
	StepExecutionTotal    metric.Int64Counter
	StepErrorsTotal       metric.Int64Counter
}

StepMetrics exposes step execution metric instruments.

func GetStepMetrics added in v1.3.0

func GetStepMetrics(ctx context.Context) (*StepMetrics, error)

GetStepMetrics lazily initializes step metric instruments and returns a cached reference.

type StepRunner added in v1.3.0

type StepRunner interface {
	Run(*model.StepContext) error
}

StepRunner represents the minimal contract required for step instrumentation.

type Type

type Type string

Type defines different handler types for processing requests.

const (
	// HandlerTypeStd represents the standard handler type used for general request processing.
	HandlerTypeStd Type = "std"
)

Jump to

Keyboard shortcuts

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