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_nameto the dynamic module’s data input config init function together with theinput_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.Structis serialized as JSON before passing it to the module.google.protobuf.BytesValueandgoogle.protobuf.StringValueare passed directly without the wrapper.