extproc

package
v0.5.0-rc1 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

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