Documentation ¶
Index ¶
- Variables
- type GrpcService
- func (m *GrpcService) Clone() proto.Message
- func (*GrpcService) Descriptor() ([]byte, []int)deprecated
- func (m *GrpcService) Equal(that interface{}) bool
- func (x *GrpcService) GetAuthority() *wrappers.StringValue
- func (x *GrpcService) GetExtProcServerRef() *core.ResourceRef
- func (x *GrpcService) GetInitialMetadata() []*v32.HeaderValue
- func (x *GrpcService) GetRetryPolicy() *v32.RetryPolicy
- func (x *GrpcService) GetTimeout() *duration.Duration
- func (m *GrpcService) Hash(hasher hash.Hash64) (uint64, error)
- func (*GrpcService) ProtoMessage()
- func (x *GrpcService) ProtoReflect() protoreflect.Message
- func (x *GrpcService) Reset()
- func (x *GrpcService) String() string
- type HeaderForwardingRules
- func (m *HeaderForwardingRules) Clone() proto.Message
- func (*HeaderForwardingRules) Descriptor() ([]byte, []int)deprecated
- func (m *HeaderForwardingRules) Equal(that interface{}) bool
- func (x *HeaderForwardingRules) GetAllowedHeaders() *v33.ListStringMatcher
- func (x *HeaderForwardingRules) GetDisallowedHeaders() *v33.ListStringMatcher
- func (m *HeaderForwardingRules) Hash(hasher hash.Hash64) (uint64, error)
- func (*HeaderForwardingRules) ProtoMessage()
- func (x *HeaderForwardingRules) ProtoReflect() protoreflect.Message
- func (x *HeaderForwardingRules) Reset()
- func (x *HeaderForwardingRules) String() string
- type Overrides
- func (m *Overrides) Clone() proto.Message
- func (*Overrides) Descriptor() ([]byte, []int)deprecated
- func (m *Overrides) Equal(that interface{}) bool
- func (x *Overrides) GetAsyncMode() *wrappers.BoolValue
- func (x *Overrides) GetGrpcService() *GrpcService
- func (x *Overrides) GetProcessingMode() *v3.ProcessingMode
- func (x *Overrides) GetRequestAttributes() []string
- func (x *Overrides) GetResponseAttributes() []string
- func (m *Overrides) Hash(hasher hash.Hash64) (uint64, error)
- func (*Overrides) ProtoMessage()
- func (x *Overrides) ProtoReflect() protoreflect.Message
- func (x *Overrides) Reset()
- func (x *Overrides) String() string
- type RouteSettings
- func (m *RouteSettings) Clone() proto.Message
- func (*RouteSettings) Descriptor() ([]byte, []int)deprecated
- func (m *RouteSettings) Equal(that interface{}) bool
- func (x *RouteSettings) GetDisabled() *wrappers.BoolValue
- func (m *RouteSettings) GetOverride() isRouteSettings_Override
- func (x *RouteSettings) GetOverrides() *Overrides
- func (m *RouteSettings) Hash(hasher hash.Hash64) (uint64, error)
- func (*RouteSettings) ProtoMessage()
- func (x *RouteSettings) ProtoReflect() protoreflect.Message
- func (x *RouteSettings) Reset()
- func (x *RouteSettings) String() string
- type RouteSettings_Disabled
- type RouteSettings_Overrides
- type Settings
- func (m *Settings) Clone() proto.Message
- func (*Settings) Descriptor() ([]byte, []int)deprecated
- func (m *Settings) Equal(that interface{}) bool
- func (x *Settings) GetAllowModeOverride() *wrappers.BoolValue
- func (x *Settings) GetAsyncMode() *wrappers.BoolValue
- func (x *Settings) GetDisableClearRouteCache() *wrappers.BoolValue
- func (x *Settings) GetFailureModeAllow() *wrappers.BoolValue
- func (x *Settings) GetFilterMetadata() *_struct.Struct
- func (x *Settings) GetFilterStage() *filters.FilterStage
- func (x *Settings) GetForwardRules() *HeaderForwardingRules
- func (x *Settings) GetGrpcService() *GrpcService
- func (x *Settings) GetMaxMessageTimeout() *duration.Duration
- func (x *Settings) GetMessageTimeout() *duration.Duration
- func (x *Settings) GetMutationRules() *v31.HeaderMutationRules
- func (x *Settings) GetProcessingMode() *v3.ProcessingMode
- func (x *Settings) GetRequestAttributes() []string
- func (x *Settings) GetResponseAttributes() []string
- func (x *Settings) GetStatPrefix() *wrappers.StringValue
- func (m *Settings) Hash(hasher hash.Hash64) (uint64, error)
- func (*Settings) ProtoMessage()
- func (x *Settings) ProtoReflect() protoreflect.Message
- func (x *Settings) Reset()
- func (x *Settings) String() string
Constants ¶
This section is empty.
Variables ¶
var File_github_com_solo_io_gloo_projects_gloo_api_v1_enterprise_options_extproc_extproc_proto protoreflect.FileDescriptor
Functions ¶
This section is empty.
Types ¶
type GrpcService ¶
type GrpcService struct { // A reference to the Upstream representing the external processor gRPC server. // See https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/ext_proc/v3/external_processor.proto // for details. ExtProcServerRef *core.ResourceRef `protobuf:"bytes,1,opt,name=ext_proc_server_ref,json=extProcServerRef,proto3" json:"ext_proc_server_ref,omitempty"` // The `:authority` header in the grpc request. If this field is not set, the authority header value will be the // cluster name. // Note that this authority does not override the SNI. The SNI is provided by the transport socket of the cluster. Authority *wrappers.StringValue `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` // Indicates the retry policy for re-establishing the gRPC stream // This field is optional. If max interval is not provided, it will be set to ten times the provided base interval. // Currently only supported for xDS gRPC streams. // If not set, xDS gRPC streams default base interval:500ms, maximum interval:30s will be applied. RetryPolicy *v32.RetryPolicy `protobuf:"bytes,3,opt,name=retry_policy,json=retryPolicy,proto3" json:"retry_policy,omitempty"` // The timeout for the gRPC request. This is the timeout for a specific request. Timeout *duration.Duration `protobuf:"bytes,4,opt,name=timeout,proto3" json:"timeout,omitempty"` // Additional metadata to include in streams initiated to the GrpcService. This can be used for // scenarios in which additional ad hoc authorization headers (e.g. `x-foo-bar: baz-key`) are to // be injected. For more information, including details on header value syntax, see the // documentation on [custom request headers](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#config-http-conn-man-headers-custom-request-headers). InitialMetadata []*v32.HeaderValue `protobuf:"bytes,5,rep,name=initial_metadata,json=initialMetadata,proto3" json:"initial_metadata,omitempty"` // contains filtered or unexported fields }
func (*GrpcService) Descriptor
deprecated
func (*GrpcService) Descriptor() ([]byte, []int)
Deprecated: Use GrpcService.ProtoReflect.Descriptor instead.
func (*GrpcService) GetAuthority ¶
func (x *GrpcService) GetAuthority() *wrappers.StringValue
func (*GrpcService) GetExtProcServerRef ¶
func (x *GrpcService) GetExtProcServerRef() *core.ResourceRef
func (*GrpcService) GetInitialMetadata ¶
func (x *GrpcService) GetInitialMetadata() []*v32.HeaderValue
func (*GrpcService) GetRetryPolicy ¶
func (x *GrpcService) GetRetryPolicy() *v32.RetryPolicy
func (*GrpcService) GetTimeout ¶
func (x *GrpcService) GetTimeout() *duration.Duration
func (*GrpcService) Hash ¶
func (m *GrpcService) Hash(hasher hash.Hash64) (uint64, error)
Hash function
func (*GrpcService) ProtoMessage ¶
func (*GrpcService) ProtoMessage()
func (*GrpcService) ProtoReflect ¶
func (x *GrpcService) ProtoReflect() protoreflect.Message
func (*GrpcService) Reset ¶
func (x *GrpcService) Reset()
func (*GrpcService) String ¶
func (x *GrpcService) String() string
type HeaderForwardingRules ¶
type HeaderForwardingRules struct { // If set, specifically allow any header in this list to be forwarded to the external // processing server. This can be overridden by the below `disallowed_headers`. AllowedHeaders *v33.ListStringMatcher `protobuf:"bytes,1,opt,name=allowed_headers,json=allowedHeaders,proto3" json:"allowed_headers,omitempty"` // If set, specifically disallow any header in this list to be forwarded to the external // processing server. This overrides the above `allowed_headers` if a header matches both. // NOT CURRENTLY IMPLEMENTED. DisallowedHeaders *v33.ListStringMatcher `protobuf:"bytes,2,opt,name=disallowed_headers,json=disallowedHeaders,proto3" json:"disallowed_headers,omitempty"` // contains filtered or unexported fields }
The HeaderForwardingRules structure specifies what headers are allowed to be forwarded to the external processing server. See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/ext_proc.proto#extensions-filters-http-ext-proc-v3-headerforwardingrules for details.
func (*HeaderForwardingRules) Clone ¶
func (m *HeaderForwardingRules) Clone() proto.Message
Clone function
func (*HeaderForwardingRules) Descriptor
deprecated
func (*HeaderForwardingRules) Descriptor() ([]byte, []int)
Deprecated: Use HeaderForwardingRules.ProtoReflect.Descriptor instead.
func (*HeaderForwardingRules) Equal ¶
func (m *HeaderForwardingRules) Equal(that interface{}) bool
Equal function
func (*HeaderForwardingRules) GetAllowedHeaders ¶
func (x *HeaderForwardingRules) GetAllowedHeaders() *v33.ListStringMatcher
func (*HeaderForwardingRules) GetDisallowedHeaders ¶
func (x *HeaderForwardingRules) GetDisallowedHeaders() *v33.ListStringMatcher
func (*HeaderForwardingRules) Hash ¶
func (m *HeaderForwardingRules) Hash(hasher hash.Hash64) (uint64, error)
Hash function
func (*HeaderForwardingRules) ProtoMessage ¶
func (*HeaderForwardingRules) ProtoMessage()
func (*HeaderForwardingRules) ProtoReflect ¶
func (x *HeaderForwardingRules) ProtoReflect() protoreflect.Message
func (*HeaderForwardingRules) Reset ¶
func (x *HeaderForwardingRules) Reset()
func (*HeaderForwardingRules) String ¶
func (x *HeaderForwardingRules) String() string
type Overrides ¶
type Overrides struct { // Set a different processing mode for this virtual host or route than the default. ProcessingMode *v3.ProcessingMode `protobuf:"bytes,1,opt,name=processing_mode,json=processingMode,proto3" json:"processing_mode,omitempty"` // NOT CURRENTLY IMPLEMENTED. // Set a different asynchronous processing option than the default. AsyncMode *wrappers.BoolValue `protobuf:"bytes,2,opt,name=async_mode,json=asyncMode,proto3" json:"async_mode,omitempty"` // NOT CURRENTLY IMPLEMENTED. // Set different optional attributes than the default setting of the // `request_attributes` field. RequestAttributes []string `protobuf:"bytes,3,rep,name=request_attributes,json=requestAttributes,proto3" json:"request_attributes,omitempty"` // NOT CURRENTLY IMPLEMENTED. // Set different optional properties than the default setting of the // `response_attributes` field. ResponseAttributes []string `protobuf:"bytes,4,rep,name=response_attributes,json=responseAttributes,proto3" json:"response_attributes,omitempty"` // Set a different gRPC service for this virtual host or route than the default. GrpcService *GrpcService `protobuf:"bytes,5,opt,name=grpc_service,json=grpcService,proto3" json:"grpc_service,omitempty"` // contains filtered or unexported fields }
func (*Overrides) Descriptor
deprecated
func (*Overrides) GetAsyncMode ¶
func (*Overrides) GetGrpcService ¶
func (x *Overrides) GetGrpcService() *GrpcService
func (*Overrides) GetProcessingMode ¶
func (x *Overrides) GetProcessingMode() *v3.ProcessingMode
func (*Overrides) GetRequestAttributes ¶
func (*Overrides) GetResponseAttributes ¶
func (*Overrides) ProtoMessage ¶
func (*Overrides) ProtoMessage()
func (*Overrides) ProtoReflect ¶
func (x *Overrides) ProtoReflect() protoreflect.Message
type RouteSettings ¶
type RouteSettings struct { // Types that are assignable to Override: // // *RouteSettings_Disabled // *RouteSettings_Overrides Override isRouteSettings_Override `protobuf_oneof:"override"` // contains filtered or unexported fields }
External processor settings that can be configured on a virtual host or route.
func (*RouteSettings) Descriptor
deprecated
func (*RouteSettings) Descriptor() ([]byte, []int)
Deprecated: Use RouteSettings.ProtoReflect.Descriptor instead.
func (*RouteSettings) GetDisabled ¶
func (x *RouteSettings) GetDisabled() *wrappers.BoolValue
func (*RouteSettings) GetOverride ¶
func (m *RouteSettings) GetOverride() isRouteSettings_Override
func (*RouteSettings) GetOverrides ¶
func (x *RouteSettings) GetOverrides() *Overrides
func (*RouteSettings) Hash ¶
func (m *RouteSettings) Hash(hasher hash.Hash64) (uint64, error)
Hash function
func (*RouteSettings) ProtoMessage ¶
func (*RouteSettings) ProtoMessage()
func (*RouteSettings) ProtoReflect ¶
func (x *RouteSettings) ProtoReflect() protoreflect.Message
func (*RouteSettings) Reset ¶
func (x *RouteSettings) Reset()
func (*RouteSettings) String ¶
func (x *RouteSettings) String() string
type RouteSettings_Disabled ¶
type RouteSettings_Overrides ¶
type RouteSettings_Overrides struct { // Override specific configuration for this virtual host or route. // If a route specifies overrides, it will override the disabled flag of its parent virtual host. Overrides *Overrides `protobuf:"bytes,2,opt,name=overrides,proto3,oneof"` }
type Settings ¶
type Settings struct { // Required. Configuration for the gRPC service that the filter will communicate with. GrpcService *GrpcService `protobuf:"bytes,1,opt,name=grpc_service,json=grpcService,proto3" json:"grpc_service,omitempty"` // Required. Where in the HTTP filter chain to insert the filter. FilterStage *filters.FilterStage `protobuf:"bytes,2,opt,name=filter_stage,json=filterStage,proto3" json:"filter_stage,omitempty"` // By default, if the gRPC stream cannot be established, or if it is closed // prematurely with an error, the filter will fail. Specifically, if the // response headers have not yet been delivered, then it will return a 500 // error downstream. If they have been delivered, then instead the HTTP stream to the // downstream client will be reset. // With this parameter set to true, however, then if the gRPC stream is prematurely closed // or could not be opened, processing continues without error. FailureModeAllow *wrappers.BoolValue `protobuf:"bytes,3,opt,name=failure_mode_allow,json=failureModeAllow,proto3" json:"failure_mode_allow,omitempty"` // Specifies default options for how HTTP headers, trailers, and bodies are // sent. ProcessingMode *v3.ProcessingMode `protobuf:"bytes,4,opt,name=processing_mode,json=processingMode,proto3" json:"processing_mode,omitempty"` // NOT CURRENTLY IMPLEMENTED. // If true, send each part of the HTTP request or response specified by ProcessingMode // asynchronously -- in other words, send the message on the gRPC stream and then continue // filter processing. If false, which is the default, suspend filter execution after // each message is sent to the remote service and wait up to "message_timeout" // for a reply. AsyncMode *wrappers.BoolValue `protobuf:"bytes,5,opt,name=async_mode,json=asyncMode,proto3" json:"async_mode,omitempty"` // NOT CURRENTLY IMPLEMENTED. // Envoy provides a number of [attributes](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/advanced/attributes#arch-overview-attributes) // for expressive policies. Each attribute name provided in this field will be // matched against that list and populated in the request_headers message. // See the [request attribute documentation](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/advanced/attributes#request-attributes) // for the list of supported attributes and their types. RequestAttributes []string `protobuf:"bytes,6,rep,name=request_attributes,json=requestAttributes,proto3" json:"request_attributes,omitempty"` // NOT CURRENTLY IMPLEMENTED. // Envoy provides a number of [attributes](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/advanced/attributes#arch-overview-attributes) // for expressive policies. Each attribute name provided in this field will be // matched against that list and populated in the response_headers message. // See the [response attribute documentation](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/advanced/attributes#response-attributes) // for the list of supported attributes and their types. ResponseAttributes []string `protobuf:"bytes,7,rep,name=response_attributes,json=responseAttributes,proto3" json:"response_attributes,omitempty"` // Specifies the timeout for each individual message sent on the stream // when the filter is running in synchronous mode. Whenever the proxy sends // a message on the stream that requires a response, it will reset this timer, // and will stop processing and return an error (subject to the processing mode) // if the timer expires before a matching response is received. There is no // timeout when the filter is running in asynchronous mode. Value must be at // least 0 seconds, and less than or equal to 3600 seconds. Zero is a valid // value which means the timer will be triggered immediately. If not // configured, default is 200 milliseconds. MessageTimeout *duration.Duration `protobuf:"bytes,8,opt,name=message_timeout,json=messageTimeout,proto3" json:"message_timeout,omitempty"` // Optional additional prefix to use when emitting statistics. This allows distinguishing // between statistics emitted by multiple *ext_proc* filters in an HTTP filter chain. StatPrefix *wrappers.StringValue `protobuf:"bytes,9,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"` // Rules that determine what modifications an external processing server may // make to message headers. If not set, all headers may be modified except // for "host", ":authority", ":scheme", ":method", and headers that start // with the header prefix set via // [header_prefix](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/bootstrap/v3/bootstrap.proto#envoy-v3-api-field-config-bootstrap-v3-bootstrap-header-prefix) // (which is usually "x-envoy"). // Note that changing headers such as "host" or ":authority" may not in itself // change Envoy's routing decision, as routes can be cached. To also force the // route to be recomputed, set the // [clear_route_cache](https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/ext_proc/v3/external_processor.proto#envoy-v3-api-field-service-ext-proc-v3-commonresponse-clear-route-cache) // field to true in the same response. MutationRules *v31.HeaderMutationRules `protobuf:"bytes,10,opt,name=mutation_rules,json=mutationRules,proto3" json:"mutation_rules,omitempty"` // Specify the upper bound of // [override_message_timeout](https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/ext_proc/v3/external_processor.proto#envoy-v3-api-field-service-ext-proc-v3-processingresponse-override-message-timeout). // If not specified, by default it is 0, which will effectively disable the `override_message_timeout` API. // Value must be greater than or equal to the `messageTimeout` and less than or equal to 3600 seconds. MaxMessageTimeout *duration.Duration `protobuf:"bytes,11,opt,name=max_message_timeout,json=maxMessageTimeout,proto3" json:"max_message_timeout,omitempty"` // Prevents clearing the route-cache when the // [clear_route_cache](https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/ext_proc/v3/external_processor.proto#envoy-v3-api-field-service-ext-proc-v3-commonresponse-clear-route-cache) // field is set in an external processor response. DisableClearRouteCache *wrappers.BoolValue `` /* 132-byte string literal not displayed */ // Allow headers matching the `forward_rules` to be forwarded to the external processing server. // If not set, all headers are forwarded to the external processing server. ForwardRules *HeaderForwardingRules `protobuf:"bytes,13,opt,name=forward_rules,json=forwardRules,proto3" json:"forward_rules,omitempty"` // Additional metadata to be added to the filter state for logging purposes. The metadata // will be added to StreamInfo's filter state under the namespace corresponding to the // ext_proc filter name. FilterMetadata *_struct.Struct `protobuf:"bytes,14,opt,name=filter_metadata,json=filterMetadata,proto3" json:"filter_metadata,omitempty"` // If `allow_mode_override` is set to true, the filter config [processing_mode](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/ext_proc.proto#envoy-v3-api-field-extensions-filters-http-ext-proc-v3-externalprocessor-processing-mode) // can be overridden by the response message from the external processing server // [mode_override](https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/ext_proc/v3/external_processor.proto#envoy-v3-api-field-service-ext-proc-v3-processingresponse-mode-override). // If not set, `mode_override` API in the response message will be ignored. AllowModeOverride *wrappers.BoolValue `protobuf:"bytes,15,opt,name=allow_mode_override,json=allowModeOverride,proto3" json:"allow_mode_override,omitempty"` // contains filtered or unexported fields }
Enterprise-only: Configuration for Envoy's [External Processing Filter](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/ext_proc_filter). The External Processing filter allows for calling out to an external gRPC service at a specified point within a HTTP filter chain. The external service may access and modify various parts of the request or response, and may terminate processing. Envoy's External Processing Filter is considered a work in progress and has an unknown security posture. Users should take care to understand the risks of using this extension before proceeding.
func (*Settings) Descriptor
deprecated
func (*Settings) GetAllowModeOverride ¶
func (*Settings) GetAsyncMode ¶
func (*Settings) GetDisableClearRouteCache ¶
func (*Settings) GetFailureModeAllow ¶
func (*Settings) GetFilterMetadata ¶
func (*Settings) GetFilterStage ¶
func (x *Settings) GetFilterStage() *filters.FilterStage
func (*Settings) GetForwardRules ¶
func (x *Settings) GetForwardRules() *HeaderForwardingRules
func (*Settings) GetGrpcService ¶
func (x *Settings) GetGrpcService() *GrpcService
func (*Settings) GetMaxMessageTimeout ¶
func (*Settings) GetMessageTimeout ¶
func (*Settings) GetMutationRules ¶
func (x *Settings) GetMutationRules() *v31.HeaderMutationRules
func (*Settings) GetProcessingMode ¶
func (x *Settings) GetProcessingMode() *v3.ProcessingMode
func (*Settings) GetRequestAttributes ¶
func (*Settings) GetResponseAttributes ¶
func (*Settings) GetStatPrefix ¶
func (x *Settings) GetStatPrefix() *wrappers.StringValue
func (*Settings) ProtoMessage ¶
func (*Settings) ProtoMessage()
func (*Settings) ProtoReflect ¶
func (x *Settings) ProtoReflect() protoreflect.Message