.. _version_history_1.11.0: 1.11.0 (July 11, 2019) ======================= Changes ------- * **access log**: added a new field for downstream TLS session ID to file and gRPC access logger. * **access log**: added a new field for response code details in :ref:`file access logger ` and :ref:`gRPC access logger `. * **access log**: added a new field for route name to file and gRPC access logger. * **access log**: added a new flag for request rejected due to failed strict header check. * **access log**: added several new variables for exposing information about the downstream TLS connection to :ref:`file access logger ` and :ref:`gRPC access logger `. * **admin**: added host priority to :http:get:`/clusters` and :http:get:`/clusters?format=json` endpoint response. * **admin**: extend :ref:`/runtime_modify endpoint ` to support parameters within the request body. * **admin**: the :ref:`/clusters endpoint ` now shows hostname for each host, useful for DNS based clusters. * **admin**: the :ref:`/listener endpoint ` now returns :ref:`listeners.proto ` which includes listener names and ports. * **admin**: the administration interface now includes a :ref:`/ready endpoint ` for easier readiness checks. * **api**: track and report requests issued since last load report. * **build**: releases are built with Clang and linked with LLD. * **config**: added :ref:`stats_server_version_override ` in bootstrap, that can be used to override :ref:`server.version statistic `. * **control-plane**: management servers can respond with HTTP 304 to indicate that config is up to date for Envoy proxies polling a :ref:`REST API Config Type `. * **csrf**: added support for allowlisting additional source origins. * **dns**: added support for getting DNS record TTL which is used by STRICT_DNS/LOGICAL_DNS cluster as DNS refresh rate. * **dubbo_proxy**: support the :ref:`dubbo proxy filter `. * **dynamo_request_parser**: adding support for transactions. Adds check for new types of dynamodb operations (TransactWriteItems, TransactGetItems) and awareness for new types of dynamodb errors (IdempotentParameterMismatchException, TransactionCanceledException, TransactionInProgressException). * **eds**: added support to specify max time for which endpoints can be used :ref:`gRPC filter `. * **eds**: removed max limit for ``load_balancing_weight``. * **event**: added :ref:`loop duration and poll delay statistics `. * **ext_authz**: added a ``x-envoy-auth-partial-body`` metadata header set to ``false|true`` indicating if there is a partial body sent in the authorization request message. * **ext_authz**: added configurable status code that allows customizing HTTP responses on filter check status errors. * **ext_authz**: added option to ``ext_authz`` that allows the filter clearing route cache. * **grpc-json**: added support for :ref:`auto mapping `. * **health check**: added :ref:`initial jitter ` to add jitter to the first health check in order to prevent thundering herd on Envoy startup. * **hot restart**: stats are no longer shared between hot restart parent/child via shared memory, but rather by RPC. Hot restart version incremented to 11. * **http**: added :ref:`dynamic forward proxy ` support. * **http**: added a :ref:`header_prefix ` configuration option to allow Envoy to send and process x-custom- prefixed headers rather than x-envoy. * **http**: added support for :ref:`preserve_external_request_id ` that represents whether the x-request-id should not be reset on edge entry inside mesh. * **http**: added the ability to pass a URL encoded PEM encoded peer certificate chain in the :ref:`config_http_conn_man_headers_x-forwarded-client-cert` header. * **http**: changed ``sendLocalReply`` to send percent-encoded ``GrpcMessage``. * **http**: fixed a bug where large unbufferable responses were not tracked in stats and logs correctly. * **http**: fixed a crashing bug where gRPC local replies would cause segfaults when upstream access logging was on. * **http**: mitigated a race condition with the :ref:`delayed_close_timeout ` where it could trigger while actively flushing a pending write buffer for a downstream connection. * **http**: tracking the active stream and dumping state in Envoy crash handlers. This can be disabled by building with ``--define disable_object_dump_on_signal_trace=disabled``. * **jwt_authn**: make filter's parsing of JWT more flexible, allowing syntax like ``jwt=eyJhbGciOiJS...ZFnFIw,extra=7,realm=123``. * **listener**: added :ref:`source IP ` and :ref:`source port ` filter chain matching. * **lua**: exposed functions to Lua to verify digital signature. * **original_src filter**: added the :ref:`filter `. * **outlier_detector**: added configuration :ref:`outlier_detection.split_external_local_origin_errors ` to distinguish locally and externally generated errors. See :ref:`arch_overview_outlier_detection` for full details. * **rbac**: migrated from v2alpha to v2. * **redis**: add support for Redis cluster custom cluster type. * **redis**: add support for zpopmax and zpopmin commands. * **redis**: added :ref:`max_buffer_size_before_flush ` to batch commands together until the encoder buffer hits a certain size, and :ref:`buffer_flush_timeout ` to control how quickly the buffer is flushed if it is not full. * **redis**: added :ref:`prefix routing ` to enable routing commands based on their key's prefix to different upstream. * **redis**: added :ref:`request mirror policy ` to enable shadow traffic and/or dual writes. * **redis**: added auth support :ref:`downstream_auth_password ` for downstream client authentication, and :ref:`auth_password ` to configure authentication passwords for upstream server clusters. * **redis**: automatically route commands using cluster slots for Redis cluster. * **retry**: added a retry predicate that :ref:`rejects canary hosts. `. * **router**: add ability to reject a request that includes invalid values for headers configured in :ref:`strict_check_headers `. * **router**: add support for configuring a :ref:`gRPC timeout offset ` on incoming requests. * **router**: added :ref:`RouteAction's auto_host_rewrite_header ` to allow upstream host header substitution with some other header's value. * **router**: added a route name field to each http route in route.Route list. * **router**: added ability to control retry back-off intervals via :ref:`retry policy `. * **router**: added ability to issue a hedged retry in response to a per try timeout via a :ref:`hedge policy `. * **router**: added several new variables for exposing information about the downstream TLS connection via :ref:`header formatters `. * **router**: added support for UPSTREAM_REMOTE_ADDRESS :ref:`header formatter `. * **router**: per try timeouts will no longer start before the downstream request has been received in full by the router.This ensures that the per try timeout does not account for slow downstreams and that will not start before the global timeout. * **runtime**: :ref:`Runtime Discovery Service (RTDS) ` support added to layered runtime configuration. * **runtime**: added support for :ref:`flexible layering configuration `. * **runtime**: added support for statically :ref:`specifying the runtime in the bootstrap configuration `. * **sandbox**: added :ref:`CSRF sandbox `. * **server**: ``--define manual_stamp=manual_stamp`` was added to allow server stamping outside of binary rules. more info in the `bazel docs `_. * **server**: added :ref:`initialization_time_ms ` statistic. * **server**: added :ref:`server state ` statistic. * **subset**: added :ref:`list_as_any ` option to the subset lb which allows matching metadata against any of the values in a list value on the endpoints. * **tools**: added `proto `_ support for :ref:`router check tool ` tests. * **tracing**: add trace sampling configuration to the route, to override the route level. * **upstream**: added :ref:`an option ` that allows ignoring new hosts for the purpose of load balancing calculations until they have been health checked for the first time. * **upstream**: added :ref:`upstream_cx_pool_overflow ` for the connection pool circuit breaker. * **upstream**: added possibility to override fallback_policy per specific selector in :ref:`subset load balancer `. * **upstream**: added runtime error checking to prevent setting dns type to STRICT_DNS or LOGICAL_DNS when custom resolver name is specified. * **upstream**: an EDS management server can now force removal of a host that is still passing active health checking by first marking the host as failed via EDS health check and subsequently removing it in a future update. This is a mechanism to work around a race condition in which an EDS implementation may remove a host before it has stopped passing active HC, thus causing the host to become stranded until a future update. * **upstream**: the :ref:`logical DNS cluster ` now displays the current resolved IP address in admin output instead of 0.0.0.0. Deprecated ---------- * **config**: Specifying "deprecated_v1: true" in HTTP and network filter configuration to allow loading JSON configuration is now deprecated and will be removed in a following release. Update any custom filters to use protobuf configuration. A struct can be used for a mostly 1:1 conversion if needed. The ``envoy.deprecated_features.v1_filter_json_config`` runtime key can be used to temporarily enable this feature once the deprecation becomes fail by default. * **config**: Use of :ref:`runtime ` in :ref:`Bootstrap `. Use :ref:`layered_runtime ` instead. * **listener**: Use of the v1 style route configuration for the :ref:`TCP proxy filter ` is now fully replaced with listener :ref:`filter chain matching `. Use this instead. * **options**: The --max-stats and --max-obj-name-len flags no longer has any effect. * **redis**: Use of :ref:`catch_all_cluster ` in :ref:`redis_proxy.proto ` is deprecated. Set a :ref:`catch_all_route ` instead. * **redis**: Use of :ref:`cluster ` in :ref:`redis_proxy.proto ` is deprecated. Set a :ref:`catch_all_route ` instead. * **router_check_tool**: Use of json based schema in router check tool tests. The tests should follow validation `schema `_.