.. _envoy_v3_api_file_envoy/extensions/http/stateful_session/cookie/v3/cookie.proto: Cookie based stateful session extension (proto) =============================================== .. _envoy_v3_api_msg_extensions.http.stateful_session.cookie.v3.CookieBasedSessionState: extensions.http.stateful_session.cookie.v3.CookieBasedSessionState ------------------------------------------------------------------ :repo:`[extensions.http.stateful_session.cookie.v3.CookieBasedSessionState proto] ` This extension allows the session state to be tracked via cookies. This extension first encodes the address of the upstream host selected by the load balancer into a ``set-cookie`` response header with the :ref:`cookie configuration `. when new requests are incoming, this extension will try to parse the specific upstream host address by the cookie name. If the address parsed from the cookie corresponds to a valid upstream host, this upstream host will be selected first. See :ref:`stateful session filter `. For example, if the cookie name is set to ``sticky-host``, envoy will prefer ``1.2.3.4:80`` as the upstream host when the request contains the following header: .. code-block:: none cookie: sticky-host="MS4yLjMuNDo4MA==" When processing the upstream response, if ``1.2.3.4:80`` is indeed the final choice the extension does nothing. If ``1.2.3.4:80`` is not the final choice, the new selected host will be used to update the cookie (via the ``set-cookie`` response header). .. _extension_envoy.http.stateful_session.cookie: This extension has the qualified name ``envoy.http.stateful_session.cookie`` .. note:: This extension is functional but has not had substantial production burn time, use only with this caveat. This extension has an unknown security posture 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: - :ref:`envoy.http.stateful_session ` This extension must be configured with one of the following type URLs: - :ref:`type.googleapis.com/envoy.extensions.http.stateful_session.cookie.v3.CookieBasedSessionState ` .. code-block:: json :force: { "cookie": {...} } .. _envoy_v3_api_field_extensions.http.stateful_session.cookie.v3.CookieBasedSessionState.cookie: cookie (:ref:`type.http.v3.Cookie `, *REQUIRED*) The cookie configuration used to track session state.