package envoy.service.ext_proc.v3

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service ExternalProcessor

external_processor.proto:51

A service that can access and modify HTTP requests and responses as part of a filter chain. The overall external processing protocol works like this: 1. Envoy sends to the service information about the HTTP request. 2. The service sends back a ProcessingResponse message that directs Envoy to either stop processing, continue without it, or send it the next chunk of the message body. 3. If so requested, Envoy sends the server the message body in chunks, or the entire body at once. In either case, the server may send back a ProcessingResponse for each message it receives, or wait for certain amount of body chunks received before streams back the ProcessingResponse messages. 4. If so requested, Envoy sends the server the HTTP trailers, and the server sends back a ProcessingResponse. 5. At this point, request processing is done, and we pick up again at step 1 when Envoy receives a response from the upstream server. 6. At any point above, if the server closes the gRPC stream cleanly, then Envoy proceeds without consulting the server. 7. At any point above, if the server closes the gRPC stream with an error, then Envoy returns a 500 error to the client, unless the filter was configured to ignore errors. In other words, the process is a request/response conversation, but using a gRPC stream to make it easier for the server to maintain state.

message BodyMutation

external_processor.proto:428

This message specifies the body mutation the server sends to Envoy.

Used in: CommonResponse

message BodyResponse

external_processor.proto:296

This message is sent by the external server to Envoy after ``HttpBody`` was sent to it.

Used in: ProcessingResponse

message CommonResponse

external_processor.proto:312

This message contains common fields between header and body responses. [#next-free-field: 6]

Used in: BodyResponse, HeadersResponse

enum CommonResponse.ResponseStatus

external_processor.proto:314

The status of the response.

Used in: CommonResponse

message GrpcStatus

external_processor.proto:396

This message specifies a gRPC status for an ImmediateResponse message.

Used in: ImmediateResponse

message HeaderMutation

external_processor.proto:403

Change HTTP headers or trailers by appending, replacing, or removing headers.

Used in: CommonResponse, ImmediateResponse, TrailersResponse

message HeadersResponse

external_processor.proto:288

This message is sent by the external server to Envoy after ``HttpHeaders`` was sent to it.

Used in: ProcessingResponse

message HttpBody

external_processor.proto:266

This message is sent to the external server when the HTTP request and response bodies are received.

Used in: ProcessingRequest

message HttpHeaders

external_processor.proto:245

This message is sent to the external server when the HTTP request and responses are first received.

Used in: ProcessingRequest

message HttpTrailers

external_processor.proto:278

This message is sent to the external server when the HTTP request and response trailers are received.

Used in: ProcessingRequest

message ImmediateResponse

external_processor.proto:375

This message causes the filter to attempt to create a locally generated response, send it downstream, stop processing additional filters, and ignore any additional messages received from the remote server for this request or response. If a response has already started, then this will either ship the reply directly to the downstream codec, or reset the stream. [#next-free-field: 6]

Used in: ProcessingResponse

message ProtocolConfiguration

external_processor.proto:64

This message specifies the filter protocol configurations which will be sent to the ext_proc server in a :ref:`ProcessingRequest <envoy_v3_api_msg_service.ext_proc.v3.ProcessingRequest>`. If the server does not support these protocol configurations, it may choose to close the gRPC stream. If the server supports these protocol configurations, it should respond based on the API specifications.

Used in: ProcessingRequest

message StreamedBodyResponse

external_processor.proto:417

The body response message corresponding to FULL_DUPLEX_STREAMED body mode.

Used in: BodyMutation

message TrailersResponse

external_processor.proto:304

This message is sent by the external server to Envoy after ``HttpTrailers`` was sent to it.

Used in: ProcessingResponse