.. _envoy_v3_api_file_envoy/type/http/v3/path_transformation.proto: Path Transformations API ======================== PathTransformation defines an API to apply a sequence of operations that can be used to alter text before it is used for matching or routing. Multiple actions can be applied in the same Transformation, forming a sequential pipeline. The transformations will be performed in the order that they appear. This API is a work in progress. .. _envoy_v3_api_msg_type.http.v3.PathTransformation: type.http.v3.PathTransformation ------------------------------- :repo:`[type.http.v3.PathTransformation proto] ` .. code-block:: json { "operations": [] } .. _envoy_v3_api_field_type.http.v3.PathTransformation.operations: operations (**repeated** :ref:`type.http.v3.PathTransformation.Operation `) A list of operations to apply. Transformations will be performed in the order that they appear. .. _envoy_v3_api_msg_type.http.v3.PathTransformation.Operation: type.http.v3.PathTransformation.Operation ----------------------------------------- :repo:`[type.http.v3.PathTransformation.Operation proto] ` A type of operation to alter text. .. code-block:: json { "normalize_path_rfc_3986": "{...}", "merge_slashes": "{...}" } .. _envoy_v3_api_field_type.http.v3.PathTransformation.Operation.normalize_path_rfc_3986: normalize_path_rfc_3986 (:ref:`type.http.v3.PathTransformation.Operation.NormalizePathRFC3986 `) Enable path normalization per RFC 3986. Precisely one of :ref:`normalize_path_rfc_3986 `, :ref:`merge_slashes ` must be set. .. _envoy_v3_api_field_type.http.v3.PathTransformation.Operation.merge_slashes: merge_slashes (:ref:`type.http.v3.PathTransformation.Operation.MergeSlashes `) Enable merging adjacent slashes. Precisely one of :ref:`normalize_path_rfc_3986 `, :ref:`merge_slashes ` must be set. .. _envoy_v3_api_msg_type.http.v3.PathTransformation.Operation.NormalizePathRFC3986: type.http.v3.PathTransformation.Operation.NormalizePathRFC3986 -------------------------------------------------------------- :repo:`[type.http.v3.PathTransformation.Operation.NormalizePathRFC3986 proto] ` Should text be normalized according to RFC 3986? This typically is used for path headers before any processing of requests by HTTP filters or routing. This applies percent-encoded normalization and path segment normalization. Fails on characters disallowed in URLs (e.g. NULLs). See `Normalization and Comparison `_ for details of normalization. Note that this options does not perform `case normalization `_ .. _envoy_v3_api_msg_type.http.v3.PathTransformation.Operation.MergeSlashes: type.http.v3.PathTransformation.Operation.MergeSlashes ------------------------------------------------------ :repo:`[type.http.v3.PathTransformation.Operation.MergeSlashes proto] ` Determines if adjacent slashes are merged into one. A common use case is for a request path header. Using this option in `:ref: PathNormalizationOptions ` will allow incoming requests with path `//dir///file` to match against route with `prefix` match set to `/dir`. When using for header transformations, note that slash merging is not part of `HTTP spec `_ and is provided for convenience.