gRPC-JSON reverse transcoder (proto)

This extension has the qualified name envoy.filters.http.grpc_json_reverse_transcoder

Note

This extension is functional but has not had substantial production burn time, use only with this caveat.

This extension has an unknown security posture and should only be used in deployments where both the downstream and upstream are trusted.

Tip

This extension extends and can be used with the following extension category:

This extension must be configured with one of the following type URLs:

gRPC-JSON reverse transcoder configuration overview.

extensions.filters.http.grpc_json_reverse_transcoder.v3.GrpcJsonReverseTranscoder

[extensions.filters.http.grpc_json_reverse_transcoder.v3.GrpcJsonReverseTranscoder proto]

GrpcJsonReverseTranscoder is the filter configuration for the gRPC JSON reverse transcoder. The reverse transcoder acts as a bridge between a gRPC client and an HTTP/JSON server, converting the gRPC request into HTTP/JSON for the HTTP backend and the HTTP/JSON response back to gRPC for the gRPC client. This effectively reverses the behavior of the grpc_json_transcoder filter, allowing a gRPC client to communicate with an HTTP/JSON server.

{
  "descriptor_path": ...,
  "descriptor_binary": ...,
  "max_request_body_size": {...},
  "max_response_body_size": {...},
  "api_version_header": ...
}
descriptor_path

(string) Supplies the filename of the proto descriptor set for the gRPC services. If set, takes precedence over the descriptor_binary field.

descriptor_binary

(bytes) Supplies the binary content of the proto descriptor set for the gRPC services. If descriptor_path is set, this field is not used.

max_request_body_size

(UInt32Value) The maximum size of a request body to be transcoded, in bytes. A body exceeding this size will provoke a gRPC status: ResourceExhausted response.

Large values may cause envoy to use a lot of memory if there are many concurrent requests.

If unset, the current stream buffer size is used.

max_response_body_size

(UInt32Value) The maximum size of a response body to be transcoded, in bytes. A body exceeding this size will provoke a gRPC status: Internal response.

Large values may cause envoy to use a lot of memory if there are many concurrent requests.

If unset, the current stream buffer size is used.

api_version_header

(string) The name of the header field that has the API version of the request.