Internal Upstream (proto)

This extension has the qualified name envoy.transport_sockets.internal_upstream

Note

This extension is intended to be robust against both untrusted downstream and upstream traffic.

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.transport_sockets.internal_upstream.v3.InternalUpstreamTransport

[extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport proto]

Configuration for the internal upstream address. An internal address defines a loopback user space socket residing in the same proxy instance. This extension allows passing additional structured state across the user space socket in addition to the regular byte stream. The purpose is to facilitate communication between filters on the downstream and the upstream internal connections. All filter state objects that are shared with the upstream connection are also shared with the downstream internal connection using this transport socket.

{
  "passthrough_metadata": [],
  "transport_socket": {...}
}
passthrough_metadata

(repeated extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport.MetadataValueSource) Specifies the metadata namespaces and values to insert into the downstream internal connection dynamic metadata when an internal address is used as a host. If the destination name is repeated across two metadata source locations, and both locations contain the metadata with the given name, then the latter in the list overrides the former.

transport_socket

(config.core.v3.TransportSocket, REQUIRED) The underlying transport socket being wrapped.

extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport.MetadataValueSource

[extensions.transport_sockets.internal_upstream.v3.InternalUpstreamTransport.MetadataValueSource proto]

Describes the location of the imported metadata value. If the metadata with the given name is not present at the source location, then no metadata is passed through for this particular instance.

{
  "kind": {...},
  "name": ...
}
kind

(type.metadata.v3.MetadataKind, REQUIRED) Specifies what kind of metadata.

name

(string, REQUIRED) Name is the filter namespace used in the dynamic metadata.