Dynamic Modules HTTP Match Input (proto)

This extension has the qualified name envoy.matching.inputs.dynamic_module_data_input

Note

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

This extension is not hardened 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:

extensions.matching.http.dynamic_modules.v3.HttpDynamicModuleMatchInput

[extensions.matching.http.dynamic_modules.v3.HttpDynamicModuleMatchInput proto]

Configuration for the dynamic modules HTTP match input. This input extracts HTTP request and response data from the matching context and makes it available to the dynamic module matcher via ABI callbacks during match evaluation.

This data input should be used together with the dynamic modules input matcher.

extensions.matching.http.dynamic_modules.v3.DynamicModuleDataInput

[extensions.matching.http.dynamic_modules.v3.DynamicModuleDataInput proto]

Configuration for the dynamic modules data input. This input loads a shared object file via dlopen and invokes it during match evaluation to extract a value from the HTTP request and response. The extracted value is a string that an exact match map can dispatch on, so a module can select one of many matches with a single evaluation.

Unlike HttpDynamicModuleMatchInput, the module produces the value directly rather than pairing with the dynamic modules input matcher.

This extension has the qualified name envoy.matching.inputs.dynamic_module_string_data_input

Note

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

This extension is not hardened 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:

{
  "dynamic_module_config": {...},
  "input_name": ...,
  "input_config": {...}
}
dynamic_module_config

(extensions.dynamic_modules.v3.DynamicModuleConfig, REQUIRED) Specifies the shared-object level configuration. This field is required. Remote module sources are not supported for data inputs, so the module must be available locally or by name.

input_name

(string) The name for this data input configuration. If not specified, defaults to an empty string.

This can be used to distinguish between different data input implementations inside a dynamic module. When Envoy receives this configuration, it passes the input_name to the dynamic module’s data input config init function together with the input_config. That way a module can decide which in-module implementation to use based on the name at load time.

input_config

(Any) The configuration for the data input chosen by input_name. If not specified, an empty configuration is passed to the module.

google.protobuf.Struct is serialized as JSON before passing it to the module. google.protobuf.BytesValue and google.protobuf.StringValue are passed directly without the wrapper.