extproc

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2026 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var LogRequestHeaderAttributes map[string]string

LogRequestHeaderAttributes is the mapping of request headers to log as dynamic metadata attributes. This is configured at the startup of the extproc server.

Functions

This section is empty.

Types

type Processor

type Processor interface {
	// ProcessRequestHeaders processes the request headers message.
	ProcessRequestHeaders(context.Context, *corev3.HeaderMap) (*extprocv3.ProcessingResponse, error)
	// ProcessRequestBody processes the request body message.
	ProcessRequestBody(context.Context, *extprocv3.HttpBody) (*extprocv3.ProcessingResponse, error)
	// ProcessResponseHeaders processes the response headers message.
	ProcessResponseHeaders(context.Context, *corev3.HeaderMap) (*extprocv3.ProcessingResponse, error)
	// ProcessResponseBody processes the response body message.
	ProcessResponseBody(context.Context, *extprocv3.HttpBody) (*extprocv3.ProcessingResponse, error)
	// SetBackend instructs the processor to set the backend to use for the request. This is only called
	// when the processor is used in the upstream filter.
	//
	// routerProcessor is the processor that is the "parent" which was used to determine the route at the
	// router level. It holds the additional state that can be used to determine the backend to use.
	SetBackend(ctx context.Context, backend *filterapi.Backend, handler filterapi.BackendAuthHandler, routerProcessor Processor) error
}

Processor is the interface for the processor which corresponds to a single gRPC stream per the external processor filter. This decouples the processor implementation detail from the server implementation.

This can be either a router filter level processor or an upstream filter level processor.

func NewModelsProcessor

func NewModelsProcessor(config *filterapi.RuntimeConfig, _ map[string]string, logger *slog.Logger, isUpstreamFilter bool) (Processor, error)

NewModelsProcessor creates a new processor that returns the list of declared models.

type ProcessorFactory

type ProcessorFactory func(_ *filterapi.RuntimeConfig, _ map[string]string, _ *slog.Logger, isUpstreamFilter bool) (Processor, error)

ProcessorFactory is the factory function used to create new instances of a processor.

func NewFactory added in v0.5.0

func NewFactory[ReqT any, RespT any, RespChunkT any, EndpointSpecT endpointspec.Spec[ReqT, RespT, RespChunkT]](
	f metrics.Factory,
	tracer tracingapi.RequestTracer[ReqT, RespT, RespChunkT],
	_ EndpointSpecT,
) ProcessorFactory

NewFactory creates a ProcessorFactory with the given parameters.

Type Parameters: * ReqT: The request type. * RespT: The response type. * RespChunkT: The chunk type for streaming responses.

Parameters: * f: Metrics factory for creating metrics instances. * tracer: Request tracer for tracing requests and responses. * parseBody: Function to parse the request body. * selectTranslator: Function to select the appropriate translator based on the output schema.

Returns: * ProcessorFactory: A factory function to create processors based on the configuration.

type Server

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

Server implements the external processor server.

func NewServer

func NewServer(logger *slog.Logger) (*Server, error)

NewServer creates a new external processor server.

func (*Server) List added in v0.2.0

List implements grpc_health_v1.HealthServer.

func (*Server) LoadConfig

func (s *Server) LoadConfig(ctx context.Context, config *filterapi.Config) error

LoadConfig updates the configuration of the external processor.

func (*Server) Process

Process implements extprocv3.ExternalProcessorServer.

func (*Server) Register

func (s *Server) Register(path string, newProcessor ProcessorFactory)

Register a new processor for the given request path.

Jump to

Keyboard shortcuts

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