From 9986c01e7cdd2187a35a957706a8dc9e3182a8f9 Mon Sep 17 00:00:00 2001 From: "data-plane-api(Azure Pipelines)" Date: Tue, 25 May 2021 00:27:57 +0000 Subject: [PATCH] Set-Metadata HTTP filter (#16400) This extension simply allows to add user-defined dynamic metadata. This is intended to be used with matchers, so that the "result" of a matching process can imply specific metadata. See issue #16266 Risk Level: Medium Testing: Unit tests for the extension are added Docs Changes: A small documentation for the extension is added in docs/root/configuration/http/http_filters Signed-off-by: Adrien Guinet Mirrored from https://github.com/envoyproxy/envoy @ cbe08bbe33005c1832964f7c9e657d6dbe105bbb --- BUILD | 1 + .../filters/http/set_metadata/v3/BUILD | 9 ++++++ .../http/set_metadata/v3/set_metadata.proto | 31 +++++++++++++++++++ versioning/BUILD | 1 + 4 files changed, 42 insertions(+) create mode 100644 envoy/extensions/filters/http/set_metadata/v3/BUILD create mode 100644 envoy/extensions/filters/http/set_metadata/v3/set_metadata.proto diff --git a/BUILD b/BUILD index 04b94ff2..136e248f 100644 --- a/BUILD +++ b/BUILD @@ -209,6 +209,7 @@ proto_library( "//envoy/extensions/filters/http/ratelimit/v3:pkg", "//envoy/extensions/filters/http/rbac/v3:pkg", "//envoy/extensions/filters/http/router/v3:pkg", + "//envoy/extensions/filters/http/set_metadata/v3:pkg", "//envoy/extensions/filters/http/squash/v3:pkg", "//envoy/extensions/filters/http/tap/v3:pkg", "//envoy/extensions/filters/http/wasm/v3:pkg", diff --git a/envoy/extensions/filters/http/set_metadata/v3/BUILD b/envoy/extensions/filters/http/set_metadata/v3/BUILD new file mode 100644 index 00000000..ee92fb65 --- /dev/null +++ b/envoy/extensions/filters/http/set_metadata/v3/BUILD @@ -0,0 +1,9 @@ +# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py. + +load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") + +licenses(["notice"]) # Apache 2 + +api_proto_package( + deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"], +) diff --git a/envoy/extensions/filters/http/set_metadata/v3/set_metadata.proto b/envoy/extensions/filters/http/set_metadata/v3/set_metadata.proto new file mode 100644 index 00000000..7b2cf0e0 --- /dev/null +++ b/envoy/extensions/filters/http/set_metadata/v3/set_metadata.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package envoy.extensions.filters.http.set_metadata.v3; + +import "google/protobuf/struct.proto"; + +import "udpa/annotations/status.proto"; +import "udpa/annotations/versioning.proto"; +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.extensions.filters.http.set_metadata.v3"; +option java_outer_classname = "SetMetadataProto"; +option java_multiple_files = true; +option (udpa.annotations.file_status).package_version_status = ACTIVE; + +// [#protodoc-title: Set-Metadata Filter] +// +// This filters adds or updates dynamic metadata with static data. +// +// [#extension: envoy.filters.http.set_metadata] + +message Config { + // The metadata namespace. + string metadata_namespace = 1 [(validate.rules).string = {min_len: 1}]; + + // The value to update the namespace with. See + // :ref:`the filter documentation ` for + // more information on how this value is merged with potentially existing + // ones. + google.protobuf.Struct value = 2; +} diff --git a/versioning/BUILD b/versioning/BUILD index eac32a5c..0703d9ee 100644 --- a/versioning/BUILD +++ b/versioning/BUILD @@ -92,6 +92,7 @@ proto_library( "//envoy/extensions/filters/http/ratelimit/v3:pkg", "//envoy/extensions/filters/http/rbac/v3:pkg", "//envoy/extensions/filters/http/router/v3:pkg", + "//envoy/extensions/filters/http/set_metadata/v3:pkg", "//envoy/extensions/filters/http/squash/v3:pkg", "//envoy/extensions/filters/http/tap/v3:pkg", "//envoy/extensions/filters/http/wasm/v3:pkg",