Project: Consul (Orchestration & Management / Service Mesh)
File: CHANGELOG.md

Enterprise LTS: Consul Enterprise 1.18 is a Long-Term Support (LTS) release. SECURITY: Bump Dockerfile base image to `alpine:3.19`. ] Update `vault/api` to v1.12.2 to address (removes indirect dependency on impacted `go-jose.v2`) ] Upgrade Go to use 1.21.10. This addresses CVEs and ] Upgrade to support Envoy `1.26.8, 1.27.4, 1.27.5, 1.28.2 and 1.28.3`. This resolves CVEs (`http2`). ] and (`auto_sni`). ] Upgrade to support k8s.io/apimachinery `v0.18.7 or higher`. This resolves CVE . ] Upgrade to use Go `1.21.9`. This resolves CVE (`http2`). ] Upgrade to use golang.org/x/net `v0.24.0`. This resolves CVE (`x/net`). ] IMPROVEMENTS: gateways: service defaults configuration entries can now be used to set default upstream limits for mesh-gateways ] connect: Add ability to disable Auto Host Header Rewrite on Terminating Gateway at the service level ] BUG FIXES: dns: fix a bug with sameness group queries in DNS where responses did not respect . DNS requests against sameness groups without this field set will now error as intended. error running consul server in 1.18.0: failed to configure SCADA provider user's home directory path: $HOME is not defined ] server: fix Ent snapshot restore on CE when CE downgrade is enabled ] xds: Make TCP external service registered with terminating gateway reachable from peered cluster ] SECURITY: Bump Dockerfile base image to `alpine:3.19`. ] Update `vault/api` to v1.12.2 to address (removes indirect dependency on impacted `go-jose.v2`) ] Upgrade Go to use 1.21.10. This addresses CVEs and ] Upgrade to support Envoy `1.26.8, 1.27.4, 1.27.5, 1.28.2 and 1.28.3`. This resolves CVEs (`http2`). ] and (`auto_sni`). ] Upgrade to support k8s.io/apimachinery `v0.18.7 or higher`. This resolves CVE . ] Upgrade to use Go `1.21.9`. This resolves CVE (`http2`). ] Upgrade to use golang.org/x/net `v0.24.0`. This resolves CVE (`x/net`). ] security: Remove `coredns/coredns` dependency to address ] BUG FIXES: dns: fix a bug with sameness group queries in DNS where responses did not respect . DNS requests against sameness groups without this field set will now error as intended. xds: Make TCP external service registered with terminating gateway reachable from peered cluster ] SECURITY: Bump Dockerfile base image to `alpine:3.19`. ] Update `vault/api` to v1.12.2 to address (removes indirect dependency on impacted `go-jose.v2`) ] Upgrade Go to use 1.21.10. This addresses CVEs and ] Upgrade to support Envoy `1.26.8, 1.27.4, 1.27.5, 1.28.2 and 1.28.3`. This resolves CVEs (`http2`). ] and (`auto_sni`). ] Upgrade to support k8s.io/apimachinery `v0.18.7 or higher`. This resolves CVE . ] Upgrade to use Go `1.21.9`. This resolves CVE (`http2`). ] Upgrade to use golang.org/x/net `v0.24.0`. This resolves CVE (`x/net`). ] security: Remove `coredns/coredns` dependency to address ] BUG FIXES: dns: fix a bug with sameness group queries in DNS where responses did not respect . DNS requests against sameness groups without this field set will now error as intended. xds: Make TCP external service registered with terminating gateway reachable from peered cluster ] Enterprise LTS: Consul Enterprise 1.15 is a Long-Term Support (LTS) release. SECURITY: Bump Dockerfile base image to `alpine:3.19`. ] Update `vault/api` to v1.12.2 to address (removes indirect dependency on impacted `go-jose.v2`) ] Upgrade Go to use 1.21.10. This addresses CVEs and ] Upgrade to support Envoy `1.26.8, 1.27.4, 1.27.5, 1.28.2 and 1.28.3`. This resolves CVEs (`http2`). ] and (`auto_sni`). ] Upgrade to support k8s.io/apimachinery `v0.18.7 or higher`. This resolves CVE . ] Upgrade to use Go `1.21.9`. This resolves CVE (`http2`). ] Upgrade to use golang.org/x/net `v0.24.0`. This resolves CVE (`x/net`). ] security: Remove `coredns/coredns` dependency to address ] BUG FIXES: xds: Make TCP external service registered with terminating gateway reachable from peered cluster ] Enterprise LTS: Consul Enterprise

is a Long-Term Support (LTS) release. BREAKING CHANGES: ui: Adds a "Link to HCP Consul Central" modal with integration to side-nav and link to HCP banner. There will be an option to disable the Link to HCP banner from the UI in a follow-up release. ] SECURITY: Update `google.golang.org/protobuf` to v1.33.0 to address . ] Update the Consul Build Go base image to `alpine3.19`. This resolves CVEs ] Upgrade to use Go `1.21.8`. This resolves CVEs (`crypto/x509`). (`net/http`). (`net/http`, `net/http/cookiejar`). (`html/template`). (`net/mail`). ] IMPROVEMENTS: api: Randomize the returned server list for the WatchServers gRPC endpoint. ] partitions: (Enterprise only)* Allow disabling of Gossip per Partition ] snapshot agent: (Enterprise only)* Add support for multiple snapshot destinations using the `backup_destinations` config file object. xds: Improved the performance of xDS server side load balancing. Its slightly improved in Consul CE with drastic CPU usage reductions in Consul Enterprise. ] BUG FIXES: audit-logs: (Enterprise Only)* Fixes non ASCII characters in audit logs because of gzip. ] connect: Fix issue where Consul-dataplane xDS sessions would not utilize the streaming backend for wan-federated queries. ] connect: Fix potential goroutine leak in xDS stream handling. ] connect: Fix xDS deadlock that could result in proxies being unable to start. ] ingress-gateway: (Enterprise Only)* Fix a bug where on update, Ingress Gateways lost all upstreams for listeners with wildcard services in a different namespace. SECURITY: Update `google.golang.org/protobuf` to v1.33.0 to address . ] Update the Consul Build Go base image to `alpine3.19`. This resolves CVEs ] Upgrade to use Go `1.21.8`. This resolves CVEs (`crypto/x509`). (`net/http`). (`net/http`, `net/http/cookiejar`). (`html/template`). (`net/mail`). ] IMPROVEMENTS: api: Randomize the returned server list for the WatchServers gRPC endpoint. ] snapshot agent: (Enterprise only)* Add support for multiple snapshot destinations using the `backup_destinations` config file object. BUG FIXES: connect: Fix issue where Consul-dataplane xDS sessions would not utilize the streaming backend for wan-federated queries. ] connect: Fix potential goroutine leak in xDS stream handling. ] connect: Fix xDS deadlock that could result in proxies being unable to start. ] dns: SERVFAIL when resolving not found PTR records. ] ingress-gateway: (Enterprise Only)* Fix a bug where on update, Ingress Gateways lost all upstreams for listeners with wildcard services in a different namespace. snapshot-agent: (Enterprise only)* Fix a bug with static AWS credentials where one of the key id or secret key is provided via config file and the other is provided via an environment variable. SECURITY: Update `google.golang.org/protobuf` to v1.33.0 to address . ] Update the Consul Build Go base image to `alpine3.19`. This resolves CVEs ] Upgrade to use Go `1.21.8`. This resolves CVEs (`crypto/x509`). (`net/http`). (`net/http`, `net/http/cookiejar`). (`html/template`). (`net/mail`). ] IMPROVEMENTS: api: Randomize the returned server list for the WatchServers gRPC endpoint. ] snapshot agent: (Enterprise only)* Add support for multiple snapshot destinations using the `backup_destinations` config file object. BUG FIXES: connect: Fix issue where Consul-dataplane xDS sessions would not utilize the streaming backend for wan-federated queries. ] connect: Fix potential goroutine leak in xDS stream handling. ] connect: Fix xDS deadlock that could result in proxies being unable to start. ] ingress-gateway: (Enterprise Only)* Fix a bug where on update, Ingress Gateways lost all upstreams for listeners with wildcard services in a different namespace. snapshot-agent: (Enterprise only)* Fix a bug with static AWS credentials where one of the key id or secret key is provided via config file and the other is provided via an environment variable. Enterprise LTS: Consul Enterprise 1.15 is a Long-Term Support (LTS) release. SECURITY: Update `google.golang.org/protobuf` to v1.33.0 to address . ] IMPROVEMENTS: api: Randomize the returned server list for the WatchServers gRPC

] BUG FIXES: connect: Fix issue where Consul-dataplane xDS sessions would not utilize the streaming backend for wan-federated queries. ] connect: Fix potential goroutine leak in xDS stream handling. ] connect: Fix xDS deadlock that could result in proxies being unable to start. ] ingress-gateway: (Enterprise Only)* Fix a bug where on update, Ingress Gateways lost all upstreams for listeners with wildcard services in a different namespace. snapshot-agent: (Enterprise only)* Fix a bug with static AWS credentials where one of the key id or secret key is provided via config file and the other is provided via an environment variable. BREAKING CHANGES: config-entries: Allow disabling request and idle timeouts with negative values in service router and service resolver config entries. ] telemetry: Adds fix to always use the value of `telemetry.disable_hostname` when determining whether to prefix gauge-type metrics with the hostname of the Consul agent. Previously, if only the default metric sink was enabled, this configuration was ignored and always treated as `true`, even though its default value is `false`. ] SECURITY: Update `golang.org/x/crypto` to v0.17.0 to address . ] connect: Update supported envoy versions to 1.24.12, 1.25.11, 1.26.6, 1.27.2 to address ] mesh: Update Envoy versions to 1.28.1, 1.27.3, and 1.26.7 to address , , , , , , ], , and ] FEATURES: acl: add policy bindtype to binding rules. ] agent: Introduces a new agent config defaultintentionpolicy to decouple the default intention behavior from ACLs ] agent: (Enterprise Only)* Add fault injection filter support for Consul Service Mesh cloud: Adds new API/CLI to initiate and manage linking a Consul cluster to HCP Consul Central ] dns: adds experimental support for a refactored DNS server that is v1 and v2 Catalog compatible. Use `v2dns` in the `experiments` agent config to enable. It will automatically be enabled when using the `resource-apis` (Catalog v2) experiment. The new DNS implementation will be the default in Consul 1.19. See the for deprecated DNS features. ] ui: Added a banner to let users link their clusters to HCP ] ui: Adds a redirect and warning message around unavailable UI with V2 enabled ] ui: adds V2CatalogEnabled to config that is passed to the ui ] v2: prevent use of the v2 experiments in secondary datacenters for now ] IMPROVEMENTS: cloud: unconditionally add Access-Control-Expose-Headers HTTP header ] connect: Replace usage of deprecated Envoy field `envoy.config.core.v3.HeaderValueOption.append`. ] connect: Replace usage of deprecated Envoy fields `envoy.config.route.v3.HeaderMatcher.saferegexmatch` and `envoy.type.matcher.v3.RegexMatcher.google_re2`. ] docs: add Link API documentation ] resource: lowercase names enforced for v2 resources only. ] BUG FIXES: dns: SERVFAIL when resolving not found PTR records. ] raft: Fix panic during downgrade from enterprise to oss. ] server: Ensure controllers are automatically restarted on internal stream errors. ] server: Ensure internal streams are properly terminated on snapshot restore. ] snapshot-agent: (Enterprise only)* Fix a bug with static AWS credentials where one of the key id or secret key is provided via config file and the other is provided via an environment variable. SECURITY: mesh: Update Envoy versions to 1.27.3 and 1.26.7 to address , , , , , and ] FEATURES: cli: Adds new command `exported-services` to list all services exported and their consumers. Refer to the for more information. ] IMPROVEMENTS: ProxyCfg: avoid setting a watch on `Internal.ServiceDump` when mesh gateway is not used. ] ProxyCfg: only return the nodes list when querying the `Internal.ServiceDump` watch from proxycfg ] Upgrade to use Go 1.21.7. ] api: add a new api(/v1/exported-services) to list all the exported service and their

] connect: Add `CaseInsensitive` flag to service-routers that allows paths and path prefixes to ignore URL upper and lower casing. ] BUG FIXES: audit-logs: (Enterprise Only)* Fixes non ASCII characters in audit logs because of gzip. ] connect: Fix issue where re-persisting existing proxy-defaults using `http` protocol fails with a protocol-mismatch error. ] connect: Fix regression with SAN matching on terminating gateways ] connect: Remove code coupling where the xDS capacity controller could negatively affect raft autopilot performance. ] logging: add /api prefix to v2 resource endpoint logs ] mesh: Fix bug where envoy extensions could not be configured with "permissive" mTLS mode. Note that envoy extensions currently do not apply to non-mTLS traffic in permissive mode. ] SECURITY: mesh: Update Envoy version to 1.26.7 to address , , , , , and ] IMPROVEMENTS: ProxyCfg: avoid setting a watch on `Internal.ServiceDump` when mesh gateway is not used. ] ProxyCfg: only return the nodes list when querying the `Internal.ServiceDump` watch from proxycfg ] Upgrade to use Go 1.21.7. ] BUG FIXES: audit-logs: (Enterprise Only)* Fixes non ASCII characters in audit logs because of gzip. ] connect: Fix issue where re-persisting existing proxy-defaults using `http` protocol fails with a protocol-mismatch error. ] connect: Fix regression with SAN matching on terminating gateways ] connect: Remove code coupling where the xDS capacity controller could negatively affect raft autopilot performance. ] mesh: Fix bug where envoy extensions could not be configured with "permissive" mTLS mode. Note that envoy extensions currently do not apply to non-mTLS traffic in permissive mode. ] SECURITY: mesh: Update Envoy versions to 1.28.1, 1.27.3, and 1.26.7 to address , , , , , and ] IMPROVEMENTS: ProxyCfg: avoid setting a watch on `Internal.ServiceDump` when mesh gateway is not used. ] ProxyCfg: only return the nodes list when querying the `Internal.ServiceDump` watch from proxycfg ] Upgrade to use Go 1.21.7. ] mesh: update supported envoy version 1.28.0 in addition to 1.27.2, 1.26.6 to support LTS release ] BUG FIXES: audit-logs: (Enterprise Only)* Fixes non ASCII characters in audit logs because of gzip. ] connect: Fix issue where re-persisting existing proxy-defaults using `http` protocol fails with a protocol-mismatch error. ] connect: Remove code coupling where the xDS capacity controller could negatively affect raft autopilot performance. ] KNOWN ISSUES: connect: Consul versions 1.17.2 and 1.16.5 perform excessively strict TLS SAN verification on terminating gateways, which prevents connections outside of the mesh to upstream services. Terminating gateway users are advised to avoid deploying these Consul versions. A fix will be present in a future release of Consul 1.17.3 and 1.16.6. ] SECURITY: Upgrade OpenShift container images to use `ubi9-minimal:9.3` as the base image. ] IMPROVEMENTS: connect: Remove usage of deprecated Envoy field `matchsubjectaltnames` in favor of `matchtypedsubjectalt_names`. ] connect: replace usage of deprecated Envoy field `envoy.config.router.v3.WeightedCluster.total_weight`. ] xds: Replace usage of deprecated Envoy field `envoy.config.cluster.v3.Cluster.httpprotocoloptions` ] xds: remove usages of deprecated Envoy fields: `envoy.config.cluster.v3.Cluster.http2protocoloptions`, `envoy.config.bootstrap.v3.Admin.accesslogpath` ] xds: replace usage of deprecated Envoy field `envoy.extensions.filters.http.lua.v3.Lua.inline_code` ] DEPRECATIONS: cli: Deprecate the `-admin-access-log-path` flag from `consul connect envoy` command in favor of: `-admin-access-log-config`. ] BUG FIXES: prepared-query: (Enterprise-only) Fix issue where sameness-group failover targets to peers would attempt to query data from the default partition, rather than the sameness-group's partition always. ui: update token list on Role details page to show only linked tokens ] KNOWN ISSUES: connect: Consul versions 1.17.2 and 1.16.5 perform excessively strict TLS SAN verification on terminating gateways, which prevents connections outside of the mesh to upstream services. Terminating gateway users are advised to avoid deploying these Consul versions. A fix will be present in a future release of Consul 1.17.3 and 1.16.6

SECURITY: Update RSA key generation to use a key size of at least 2048 bits. ] Upgrade OpenShift container images to use `ubi9-minimal:9.3` as the base image. ] IMPROVEMENTS: Upgrade to use Go 1.21.6. ] connect: Remove usage of deprecated Envoy field `matchsubjectaltnames` in favor of `matchtypedsubjectalt_names`. ] connect: replace usage of deprecated Envoy field `envoy.config.router.v3.WeightedCluster.total_weight`. ] xds: Replace usage of deprecated Envoy field `envoy.config.cluster.v3.Cluster.httpprotocoloptions` ] xds: remove usages of deprecated Envoy fields: `envoy.config.cluster.v3.Cluster.http2protocoloptions`, `envoy.config.bootstrap.v3.Admin.accesslogpath` ] xds: replace usage of deprecated Envoy field `envoy.extensions.filters.http.lua.v3.Lua.inline_code` ] BUG FIXES: prepared-query: (Enterprise-only) Fix issue where sameness-group failover targets to peers would attempt to query data from the default partition, rather than the sameness-group's partition always. ui: update token list on Role details page to show only linked tokens ] SECURITY: Update RSA key generation to use a key size of at least 2048 bits. ] Upgrade OpenShift container images to use `ubi9-minimal:9.3` as the base image. ] IMPROVEMENTS: Upgrade to use Go 1.21.6. ] BUG FIXES: ui: update token list on Role details page to show only linked tokens ] SECURITY: Update `github.com/golang-jwt/jwt/v4` to v4.5.0 to address . ] Upgrade to use Go 1.20.12. This resolves CVEs : (`path/filepath`) recognize \??\ as a Root Local Device path prefix (Windows) : recognize device names with trailing spaces and superscripts (Windows) : (`net/http`) limit chunked data overhead : (`cmd/go`) go get may unexpectedly fallback to insecure git ] connect: update supported envoy versions to 1.24.12, 1.25.11, 1.26.6, 1.27.2 to address ] FEATURES: acl: Adds nomad client templated policy ] cli: Adds new subcommand `peering exported-services` to list services exported to a peer . Refer to the for more information. ] IMPROVEMENTS: mesh: parse the proxy-defaults protocol when write the config-entry to avoid parsing it when compiling the discovery chain. ] wan-federation: use a hash to diff config entries when replicating in the secondary DC to avoid unnecessary writes.. ] Replaces UI Side Nav with Helios Design System Side Nav. Adds dc/partition/namespace searching in Side Nav. ] acl: add api-gateway templated policy ] acl: add templated policy descriptions ] api: Add support for listing ACL tokens by service name when using templated policies. ] cli: stop simultaneous usage of -templated-policy and -templated-policy-file when creating a role or token. ] cloud: push additional server TLS metadata to HCP ] connect: Default `statsflushinterval` to 60 seconds when using the Consul Telemetry Collector, unless custom stats sink are present or an explicit flush interval is configured. ] metrics: increment consul.client.rpc.failed if RPC fails because no servers are accessible ] metrics: modify consul.client.rpc metric to exclude internal retries for consistency with consul.client.rpc.exceeded and consul.client.rpc.failed ] ui: move nspace and partitions requests into their selector menus ] BUG FIXES: CLI: fix a panic when deleting a non existing policy by name. ] Mesh Gateways: Fix a bug where replicated and peered mesh gateways with hostname-based WAN addresses fail to initialize. ] ca: Fix bug with Vault CA provider where renewing a retracted token would cause retries in a tight loop, degrading performance. ] ca: Fix bug with Vault CA provider where token renewal goroutines could leak if CA failed to initialize. ] connect: Solves an issue where two upstream services with the same name in different namespaces were not getting routed to correctly by API

] federation: (Enterprise Only)* Fixed an issue where namespace reconciliation could result into the secondary having dangling instances of namespaces marked for deletion ui: clear peer on home logo link ] ui: fix being able to view peered services from non-default namnespaces ] ui: stop manually reconciling services if peering is enabled ] wan-federation: Fix a bug where servers wan-federated through mesh-gateways could crash due to overlapping LAN IP addresses. ] xds: Add configurable `xdsfetchtimeout_ms` option to proxy registrations that allows users to prevent endpoints from dropping when they have proxies with a large number of upstreams. ] xds: ensure child resources are re-sent to Envoy when the parent is updated even if the child already has pending updates. ] SECURITY: Update `github.com/golang-jwt/jwt/v4` to v4.5.0 to address . ] Upgrade to use Go 1.20.12. This resolves CVEs : (`path/filepath`) recognize \??\ as a Root Local Device path prefix (Windows) : recognize device names with trailing spaces and superscripts (Windows) : (`net/http`) limit chunked data overhead : (`cmd/go`) go get may unexpectedly fallback to insecure git ] IMPROVEMENTS: mesh: parse the proxy-defaults protocol when write the config-entry to avoid parsing it when compiling the discovery chain. ] wan-federation: use a hash to diff config entries when replicating in the secondary DC to avoid unnecessary writes.. ] cli: Adds cli support for checking TCP connection for ports. If -ports flag is not given, it will check for default ports of consul listed here - https://developer.hashicorp.com/consul/docs/install/ports ] cloud: push additional server TLS metadata to HCP ] connect: Default `statsflushinterval` to 60 seconds when using the Consul Telemetry Collector, unless custom stats sink are present or an explicit flush interval is configured. ] metrics: increment consul.client.rpc.failed if RPC fails because no servers are accessible ] metrics: modify consul.client.rpc metric to exclude internal retries for consistency with consul.client.rpc.exceeded and consul.client.rpc.failed ] BUG FIXES: CLI: fix a panic when deleting a non existing policy by name. ] connect: Solves an issue where two upstream services with the same name in different namespaces were not getting routed to correctly by API Gateways. ] federation: (Enterprise Only)* Fixed an issue where namespace reconciliation could result into the secondary having dangling instances of namespaces marked for deletion ui: only show hcp link if url is present ] wan-federation: Fix a bug where servers wan-federated through mesh-gateways could crash due to overlapping LAN IP addresses. ] xds: Add configurable `xdsfetchtimeout_ms` option to proxy registrations that allows users to prevent endpoints from dropping when they have proxies with a large number of upstreams. ] xds: ensure child resources are re-sent to Envoy when the parent is updated even if the child already has pending updates. ] SECURITY: Update `github.com/golang-jwt/jwt/v4` to v4.5.0 to address . ] Upgrade to use Go 1.20.12. This resolves CVEs : (`path/filepath`) recognize \??\ as a Root Local Device path prefix (Windows) : recognize device names with trailing spaces and superscripts (Windows) : (`net/http`) limit chunked data overhead : (`cmd/go`) go get may unexpectedly fallback to insecure git ] IMPROVEMENTS: mesh: parse the proxy-defaults protocol when write the config-entry to avoid parsing it when compiling the discovery chain. ] wan-federation: use a hash to diff config entries when replicating in the secondary DC to avoid unnecessary writes.. ] cli: Adds cli support for checking TCP connection for ports. If -ports flag is not given, it will check for default ports of consul listed here - https://developer.hashicorp.com/consul/docs/install/ports ] connect: Default `statsflushinterval` to 60 seconds when using the Consul Telemetry Collector, unless custom stats sink are present or an explicit flush interval is configured. ] metrics: increment consul.client.rpc.failed if RPC fails because no servers are accessible ] metrics: modify consul.client.rpc metric to exclude internal retries for consistency with consul.client.rpc.exceeded and consul.client.rpc.failed ] BUG FIXES: CLI: fix a panic when deleting a non existing policy by name. ] connect: Solves an issue where two upstream services with the same name in different namespaces were not getting routed to correctly by API

] federation: (Enterprise Only)* Fixed an issue where namespace reconciliation could result into the secondary having dangling instances of namespaces marked for deletion ui: only show back-to-hcp link when url is present ] wan-federation: Fix a bug where servers wan-federated through mesh-gateways could crash due to overlapping LAN IP addresses. ] xds: Add configurable `xdsfetchtimeout_ms` option to proxy registrations that allows users to prevent endpoints from dropping when they have proxies with a large number of upstreams. ] xds: ensure child resources are re-sent to Envoy when the parent is updated even if the child already has pending updates. ] BREAKING CHANGES: api: RaftLeaderTransfer now requires an id string. An empty string can be specified to keep the old behavior. ] audit-logging: (Enterprise only)* allowing timestamp based filename only on rotation. initially the filename will be just file.json ] DEPRECATIONS: cli: Deprecate the `-admin-access-log-path` flag from `consul connect envoy` command in favor of: `-admin-access-log-config`. ] SECURITY: Update `golang.org/x/net` to v0.17.0 to address / (`x/net/http2`). ] Upgrade Go to 1.20.10. This resolves vulnerability / (`net/http`). ] Upgrade `google.golang.org/grpc` to 1.56.3. This resolves vulnerability . ] connect: update supported envoy versions to 1.24.12, 1.25.11, 1.26.6, 1.27.2 to address ] FEATURE PREVIEW: Catalog v2 This release provides the ability to preview Consul's v2 Catalog and Resource API if enabled. The new model supports multi-port application deployments with only a single Envoy proxy. Note that the v1 and v2 catalogs are not cross compatible, and not all Consul features are available within this v2 feature preview. See the [v2 Catalog and Resource API documentation](https://developer.hashicorp.com/consul/docs/architecture/v2) for more information. The v2 Catalog and Resources API should be considered a feature preview within this release and should not be used in production environments. Limitations The v2 catalog API feature preview does not support connections with client agents. As a result, it is only available for Kubernetes deployments, which use instead of client agents. The v1 and v2 catalog APIs cannot run concurrently. The Consul UI does not support multi-port services or the v2 catalog API in this release. HCP Consul does not support multi-port services or the v2 catalog API in this release. Significant Pull Requests FEATURES: Support custom watches on the Consul Controller framework. ] Windows: support consul connect envoy command on Windows ] acl: Add BindRule support for templated policies. Add new BindType: templated-policy and BindVar field for templated policy variables. ] acl: Add new `acl.tokens.dns` config field which specifies the token used implicitly during dns checks. ] acl: Added ACL Templated policies to simplify getting the right ACL token. ] acl: Adds a new ACL rule for workload identities ] acl: Adds workload identity templated policy ] api-gateway: Add support for response header modifiers on http-route configuration entry ] api-gateway: add retry and timeout filters ] cli: Add `bind-var` flag to `consul acl binding-rule` for templated policy variables. ] cli: Add `consul acl templated-policy` commands to read, list and preview templated policies. ] config-entry(api-gateway): (Enterprise only) Add GatewayPolicy to APIGateway Config Entry listeners config-entry(api-gateway): (Enterprise only) Add JWTFilter to HTTPRoute Filters dataplane: Allow getting bootstrap parameters when using V2 APIs ] gateway: (Enterprise only)* Add JWT authentication and authorization to APIGateway Listeners and HTTPRoutes. mesh: (Enterprise only)* Adds rate limiting config to service-defaults ] xds: Add a built-in Envoy extension that appends OpenTelemetry Access Logging (otel-access-logging) to the HTTP Connection Manager filter. ] xds: Add support for patching outbound listeners to the built-in Envoy External Authorization extension. ] IMPROVEMENTS: raft: upgrade raft-wal library version to

] xds: Use downstream protocol when connecting to local app ] Windows: Integration tests for Consul Windows VMs ] acl: Use templated policy to generate synthetic policies for tokens/roles with node and/or service identities ] api: added `CheckRegisterOpts` to Agent API ] api: added `Token` field to `ServiceRegisterOpts` type in Agent API ] ca: Vault CA provider config no longer requires rootpkipath for secondary datacenters ] cli: Added `-templated-policy`, `-templated-policy-file`, `-replace-templated-policy`, `-append-templated-policy`, `-replace-templated-policy-file`, `-append-templated-policy-file` and `-var` flags for creating or updating tokens/roles. ] config: Add new `tls.defaults.verifyserverhostname` configuration option. This specifies the default value for any interfaces that support the `verifyserverhostname` option. ] connect: update supported envoy versions to 1.24.10, 1.25.9, 1.26.4, 1.27.0 ] ui: Use Community verbiage ] BUG FIXES: api: add custom marshal/unmarshal for ServiceResolverConfigEntry.RequestTimeout so config entries that set this field can be read using the API. ] ca: ensure Vault CA provider respects Vault Enterprise namespace configuration. ] catalog api: fixes a bug with catalog api where filter query parameter was not working correctly for the `/v1/catalog/services` endpoint ] connect: (Enterprise only)* Fix bug where incorrect service-defaults entries were fetched to determine an upstream's protocol whenever the upstream did not explicitly define the namespace / partition. When this bug occurs, upstreams would use the protocol from a service-default entry in the default namespace / partition, rather than their own namespace / partition. connect: Fix bug where uncleanly closed xDS connections would influence connection balancing for too long and prevent envoy instances from starting. Two new configuration fields `performance.grpckeepalivetimeout` and `performance.grpckeepaliveinterval` now exist to allow for configuration on how often these dead connections will be cleaned up. ] dev-mode: Fix dev mode has new line in responses. Now new line is added only when url has pretty query parameter. ] dns: (Enterprise only)* Fix bug where sameness group queries did not correctly inherit the agent's partition. docs: fix list of telemetry metrics ] gateways: Fix a bug where a service in a peered datacenter could not access an external node service through a terminating gateway ] server: (Enterprise Only)* Fixed an issue where snake case keys were rejected when configuring the control-plane-request-limit config entry telemetry: emit consul version metric on a regular interval. ] tlsutil: Default setting of ServerName field in outgoing TLS configuration for checks now handled by crypto/tls. ] SECURITY: Update `golang.org/x/net` to v0.17.0 to address / (`x/net/http2`). ] Upgrade Go to 1.20.10. This resolves vulnerability / (`net/http`). ] Upgrade `google.golang.org/grpc` to 1.56.3. This resolves vulnerability . ] connect: update supported envoy versions to 1.24.12, 1.25.11, 1.26.6 to address ] BUG FIXES: Mesh Gateways: Fix a bug where replicated and peered mesh gateways with hostname-based WAN addresses fail to initialize. ] api-gateway: fix matching for different hostnames on the same listener ] api: add custom marshal/unmarshal for ServiceResolverConfigEntry.RequestTimeout so config entries that set this field can be read using the API. ] ca: Fix bug with Vault CA provider where renewing a retracted token would cause retries in a tight loop, degrading performance. ] ca: Fix bug with Vault CA provider where token renewal goroutines could leak if CA failed to initialize. ] ca: ensure Vault CA provider respects Vault Enterprise namespace configuration. ] catalog api: fixes a bug with catalog api where filter query parameter was not working correctly for the `/v1/catalog/services` endpoint ] connect: Fix bug where uncleanly closed xDS connections would influence connection balancing for too long and prevent envoy instances from starting. Two new configuration fields `performance.grpckeepalivetimeout` and `performance.grpckeepaliveinterval` now exist to allow for configuration on how often these dead connections will be cleaned up. ] dns: (Enterprise only)* Fix bug where sameness group queries did not correctly inherit the agent's

gateways: Fix a bug where a service in a peered datacenter could not access an external node service through a terminating gateway ] server: (Enterprise Only)* Fixed an issue where snake case keys were rejected when configuring the control-plane-request-limit config entry SECURITY: Update `golang.org/x/net` to v0.17.0 to address / (`x/net/http2`). ] Upgrade Go to 1.20.10. This resolves vulnerability / (`net/http`). ] Upgrade `google.golang.org/grpc` to 1.56.3. This resolves vulnerability . ] connect: update supported envoy versions to 1.24.12, 1.25.11 to address ] BUG FIXES: Mesh Gateways: Fix a bug where replicated and peered mesh gateways with hostname-based WAN addresses fail to initialize. ] api: add custom marshal/unmarshal for ServiceResolverConfigEntry.RequestTimeout so config entries that set this field can be read using the API. ] ca: Fix bug with Vault CA provider where renewing a retracted token would cause retries in a tight loop, degrading performance. ] ca: Fix bug with Vault CA provider where token renewal goroutines could leak if CA failed to initialize. ] ca: ensure Vault CA provider respects Vault Enterprise namespace configuration. ] catalog api: fixes a bug with catalog api where filter query parameter was not working correctly for the `/v1/catalog/services` endpoint ] connect: Fix bug where uncleanly closed xDS connections would influence connection balancing for too long and prevent envoy instances from starting. Two new configuration fields `performance.grpckeepalivetimeout` and `performance.grpckeepaliveinterval` now exist to allow for configuration on how often these dead connections will be cleaned up. ] gateways: Fix a bug where a service in a peered datacenter could not access an external node service through a terminating gateway ] SECURITY: Update `golang.org/x/net` to v0.17.0 to address / (`x/net/http2`). ] Upgrade Go to 1.20.10. This resolves vulnerability / (`net/http`). ] Upgrade `google.golang.org/grpc` to 1.56.3. This resolves vulnerability . ] connect: update supported envoy versions to 1.24.12 to address ] BUG FIXES: Mesh Gateways: Fix a bug where replicated and peered mesh gateways with hostname-based WAN addresses fail to initialize. ] api: add custom marshal/unmarshal for ServiceResolverConfigEntry.RequestTimeout so config entries that set this field can be read using the API. ] ca: ensure Vault CA provider respects Vault Enterprise namespace configuration. ] catalog api: fixes a bug with catalog api where filter query parameter was not working correctly for the `/v1/catalog/services` endpoint ] connect: Fix bug where uncleanly closed xDS connections would influence connection balancing for too long and prevent envoy instances from starting. Two new configuration fields `performance.grpckeepalivetimeout` and `performance.grpckeepaliveinterval` now exist to allow for configuration on how often these dead connections will be cleaned up. ] BREAKING CHANGES: api: RaftLeaderTransfer now requires an id string. An empty string can be specified to keep the old behavior. ] audit-logging: (Enterprise only)* allowing timestamp based filename only on rotation. initially the filename will be just file.json ] FEATURE PREVIEW: Catalog v2 This release provides the ability to preview Consul's v2 Catalog and Resource API if enabled. The new model supports multi-port application deployments with only a single Envoy proxy. Note that the v1 and v2 catalogs are not cross compatible, and not all Consul features are available within this v2 feature preview. See the [v2 Catalog and Resource API documentation](https://developer.hashicorp.com/consul/docs/architecture/v2) for more information. The v2 Catalog and Resources API should be considered a feature preview within this release and should not be used in production environments. Limitations The v2 catalog API feature preview does not support connections with client agents. As a result, it is only available for Kubernetes deployments, which use instead of client agents. The v1 and v2 catalog APIs cannot run

The Consul UI does not support multi-port services or the v2 catalog API in this release. HCP Consul does not support multi-port services or the v2 catalog API in this release. The v2 API only supports transparent proxy mode where services that have permissions to connect to each other can use Kube DNS to connect. Known Issues When using the v2 API with transparent proxy, Kubernetes pods cannot use L7 liveness, readiness, or startup probes. Significant Pull Requests FEATURES: Support custom watches on the Consul Controller framework. ] Windows: support consul connect envoy command on Windows ] acl: Add BindRule support for templated policies. Add new BindType: templated-policy and BindVar field for templated policy variables. ] acl: Add new `acl.tokens.dns` config field which specifies the token used implicitly during dns checks. ] acl: Added ACL Templated policies to simplify getting the right ACL token. ] acl: Adds a new ACL rule for workload identities ] api-gateway: Add support for response header modifiers on http-route configuration entry ] api-gateway: add retry and timeout filters ] cli: Add `bind-var` flag to `consul acl binding-rule` for templated policy variables. ] cli: Add `consul acl templated-policy` commands to read, list and preview templated policies. ] config-entry(api-gateway): (Enterprise only) Add GatewayPolicy to APIGateway Config Entry listeners config-entry(api-gateway): (Enterprise only) Add JWTFilter to HTTPRoute Filters dataplane: Allow getting bootstrap parameters when using V2 APIs ] gateway: (Enterprise only)* Add JWT authentication and authorization to APIGateway Listeners and HTTPRoutes. mesh: (Enterprise only)* Adds rate limiting config to service-defaults ] xds: Add a built-in Envoy extension that appends OpenTelemetry Access Logging (otel-access-logging) to the HTTP Connection Manager filter. ] xds: Add support for patching outbound listeners to the built-in Envoy External Authorization extension. ] IMPROVEMENTS: xds: Use downstream protocol when connecting to local app ] Windows: Integration tests for Consul Windows VMs ] acl: Use templated policy to generate synthetic policies for tokens/roles with node and/or service identities ] api: added `CheckRegisterOpts` to Agent API ] api: added `Token` field to `ServiceRegisterOpts` type in Agent API ] ca: Vault CA provider config no longer requires rootpkipath for secondary datacenters ] cli: Added `-templated-policy`, `-templated-policy-file`, `-replace-templated-policy`, `-append-templated-policy`, `-replace-templated-policy-file`, `-append-templated-policy-file` and `-var` flags for creating or updating tokens/roles. ] config: Add new `tls.defaults.verifyserverhostname` configuration option. This specifies the default value for any interfaces that support the `verifyserverhostname` option. ] connect: update supported envoy versions to 1.24.10, 1.25.9, 1.26.4, 1.27.0 ] ui: Use Community verbiage ] BUG FIXES: api: add custom marshal/unmarshal for ServiceResolverConfigEntry.RequestTimeout so config entries that set this field can be read using the API. ] dev-mode: Fix dev mode has new line in responses. Now new line is added only when url has pretty query parameter. ] telemetry: emit consul version metric on a regular interval. ] tlsutil: Default setting of ServerName field in outgoing TLS configuration for checks now handled by crypto/tls. ] SECURITY: Upgrade to use Go 1.20.8. This resolves CVEs (`cmd/go`), (`html/template`), (`html/template`), (`crypto/tls`), and (`crypto/tls`) ] IMPROVEMENTS: Adds flag -append-filename (which works on values version, dc, node and status) to consul snapshot save command. Adding the flag -append-filename version,dc,node,status will add consul version, consul datacenter, node name and leader/follower (status) in the file name given in the snapshot save command before the file extension. ] Reduce the frequency of metric exports from Consul to HCP from every 10s to every 1m ] api: Add support for listing ACL tokens by service name. ] checks: It is now possible to configure agent TCP checks to use TLS with optional server SNI and mutual authentication. To use TLS with a TCP check, the check must enable the `tcpusetls`

By default the agent will use the TLS configuration in the `tls.default` stanza. ] command: Adds -since flag in consul debug command which internally calls hcdiag for debug information in the past. ] log: Currently consul logs files like this consul-{timestamp}.log. This change makes sure that there is always consul.log file with the latest logs in it. ] BUG FIXES: Inherit locality from services when registering sidecar proxies. ] UI : Nodes list view was breaking for synthetic-nodes. Fix handles non existence of consul-version meta for node. ] api: Fix `/v1/agent/self` not returning latest configuration ] ca: Vault provider now cleans up the previous Vault issuer and key when generating a new leaf signing certificate ] ] check: prevent go routine leakage when existing Defercheck of same check id is not nil ] connect: Fix issue where Envoy endpoints would not populate correctly after a snapshot restore. ] gateways: Fix a bug where gateway to service mappings weren't being cleaned up properly when externally registered proxies were being deregistered. ] telemetry: emit consul version metric on a regular interval. ] SECURITY: Upgrade to use Go 1.20.8. This resolves CVEs (`cmd/go`), (`html/template`), (`html/template`), (`crypto/tls`), and (`crypto/tls`) ] IMPROVEMENTS: Adds flag -append-filename (which works on values version, dc, node and status) to consul snapshot save command. Adding the flag -append-filename version,dc,node,status will add consul version, consul datacenter, node name and leader/follower (status) in the file name given in the snapshot save command before the file extension. ] Reduce the frequency of metric exports from Consul to HCP from every 10s to every 1m ] api: Add support for listing ACL tokens by service name. ] command: Adds -since flag in consul debug command which internally calls hcdiag for debug information in the past. ] log: Currently consul logs files like this consul-{timestamp}.log. This change makes sure that there is always consul.log file with the latest logs in it. ] BUG FIXES: api: Fix `/v1/agent/self` not returning latest configuration ] ca: Vault provider now cleans up the previous Vault issuer and key when generating a new leaf signing certificate ] ] check: prevent go routine leakage when existing Defercheck of same check id is not nil ] gateways: Fix a bug where gateway to service mappings weren't being cleaned up properly when externally registered proxies were being deregistered. ] telemetry: emit consul version metric on a regular interval. ] SECURITY: Upgrade to use Go 1.20.8. This resolves CVEs (`cmd/go`), (`html/template`), (`html/template`), (`crypto/tls`), and (`crypto/tls`) ] IMPROVEMENTS: Adds flag -append-filename (which works on values version, dc, node and status) to consul snapshot save command. Adding the flag -append-filename version,dc,node,status will add consul version, consul datacenter, node name and leader/follower (status) in the file name given in the snapshot save command before the file extension. ] api: Add support for listing ACL tokens by service name. ] command: Adds -since flag in consul debug command which internally calls hcdiag for debug information in the past. ] log: Currently consul logs files like this consul-{timestamp}.log. This change makes sure that there is always consul.log file with the latest logs in it. ] BUG FIXES: api: Fix `/v1/agent/self` not returning latest configuration ] ca: Vault provider now cleans up the previous Vault issuer and key when generating a new leaf signing certificate ] ] gateways: Fix a bug where gateway to service mappings weren't being cleaned up properly when externally registered proxies were being deregistered. ] telemetry: emit consul version metric on a regular interval. ] KNOWN ISSUES: connect: Consul versions 1.16.0 and 1.16.1 may have issues when a snapshot restore is performed and the servers are hosting xDS

When this bug triggers, it will cause Envoy to incorrectly populate upstream endpoints. This bug only impacts agent-less service mesh and should be fixed in Consul 1.16.2 by . SECURITY: Update `golang.org/x/net` to v0.13.0 to address . ] Upgrade golang.org/x/net to address ] Upgrade to use Go 1.20.6. This resolves (`net/http`) for uses of the standard library. A separate change updates dependencies on `golang.org/x/net` to use `0.12.0`. ] Upgrade to use Go 1.20.7. This resolves vulnerability (`crypto/tls`). ] FEATURES: cli: `consul members` command uses `-filter` expression to filter members based on bexpr. ] cli: `consul operator raft list-peers` command shows the number of commits each follower is trailing the leader by to aid in troubleshooting. ] cli: `consul watch` command uses `-filter` expression to filter response from checks, services, nodes, and service. ] reloadable config: Made enable_debug config reloadable and enable pprof command to work when config toggles to true ] ui: consul version is displayed in nodes list with filtering and sorting based on versions ] IMPROVEMENTS: Fix some typos in metrics docs ] acl: added builtin ACL policy that provides global read-only access (builtin/global-read-only) ] acl: allow for a single slash character in policy names ] connect: Add capture group labels from Envoy cluster FQDNs to Envoy exported metric labels ] connect: Improve transparent proxy support for virtual services and failovers. ] connect: update supported envoy versions to 1.23.12, 1.24.10, 1.25.9, 1.26.4 ] debug: change default setting of consul debug command. now default duration is 5ms and default log level is 'TRACE' ] extensions: Improve validation and error feedback for `property-override` builtin Envoy extension ] hcp: Add dynamic configuration support for the export of server metrics to HCP. ] hcp: Removes requirement for HCP to provide a management token ] http: GET API `operator/usage` endpoint now returns node count cli: `consul operator usage` command now returns node count ] mesh: Expose remote jwks cluster configuration through jwt-provider config entry ] mesh: Stop jwt providers referenced by intentions from being deleted. ] ui: the topology view now properly displays services with mixed connect and non-connect instances. ] xds: Explicitly enable WebSocket connection upgrades in HTTP connection manager ] BUG FIXES: Fix a bug that wrongly trims domains when there is an overlap with DC name. ] api-gateway: fix race condition in proxy config generation when Consul is notified of the bound-api-gateway config entry before it is notified of the api-gateway config entry. ] api: Fix client deserialization errors by marking new Enterprise-only prepared query fields as omit empty ] ca: Fixes a Vault CA provider bug where updating RootPKIPath but not IntermediatePKIPath would not renew leaf signing certificates ] connect/ca: Fixes a bug preventing CA configuration updates in secondary datacenters ] connect: (Enterprise only)* Fix bug where intentions referencing sameness groups would not always apply to members properly. connect: Fix incorrect protocol config merging for transparent proxy implicit upstreams. ] connect: Removes the default health check from the `consul connect envoy` command when starting an API Gateway. This health check would always fail. ] connect: fix a bug with Envoy potentially starting with incomplete configuration by not waiting enough for initial xDS configuration. ] gateway: Fixes a bug where envoy would silently reject RSA keys that are smaller than 2048 bits, we now reject those earlier in the process when we validate the certificate. ] http: fixed API endpoint `PUT /acl/token/:AccessorID` (update token), no longer requires `AccessorID` in the request body. Web UI can now update tokens. ] mesh: (Enterprise Only)* Require that `jwt-provider` config entries are created in the `default`

] snapshot: fix access denied and handle is invalid when we call snapshot save on windows - skip sync() for folders in windows in https://github.com/rboyer/safeio/pull/3 ] xds: Prevent partial application of non-Required Envoy extensions in the case of failure. ] SECURITY: Update `golang.org/x/net` to v0.13.0 to address . ] Upgrade golang.org/x/net to address ] Upgrade to use Go 1.20.6. This resolves (`net/http`) for uses of the standard library. A separate change updates dependencies on `golang.org/x/net` to use `0.12.0`. ] Upgrade to use Go 1.20.7. This resolves vulnerability (`crypto/tls`). ] FEATURES: cli: `consul members` command uses `-filter` expression to filter members based on bexpr. ] cli: `consul watch` command uses `-filter` expression to filter response from checks, services, nodes, and service. ] reloadable config: Made enable_debug config reloadable and enable pprof command to work when config toggles to true ] IMPROVEMENTS: Fix some typos in metrics docs ] acl: added builtin ACL policy that provides global read-only access (builtin/global-read-only) ] acl: allow for a single slash character in policy names ] connect: Add capture group labels from Envoy cluster FQDNs to Envoy exported metric labels ] connect: update supported envoy versions to 1.22.11, 1.23.12, 1.24.10, 1.25.9 ] hcp: Add dynamic configuration support for the export of server metrics to HCP. ] hcp: Removes requirement for HCP to provide a management token ] xds: Explicitly enable WebSocket connection upgrades in HTTP connection manager ] BUG FIXES: Fix a bug that wrongly trims domains when there is an overlap with DC name. ] api-gateway: fix race condition in proxy config generation when Consul is notified of the bound-api-gateway config entry before it is notified of the api-gateway config entry. ] connect/ca: Fixes a bug preventing CA configuration updates in secondary datacenters ] connect: Fix incorrect protocol config merging for transparent proxy implicit upstreams. ] connect: Removes the default health check from the `consul connect envoy` command when starting an API Gateway. This health check would always fail. ] connect: fix a bug with Envoy potentially starting with incomplete configuration by not waiting enough for initial xDS configuration. ] snapshot: fix access denied and handle is invalid when we call snapshot save on windows - skip sync() for folders in windows in https://github.com/rboyer/safeio/pull/3 ] SECURITY: Update `golang.org/x/net` to v0.13.0 to address . ] Upgrade golang.org/x/net to address ] Upgrade to use Go 1.20.6. This resolves (`net/http`) for uses of the standard library. A separate change updates dependencies on `golang.org/x/net` to use `0.12.0`. ] Upgrade to use Go 1.20.7. This resolves vulnerability (`crypto/tls`). ] FEATURES: cli: `consul members` command uses `-filter` expression to filter members based on bexpr. ] cli: `consul watch` command uses `-filter` expression to filter response from checks, services, nodes, and service. ] reloadable config: Made enable_debug config reloadable and enable pprof command to work when config toggles to true ] IMPROVEMENTS: Fix some typos in metrics docs ] acl: added builtin ACL policy that provides global read-only access (builtin/global-read-only) ] acl: allow for a single slash character in policy names ] connect: update supported envoy versions to 1.21.6, 1.22.11, 1.23.12, 1.24.10 ] hcp: Removes requirement for HCP to provide a management token ] xds: Explicitly enable WebSocket connection upgrades in HTTP connection manager ] BUG FIXES: Fix a bug that wrongly trims domains when there is an overlap with DC name. ] connect/ca: Fixes a bug preventing CA configuration updates in secondary datacenters ] connect: Fix incorrect protocol config merging for transparent proxy implicit upstreams. ] connect: fix a bug with Envoy potentially starting with incomplete configuration by not waiting enough for initial xDS

] snapshot: fix access denied and handle is invalid when we call snapshot save on windows - skip sync() for folders in windows in https://github.com/rboyer/safeio/pull/3 ] KNOWN ISSUES: connect: Consul versions 1.16.0 and 1.16.1 may have issues when a snapshot restore is performed and the servers are hosting xDS streams. When this bug triggers, it will cause Envoy to incorrectly populate upstream endpoints. This bug only impacts agent-less service mesh and should be fixed in Consul 1.16.2 by . BREAKING CHANGES: api: The `/v1/health/connect/` and `/v1/health/ingress/` endpoints now immediately return 403 "Permission Denied" errors whenever a token with insufficient `service:read` permissions is provided. Prior to this change, the endpoints returned a success code with an empty result list when a token with insufficient permissions was provided. ] peering: Removed deprecated backward-compatibility behavior. Upstream overrides in service-defaults will now only apply to peer upstreams when the `peer` field is provided. Visit the 1.16.x for more information. ] SECURITY: Bump Dockerfile base image to `alpine:3.18`. ] audit-logging: (Enterprise only)* limit `v1/operator/audit-hash` endpoint to ACL token with `operator:read` privileges. FEATURES: api: (Enterprise only) Add `POST /v1/operator/audit-hash` endpoint to calculate the hash of the data used by the audit log hash function and salt. cli: (Enterprise only) Add a new `consul operator audit hash` command to retrieve and compare the hash of the data used by the audit log hash function and salt. cli: Adds new command - `consul services export` - for exporting a service to a peer or partition ] connect: (Consul Enterprise only)* Implement order-by-locality failover. mesh: Add new permissive mTLS mode that allows sidecar proxies to forward incoming traffic unmodified to the application. This adds `AllowEnablingPermissiveMutualTLS` setting to the mesh config entry and the `MutualTLSMode` setting to proxy-defaults and service-defaults. ] mesh: Support configuring JWT authentication in Envoy. ] server: (Enterprise Only)* added server side RPC requests IP based read/write rate-limiter. ] server: (Enterprise Only)* allow automatic license utilization reporting. ] server: added server side RPC requests global read/write rate-limiter. ] xds: Add `property-override` built-in Envoy extension that directly patches Envoy resources. ] xds: Add a built-in Envoy extension that inserts External Authorization (ext_authz) network and HTTP filters. ] xds: Add a built-in Envoy extension that inserts Wasm HTTP filters. ] xds: Add a built-in Envoy extension that inserts Wasm network filters. ] IMPROVEMENTS: api: Support filtering for config entries. ] cli: Add `-filter` option to `consul config list` for filtering config entries. ] agent: remove agent cache dependency from service mesh leaf certificate management ] api: Enable setting query options on agent force-leave endpoint. ] audit-logging: (Enterprise only)* enable error response and request body logging ca: automatically set up Vault's auto-tidy setting for tidyexpiredissuers when using Vault as a CA provider. ] ca: support Vault agent auto-auth config for Vault CA provider using AliCloud authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using AppRole authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using Azure MSI authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using JWT authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using Kubernetes authentication. ] command: Adds ACL enabled to status output on agent startup. ] command: Allow creating ACL Token TTL with greater than 24 hours with the -expires-ttl flag. ] connect: (Enterprise Only)* Add support for specifying "Partition" and "Namespace" in Prepared Queries failover rules. connect: update supported envoy versions to 1.23.10, 1.24.8, 1.25.7, 1.26.2 ] connect: update supported envoy versions to 1.23.8, 1.24.6, 1.25.4,

] fix metric names in /docs/agent/telemetry ] gateway: Change status condition reason for invalid certificate on a listener from "Accepted" to "ResolvedRefs". ] http: accept query parameters `datacenter`, `ap` (enterprise-only), and `namespace` (enterprise-only). Both short-hand and long-hand forms of these query params are now supported via the HTTP API (dc/datacenter, ap/partition, ns/namespace). ] systemd: set service type to notify. ] ui: Update alerts to Hds::Alert component ] ui: Update to use Hds::Toast component to show notifications ] ui: update from <button> and <a> to design-system-components button <Hds::Button> ] ui: update typography to styles from hds ] BUG FIXES: Fix a race condition where an event is published before the data associated is commited to memdb. ] connect: Fix issue where changes to service exports were not reflected in proxies. ] gateways: (Enterprise only)* Fixed a bug in API gateways where gateway configuration objects in non-default partitions did not reconcile properly. ] gateways: Fixed a bug in API gateways where binding a route that only targets a service imported from a peer results in the programmed gateway having no routes. ] gateways: Fixed a bug where API gateways were not being taken into account in determining xDS rate limits. ] namespaces: (Enterprise only)* fixes a bug where agent health checks stop syncing for all services on a node if the namespace of any service has been removed from the server. namespaces: (Enterprise only)* fixes a bug where namespaces are stuck in a deferred deletion state indefinitely under some conditions. Also fixes the Consul query metadata present in the HTTP headers of the namespace read and list endpoints. peering: Fix a bug that caused server agents to continue cleaning up peering resources even after loss of leadership. ] peering: Fixes a bug where the importing partition was not added to peered failover targets, which causes issues when the importing partition is a non-default partition. ] ui: fixes ui tests run on CI ] xds: Fixed a bug where modifying ACLs on a token being actively used for an xDS connection caused all xDS updates to fail. ] FEATURES: cli: `consul operator raft list-peers` command shows the number of commits each follower is trailing the leader by to aid in troubleshooting. ] server: (Enterprise Only)* allow automatic license utilization reporting. ] IMPROVEMENTS: connect: update supported envoy versions to 1.22.11, 1.23.9, 1.24.7, 1.25.6 ] debug: change default setting of consul debug command. now default duration is 5ms and default log level is 'TRACE' ] fix metric names in /docs/agent/telemetry ] gateway: Change status condition reason for invalid certificate on a listener from "Accepted" to "ResolvedRefs". ] systemd: set service type to notify. ] BUG FIXES: cache: fix a few minor goroutine leaks in leaf certs and the agent cache ] docs: fix list of telemetry metrics ] gateways: (Enterprise only)* Fixed a bug in API gateways where gateway configuration objects in non-default partitions did not reconcile properly. ] gateways: Fixed a bug in API gateways where binding a route that only targets a service imported from a peer results in the programmed gateway having no routes. ] gateways: Fixed a bug where API gateways were not being taken into account in determining xDS rate limits. ] http: fixed API endpoint `PUT /acl/token/:AccessorID` (update token), no longer requires `AccessorID` in the request body. Web UI can now update tokens. ] namespaces: (Enterprise only)* fixes a bug where agent health checks stop syncing for all services on a node if the namespace of any service has been removed from the server. namespaces: (Enterprise only)* fixes a bug where namespaces are stuck in a deferred deletion state indefinitely under some

Also fixes the Consul query metadata present in the HTTP headers of the namespace read and list endpoints. peering: Fix a bug that caused server agents to continue cleaning up peering resources even after loss of leadership. ] xds: Fixed a bug where modifying ACLs on a token being actively used for an xDS connection caused all xDS updates to fail. ] SECURITY: Update to UBI base image to 9.2. ] FEATURES: cli: `consul operator raft list-peers` command shows the number of commits each follower is trailing the leader by to aid in troubleshooting. ] server: (Enterprise Only)* allow automatic license utilization reporting. ] IMPROVEMENTS: connect: update supported envoy versions to 1.21.6, 1.22.11, 1.23.9, 1.24.7 ] debug: change default setting of consul debug command. now default duration is 5ms and default log level is 'TRACE' ] fix metric names in /docs/agent/telemetry ] peering: gRPC queries for TrustBundleList, TrustBundleRead, PeeringList, and PeeringRead now support blocking semantics, reducing network and CPU demand. The HTTP APIs for Peering List and Read have been updated to support blocking. ] raft: Remove expensive reflection from raft/mesh hot path ] systemd: set service type to notify. ] BUG FIXES: cache: fix a few minor goroutine leaks in leaf certs and the agent cache ] connect: reverts #17317 fix that caused a downstream error for Ingress/Mesh/Terminating GWs when their respective config entry does not already exist. ] namespaces: (Enterprise only)* fixes a bug where agent health checks stop syncing for all services on a node if the namespace of any service has been removed from the server. namespaces: (Enterprise only)* fixes a bug where namespaces are stuck in a deferred deletion state indefinitely under some conditions. Also fixes the Consul query metadata present in the HTTP headers of the namespace read and list endpoints. namespaces: adjusts the return type from HTTP list API to return the `api` module representation of a namespace. This fixes an error with the `consul namespace list` command when a namespace has a deferred deletion timestamp. peering: Fix a bug that caused server agents to continue cleaning up peering resources even after loss of leadership. ] peering: Fix issue where modifying the list of exported services did not correctly replicate changes for services that exist in a non-default namespace. ] BREAKING CHANGES: connect: Disable peering by default in connect proxies for Consul 1.13. This change was made to prevent inefficient polling queries from having a negative impact on server performance. Peering in Consul 1.13 is an experimental feature and is not recommended for use in production environments. If you still wish to use the experimental peering feature, ensure is set on all clients and servers. ] SECURITY: Update to UBI base image to 9.2. ] FEATURES: server: (Enterprise Only)* allow automatic license utilization reporting. ] IMPROVEMENTS: debug: change default setting of consul debug command. now default duration is 5ms and default log level is 'TRACE' ] systemd: set service type to notify. ] BUG FIXES: cache: fix a few minor goroutine leaks in leaf certs and the agent cache ] namespaces: (Enterprise only)* fixes a bug where namespaces are stuck in a deferred deletion state indefinitely under some conditions. Also fixes the Consul query metadata present in the HTTP headers of the namespace read and list endpoints. namespaces: adjusts the return type from HTTP list API to return the `api` module representation of a namespace. This fixes an error with the `consul namespace list` command when a namespace has a deferred deletion timestamp. peering: Fix a bug that caused server agents to continue cleaning up peering resources even after loss of

] BREAKING CHANGES: api: The `/v1/health/connect/` and `/v1/health/ingress/` endpoints now immediately return 403 "Permission Denied" errors whenever a token with insufficient `service:read` permissions is provided. Prior to this change, the endpoints returned a success code with an empty result list when a token with insufficient permissions was provided. ] peering: Removed deprecated backward-compatibility behavior. Upstream overrides in service-defaults will now only apply to peer upstreams when the `peer` field is provided. Visit the 1.16.x for more information. ] SECURITY: audit-logging: (Enterprise only)* limit `v1/operator/audit-hash` endpoint to ACL token with `operator:read` privileges. FEATURES: api: (Enterprise only) Add `POST /v1/operator/audit-hash` endpoint to calculate the hash of the data used by the audit log hash function and salt. cli: (Enterprise only) Add a new `consul operator audit hash` command to retrieve and compare the hash of the data used by the audit log hash function and salt. cli: Adds new command - `consul services export` - for exporting a service to a peer or partition ] connect: (Consul Enterprise only)* Implement order-by-locality failover. mesh: Add new permissive mTLS mode that allows sidecar proxies to forward incoming traffic unmodified to the application. This adds `AllowEnablingPermissiveMutualTLS` setting to the mesh config entry and the `MutualTLSMode` setting to proxy-defaults and service-defaults. ] mesh: Support configuring JWT authentication in Envoy. ] server: (Enterprise Only)* added server side RPC requests IP based read/write rate-limiter. ] server: (Enterprise Only)* allow automatic license utilization reporting. ] server: added server side RPC requests global read/write rate-limiter. ] xds: Add `property-override` built-in Envoy extension that directly patches Envoy resources. ] xds: Add a built-in Envoy extension that inserts External Authorization (ext_authz) network and HTTP filters. ] xds: Add a built-in Envoy extension that inserts Wasm HTTP filters. ] xds: Add a built-in Envoy extension that inserts Wasm network filters. ] IMPROVEMENTS: api: Support filtering for config entries. ] cli: Add `-filter` option to `consul config list` for filtering config entries. ] api: Enable setting query options on agent force-leave endpoint. ] audit-logging: (Enterprise only) enable error response and request body logging ] audit-logging: (Enterprise only)* enable error response and request body logging ca: automatically set up Vault's auto-tidy setting for tidyexpiredissuers when using Vault as a CA provider. ] ca: support Vault agent auto-auth config for Vault CA provider using AliCloud authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using AppRole authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using Azure MSI authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using JWT authentication. ] ca: support Vault agent auto-auth config for Vault CA provider using Kubernetes authentication. ] command: Adds ACL enabled to status output on agent startup. ] command: Allow creating ACL Token TTL with greater than 24 hours with the -expires-ttl flag. ] connect: (Enterprise Only)* Add support for specifying "Partition" and "Namespace" in Prepared Queries failover rules. connect: update supported envoy versions to 1.23.10, 1.24.8, 1.25.7, 1.26.2 ] connect: update supported envoy versions to 1.23.8, 1.24.6, 1.25.4, 1.26.0 ] fix metric names in /docs/agent/telemetry ] gateway: Change status condition reason for invalid certificate on a listener from "Accepted" to "ResolvedRefs". ] http: accept query parameters `datacenter`, `ap` (enterprise-only), and `namespace` (enterprise-only). Both short-hand and long-hand forms of these query params are now supported via the HTTP API (dc/datacenter, ap/partition, ns/namespace). ] systemd: set service type to

] ui: Update alerts to Hds::Alert component ] ui: Update to use Hds::Toast component to show notifications ] ui: update from <button> and <a> to design-system-components button <Hds::Button> ] ui: update typography to styles from hds ] BUG FIXES: Fix a race condition where an event is published before the data associated is commited to memdb. ] gateways: (Enterprise only)* Fixed a bug in API gateways where gateway configuration objects in non-default partitions did not reconcile properly. ] gateways: Fixed a bug in API gateways where binding a route that only targets a service imported from a peer results in the programmed gateway having no routes. ] gateways: Fixed a bug where API gateways were not being taken into account in determining xDS rate limits. ] peering: Fixes a bug where the importing partition was not added to peered failover targets, which causes issues when the importing partition is a non-default partition. ] ui: fixes ui tests run on CI ] xds: Fixed a bug where modifying ACLs on a token being actively used for an xDS connection caused all xDS updates to fail. ] BREAKING CHANGES: extensions: The Lua extension now targets local proxy listeners for the configured service's upstreams, rather than remote downstream listeners for the configured service, when ListenerType is set to outbound in extension configuration. See changelog entry for more details. ] SECURITY: Update to UBI base image to 9.2. ] Upgrade golang.org/x/net to address ] Upgrade to use Go 1.20.4. This resolves vulnerabilities (`go/scanner`), (`html/template`), (`net/textproto`) and (`mime/multipart`). Also, `golang.org/x/net` has been updated to v0.7.0 to resolve CVEs [CVE-2022-41721 ](https://github.com/advisories/GHSA-fxg5-wq6x-vr4w ), and [CVE-2022-41723 ](https://github.com/advisories/GHSA-vvpx-j8f3-3w6h .) ] extensions: Disable remote downstream proxy patching by Envoy Extensions other than AWS Lambda. Previously, an operator with service:write ACL permissions for an upstream service could modify Envoy proxy config for downstream services without equivalent permissions for those services. This issue only impacts the Lua extension. ] ] FEATURES: hcp: Add new metrics sink to collect, aggregate and export server metrics to HCP in OTEL format. ] IMPROVEMENTS: Fixes a performance issue in Raft where commit latency can increase by 100x or more when under heavy load. For more details see https://github.com/hashicorp/raft/pull/541. ] agent: add a configurable maximimum age (default: 7 days) to prevent servers re-joining a cluster with stale data ] agent: add new metrics to track cpu disk and memory usage for server hosts (defaults to: enabled) ] connect: update supported envoy versions to 1.22.11, 1.23.8, 1.24.6, 1.25.4 ] envoy: add `MaxEjectionPercent` and `BaseEjectionTime` to passive health check configs. ] hcp: Add support for linking existing Consul clusters to HCP management plane. ] logging: change snapshot log header from `agent.server.snapshot` to `agent.server.raft.snapshot` ] peering: allow re-establishing terminated peering from new token without deleting existing peering first. ] peering: gRPC queries for TrustBundleList, TrustBundleRead, PeeringList, and PeeringRead now support blocking semantics, reducing network and CPU demand. The HTTP APIs for Peering List and Read have been updated to support blocking. ] raft: Remove expensive reflection from raft/mesh hot path ] xds: rename envoyhcpmetricsbindsocketdir to envoytelemetrycollectorbindsocketdir to remove HCP naming references. ] BUG FIXES: Fix an bug where decoding some Config structs with unset pointer fields could fail with `reflect: call of reflect.Value.Type on zero Value`. ] acl: (Enterprise only)* Check permissions in correct partition/namespace when resolving service in non-default partition/namespace acl: Fix an issue where the anonymous token was synthesized in non-primary datacenters which could cause permission errors when federating clusters with ACL replication enabled. ] acls: Fix ACL bug that can result in sidecar proxies having incorrect endpoints. connect: Fix multiple inefficient behaviors when querying service health. ] gateways: Fix an bug where targeting a virtual service defined by a service-resolver was broken for

] grpc: ensure grpc resolver correctly uses lan/wan addresses on servers ] namespaces: adjusts the return type from HTTP list API to return the `api` module representation of a namespace. This fixes an error with the `consul namespace list` command when a namespace has a deferred deletion timestamp. peering: Fix issue where modifying the list of exported services did not correctly replicate changes for services that exist in a non-default namespace. ] peering: Fix issue where peer streams could incorrectly deregister services in various scenarios. ] peering: ensure that merged central configs of peered upstreams for partitioned downstreams work ] xds: Fix possible panic that can when generating clusters before the root certificates have been fetched. ] SECURITY: Upgrade to use Go 1.20.4. This resolves vulnerabilities (`go/scanner`), (`html/template`), (`net/textproto`) and (`mime/multipart`). Also, `golang.org/x/net` has been updated to v0.7.0 to resolve CVEs [CVE-2022-41721 ](https://github.com/advisories/GHSA-fxg5-wq6x-vr4w ), and [CVE-2022-41723 ](https://github.com/advisories/GHSA-vvpx-j8f3-3w6h .) ] IMPROVEMENTS: connect: update supported envoy versions to 1.21.6, 1.22.11, 1.23.8, 1.24.6 ] envoy: add `MaxEjectionPercent` and `BaseEjectionTime` to passive health check configs. ] hcp: Add support for linking existing Consul clusters to HCP management plane. ] logging: change snapshot log header from `agent.server.snapshot` to `agent.server.raft.snapshot` ] peering: allow re-establishing terminated peering from new token without deleting existing peering first. ] BUG FIXES: Fix an bug where decoding some Config structs with unset pointer fields could fail with `reflect: call of reflect.Value.Type on zero Value`. ] acl: (Enterprise only)* Check permissions in correct partition/namespace when resolving service in non-default partition/namespace acls: Fix ACL bug that can result in sidecar proxies having incorrect endpoints. connect: Fix multiple inefficient behaviors when querying service health. ] connect: fix a bug with Envoy potentially starting with incomplete configuration by not waiting enough for initial xDS configuration. ] grpc: ensure grpc resolver correctly uses lan/wan addresses on servers ] peering: Fix issue where peer streams could incorrectly deregister services in various scenarios. ] proxycfg: ensure that an irrecoverable error in proxycfg closes the xds session and triggers a replacement proxycfg watcher ] xds: Fix possible panic that can when generating clusters before the root certificates have been fetched. ] SECURITY: Upgrade to use Go 1.20.1. This resolves vulnerabilities in `crypto/tls` and in `net/http`. ] Upgrade to use Go 1.20.4. This resolves vulnerabilities (`go/scanner`), (`html/template`), (`net/textproto`) and (`mime/multipart`). Also, `golang.org/x/net` has been updated to v0.7.0 to resolve CVEs [CVE-2022-41721 ](https://github.com/advisories/GHSA-fxg5-wq6x-vr4w ), and [CVE-2022-41723 ](https://github.com/advisories/GHSA-vvpx-j8f3-3w6h .) ] IMPROVEMENTS: api: updated the go module directive to 1.18. ] connect: update supported envoy versions to 1.20.7, 1.21.6, 1.22.11, 1.23.8 ] sdk: updated the go module directive to 1.18. ] BUG FIXES: Fix an bug where decoding some Config structs with unset pointer fields could fail with `reflect: call of reflect.Value.Type on zero Value`. ] audit-logging: (Enterprise only) Fix a bug where `/agent/monitor` and `/agent/metrics` endpoints return a `Streaming not supported` error when audit logs are enabled. This also fixes the delay receiving logs when running `consul monitor` against an agent with audit logs enabled. ] ca: Fixes a bug where updating Vault CA Provider config would cause TLS issues in the service mesh ] connect: Fix multiple inefficient behaviors when querying service health. ] grpc: ensure grpc resolver correctly uses lan/wan addresses on servers ] peering: Fixes a bug that can lead to peering service deletes impacting the state of local services ] xds: Fix possible panic that can when generating clusters before the root certificates have been fetched. ] FEATURES: xds: Allow for configuring connect proxies to send service mesh telemetry to an HCP metrics collection service. ] BUG FIXES: audit-logging: (Enterprise only) Fix a bug where `/agent/monitor` and `/agent/metrics` endpoints return a `Streaming not supported` error when audit logs are

This also fixes the delay receiving logs when running `consul monitor` against an agent with audit logs enabled. ] ca: Fixes a bug where updating Vault CA Provider config would cause TLS issues in the service mesh ] cache: revert cache refactor which could cause blocking queries to never return ] gateway: (Enterprise only)* Fix bug where namespace/partition would fail to unmarshal for TCPServices. ] gateway: (Enterprise only)* Fix bug where namespace/partition would fail to unmarshal. ] gateway: (Enterprise only)* Fix bug where parent refs and service refs for a route in the same namespace as the route would fallback to the default namespace if the namespace was not specified in the configuration rather than falling back to the routes namespace. ] gateway: (Enterprise only)* Fix bug where routes defined in a different namespace than a gateway would fail to register. ]. gateways: Adds validation to ensure the API Gateway has a listener defined when created ] gateways: Fixes a bug API gateways using HTTP listeners were taking upwards of 15 seconds to get configured over xDS. ] peering: (Consul Enterprise only)* Fix issue where connect-enabled services with peer upstreams incorrectly required `service:write` access in the `default` namespace to query data, which was too restrictive. Now having `service:write` to any namespace is sufficient to query the peering data. peering: (Consul Enterprise only)* Fix issue where resolvers, routers, and splitters referencing peer targets may not work correctly for non-default partitions and namespaces. Enterprise customers leveraging peering are encouraged to upgrade both servers and agents to avoid this problem. peering: Fix issue resulting in prepared query failover to cluster peers never un-failing over. ] peering: Fixes a bug that can lead to peering service deletes impacting the state of local services ] peering: Fixes a bug where the importing partition was not added to peered failover targets, which causes issues when the importing partition is a non-default partition. ] raft_logstore: Fixes a bug where restoring a snapshot when using the experimental WAL storage backend causes a panic. ] ui: fix PUT token request with adding missed AccessorID property to requestBody ] ui: fix rendering issues on Overview and empty-states by addressing isHTMLSafe errors ] BUG FIXES: audit-logging: (Enterprise only) Fix a bug where `/agent/monitor` and `/agent/metrics` endpoints return a `Streaming not supported` error when audit logs are enabled. This also fixes the delay receiving logs when running `consul monitor` against an agent with audit logs enabled. ] ca: Fixes a bug where updating Vault CA Provider config would cause TLS issues in the service mesh ] peering: (Consul Enterprise only)* Fix issue where connect-enabled services with peer upstreams incorrectly required `service:write` access in the `default` namespace to query data, which was too restrictive. Now having `service:write` to any namespace is sufficient to query the peering data. peering: (Consul Enterprise only)* Fix issue where resolvers, routers, and splitters referencing peer targets may not work correctly for non-default partitions and namespaces. Enterprise customers leveraging peering are encouraged to upgrade both servers and agents to avoid this problem. peering: Fix issue resulting in prepared query failover to cluster peers never un-failing over. ] peering: Fixes a bug that can lead to peering service deletes impacting the state of local services ] peering: Fixes a bug where the importing partition was not added to peered failover targets, which causes issues when the importing partition is a non-default partition. ] ui: fix PUT token request with adding missed AccessorID property to requestBody ] IMPROVEMENTS: cli: added `-append-policy-id`, `-append-policy-name`, `-append-role-name`, and `-append-role-id` flags to the `consul token update` command. These flags allow updates to a token's policies/roles without having to override them

] cli: added `-append-service-identity` and `-append-node-identity` flags to the `consul token update` command. These flags allow updates to a token's node identities/service identities without having to override them. ] connect: Bump Envoy 1.22.5 to 1.22.7, 1.23.2 to 1.23.4, 1.24.0 to 1.24.2, add 1.25.1, remove 1.21.5 ] mesh: Add ServiceResolver RequestTimeout for route timeouts to make request timeouts configurable ] ui: support filtering API gateways in the ui and displaying their documentation links ] DEPRECATIONS: cli: Deprecate the `-merge-node-identites` and `-merge-service-identities` flags from the `consul token update` command in favor of: `-append-node-identity` and `-append-service-identity`. ] cli: Deprecate the `-merge-policies` and `-merge-roles` flags from the `consul token update` command in favor of: `-append-policy-id`, `-append-policy-name`, `-append-role-name`, and `-append-role-id`. ] BUG FIXES: cli: Fixes an issue with `consul connect envoy` where a log to STDOUT could malform JSON when used with `-bootstrap`. ] cli: Fixes an issue with `consul connect envoy` where grpc-disabled agents were not error-handled correctly. ] cli: ensure acl token read -self works ] cli: fix panic read non-existent acl policy ] gateways: fix HTTPRoute bug where service weights could be less than or equal to 0 and result in a downstream envoy protocol error ] gateways: fix HTTPRoute bug where services with a weight not divisible by 10000 are never registered properly ] mesh: Fix resolution of service resolvers with subsets for external upstreams ] proxycfg: ensure that an irrecoverable error in proxycfg closes the xds session and triggers a replacement proxycfg watcher ] proxycfg: fix a bug where terminating gateways were not cleaning up deleted service resolvers for their referenced services ] ui: Fix issue with lists and filters not rendering properly ] SECURITY: Upgrade to use Go 1.20.1. This resolves vulnerabilities in `crypto/tls` and in `net/http`. ] IMPROVEMENTS: container: Upgrade container image to use to Alpine 3.17. ] mesh: Add ServiceResolver RequestTimeout for route timeouts to make request timeouts configurable ] BUG FIXES: mesh: Fix resolution of service resolvers with subsets for external upstreams ] peering: Fix bug where services were incorrectly imported as connect-enabled. ] peering: Fix issue where mesh gateways would use the wrong address when contacting a remote peer with the same datacenter name. ] peering: Fix issue where secondary wan-federated datacenters could not be used as peering acceptors. ] proxycfg: fix a bug where terminating gateways were not cleaning up deleted service resolvers for their referenced services ] SECURITY: Upgrade to use Go 1.19.6. This resolves vulnerabilities in `crypto/tls` and in `net/http`. ] IMPROVEMENTS: xds: Removed a bottleneck in Envoy config generation. ] container: Upgrade container image to use to Alpine 3.17. ] mesh: Add ServiceResolver RequestTimeout for route timeouts to make request timeouts configurable ] BUG FIXES: mesh: Fix resolution of service resolvers with subsets for external upstreams ] proxycfg: fix a bug where terminating gateways were not cleaning up deleted service resolvers for their referenced services ] KNOWN ISSUES: connect: A race condition can cause some service instances to lose their ability to communicate in the mesh after 72 hours (LeafCertTTL) due to a problem with leaf certificate rotation. This bug is fixed in Consul v1.15.2 by . BREAKING CHANGES: acl errors: Delete and get requests now return descriptive errors when the specified resource cannot be found. Other ACL request errors provide more information about when a resource is missing. Add error for when the ACL system has not been bootstrapped. Delete Token/Policy/AuthMethod/Role/BindingRule endpoints now return 404 when the resource cannot be

New error formats: "Requested does not exist: ACL not found", " not found in namespace $NAMESPACE: ACL not found" Read Token/Policy/Role endpoints now return 404 when the resource cannot be found. New error format: "Cannot find * to delete" Logout now returns a 401 error when the supplied token cannot be found New error format: "Supplied token does not exist" Token Self endpoint now returns 404 when the token cannot be found. New error format: "Supplied token does not exist" ] acl: remove all acl migration functionality and references to the legacy acl system. ] acl: remove all functionality and references for legacy acl policies. ] config: Deprecate `-join`, `-join-wan`, `startjoin`, and `startjoin_wan`. These options are now aliases of `-retry-join`, `-retry-join-wan`, `retryjoin`, and `retryjoin_wan`, respectively. ] connect: Add `peer` field to service-defaults upstream overrides. The addition of this field makes it possible to apply upstream overrides only to peer services. Prior to this change, overrides would be applied based on matching the `namespace` and `name` fields only, which means users could not have different configuration for local versus peer services. With this change, peer upstreams are only affected if the `peer` field matches the destination peer name. ] connect: Consul will now error and exit when using the `consul connect envoy` command if the Envoy version is incompatible. To ignore this check use flag `--ignore-envoy-compatibility` ] extensions: Refactor Lambda integration to get configured with the Envoy extensions field on service-defaults configuration entries. ] ingress-gateway: upstream cluster will have empty outlier_detection if passive health check is unspecified ] xds: Remove the `connect.enableserverlessplugin` agent configuration option. Now Lambda integration is enabled by default. ] SECURITY: Upgrade to use Go 1.20.1. This resolves vulnerabilities in `crypto/tls` and in `net/http`. ] FEATURES: API Gateway (Beta)* This version adds support for API gateway on VMs. API gateway provides a highly-configurable ingress for requests coming into a Consul network. For more information, refer to the documentation. ] acl: Add new `acl.tokens.configfileregistration` config field which specifies the token used to register services and checks that are defined in config files. ] acl: anonymous token is logged as 'anonymous token' instead of its accessor ID ] cli: adds new CLI commands `consul troubleshoot upstreams` and `consul troubleshoot proxy` to troubleshoot Consul's service mesh configuration and network issues. ] command: Adds the `operator usage instances` subcommand for displaying total services, connect service instances and billable service instances in the local datacenter or globally. ] config-entry(ingress-gateway): support outlier detection (passive health check) for upstream cluster ] connect: adds support for Envoy . Access logging can be enabled using the config entry. ] xds: Add a built-in Envoy extension that inserts Lua HTTP filters. ] xds: Insert originator service identity into Envoy's dynamic metadata under the `consul` namespace. ] IMPROVEMENTS: connect: for early awareness of Envoy incompatibilities, when using the `consul connect envoy` command the Envoy version will now be checked for compatibility. If incompatible Consul will error and exit. ] grpc: client agents will switch server on error, and automatically retry on `RESOURCE_EXHAUSTED` responses ] raft: add an operator api endpoint and a command to initiate raft leadership transfer. ] acl: Added option to allow for an operator-generated bootstrap token to be passed to the `acl bootstrap` command. ] agent: Give better error when client specifies wrong datacenter when auto-encrypt is enabled. ] api: updated the go module directive to 1.18. ] ca: support Vault agent auto-auth config for Vault CA provider using AWS/GCP authentication. ] cli: always use name "global" for proxy-defaults config entries ] cli: connect envoy command errors if grpc ports are not open ] client: add support for RemoveEmptyTags in Prepared Queries

] connect: Warn if ACLs are enabled but a token is not provided to envoy ] container: Upgrade container image to use to Alpine 3.17. ] dns: support RFC 2782 SRV lookups for prepared queries using format `<query id or name>.tcp.query] ingress-gateways: Don't log error when gateway is registered without a config entry ] licensing: (Enterprise Only)* Consul Enterprise non-terminating production licenses do not degrade or terminate Consul upon expiration. They will only fail when trying to upgrade to a newer version of Consul. Evaluation licenses still terminate. raft: Added experimental `wal` backend for log storage. ] sdk: updated the go module directive to 1.18. ] telemetry: Added a `consul.xds.server.streamsUnauthenticated` metric to track the number of active xDS streams handled by the server that are unauthenticated because ACLs are not enabled or ACL tokens were missing. ] ui: Update sidebar width to 280px ] ui: update Ember version to 3.27; ] DEPRECATIONS: acl: Deprecate the `token` query parameter and warn when it is used for authentication. ] cli: The `-id` flag on acl token operations has been changed to `-accessor-id` for clarity in documentation. The `-id` flag will continue to work, but operators should use `-accessor-id` in the future. ] BUG FIXES: agent configuration: Fix issue of using unix socket when https is used. ] cache: refactor agent cache fetching to prevent unnecessary fetches on error ] cli: fatal error if config file does not have HCL or JSON extension, instead of warn and skip ] cli: fix ACL token processing unexpected precedence ] peering: Fix bug where services were incorrectly imported as connect-enabled. ] peering: Fix issue where mesh gateways would use the wrong address when contacting a remote peer with the same datacenter name. ] peering: Fix issue where secondary wan-federated datacenters could not be used as peering acceptors. ] BREAKING CHANGES: connect: Fix configuration merging for transparent proxy upstreams. Proxy-defaults and service-defaults config entries were not correctly merged for implicit upstreams in transparent proxy mode and would result in some configuration not being applied. To avoid issues when upgrading, ensure that any proxy-defaults or service-defaults have correct configuration for upstreams, since all fields will now be properly used to configure proxies. ] peering: Newly created peering connections must use only lowercase characters in the `name` field. Existing peerings with uppercase characters will not be modified, but they may encounter issues in various circumstances. To maintain forward compatibility and avoid issues, it is recommended to destroy and re-create any invalid peering connections so that they do not have a name containing uppercase characters. ] FEATURES: connect: add flags `envoy-ready-bind-port` and `envoy-ready-bind-address` to the `consul connect envoy` command that allows configuration of readiness probe on proxy for any service kind. ] deps: update to latest go-discover to provide ECS auto-discover capabilities. ] IMPROVEMENTS: acl: relax permissions on the `WatchServers`, `WatchRoots` and `GetSupportedDataplaneFeatures` gRPC endpoints to accept any* valid ACL token ] connect: Add support for ConsulResolver to specifies a filter expression ] grpc: Use new balancer implementation to reduce periodic WARN logs when shuffling servers. ] partition: (Consul Enterprise only)* when loading service from on-disk config file or sending API request to agent endpoint, if the partition is unspecified, consul will default the partition in the request to agent's partition ] BUG FIXES: agent: Fix assignment of error when auto-reloading cert and key file changes. ] agent: Fix issue where the agent cache would incorrectly mark protobuf objects as updated. ] cli: Fix issue where `consul connect envoy` was unable to configure TLS over unix-sockets to gRPC. ] connect: (Consul Enterprise only)* Fix issue where upstream configuration from proxy-defaults and service-defaults was not properly

This could occur when a mixture of empty-strings and "default" were used for the namespace or partition fields. connect: Fix issue where service-resolver protocol checks incorrectly errored for failover peer targets. ] connect: Fix issue where watches on upstream failover peer targets did not always query the correct data. ] xds: fix bug where sessions for locally-managed services could fail with "this server has too many xDS streams open" ] FEATURES: connect: add flags `envoy-ready-bind-port` and `envoy-ready-bind-address` to the `consul connect envoy` command that allows configuration of readiness probe on proxy for any service kind. ] deps: update to latest go-discover to provide ECS auto-discover capabilities. ] IMPROVEMENTS: grpc: Use new balancer implementation to reduce periodic WARN logs when shuffling servers. ] partition: (Consul Enterprise only)* when loading service from on-disk config file or sending API request to agent endpoint, if the partition is unspecified, consul will default the partition in the request to agent's partition ] BUG FIXES: agent: Fix assignment of error when auto-reloading cert and key file changes. ] FEATURES: deps: update to latest go-discover to provide ECS auto-discover capabilities. ] IMPROVEMENTS: grpc: Use new balancer implementation to reduce periodic WARN logs when shuffling servers. ] BUG FIXES: agent: Fix assignment of error when auto-reloading cert and key file changes. ] SECURITY: Upgrade to use Go 1.19.4. This resolves a vulnerability where restricted files can be read on Windows. ] Upgrades `golang.org/x/net` to prevent a denial of service by excessive memory usage caused by HTTP2 requests. ] FEATURES: ui: Add field for fallback server addresses to peer token generation form ] IMPROVEMENTS: connect: ensure all vault connect CA tests use limited privilege tokens ] BUG FIXES: agent: (Enterprise Only)* Ensure configIntentionsConvertToList does not compare empty strings with populated strings when filtering intentions created prior to AdminPartitions. connect: Fix issue where DialedDirectly configuration was not used by Consul Dataplane. ] connect: Fix peering failovers ignoring local mesh gateway configuration. ] connect: Fixed issue where using Vault 1.11+ as CA provider in a secondary datacenter would eventually break Intermediate CAs ] SECURITY: Upgrade to use Go 1.18.9. This resolves a vulnerability where restricted files can be read on Windows. ] Upgrades `golang.org/x/net` to prevent a denial of service by excessive memory usage caused by HTTP2 requests. ] IMPROVEMENTS: connect: ensure all vault connect CA tests use limited privilege tokens ] BUG FIXES: agent: (Enterprise Only)* Ensure configIntentionsConvertToList does not compare empty strings with populated strings when filtering intentions created prior to AdminPartitions. cli: (Enterprise Only)* Fix issue where `consul partition update` subcommand was not registered and therefore not available through the cli. connect: Fixed issue where using Vault 1.11+ as CA provider in a secondary datacenter would eventually break Intermediate CAs ] SECURITY: Upgrade to use Go 1.18.9. This resolves a vulnerability where restricted files can be read on Windows. ] Upgrades `golang.org/x/net` to prevent a denial of service by excessive memory usage caused by HTTP2 requests. ] IMPROVEMENTS: connect: ensure all vault connect CA tests use limited privilege tokens ] BUG FIXES: agent: (Enterprise Only)* Ensure configIntentionsConvertToList does not compare empty strings with populated strings when filtering intentions created prior to AdminPartitions. cli: (Enterprise Only)* Fix issue where `consul partition update` subcommand was not registered and therefore not available through the cli. connect: Fixed issue where using Vault

as CA provider in a secondary datacenter would eventually break Intermediate CAs ] FEATURES: connect: Add localidletimeoutms to allow configuring the Envoy route idle timeout on localapp connect: Add IdleTimeout to service-router to allow configuring the Envoy route idle timeout ] snapshot: (Enterprise Only)* Add support for the snapshot agent to use an IAM role for authentication/authorization when managing snapshots in S3. IMPROVEMENTS: dns: Add support for cluster peering `.service` and `.node` DNS queries. ] BUG FIXES: acl: avoid debug log spam in secondary datacenter servers due to management token not being initialized. ] agent: Fixed issue where blocking queries with short waits could timeout on the client ] ca: Fixed issue where using Vault as Connect CA with Vault-managed policies would error on start-up if the intermediate PKI mount existed but was empty ] cli: (Enterprise Only)* Fix issue where `consul partition update` subcommand was not registered and therefore not available through the cli. connect: Fixed issue where using Vault 1.11+ as CA provider would eventually break Intermediate CAs in primary datacenters. A separate fix is needed to address the same issue in secondary datacenters. ] ] namespace: (Enterprise Only)* Fix a bug that caused blocking queries during namespace replication to timeout peering: better represent non-passing states during peer check flattening ] peering: fix the limit of replication gRPC message; set to 8MB ] IMPROVEMENTS: auto-config: Relax the validation on auto-config JWT authorization to allow non-whitespace, non-quote characters in node names. ] raft: Allow nonVoter to initiate an election to avoid having an election infinite loop when a Voter is converted to NonVoter ] raft: Cap maximum grpc wait time when heartbeating to heartbeatTimeout/2 ] raft: Fix a race condition where the snapshot file is closed without being opened ] BUG FIXES: agent: Fixed issue where blocking queries with short waits could timeout on the client ] ca: Fixed issue where using Vault as Connect CA with Vault-managed policies would error on start-up if the intermediate PKI mount existed but was empty ] connect: Fixed issue where using Vault 1.11+ as CA provider would eventually break Intermediate CAs in primary datacenters. A separate fix is needed to address the same issue in secondary datacenters. ] ] connect: fixed bug where endpoint updates for new xDS clusters could block for 15s before being sent to Envoy. ] connect: strip port from DNS SANs for ingress gateway leaf certificate to avoid an invalid hostname error when using the Vault provider. ] debug: fixed bug that caused consul debug CLI to error on ACL-disabled clusters ] deps: update go-memdb, fixing goroutine leak ] ] namespace: (Enterprise Only)* Fix a bug that caused blocking queries during namespace replication to timeout namespace: (Enterprise Only)* Fixed a bug where a client may incorrectly log that namespaces were not enabled in the local datacenter peering: better represent non-passing states during peer check flattening ] peering: fix the error of wan address isn't taken by the peering token. ] peering: when wan address is set, peering stream should use the wan address. ] BUG FIXES: agent: Fixed issue where blocking queries with short waits could timeout on the client ] ca: Fixed issue where using Vault as Connect CA with Vault-managed policies would error on start-up if the intermediate PKI mount existed but was empty ] connect: Fixed issue where using Vault 1.11+ as CA provider would eventually break Intermediate CAs in primary datacenters. A separate fix is needed to address the same issue in secondary datacenters. ] ] connect: fixed bug where endpoint updates for new xDS clusters could block for 15s before being sent to Envoy. ] connect: strip port from DNS SANs for ingress gateway leaf certificate to avoid an invalid hostname error when using the Vault

] debug: fixed bug that caused consul debug CLI to error on ACL-disabled clusters ] deps: update go-memdb, fixing goroutine leak ] ] namespace: (Enterprise Only)* Fix a bug that caused blocking queries during namespace replication to timeout namespace: (Enterprise Only)* Fixed a bug where a client may incorrectly log that namespaces were not enabled in the local datacenter BUG FIXES: cli: Fix issue where `consul connect envoy` incorrectly uses the HTTPS API configuration for xDS connections. ] sdk: Fix SDK testutil backwards compatibility by only configuring grpc_tls port for new Consul versions. ] KNOWN ISSUES: cli: `consul connect envoy` incorrectly enables TLS for gRPC connections when the HTTP API is TLS-enabled. BREAKING CHANGES: config: Add new `ports.grpc_tls` configuration option. Introduce a new port to better separate TLS config from the existing `ports.grpc` config. The new `ports.grpc_tls` only supports TLS encrypted communication. The existing `ports.grpc` now only supports plain-text communication. ] config: update 1.14 config defaults: Enable `peering` and `connect` by default. ] config: update 1.14 config defaults: Set gRPC TLS port default value to 8503 ] connect: Removes support for Envoy 1.20 ] peering: Rename `PeerName` to `Peer` on prepared queries and exported services. ] xds: Convert service mesh failover to use Envoy's aggregate clusters. This changes the names of some . ] SECURITY: Ensure that data imported from peers is filtered by ACLs at the UI Nodes/Services endpoints ] FEATURES: DNS-proxy support via gRPC request. ] cli: Add -node-name flag to redirect-traffic command to support running in environments without client agents. ] cli: Add `-consul-dns-port` flag to the `consul connect redirect-traffic` command to allow forwarding DNS traffic to a specific Consul DNS port. ] connect: Add Envoy connection balancing configuration fields. ] grpc: Added metrics for external gRPC server. Added `server_type=internal|external` label to gRPC metrics. ] http: Add new `get-or-empty` operation to the txn api. Refer to the for more information. ] peering: Add mesh gateway local mode support for cluster peering. ] peering: Add support for stale queries for trust bundle lookups ] peering: Add support to failover to services running on cluster peers. ] peering: Add support to redirect to services running on cluster peers with service resolvers. ] peering: Ensure un-exported services get deleted even if the un-export happens while cluster peering replication is down. ] peering: add support for routine peering control-plane traffic through mesh gateways ] sdk: Configure `iptables` to forward DNS traffic to a specific DNS port. ] telemetry: emit memberlist size metrics and broadcast queue depth metric. ] ui: Added support for central config merging ] ui: Create peerings detail page ] ui: Detect a TokenSecretID cookie and passthrough to localStorage ] ui: Display notice banner on nodes index page if synthetic nodes are being filtered. ] ui: Filter agentless (synthetic) nodes from the nodes list page. ] ui: Filter out node health checks on agentless service instances ] ui: Remove node meta on service instances when using agentless and consolidate external-source labels on service instances page if they all match. ] ui: Removed reference to node name on service instance page when using agentless ] ui: Use withCredentials for all HTTP API requests ] xds: servers will limit the number of concurrent xDS streams they can handle to balance the load across all servers ] IMPROVEMENTS: peering: Add peering datacenter and partition to initial handshake. ] xds: Added a rate limiter to the delivery of proxy config updates, to prevent updates to "global" resources such as wildcard intentions from overwhelming servers (see: `xds.updatemaxper_second` config field) ] xds: Removed a bottleneck in Envoy config generation, enabling a higher number of dataplanes per server ] agent/hcp: add initial HashiCorp Cloud Platform integration ] agent: Added configuration option

] api: Add filtering support to Catalog's List Services (v1/catalog/services) ] api: Increase max number of operations inside a transaction for requests to /v1/txn (128) ] auto-config: Relax the validation on auto-config JWT authorization to allow non-whitespace, non-quote characters in node names. ] config-entry: Validate that service-resolver `Failover`s and `Redirect`s only specify `Partition` and `Namespace` on Consul Enterprise. This prevents scenarios where OSS Consul would save service-resolvers that require Consul Enterprise. ] connect: Add Envoy 1.24.0 to support matrix ] connect: Bump Envoy 1.20 to 1.20.7, 1.21 to 1.21.5 and 1.22 to 1.22.5 ] connect: service-router destinations have gained a `RetryOn` field for specifying the conditions when Envoy should retry requests beyond specific status codes and generic connection failure which already exists. ] dns/peering: (Enterprise Only)* Support addresses in the formats `<servicename>.virtual.<namespace>.ns.<partition>.ap.<peername>.peer.consul` and `<servicename>.virtual.<partition>.ap.<peername>.peer.consul`. This longer form address that allows specifying `.peer` would need to be used for tproxy DNS requests made within non-default partitions for imported services. dns: (Enterprise Only)* All enterprise locality labels are now optional in DNS lookups. For example, service lookups support the following format: `] integ test: fix flakiness due to test condition from retry app endoint ] metrics: Service RPC calls less than 1ms are now emitted as a decimal number. ] peering: adds an internally managed server certificate for automatic TLS between servers in peer clusters. ] peering: require TLS for peering connections using server cert signed by Connect CA ] peering: return information about the health of the peering when the leader is queried to read a peering. ] raft: Allow nonVoter to initiate an election to avoid having an election infinite loop when a Voter is converted to NonVoter ] raft: Cap maximum grpc wait time when heartbeating to heartbeatTimeout/2 ] raft: Fix a race condition where the snapshot file is closed without being opened ] telemetry: Added a `consul.xds.server.streamStart` metric to measure time taken to first generate xDS resources for an xDS stream. ] ui: Improve guidance around topology visualisation ] xds: Set `maxejectionpercent` on Envoy's outlier detection to 100% for peered services. ] xds: configure Envoy `alpn_protocols` for connect-proxy and ingress-gateway based on service protocol. ] BUG FIXES: checks: Do not set interval as timeout value ] checks: If set, use proxy address for automatically added sidecar check instead of service address. ] cli: Fix Consul kv CLI 'GET' flags 'keys' and 'recurse' to be set together ] connect: Fix issue where mesh-gateway settings were not properly inherited from configuration entries. ] connect: fixed bug where endpoint updates for new xDS clusters could block for 15s before being sent to Envoy. ] connect: strip port from DNS SANs for ingress gateway leaf certificate to avoid an invalid hostname error when using the Vault provider. ] debug: fixed bug that caused consul debug CLI to error on ACL-disabled clusters ] deps: update go-memdb, fixing goroutine leak ] ] grpc: Merge proxy-defaults and service-defaults in GetEnvoyBootstrapParams response. ] metrics: Add duplicate metrics that have only a single "consul" prefix for all existing metrics with double ("consulconsul_") prefix, with the intent to standardize on single prefixes. ] namespace: (Enterprise Only)* Fixed a bug where a client may incorrectly log that namespaces were not enabled in the local datacenter peering: Fix a bug that resulted in /v1/agent/metrics returning an error. ] peering: fix nil pointer in calling handleUpdateService ] peering: fix the error of wan address isn't taken by the peering token. ] peering: when wan address is set, peering stream should use the wan address. ] proxycfg(mesh-gateway): Fix issue where deregistered services are not removed from mesh-gateway

] server: fix goroutine/memory leaks in the xDS subsystem (these were present regardless of whether or not xDS was in-use) ] server: fixes the error trying to source proxy configuration for http checks, in case of proxies using consul-dataplane. ] xds: Central service configuration (proxy-defaults and service-defaults) is now correctly applied to Consul Dataplane proxies ] NOTES: deps: Upgrade to use Go 1.19.2 ] FEATURES: agent: Added a new config option `rpcclienttimeout` to tune timeouts for client RPC requests ] config-entry(ingress-gateway): Added support for `max_connections` for upstream clusters ] IMPROVEMENTS: connect/ca: Log a warning message instead of erroring when attempting to update the intermediate pki mount when using the Vault provider. ] connect: Added gateway options to Envoy proxy config for enabling tcp keepalives on terminating gateway upstreams and mesh gateways in remote datacenters. ] connect: Bump Envoy 1.20 to 1.20.7, 1.21 to 1.21.5 and 1.22 to 1.22.5 ] licensing: (Enterprise Only)* Consul Enterprise production licenses do not degrade or terminate Consul upon expiration. They will only fail when trying to upgrade to a newer version of Consul. Evaluation licenses still terminate. ] BUG FIXES: agent: avoid leaking the alias check runner goroutine when the check is de-registered ] ca: fix a masked bug in leaf cert generation that would not be notified of root cert rotation after the first one ] cache: prevent goroutine leak in agent cache ] checks: Fixed a bug that prevented registration of UDP health checks from agent configuration files, such as service definition files with embedded health check definitions. ] connect: Fixed a bug where transparent proxy does not correctly spawn listeners for upstreams to service-resolvers. ] snapshot-agent: (Enterprise only)* Fix a bug when a session is not found in Consul, which leads the agent to panic. FEATURES: agent: Added a new config option `rpcclienttimeout` to tune timeouts for client RPC requests ] agent: Added information about build date alongside other version information for Consul. Extended /agent/self endpoint and `consul version` commands to report this. Agent also reports build date in log on startup. ] config-entry(ingress-gateway): Added support for `max_connections` for upstream clusters ] IMPROVEMENTS: connect/ca: Log a warning message instead of erroring when attempting to update the intermediate pki mount when using the Vault provider. ] connect: Added gateway options to Envoy proxy config for enabling tcp keepalives on terminating gateway upstreams and mesh gateways in remote datacenters. ] connect: Bump Envoy 1.20 to 1.20.7, 1.21 to 1.21.5 and 1.22 to 1.22.5 ] licensing: (Enterprise Only)* Consul Enterprise production licenses do not degrade or terminate Consul upon expiration. They will only fail when trying to upgrade to a newer version of Consul. Evaluation licenses still terminate. ] BUG FIXES: agent: avoid leaking the alias check runner goroutine when the check is de-registered ] ca: fix a masked bug in leaf cert generation that would not be notified of root cert rotation after the first one ] cache: prevent goroutine leak in agent cache ] connect: Fixed a bug where transparent proxy does not correctly spawn listeners for upstreams to service-resolvers. ] snapshot-agent: (Enterprise only)* Fix a bug when a session is not found in Consul, which leads the agent to panic. FEATURES: agent: Added a new config option `rpcclienttimeout` to tune timeouts for client RPC requests ] config-entry(ingress-gateway): Added support for `max_connections` for upstream clusters ] IMPROVEMENTS: connect/ca: Log a warning message instead of erroring when attempting to update the intermediate pki mount when using the Vault provider. ] connect: Added gateway options to Envoy proxy config for enabling tcp keepalives on terminating gateway upstreams and mesh gateways in remote datacenters. ] connect: Bump Envoy 1.20 to

] BUG FIXES: agent: avoid leaking the alias check runner goroutine when the check is de-registered ] ca: fix a masked bug in leaf cert generation that would not be notified of root cert rotation after the first one ] cache: prevent goroutine leak in agent cache ] snapshot-agent: (Enterprise only)* Fix a bug when a session is not found in Consul, which leads the agent to panic. BUG FIXES: kvs: Fixed a bug where query options were not being applied to KVS.Get RPC operations. ] BREAKING CHANGES: ca: If using Vault as the service mesh CA provider, the Vault policy used by Consul now requires the `update` capability on the intermediate PKI's tune mount configuration endpoint, such as `/sys/mounts/connect_inter/tune`. The breaking nature of this change is resolved in 1.13.3. Refer to for more information. SECURITY: auto-config: Added input validation for auto-config JWT authorization checks. Prior to this change, it was possible for malicious actors to construct requests which incorrectly pass custom JWT claim validation for the `AutoConfig.InitialConfiguration` endpoint. Now, only a subset of characters are allowed for the input before evaluating the bexpr. ] connect: Added URI length checks to ConnectCA CSR requests. Prior to this change, it was possible for a malicious actor to designate multiple SAN URI values in a call to the `ConnectCA.Sign` endpoint. The endpoint now only allows for exactly one SAN URI to be specified. ] FEATURES: cli: Adds new subcommands for `peering` workflows. Refer to the for more information. ] connect: Server address changes are streamed to peers ] service-defaults: Added support for `localrequesttimeout_ms` and `localconnecttimeout_ms` in servicedefaults config entry ] IMPROVEMENTS: connect: Bump latest Envoy to 1.23.1 in test matrix ] connect: expose new tracing configuration on envoy ] envoy: adds additional Envoy outlier ejection parameters to passive health check configurations. ] metrics: add labels of segment, partition, network area, network (lan or wan) to serf and memberlist metrics ] peering: Validate peering tokens for server name conflicts ] snapshot agent: (Enterprise only)* Add support for path-based addressing when using s3 backend. ui: Reuse connections for requests to /v1/internal/ui/metrics-proxy/ ] BUG FIXES: agent: Fixes an issue where an agent that fails to start due to bad addresses won't clean up any existing listeners ] api: Fix a breaking change caused by renaming `QueryDatacenterOptions` to `QueryFailoverOptions`. This adds `QueryDatacenterOptions` back as an alias to `QueryFailoverOptions` and marks it as deprecated. ] ca: Fixed a bug with the Vault CA provider where the intermediate PKI mount and leaf cert role were not being updated when the CA configuration was changed. ] cli: When launching a sidecar proxy with `consul connect envoy` or `consul connect proxy`, the `-sidecar-for` service ID argument is now treated as case-insensitive. ] connect: Fix issue where `autoconfig` and `autoencrypt` could unintentionally enable TLS for gRPC xDS connections. ] connect: Fixed a bug where old root CAs would be removed from the primary datacenter after switching providers and restarting the cluster. ] connect: Fixed an issue where intermediate certificates could build up in the root CA because they were never being pruned after expiring. ] connect: Fixed some spurious issues during peering establishment when a follower is dialed ] envoy: validate name before deleting proxy default configurations. ] peering: Fix issue preventing deletion and recreation of peerings in TERMINATED state. ] rpc: Adds max jitter to client deadlines to prevent i/o deadline errors on blocking queries ] tls: undo breaking change that prevented setting TLS for gRPC when using config flags available in Consul

] ui: Removed Overview page from HCP instalations ] BREAKING CHANGES: ca: If using Vault as the service mesh CA provider, the Vault policy used by Consul now requires the `update` capability on the intermediate PKI's tune mount configuration endpoint, such as `/sys/mounts/connect_inter/tune`. The breaking nature of this change is resolved in 1.12.6. Refer to for more information. SECURITY: auto-config: Added input validation for auto-config JWT authorization checks. Prior to this change, it was possible for malicious actors to construct requests which incorrectly pass custom JWT claim validation for the `AutoConfig.InitialConfiguration` endpoint. Now, only a subset of characters are allowed for the input before evaluating the bexpr. ] connect: Added URI length checks to ConnectCA CSR requests. Prior to this change, it was possible for a malicious actor to designate multiple SAN URI values in a call to the `ConnectCA.Sign` endpoint. The endpoint now only allows for exactly one SAN URI to be specified. ] IMPROVEMENTS: envoy: adds additional Envoy outlier ejection parameters to passive health check configurations. ] metrics: add labels of segment, partition, network area, network (lan or wan) to serf and memberlist metrics ] snapshot agent: (Enterprise only)* Add support for path-based addressing when using s3 backend. ui: Reuse connections for requests to /v1/internal/ui/metrics-proxy/ ] BUG FIXES: ca: Fixed a bug with the Vault CA provider where the intermediate PKI mount and leaf cert role were not being updated when the CA configuration was changed. ] cli: When launching a sidecar proxy with `consul connect envoy` or `consul connect proxy`, the `-sidecar-for` service ID argument is now treated as case-insensitive. ] connect: Fixed a bug where old root CAs would be removed from the primary datacenter after switching providers and restarting the cluster. ] connect: Fixed an issue where intermediate certificates could build up in the root CA because they were never being pruned after expiring. ] envoy: validate name before deleting proxy default configurations. ] rpc: Adds max jitter to client deadlines to prevent i/o deadline errors on blocking queries ] ui: Removed Overview page from HCP instalations ] BREAKING CHANGES: ca: If using Vault as the service mesh CA provider, the Vault policy used by Consul now requires the `update` capability on the intermediate PKI's tune mount configuration endpoint, such as `/sys/mounts/connect_inter/tune`. The breaking nature of this change is resolved in 1.11.11. Refer to for more information. SECURITY: auto-config: Added input validation for auto-config JWT authorization checks. Prior to this change, it was possible for malicious actors to construct requests which incorrectly pass custom JWT claim validation for the `AutoConfig.InitialConfiguration` endpoint. Now, only a subset of characters are allowed for the input before evaluating the bexpr. ] connect: Added URI length checks to ConnectCA CSR requests. Prior to this change, it was possible for a malicious actor to designate multiple SAN URI values in a call to the `ConnectCA.Sign` endpoint. The endpoint now only allows for exactly one SAN URI to be specified. ] IMPROVEMENTS: metrics: add labels of segment, partition, network area, network (lan or wan) to serf and memberlist metrics ] snapshot agent: (Enterprise only)* Add support for path-based addressing when using s3 backend. BUG FIXES: ca: Fixed a bug with the Vault CA provider where the intermediate PKI mount and leaf cert role were not being updated when the CA configuration was changed. ] cli: When launching a sidecar proxy with `consul connect envoy` or `consul connect proxy`, the `-sidecar-for` service ID argument is now treated as case-insensitive. ] connect: Fixed a bug where old root CAs would be removed from the primary datacenter after switching providers and restarting the

] connect: Fixed an issue where intermediate certificates could build up in the root CA because they were never being pruned after expiring. ] rpc: Adds a deadline to client RPC calls, so that streams will no longer hang indefinitely in unstable network conditions. ] ] rpc: Adds max jitter to client deadlines to prevent i/o deadline errors on blocking queries ] BUG FIXES: agent: Fixed a compatibility issue when restoring snapshots from pre-1.13.0 versions of Consul ] ] connect: Fixed some spurious issues during peering establishment when a follower is dialed ] BUG FIXES: cli: when `acl token read` is used with the `-self` and `-expanded` flags, return an error instead of panicking ] connect: Fixed a goroutine/memory leak that would occur when using the ingress gateway. ] connect: Ingress gateways with a wildcard service entry should no longer pick up non-connect services as upstreams. connect: Terminating gateways with a wildcard service entry should no longer pick up connect services as upstreams. ] ui: Fixes an issue where client side validation errors were not showing in certain areas ] BUG FIXES: connect: Fixed a goroutine/memory leak that would occur when using the ingress gateway. ] connect: Ingress gateways with a wildcard service entry should no longer pick up non-connect services as upstreams. connect: Terminating gateways with a wildcard service entry should no longer pick up connect services as upstreams. ] BREAKING CHANGES: config-entry: Exporting a specific service name across all namespace is invalid. connect: contains an upgrade compatibility issue when restoring snapshots containing service mesh proxy registrations from pre-1.13 versions of Consul ]. Fixed in 1.13.1 ]. Refer to for more information. connect: if using auto-encrypt or auto-config, TLS is required for gRPC communication between Envoy and Consul as of 1.13.0; this TLS for gRPC requirement will be removed in a future 1.13 patch release. Refer to for more information. connect: if a pre-1.13 Consul agent's HTTPS port was not enabled, upgrading to 1.13 may turn on TLS for gRPC communication for Envoy and Consul depending on the agent's TLS configuration. Refer to for more information. connect: Removes support for Envoy 1.19 ] telemetry: config flag `telemetry { disablecompat1.9 = (true|false) }` has been removed. Before upgrading you should remove this flag from your config if the flag is being used. ] FEATURES: Cluster Peering (Beta)* This version adds a new model to federate Consul clusters for both service mesh and traditional service discovery. Cluster peering allows for service interconnectivity with looser coupling than the existing WAN federation. For more information refer to the documentation. Transparent proxying through terminating gateways* This version adds egress traffic control to destinations outside of Consul's catalog, such as APIs on the public internet. Transparent proxies can dial and have the traffic routed through terminating gateways. For more information refer to the documentation. acl: It is now possible to login and logout using the gRPC API ] agent: Added information about build date alongside other version information for Consul. Extended /agent/self endpoint and `consul version` commands to report this. Agent also reports build date in log on startup. ] ca: Leaf certificates can now be obtained via the gRPC API: `Sign` ] checks: add UDP health checks.. ] cli: A new flag for config delete to delete a config entry in a valid config file, e.g., config delete -filename intention-allow.hcl ] connect: Adds a new `destination` field to the `service-default` config entry that allows routing egress traffic through a terminating gateway in transparent proxy mode without modifying the catalog. ] grpc: New gRPC endpoint to return envoy bootstrap parameters. ] grpc: New gRPC endpoint to return envoy bootstrap

] grpc: New gRPC service and endpoint to return the list of supported consul dataplane features ] server: broadcast the public grpc port using lan serf and update the consul service in the catalog with the same data ] streaming: Added topic that can be used to consume updates about the list of services in a datacenter ] streaming: Added topics for `ingress-gateway`, `mesh`, `service-intentions` and `service-resolver` config entry events. ] IMPROVEMENTS: api: `merge-central-config` query parameter support added to `/catalog/node-services/:node-name` API, to view a fully resolved service definition (especially when not written into the catalog that way). ] api: `merge-central-config` query parameter support added to `/catalog/node-services/:node-name` API, to view a fully resolved service definition (especially when not written into the catalog that way). ] api: `merge-central-config` query parameter support added to some catalog and health endpoints to view a fully resolved service definition (especially when not written into the catalog that way). ] api: add the ability to specify a path prefix for when consul is behind a reverse proxy or API gateway ] catalog: Add per-node indexes to reduce watchset firing for unrelated nodes and services. ] connect: add validation to ensure connect native services have a port or socketpath specified on catalog registration. This was the only missing piece to ensure all mesh services are validated for a port (or socketpath) specification on catalog registration. ] ui: Add new CopyableCode component and use it in certain pre-existing areas ] acl: Clarify node/service identities must be lowercase ] command: Add support for enabling TLS in the Envoy Prometheus endpoint via the `consul connect envoy` command. Adds the `-prometheus-ca-file`, `-prometheus-ca-path`, `-prometheus-cert-file` and `-prometheus-key-file` flags. ] connect: Add Envoy 1.23.0 to support matrix ] connect: Added a `maxinboundconnections` setting to service-defaults for limiting the number of concurrent inbound connections to each service instance. ] grpc: Add a new ServerDiscovery.WatchServers gRPC endpoint for being notified when the set of ready servers has changed. ] telemetry: Added `consul.raft.thread.main.saturation` and `consul.raft.thread.fsm.saturation` metrics to measure approximate saturation of the Raft goroutines ] ui: removed external dependencies for serving UI assets in favor of Go's native embed capabilities ] ui: upgrade ember-composable-helpers to v5.x ] BUG FIXES: acl: Fixed a bug where the ACL down policy wasn't being applied on remote errors from the primary datacenter. ] cli: when `acl token read` is used with the `-self` and `-expanded` flags, return an error instead of panicking ] connect: Fixed a goroutine/memory leak that would occur when using the ingress gateway. ] connect: Ingress gateways with a wildcard service entry should no longer pick up non-connect services as upstreams. connect: Terminating gateways with a wildcard service entry should no longer pick up connect services as upstreams. ] proxycfg: Fixed a minor bug that would cause configuring a terminating gateway to watch too many service resolvers and waste resources doing filtering. ] raft: upgrade to v1.3.8 which fixes a bug where non cluster member can still be able to participate in an election. ] rpc: Adds a deadline to client RPC calls, so that streams will no longer hang indefinitely in unstable network conditions. ] ] serf: upgrade serf to v0.9.8 which fixes a bug that crashes Consul when serf keyrings are listed ] ui: Fixes an issue where client side validation errors were not showing in certain areas ] IMPROVEMENTS: Support Vault namespaces in Connect CA by adding RootPKINamespace and IntermediatePKINamespace fields to the config. ] connect: Update Envoy support matrix to latest patch releases (1.22.2, 1.21.3, 1.20.4, 1.19.5) ] dns: Added support for specifying admin partition in node lookups. ] telemetry: Added a

metric to track if a server is a leader or not. ] BUG FIXES: agent: Fixed a bug in HTTP handlers where URLs were being decoded twice ] deps: Update go-grpc/grpc, resolving connection memory leak ] fix a bug that caused an error when creating `grpc` or `http2` ingress gateway listeners with multiple services ] ui: Fix incorrect text on certain page empty states ] xds: Fix a bug that resulted in Lambda services not using the payload-passthrough option as expected. ] xds: Fix a bug where terminating gateway upstream clusters weren't configured properly when the service protocol was `http2`. ] IMPROVEMENTS: connect: Update supported Envoy versions to 1.20.4, 1.19.5, 1.18.6, 1.17.4 ] BUG FIXES: agent: Fixed a bug in HTTP handlers where URLs were being decoded twice ] fix a bug that caused an error when creating `grpc` or `http2` ingress gateway listeners with multiple services ] xds: Fix a bug where terminating gateway upstream clusters weren't configured properly when the service protocol was `http2`. ] BUG FIXES: agent: Fixed a bug in HTTP handlers where URLs were being decoded twice ] fix a bug that caused an error when creating `grpc` or `http2` ingress gateway listeners with multiple services ] BUG FIXES: kvs: Fixed a bug where query options were not being applied to KVS.Get RPC operations. ] FEATURES: xds: Add the ability to invoke AWS Lambdas through sidecar proxies. ] IMPROVEMENTS: config: introduce `telemetry.retryfailedconnection` in agent configuration to retry on failed connection to any telemetry backend. This prevents the agent from exiting if the given DogStatsD DNS name is unresolvable, for example. ] sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids xds: Envoy now inserts x-forwarded-client-cert for incoming proxy connections ] BUG FIXES: Fix a bug when configuring an `add_headers` directive named `Host` the header is not set for `v1/internal/ui/metrics-proxy/` endpoint. ] api: Fix a bug that causes partition to be ignored when creating a namespace ] api: agent/self now returns version with +ent suffix for Enterprise Consul ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. ] ca: fix a bug that caused a non blocking leaf cert query after a blocking leaf cert query to block ] config: fix backwards compatibility bug where setting the (deprecated) top-level `verify_incoming` option would enable TLS client authentication on the gRPC port ] health: ensure /v1/health/service/:service endpoint returns the most recent results when a filter is used with streaming #12640 ] rpc: Adds a deadline to client RPC calls, so that streams will no longer hang indefinitely in unstable network conditions. ] ] snapshot-agent: (Enterprise only)* Fix a bug where providing the ACL token to the snapshot agent via a CLI or ENV variable without a license configured results in an error during license auto-retrieval. ui: Re-instate '...' icon for row actions ] NOTES: ci: change action to pull v1 instead of main ] IMPROVEMENTS: sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids BUG FIXES: Fix a bug when configuring an `add_headers` directive named `Host` the header is not set for `v1/internal/ui/metrics-proxy/` endpoint. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long

] ca: fix a bug that caused a non blocking leaf cert query after a blocking leaf cert query to block ] health: ensure /v1/health/service/:service endpoint returns the most recent results when a filter is used with streaming #12640 ] snapshot-agent: (Enterprise only)* Fix a bug where providing the ACL token to the snapshot agent via a CLI or ENV variable without a license configured results in an error during license auto-retrieval. NOTES: ci: change action to pull v1 instead of main ] BREAKING CHANGES: connect: Removes support for Envoy 1.17.4 ] connect: Removes support for Envoy 1.18.6 ] sdk: several changes to the testutil configuration structs (removed `ACLMasterToken`, renamed `Master` to `InitialManagement`, and `AgentMaster` to `AgentRecovery`) ] telemetry: the disablecompat1.9 option now defaults to true. 1.9 style `consul.http...` metrics can still be enabled by setting `disablecompat1.9 = false`. However, we will remove these metrics in 1.13. ] FEATURES: acl: Add token information to PermissionDeniedErrors ] acl: Added an AWS IAM auth method that allows authenticating to Consul using AWS IAM identities ] ca: Root certificates can now be consumed from a gRPC streaming endpoint: `WatchRoots` ] cli: The `token read` command now supports the `-expanded` flag to display detailed role and policy information for the token. ] config: automatically reload config when a file changes using the `auto-reload-config` CLI flag or `autoreloadconfig` config option. ] server: Ensure that service-defaults `Meta` is returned with the response to the `ConfigEntry.ResolveServiceConfig` RPC. ] server: discovery chains now include a response field named "Default" to indicate if they were not constructed from any service-resolver, service-splitter, or service-router config entries ] server: ensure that service-defaults meta is incorporated into the discovery chain response ] tls: it is now possible to configure TLS differently for each of Consul's listeners (i.e. HTTPS, gRPC and the internal multiplexed RPC listener) using the `tls` stanza ] ui: Added support for AWS IAM Auth Methods ] ui: Support connect-native services in the Topology view. ] xds: Add the ability to invoke AWS Lambdas through terminating gateways. ] xds: adding control of the mesh-wide min/max TLS versions and cipher suites from the mesh config entry ] IMPROVEMENTS: Refactor ACL denied error code and start improving error details ] acl: Provide fuller detail in the error messsage when an ACL denies access. ] agent: Allow client agents to perform keyring operations ] agent: add additional validation to TLS config ] agent: add support for specifying TLSECDHEECDSAWITHCHACHA20POLY1305SHA256 and TLSECDHERSAWITHCHACHA20POLY1305SHA256 cipher suites ] agent: bump default min version for connections to TLS 1.2 ] api: add QueryBackend to QueryMeta so an api user can determine if a query was served using which backend (streaming or blocking query). ] ci: include 'enhancement' entry type in IMPROVEMENTS section of changelog. ] ui: Exclude Service Instance Health from Health Check reporting on the Node listing page. The health icons on each individual row now only reflect Node health. ] ui: Improve usability of Topology warning/information panels ] ui: Slightly improve usability of main navigation ] ui: Use @hashicorp/flight icons for all our icons. ] Removed impediments to using a namespace prefixed IntermediatePKIPath in a CA definition. ] acl: Improve handling of region-specific endpoints in the AWS IAM auth method. As part of this, the `STSRegion` field was removed from the auth method config. ] api: Improve error message if service or health check not found by stating that the entity must be referred to by ID, not name ] autopilot: Autopilot state is now tracked on Raft followers in addition to the leader. Stale queries may be used to query for the non-leaders state. ] autopilot: The `autopilot.healthy` and `autopilot.failure_tolerance` metrics are now regularly emitted by all servers. ] ci: Enable security scanning for CRT ] connect: Add Envoy

to support matrix, remove 1.17.4 ] connect: Add Envoy 1.22.0 to support matrix, remove 1.18.6 ] connect: reduce raft apply on CA configuration when no change is performed ] deps: update to latest go-discover to fix vulnerable transitive jwt-go dependency ] grpc, xds: improved reliability of grpc and xds servers by adding recovery-middleware to return and log error in case of panic. ] http: if a GET request has a non-empty body, log a warning that suggests a possible problem (parameters were meant for the query string, but accidentally placed in the body) ] metrics: The `consul.raft.boltdb.writeCapacity` metric was added and indicates a theoretical number of writes/second that can be performed to Consul. ] sdk: Add support for `Partition` and `RetryJoin` to the TestServerConfig struct. ] telemetry: Add new `leader` label to `consul.rpc.server.call` and optional `target_datacenter`, `locality`, `allow_stale`, and `blocking` optional labels. ] ui: In the datacenter selector order Datacenters by Primary, Local then alpanumerically ] ui: Include details on ACL policy dispositions required for unauthorized views ] ui: Move icons away from depending on a CSS preprocessor ] version: Improved performance of the version.GetHumanVersion function by 50% on memory allocation. ] DEPRECATIONS: acl: The `consul.acl.ResolveTokenToIdentity` metric is no longer reported. The values that were previous reported as part of this metric will now be part of the `consul.acl.ResolveToken` metric. ] agent: deprecate older syntax for specifying TLS min version values ] agent: remove support for specifying insecure TLSECDHEECDSAWITHAES128CBCSHA256 and TLSECDHERSAWITHAES128CBCSHA256 cipher suites ] config: setting `certfile`, `keyfile`, `cafile`, `capath`, `tlsminversion`, `tlsciphersuites`, `verifyincoming`, `verifyincomingrpc`, `verifyincominghttps`, `verifyoutgoing` and `verifyserverhostname` at the top-level is now deprecated, use the `tls` stanza instead ] BUG FIXES: acl: Fix parsing of IAM user and role tags in IAM auth method ] dns: allow max of 63 character DNS labels instead of 64 per RFC 1123 ] logging: fix a bug with incorrect severity syslog messages (all messages were sent with NOTICE severity). ] ui: Added Tags tab to gateways(just like exists for non-gateway services) ] ui: Ensure proxy instance health is taken into account in Service Instance Listings ] ui: Fixes an issue with the version footer wandering when scrolling ] NOTES: Forked net/rpc to add middleware support: https://github.com/hashicorp/consul-net-rpc/ . ] dependency: Upgrade to use Go 1.18.1 ] SECURITY: agent: Added a new check field, `disable_redirects`, that allows for disabling the following of redirects for HTTP checks. The intention is to default this to true in a future release so that redirects must explicitly be enabled. ] connect: Properly set SNI when configured for services behind a terminating gateway. ] IMPROVEMENTS: agent: improve log messages when a service with a critical health check is deregistered due to exceeding the deregistercriticalservice_after timeout ] xds: ensure that all connect timeout configs can apply equally to tproxy direct dial connections ] BUG FIXES: acl: (Enterprise Only)* fixes a bug preventing ACL policies configured with datacenter restrictions from being created if the cluster had been upgraded to Consul 1.11+ from an earlier version. connect/ca: cancel old Vault renewal on CA configuration. Provide a 1 - 6 second backoff on repeated token renewal requests to prevent overwhelming Vault. ] namespace: (Enterprise Only)* Unreserve `consul` namespace to allow K8s namespace mirroring when deploying in `consul` K8s namespace . raft: upgrade to v1.3.6 which fixes a bug where a read replica node could attempt bootstrapping raft and prevent other nodes from bootstrapping at all ] replication: Fixed a bug which could prevent ACL replication from continuing successfully after a leader

] server: fix spurious blocking query suppression for discovery chains ] ui: Fixes a visual bug where our loading icon can look cut off ] usagemetrics: (Enterprise only)* Fix a bug where Consul usage metrics stopped being reported when upgrading servers from 1.10 to 1.11 or later. FEATURES: ca: support using an external root CA with the vault CA provider ] IMPROVEMENTS: connect: Update supported Envoy versions to include 1.19.3 and 1.18.6 ] connect: update Envoy supported version of 1.20 to 1.20.2 ] connect: update Envoy supported version of 1.20 to 1.20.2 ] debug: reduce the capture time for trace to only a single interval instead of the full duration to make trace.out easier to open without running into OOM errors. ] raft: add additional logging of snapshot restore progress ] rpc: improve blocking queries for items that do not exist, by continuing to block until they exist (or the timeout). ] sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids server: conditionally avoid writing a config entry to raft if it was already the same ] server: suppress spurious blocking query returns where multiple config entries are involved ] BUG FIXES: agent: Parse datacenter from Create/Delete requests for AuthMethods and BindingRules. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. ] catalog: compare node names case insensitively in more places ] checks: populate interval and timeout when registering services ] local: fixes a data race in anti-entropy sync that could cause the wrong tags to be applied to a service when EnableTagOverride is used ] raft: fixed a race condition in leadership transfer that could result in reelection of the current leader ] server: (Enterprise only)* Namespace deletion will now attempt to delete as many namespaced config entries as possible instead of halting on the first deletion that failed. server: partly fix config entry replication issue that prevents replication in some circumstances ] state: fix bug blocking snapshot restore when a node check and node differed in casing of the node string ] ui: Ensure we always display the Policy default preview in the Namespace editing form ] ui: Fix missing helper javascript error ] xds: Fixed Envoy http features such as outlier detection and retry policy not working correctly with transparent proxy. ] IMPROVEMENTS: connect: update Envoy supported version of 1.20 to 1.20.1 ] sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids streaming: Improved performance when the server is handling many concurrent subscriptions and has a high number of CPU cores ] systemd: Support starting/stopping the systemd service for linux packages when the optional EnvironmentFile does not exist. ] BUG FIXES: Fix a data race when a service is added while the agent is shutting down.. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. ] ca: adjust validation of PrivateKeyType/Bits with the Vault provider, to remove the error when the cert is created manually in Vault. ] config-entry: fix a panic when creating an ingress gateway config-entry and a proxy service instance, where both provided the same upstream and downstream mapping. ] connect: fixes bug where passthrough addressses for transparent proxies dialed directly weren't being cleaned up. ] partitions: (Enterprise only)* Do not leave a serf partition when the partition is deleted serf: update serf v0.9.7, complete the leave process if broadcasting leave

] ui: Ensure proxy instance health is taken into account in Service Instance Listings ] ui: Fix up a problem where occasionally an intention can visually disappear from the listing after saving ] ui: Fixed a bug with creating multiple nested KVs in one interaction ] ui: Include partition data when saving an intention from the topology visualization ] xds: allow only one outstanding delta request at a time ] xds: fix for delta xDS reconnect bug in LDS/CDS ] xds: prevents tight loop where the Consul client agent would repeatedly re-send config that Envoy has rejected. ] FEATURES: ingress: allow setting TLS min version and cipher suites in ingress gateway config entries ] IMPROVEMENTS: api: URL-encode/decode resource names for v1/agent endpoints in API. ] api: Return 404 when de-registering a non-existent check ] connect: Add support for connecting to services behind a terminating gateway when using a transparent proxy. ] http: when a user attempts to access the UI but can't because it's disabled, explain this and how to fix it ] raft: Consul leaders will attempt to transfer leadership to another server as part of gracefully leaving the cluster. ] ui: Added a notice for non-primary intention creation ] BUG FIXES: Mutate `NodeService` struct properly to avoid a data race. ] Upgrade to raft `1.3.3` which fixes a bug where a read replica node can trigger a raft election and become a leader. ] cli: Display assigned node identities in output of `consul acl token list`. ] cli: when creating a private key, save the file with mode 0600 so that only the user has read permission. ] config: include all config errors in the error message, previously some could be hidden. ] memberlist: fixes a bug which prevented members from joining a cluster with large amounts of churn ] ] snapshot: the `snapshot save` command now saves the snapshot with read permission for only the current user. ] ui: Differentiate between Service Meta and Node Meta when choosing search fields in Service Instance listings ] ui: Ensure a login buttons appear for some error states, plus text amends ] ui: Ensure partition query parameter is passed through to all OIDC related API requests ] ui: Fix an issue where attempting to delete a policy from the policy detail page when attached to a token would result in the delete button disappearing and no deletion being attempted ] ui: Fixes a bug where proxy service health checks would sometimes not appear until refresh ] ui: Fixes a bug with URL decoding within KV area ] ui: Fixes a visual issue with some border colors ] ui: Fixes an issue saving intentions when editing per service intentions ] ui: Fixes an issue where once a 403 page is displayed in some circumstances its diffcult to click back to where you where before receiving a 403 ] ui: Prevent disconnection notice appearing with auth change on certain pages ] ui: Temporarily remove KV pre-flight check for KV list permissions ] windows: Fixes a bug with empty log files when Consul is run as a Windows Service ] xds: fix a deadlock when the snapshot channel already have a snapshot to be consumed. ] SECURITY: ci: Upgrade golang.org/x/net to address ] FEATURES: Admin Partitions (Consul Enterprise only) This version adds admin partitions, a new entity defining administrative and networking boundaries within a Consul deployment. For more information refer to the documentation. ] networking: (Enterprise Only)* Make `segment_limit` configurable, cap at 256. BUG FIXES: ui: Fixes an issue with the version footer wandering when scrolling ] BREAKING CHANGES: acl: The legacy ACL system that was deprecated in Consul

has been removed. Before upgrading you should verify that nothing is still using the legacy ACL system. See the for more information. ] cli: `consul acl set-agent-token master` has been replaced with `consul acl set-agent-token recovery` ] SECURITY: namespaces: (Enterprise only)* Creating or editing namespaces that include default ACL policies or ACL roles now requires `acl:write` permission in the default namespace. This change fixes CVE-2021-41805. rpc: authorize raft requests ] FEATURES: Admin Partitions (Consul Enterprise only) This version adds admin partitions, a new entity defining administrative and networking boundaries within a Consul deployment. For more information refer to the documentation. ca: Add a configurable TTL for Connect CA root certificates. The configuration is supported by the Vault and Consul providers. ] ca: Add a configurable TTL to the AWS ACM Private CA provider root certificate. ] health-checks: add support for h2c in http2 ping health checks ] ui: Add UI support to use Vault as an external source for a service ] ui: Adding support of Consul API Gateway as an external source. ] ui: Adds a copy button to each composite row in tokens list page, if Secret ID returns an actual ID ] ui: Adds visible Consul version information ] ui: Topology - New views for scenarios where no dependencies exist or ACLs are disabled ] IMPROVEMENTS: acls: Show AuthMethodNamespace when reading/listing ACL tokens. ] acl: replication routine to report the last error message. ] agent: add variation of force-leave that exclusively works on the WAN ] api: Enable setting query options on agent health and maintenance endpoints. ] api: responses that contain only a partial subset of results, due to filtering by ACL policies, may now include an `X-Consul-Results-Filtered-By-ACLs` header ] checks: add failuresbeforewarning setting for interval checks. ] ci: Upgrade to use Go 1.17.5 ] ci: Allow configuring graceful stop in testutil. ] cli: Add `-cas` and `-modify-index` flags to the `consul config delete` command to support Check-And-Set (CAS) deletion of config entries ] config: (Enterprise Only)* Allow specifying permission mode for audit logs. ] config: Support Check-And-Set (CAS) deletion of config entries ] config: add `dnsconfig.recursorstrategy` flag to control the order which DNS recursors are queried ] config: warn the user if client_addr is empty because client services won't be listening ] connect/ca: cease including the common name field in generated x509 non-CA certificates ] connect: Add low-level feature to allow an Ingress to retrieve TLS certificates from SDS. ] connect: Consul will now generate a unique virtual IP for each connect-enabled service (this will also differ across namespace/partition in Enterprise). ] connect: Support Vault auth methods for the Connect CA Vault provider. Currently, we support any non-deprecated auth methods the latest version of Vault supports (v1.8.5), which include AppRole, AliCloud, AWS, Azure, Cloud Foundry, GitHub, Google Cloud, JWT/OIDC, Kerberos, Kubernetes, LDAP, Oracle Cloud Infrastructure, Okta, Radius, TLS Certificates, and Username & Password. ] connect: Support manipulating HTTP headers in the mesh. ] connect: add Namespace configuration setting for Vault CA provider ] connect: ingress gateways may now enable built-in TLS for a subset of listeners. ] connect: service-resolver subset filters are validated for valid go-bexpr syntax on write ] connect: update supported envoy versions to 1.19.1, 1.18.4, 1.17.4, 1.16.5 ] connect: update supported envoy versions to 1.20.0, 1.19.1, 1.18.4, 1.17.4 ] debug: Add a new /v1/agent/metrics/stream API endpoint for streaming of metrics ] debug: rename cluster capture target to members, to be more consistent with the terms used by the API. ] dns: Added a `virtual` endpoint for querying the assigned virtual IP for a

] http: when a URL path is not found, include a message with the 404 status code to help the user understand why (e.g., HTTP API endpoint path not prefixed with /v1/) ] raft: Added a configuration to disable boltdb freelist syncing ] raft: Emit boltdb related performance metrics ] raft: Use bbolt instead of the legacy boltdb implementation ] sdk: Add support for iptable rules that allow DNS lookup redirection to Consul DNS. ] segments: (Enterprise only)* ensure that the serflanallowed_cidrs applies to network segments ] telemetry: add a new `agent.tls.cert.expiry` metric for tracking when the Agent TLS certificate expires. ] telemetry: add a new `mesh.active-root-ca.expiry` metric for tracking when the root certificate expires. ] telemetry: added metrics to track certificates expiry. ] types: add TLSVersion and TLSCipherSuite ] ui: Change partition URL segment prefix from `-` to `_` ] ui: Add upstream icons for upstreams and upstream instances ] ui: Add uri guard to prevent future URL encoding issues ] ui: Move the majority of our SASS variables to use native CSS custom properties ] ui: Removed informational panel from the namespace selector menu when editing namespaces ] ui: Update UI browser support to 'roughly ~2 years back' ] ui: Update global notification styling ] ui: added copy to clipboard button in code editor toolbars ] DEPRECATIONS: api: `/v1/agent/token/agentmaster` is deprecated and will be removed in a future major release - use `/v1/agent/token/agentrecovery` instead ] config: `acl.tokens.master` has been renamed to `acl.tokens.initialmanagement`, and `acl.tokens.agentmaster` has been renamed to `acl.tokens.agent_recovery` - the old field names are now deprecated and will be removed in a future major release ] tls: With the upgrade to Go 1.17, the ordering of `tlsciphersuites` will no longer be honored, and `tlspreferserverciphersuites` is now ignored. ] BUG FIXES: acl: (Enterprise only)* fix namespace and namespace_prefix policy evaluation when both govern an authz request api: Fix default values used for optional fields in autopilot configuration update (POST to `/v1/operator/autopilot/configuration`) ] ] api: ensure new partition fields are omit empty for compatibility with older versions of consul ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. areas: (Enterprise only)* make the gRPC server tracker network area aware ] ca: fixes a bug that caused non blocking leaf cert queries to return the same cached response regardless of ca rotation or leaf cert expiry ] ca: fixes a bug that caused the SigningKeyID to be wrong in the primary DC, when the Vault provider is used, after a CA config creates a new root. ] ca: fixes a bug that caused the intermediate cert used to sign leaf certs to be missing from the /connect/ca/roots API response when the Vault provider was used. ] check root and intermediate CA expiry before using it to sign a leaf certificate. ] connect/ca: ensure edits to the key type/bits for the connect builtin CA will regenerate the roots ] connect/ca: require new vault mount points when updating the key type/bits for the vault connect CA provider ] connect: fix race causing xDS generation to lock up when discovery chains are tracked for services that are no longer upstreams. ] dns: Fixed an issue where on DNS requests made with .alt_domain response was returned as .domain ] dns: return an empty answer when asked for an addr dns with type other then A and

] macos: fixes building with a non-Apple LLVM (such as installed via Homebrew) ] namespaces: (Enterprise only)* ensure the namespace replicator doesn't replicate deleted namespaces proxycfg: ensure all of the watches are canceled if they are cancelable ] snapshot: (Enterprise only)* fixed a bug where the snapshot agent would ignore the `license_path` setting in config files ui: Change partitions to expect ] ui: Don't offer to save an intention with a source/destination wildcard partition ] ui: Ensure all types of data get reconciled with the backend data ] ui: Ensure dc selector correctly shows the currently selected dc ] ui: Ensure we check intention permissions for specific services when deciding whether to show action buttons for per service intention actions ] ui: Ensure we filter tokens by policy when showing which tokens use a certain policy whilst editing a policy ] ui: Ensure we show a readonly designed page for readonly intentions ] ui: Filter the global intentions list by the currently selected parition rather than a wildcard ] ui: Fix inline-code brand styling ] ui: Fix visual issue with slight table header overflow ] ui: Fixes an issue where under some circumstances after logging we present the data loaded previous to you logging in. ] ui: Gracefully recover from non-existant DC errors ] ui: Include `Service.Namespace` into available variables for `dashboardurltemplates` ] ui: Revert to depending on the backend, 'post-user-action', to report permissions errors rather than using UI capabilities 'pre-user-action' ] ui: Topology - Fix up Default Allow and Permissive Intentions notices ] ui: code editor styling (layout consistency + wide screen support) ] use the MaxQueryTime instead of RPCHoldTimeout for blocking RPC queries ]. ] windows: fixes arm and arm64 builds ] NOTES: Renamed the `agentmaster` field to `agentrecovery` in the `acl-tokens.json` file in which tokens are persisted on-disk (when `acl.enabletokenpersistence` is enabled) ] SECURITY: agent: Use SHA256 instead of MD5 to generate persistence file names. IMPROVEMENTS: sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids BUG FIXES: Fix a bug when configuring an `add_headers` directive named `Host` the header is not set for `v1/internal/ui/metrics-proxy/` endpoint. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. ] ca: fix a bug that caused a non blocking leaf cert query after a locking leaf cert query to block ] health: ensure /v1/health/service/:service endpoint returns the most recent results when a filter is used with streaming #12640 ] snapshot-agent: (Enterprise only)* Fix a bug where providing the ACL token to the snapshot agent via a CLI or ENV variable without a license configured results in an error during license auto-retrieval. NOTES: ci: change action to pull v1 instead of main ] SECURITY: agent: Added a new check field, `disable_redirects`, that allows for disabling the following of redirects for HTTP checks. The intention is to default this to true in a future release so that redirects must explicitly be enabled. ] connect: Properly set SNI when configured for services behind a terminating gateway. ] IMPROVEMENTS: xds: ensure that all connect timeout configs can apply equally to tproxy direct dial connections ] DEPRECATIONS: tls: With the upgrade to Go 1.17, the ordering of `tlsciphersuites` will no longer be honored, and `tlspreferserverciphersuites` is now ignored. ] BUG FIXES: connect/ca: cancel old Vault renewal on CA configuration. Provide a 1 - 6 second backoff on repeated token renewal requests to prevent overwhelming Vault. ] raft: upgrade to

which fixes a bug where a read replica node could attempt bootstrapping raft and prevent other nodes from bootstrapping at all ] replication: Fixed a bug which could prevent ACL replication from continuing successfully after a leader election. ] server: fix spurious blocking query suppression for discovery chains ] SECURITY: agent: Use SHA256 instead of MD5 to generate persistence file names. FEATURES: ca: support using an external root CA with the vault CA provider ] IMPROVEMENTS: connect: Update supported Envoy versions to include 1.18.6 ] connect: update Envoy supported version of 1.20 to 1.20.2 ] debug: reduce the capture time for trace to only a single interval instead of the full duration to make trace.out easier to open without running into OOM errors. ] raft: add additional logging of snapshot restore progress ] rpc: improve blocking queries for items that do not exist, by continuing to block until they exist (or the timeout). ] sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids server: conditionally avoid writing a config entry to raft if it was already the same ] server: suppress spurious blocking query returns where multiple config entries are involved ] BUG FIXES: agent: Parse datacenter from Create/Delete requests for AuthMethods and BindingRules. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. ] raft: fixed a race condition in leadership transfer that could result in reelection of the current leader ] server: (Enterprise only)* Namespace deletion will now attempt to delete as many namespaced config entries as possible instead of halting on the first deletion that failed. server: partly fix config entry replication issue that prevents replication in some circumstances ] ui: Ensure we always display the Policy default preview in the Namespace editing form ] xds: Fixed Envoy http features such as outlier detection and retry policy not working correctly with transparent proxy. ] SECURITY: agent: Use SHA256 instead of MD5 to generate persistence file names. IMPROVEMENTS: raft: Consul leaders will attempt to transfer leadership to another server as part of gracefully leaving the cluster. ] sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids BUG FIXES: Fix a data race when a service is added while the agent is shutting down.. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. ] config-entry: fix a panic when creating an ingress gateway config-entry and a proxy service instance, where both providedthe same upstream and downstrem mapping. ] config: include all config errors in the error message, previously some could be hidden. ] connect: fixes bug where passthrough addressses for transparent proxies dialed directly weren't being cleaned up. ] memberlist: fixes a bug which prevented members from joining a cluster with large amounts of churn ] ] snapshot: the `snapshot save` command now saves the snapshot with read permission for only the current user. ] xds: allow only one outstanding delta request at a time ] xds: fix for delta xDS reconnect bug in LDS/CDS ] xds: prevents tight loop where the Consul client agent would repeatedly re-send config that Envoy has rejected. ]a SECURITY: namespaces: (Enterprise only)* Creating or editing namespaces that include default ACL policies or ACL roles now requires `acl:write` permission in the default namespace. This change fixes CVE-2021-41805. FEATURES: ui: Adds visible Consul version information ] BUG FIXES: Mutate `NodeService` struct properly to avoid a data race. ] Upgrade to raft

which fixes a bug where a read replica node can trigger a raft election and become a leader. ] ca: fixes a bug that caused non blocking leaf cert queries to return the same cached response regardless of ca rotation or leaf cert expiry ] ca: fixes a bug that caused the SigningKeyID to be wrong in the primary DC, when the Vault provider is used, after a CA config creates a new root. ] ca: fixes a bug that caused the intermediate cert used to sign leaf certs to be missing from the /connect/ca/roots API response when the Vault provider was used. ] cli: Display assigned node identities in output of `consul acl token list`. ] cli: when creating a private key, save the file with mode 0600 so that only the user has read permission. ] snapshot: (Enterprise only)* fixed a bug where the snapshot agent would ignore the `license_path` setting in config files structs: (Enterprise only)* Remove partition field parsing from 1.10 to prevent further 1.11 upgrade compatibility issues. ui: Differentiate between Service Meta and Node Meta when choosing search fields in Service Instance listings ] ui: Ensure we show a readonly designed page for readonly intentions ] ui: Fix an issue where attempting to delete a policy from the policy detail page when attached to a token would result in the delete button disappearing and no deletion being attempted ] ui: Fix visual issue with slight table header overflow ] ui: Fixes an issue where once a 403 page is displayed in some circumstances its diffcult to click back to where you where before receiving a 403 ] ui: Fixes an issue where under some circumstances after logging we present the data loaded previous to you logging in. ] ui: Include `Service.Namespace` into available variables for `dashboardurltemplates` ] ui: Revert to depending on the backend, 'post-user-action', to report permissions errors rather than using UI capabilities 'pre-user-action' ] ui: Temporarily remove KV pre-flight check for KV list permissions ] windows: Fixes a bug with empty log files when Consul is run as a Windows Service ] xds: fix a deadlock when the snapshot channel already have a snapshot to be consumed. ] SECURITY: ci: Upgrade golang.org/x/net to address ] SECURITY: ci: Upgrade to Go 1.16.12 to address ] BUG FIXES: agent: (Enterprise only)* fix bug where 1.10.x agents would deregister serf checks from 1.11.x servers ] SECURITY: agent: Use SHA256 instead of MD5 to generate persistence file names. ] namespaces: (Enterprise only)* Creating or editing namespaces that include default ACL policies or ACL roles now requires `acl:write` permission in the default namespace. This change fixes CVE-2021-41805. IMPROVEMENTS: ci: Artifact builds will now only run on merges to the release branches or to `main` ] ci: The Linux packages are now available for all supported Linux architectures including arm, arm64, 386, and amd64 ] ci: The Linux packaging service configs and pre/post install scripts are now available under ] connect/ca: Return an error when querying roots from uninitialized CA. ] telemetry: Add new metrics for the count of connect service instances and configuration entries. ] BUG FIXES: acl: fixes the fallback behaviour of down_policy with setting extend-cache/async-cache when the token is not cached. ] api: fixed backwards compatibility issue with AgentService SocketPath field. ] connect/ca: Allow secondary initialization to resume after being deferred due to unreachable or incompatible primary DC servers. ] connect: fix issue with attempting to generate an invalid upstream cluster from UpstreamConfig.Defaults. ] raft: do not trigger an election if not part of the servers

] rpc: only attempt to authorize the DNSName in the client cert when verifyincomingrpc=true ] server: (Enterprise only)* Ensure that servers leave network segments when leaving other gossip pools snapshot: (Enterprise only)* snapshot agent no longer attempts to refresh its license from the server when a local license is provided (i.e. via config or an environment variable) telemetry: Consul Clients no longer emit Autopilot metrics. ] telemetry: fixes a bug with Prometheus consulautopilotfailure_tolerance metric where 0 is reported instead of NaN on follower servers. ] telemetry: fixes a bug with Prometheus consulautopilothealthy metric where 0 is reported instead of NaN on servers. ] ui: (Enterprise only)* When no namespace is selected, make sure to default to the tokens default namespace when requesting permissions ] ui: Ensure we check intention permissions for specific services when deciding whether to show action buttons for per service intention actions ] ui: Fixed styling of Role remove dialog on the Token edit page ] xds: fixes a bug where replacing a mesh gateway node used for WAN federation (with another that has a different IP) could leave gateways in the other DC unable to re-establish the connection ] BUG FIXES: Fixing SOA record to return proper domain when alt domain in use. FEATURES: sso/oidc: (Enterprise only)* Add support for providing acr_values in OIDC auth flow ] IMPROVEMENTS: audit-logging: (Enterprise Only)* Audit logs will now include select HTTP headers in each logs payload. Those headers are: `Forwarded`, `Via`, `X-Forwarded-For`, `X-Forwarded-Host` and `X-Forwarded-Proto`. ] connect: update supported envoy versions to 1.18.4, 1.17.4, 1.16.5 ] telemetry: Add new metrics for the count of KV entries in the Consul store. ] BUG FIXES: api: Revert early out errors from license APIs to allow v1.10+ clients to manage licenses on older servers ] connect: Fix upstream listener escape hatch for prepared queries ] grpc: strip local ACL tokens from RPCs during forwarding if crossing datacenters ] tls: consider presented intermediates during server connection tls handshake. ] ui: (Enterprise Only)* Fix saving intentions with namespaced source/destination ] ui: Don't show a CRD warning for read-only intentions ] ui: Ensure routing-config page blocking queries are cleaned up correctly ] ui: Ignore reported permissions for KV area meaning the KV is always enabled for both read/write access if the HTTP API allows. ] ui: hide create button for policies/roles/namespace if users token has no write permissions to those areas ] xds: ensure the active streams counters are 64 bit aligned on 32 bit systems ] xds: fixed a bug where Envoy sidecars could enter a state where they failed to receive xds updates from Consul ] KNOWN ISSUES: tls: The fix for introduced an issue that could prevent TLS certificate validation when intermediate CA certificates used to sign server certificates are transmitted in the TLS session but are not present in all Consul server's configured CA certificates. This has the effect of preventing Raft RPCs between the affected servers. As a work around until the next patch releases, ensure that all intermediate CA certificates are present in all Consul server configurations prior to using certificates that they have signed. SECURITY: rpc: authorize raft requests ] FEATURES: connect: add support for unix domain socket config via API/CLI ] ui: Adding support in Topology view for Routing Configurations ] ui: Create Routing Configurations route and page ] ui: Splitting up the socket mode and socket path in the Upstreams Instance List ] IMPROVEMENTS: areas: (Enterprise only)* Add 15s timeout to opening streams over pooled connections. areas: (Enterprise only)* Apply backpressure to area gossip packet ingestion when more than 512 packets are waiting to be

areas: (Enterprise only)* Make implementation of WriteToAddress non-blocking to avoid slowing down memberlist's packetListen routine. checks: Add Interval and Timeout to API response. ] ci: make changelog-checker only validate PR number against main base ] ci: upgrade to use Go 1.16.7 ] deps: update to gogo/protobuf v1.3.2 ] proxycfg: log correlation IDs for the proxy configuration snapshot's blocking queries. ] BUG FIXES: acl: fixes a bug that prevented the default user token from being used to authorize service registration for connect proxies. ] ca: fixed a bug when ca provider fail and provider state is stuck in `INITIALIZING` state. ] ca: report an error when setting the ca config fail because of an index check. ] cli: Ensure the metrics endpoint is accessible when Envoy is configured to use a non-default admin bind address. ] cli: Fix a bug which prevented initializing a watch when using a namespaced token. ] cli: Fix broken KV import command on Windows. ] connect: ensure SAN validation for prepared queries validates against all possible prepared query targets ] connect: fix crash that would result from multiple instances of a service resolving service config on a single agent. ] connect: proxy upstreams inherit namespace from service if none are defined. ] dns: fixes a bug with edns truncation where the response could exceed the size limit in some cases. ] grpc: ensure that streaming gRPC requests work over mesh gateway based wan federation ] http: log cancelled requests as such at the INFO level, instead of logging them as errored requests. ] streaming: set the default wait timeout for health queries ] txn: fixes Txn.Apply to properly authorize service registrations. ] ui: Disabling policy form fields from users with 'read' permissions ] ui: Fix Health Checks in K/V form Lock Sessions Info section ] ui: Fix dropdown option duplication in the new intentions form ] ui: Hide all metrics for ingress gateway services ] ui: Properly encode non-URL safe characters in OIDC responses ] ui: fixes a bug with some service failovers not showing the routing tab visualization ] KNOWN ISSUES: The change to enable streaming by default uncovered an incompatibility between streaming and WAN federation over mesh gateways causing traffic to fall back to attempting a direct WAN connection rather than transiting through the gateways. We currently suggest explicitly setting if using WAN federation over mesh gateways when upgrading to 1.10.1 and are working to address this issue in a future patch release. SECURITY: xds: ensure envoy verifies the subject alternative name for upstreams ] xds: ensure single L7 deny intention with default deny policy does not result in allow action ] FEATURES: cli: allow running `redirect-traffic` command in a provided Linux namespace. ] sdk: allow applying `iptables` rules in a provided Linux namespace. ] IMPROVEMENTS: acl: Return secret ID when listing tokens if accessor has `acl:write` ] structs: prevent service-defaults upstream configs from using wildcard names or namespaces ] ui: Move all CSS icons to use standard CSS custom properties rather than SASS variables ] DEPRECATIONS: connect/ca: remove the `RotationPeriod` field from the Consul CA provider, it was not used for anything. ] BUG FIXES: agent: fix a panic on 32-bit platforms caused by misaligned struct fields used with sync/atomic. ] ca: Fixed a bug that returned a malformed certificate chain when the certificate did not having a trailing newline. ] checks: fixes the default ServerName used with TLS health checks. ] connect/proxy: fixes logic bug preventing builtin/native proxy from starting upstream listeners ] streaming: fix a bug that was preventing streaming from being

] ui: (Enterprise only)* Ensure permissions are checked based on the actively selected namespace ] ui: Ensure in-folder KVs are created in the correct folder ] ui: Fix KV editor syntax highlighting ] ui: Send service name down to Stats to properly call endpoint for Upstreams and Downstreams metrics ] ui: Show ACLs disabled page at Tokens page instead of 403 error when ACLs are disabled ] ui: Use the token's namespace instead of the default namespace when not specifying a namespace in the URL ] BREAKING CHANGES: connect: Disallow wildcard as name for service-defaults. ] connect: avoid encoding listener info in ingress and terminating gateway listener stats names. ] licensing: (Enterprise Only)* Consul Enterprise 1.10 has removed API driven licensing of servers in favor of license loading via configuration. The `PUT` and `DELETE` methods on the `/v1/operator/license` endpoint will now return 405s, the `consul license put` and `consul license reset` CLI commands have been removed and the `LicensePut` and `LicenseReset` methods in the API client have been altered to always return an error. ] licensing: (Enterprise Only)* Consul Enterprise client agents now require a valid non-anonymous ACL token for retrieving their license from the servers. Additionally client agents rely on the value of the `startjoin` and `retryjoin` configurations for determining the servers to query for the license. Therefore one must be set to use license auto-retrieval. ] licensing: (Enterprise Only)* Consul Enterprise has removed support for temporary licensing. All server agents must have a valid license at startup and client agents must have a license at startup or be able to retrieve one from the servers. ] FEATURES: checks: add H2 ping health checks. ] cli: Add additional flags to the `consul connect redirect-traffic` command to allow excluding inbound and outbound ports, outbound CIDRs, and additional user IDs from traffic redirection. ] cli: Add new `consul connect redirect-traffic` command for applying traffic redirection rules when Transparent Proxy is enabled. ] cli: Add prefix option to kv import command ] cli: Automatically exclude ports from `envoyprometheusbindaddr`, `envoystatsbindaddr`, and `ListenerPort` from `Expose` config from inbound traffic redirection rules if `proxy-id` flag is provided to the `consul connect redirect-traffic` command. ] cli: snapshot inspect command provides KV usage breakdown ] cli: snapshot inspect command supports JSON output ] connect: Add localrequesttimeoutms to allow configuring the Envoy request timeout on localapp ] connect: add support for unix domain sockets addresses for service upstreams and downstreams ] connect: add toggle to globally disable wildcard outbound network access when transparent proxy is enabled ] connect: generate upstream service labels for terminating gateway listener stats. ] sdk: Add new `iptables` package for applying traffic redirection rules with iptables. ] sdk: Allow excluding inbound and outbound ports, outbound CIDRs, and additional user IDs from traffic redirection in the `iptables` package. ] ui: Add Unix Domain Socket support ] ui: Create a collapsible notices component for the Topology tab ] ui: Read-only ACL Auth Methods view ] ui: Transparent Proxy - Service mesh visualization updates ] xds: emit a labeled gauge of connected xDS streams by version ] xds: exclusively support the Incremental xDS protocol when using xDS v3 ] IMPROVEMENTS: acl: extend the auth-methods list endpoint to include MaxTokenTTL and TokenLocality fields. ] acl: use the presence of a management policy in the state store as a sign that we already migrated to v2 acls ] agent: Save exposed Envoy ports to the agent's state when `Expose.Checks` is true in proxy's configuration. ] api: Add `ExposedPort` to the health check API resource. ] api: Enable setting query options on agent endpoints. ] api: The `Content-Type` header is now always set when a body is present in a

] cli: snapshot inspect command can now inspect raw snapshots from a server's data dir. ] cli: the `consul connect envoy --envoystatsdurl` flag will now resolve the `$HOST_IP` environment variable, as part of a full url. ] command: Exclude exposed Envoy ports from traffic redirection when providing `-proxy-id` and `Expose.Checks` is set. ] connect: Add support for transparently proxying traffic through Envoy. ] connect: Allow per-upstream configuration to be set in service-defaults. ] connect: Ensures passthrough tproxy cluster is created even when mesh config doesn't exist. ] connect: Support dialing individual service IP addresses through transparent proxies. ] connect: The builtin connect proxy no longer advertises support for h2 via ALPN. ]. ] connect: Update the service mesh visualization to account for transparent proxies. ] connect: adds new flags `prometheus-backend-port` and `prometheus-scrape-port` to `consul connect envoy` to support envoyprometheusbind_addr pointing to the merged metrics port when using Consul Connect on K8s. ] connect: allow exposing duplicate HTTP paths through a proxy instance. ] connect: rename cluster config entry to mesh. ] connect: restrict transparent proxy mode to only match on the tagged virtual IP address. ] connect: update supported envoy versions to 1.18.2, 1.17.2, 1.16.3, 1.15.4 ] connect: update supported envoy versions to 1.18.3, 1.17.3, 1.16.4, and 1.15.5 ] debug: capture a single stream of logs, and single pprof profile and trace for the whole duration ] grpc: move gRPC INFO logs to be emitted as TRACE logs from Consul ] licensing: (Enterprise Only)* Consul Enterprise has gained the `consul license inspect` CLI command for inspecting a license without applying it.. licensing: (Enterprise Only)* Consul Enterprise has gained the ability to autoload a license via configuration. This can be specified with the `licensepath` configuration, the `CONSULLICENSE` environment variable or the `CONSULLICENSEPATH` environment variable ] licensing: (Enterprise Only)* Consul Enterprise has gained the ability update its license via a configuration reload. The same environment variables and configurations will be used to determine the new license. ] monitoring: optimize the monitoring endpoint to avoid losing logs when under high load. ] raft: allow reloading of raft trailing logs and snapshot timing to allow recovery from some . telemetry: add metrics and documentation for . ] streaming: change `usestreamingbackend` to default to true so that streaming is used by default when it is supported. ] ui: Add 'optional route segments' and move namespaces to use them ] ui: Adding a notice about how TransparentProxy mode affects the Upstreams list at the top of tab view ] ui: Improve loader centering with new side navigation ] ui: Move to a sidebar based main navigation ] ui: Show a message to explain that health checks may be out of date if the serf health check is in a critical state ] ui: Updating the wording for the banner and the popover for a service with an upstream that is not explicitly defined. ] ui: Use older (~2016) native ES6 features to reduce transpilation and UI JS payload ] ui: add permanently visible indicator when ACLs are disabled ] ui: improve accessibility of modal dialogs ] ui: restrict the viewing/editing of certain UI elements based on the users ACL token ] ui: updates the ui with the new consul brand assets ] xds: add support for envoy 1.17.0 ] xds: default to speaking xDS v3, but allow for v2 to be spoken upon request ] xds: ensure that all envoyproxy/go-control-plane protobuf symbols are linked into the final binary ] xds: remove deprecated usages of xDS and drop support for envoy

] BUG FIXES: checks: add TLSServerName field to allow setting the TLS server name for HTTPS health checks. ] config: Fixed a bug where `rpcmaxconnsperclient` could not be changed by reloading the config. ] connect: Fix bug that prevented transparent proxies from working when mesh config restricted routing to catalog destinations. ] memberlist: fixes a couple bugs which allowed malformed input to cause a crash in a Consul client or server. ] monitor: fix monitor to produce json format logs when requested ] proxycfg: Ensure that endpoints for explicit upstreams in other datacenters are watched in transparent mode. ] proxycfg: avoid panic when transparent proxy upstream is added and then removed. ] streaming: fixes a bug that would cause context cancellation errors when a cache entry expired while requests were active. ] streaming: lookup in health properly handle case-sensitivity and perform filtering based on tags and node-meta ] telemetry: fixes a bug with Prometheus metrics where Gauges and Summaries were incorrectly being expired. ] ui: Adding conditional to prevent Service Mesh from breaking when there are no Upstreams ] ui: Fix text searching through upstream instances. ] ui: Update conditional for topology empty state ] ui: ensure proxy instance API requests perform blocking queries correctly ] xds: (beta-only) ensure that dependent xDS resources are reconfigured during primary type warming ] NOTES: legal: (Enterprise only)* Enterprise binary downloads will now include a copy of the EULA and Terms of Evaluation in the zip archive SECURITY: agent: Added a new check field, `disable_redirects`, that allows for disabling the following of redirects for HTTP checks. The intention is to default this to true in a future release so that redirects must explicitly be enabled. ] connect: Properly set SNI when configured for services behind a terminating gateway. ] DEPRECATIONS: tls: With the upgrade to Go 1.17, the ordering of `tlsciphersuites` will no longer be honored, and `tlspreferserverciphersuites` is now ignored. ] BUG FIXES: connect/ca: cancel old Vault renewal on CA configuration. Provide a 1 - 6 second backoff on repeated token renewal requests to prevent overwhelming Vault. ] memberlist: fixes a bug which prevented members from joining a cluster with large amounts of churn ] ] replication: Fixed a bug which could prevent ACL replication from continuing successfully after a leader election. ] FEATURES: ca: support using an external root CA with the vault CA provider ] IMPROVEMENTS: sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids server: conditionally avoid writing a config entry to raft if it was already the same ] BUG FIXES: agent: Parse datacenter from Create/Delete requests for AuthMethods and BindingRules. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long time. ] server: (Enterprise only)* Namespace deletion will now attempt to delete as many namespaced config entries as possible instead of halting on the first deletion that failed. server: partly fix config entry replication issue that prevents replication in some circumstances ] ui: Ensure we always display the Policy default preview in the Namespace editing form ] IMPROVEMENTS: sentinel: (Enterprise Only)* Sentinel now uses SHA256 to generate policy ids BUG FIXES: Fix a data race when a service is added while the agent is shutting down.. ] areas: (Enterprise Only)* Fixes a bug when using Yamux pool ( for servers version 1.7.3 and later), the entire pool was locked while connecting to a remote location, which could potentially take a long

] config-entry: fix a panic when creating an ingress gateway config-entry and a proxy service instance, where both provided the same upstream and downstream mapping. ] config: include all config errors in the error message, previously some could be hidden. ] snapshot: the `snapshot save` command now saves the snapshot with read permission for only the current user. ] SECURITY: namespaces: (Enterprise only)* Creating or editing namespaces that include default ACL policies or ACL roles now requires `acl:write` permission in the default namespace. This change fixes CVE-2021-41805. BUG FIXES: ca: fixes a bug that caused non blocking leaf cert queries to return the same cached response regardless of ca rotation or leaf cert expiry ] ca: fixes a bug that caused the intermediate cert used to sign leaf certs to be missing from the /connect/ca/roots API response when the Vault provider was used. ] cli: Display assigned node identities in output of `consul acl token list`. ] cli: when creating a private key, save the file with mode 0600 so that only the user has read permission. ] snapshot: (Enterprise only)* fixed a bug where the snapshot agent would ignore the `license_path` setting in config files ui: Differentiate between Service Meta and Node Meta when choosing search fields in Service Instance listings ] ui: Fixes an issue where under some circumstances after logging we present the data loaded previous to you logging in. ] ui: Fixes an issue where under some circumstances the namespace selector could become 'stuck' on the default namespace ] ui: Include `Service.Namespace` into available variables for `dashboardurltemplates` ] ui: Prevent disconnection notice appearing with auth change on certain pages ] xds: fix a deadlock when the snapshot channel already have a snapshot to be consumed. ] SECURITY: ci: Upgrade golang.org/x/net to address ] SECURITY: ci: Upgrade to Go 1.16.12 to address ] SECURITY: agent: Use SHA256 instead of MD5 to generate persistence file names. ] namespaces: (Enterprise only)* Creating or editing namespaces that include default ACL policies or ACL roles now requires `acl:write` permission in the default namespace. This change fixes CVE-2021-41805. IMPROVEMENTS: ci: Artifact builds will now only run on merges to the release branches or to `main` ] ci: The Linux packages are now available for all supported Linux architectures including arm, arm64, 386, and amd64 ] ci: The Linux packaging service configs and pre/post install scripts are now available under ] telemetry: Add new metrics for the count of connect service instances and configuration entries. ] BUG FIXES: acl: fixes the fallback behaviour of down_policy with setting extend-cache/async-cache when the token is not cached. ] rpc: only attempt to authorize the DNSName in the client cert when verifyincomingrpc=true ] server: (Enterprise only)* Ensure that servers leave network segments when leaving other gossip pools ui: Fixed styling of Role remove dialog on the Token edit page ] xds: fixes a bug where replacing a mesh gateway node used for WAN federation (with another that has a different IP) could leave gateways in the other DC unable to re-establish the connection ] FEATURES: sso/oidc: (Enterprise only)* Add support for providing acr_values in OIDC auth flow ] IMPROVEMENTS: audit-logging: (Enterprise Only)* Audit logs will now include select HTTP headers in each logs payload. Those headers are: `Forwarded`, `Via`, `X-Forwarded-For`, `X-Forwarded-Host` and `X-Forwarded-Proto`. ] connect: update supported envoy versions to 1.16.5 ] telemetry: Add new metrics for the count of KV entries in the Consul store. ] BUG FIXES: tls: consider presented intermediates during server connection tls

] ui: (Enterprise Only)* Fix saving intentions with namespaced source/destination ] KNOWN ISSUES: tls: The fix for introduced an issue that could prevent TLS certificate validation when intermediate CA certificates used to sign server certificates are transmitted in the TLS session but are not present in all Consul server's configured CA certificates. This has the effect of preventing Raft RPCs between the affected servers. As a work around until the next patch releases, ensure that all intermediate CA certificates are present in all Consul server configurations prior to using certificates that they have signed. SECURITY: rpc: authorize raft requests ] IMPROVEMENTS: areas: (Enterprise only)* Add 15s timeout to opening streams over pooled connections. areas: (Enterprise only)* Apply backpressure to area gossip packet ingestion when more than 512 packets are waiting to be ingested. areas: (Enterprise only)* Make implementation of WriteToAddress non-blocking to avoid slowing down memberlist's packetListen routine. deps: update to gogo/protobuf v1.3.2 ] BUG FIXES: acl: fixes a bug that prevented the default user token from being used to authorize service registration for connect proxies. ] ca: fixed a bug when ca provider fail and provider state is stuck in `INITIALIZING` state. ] ca: report an error when setting the ca config fail because of an index check. ] cli: Ensure the metrics endpoint is accessible when Envoy is configured to use a non-default admin bind address. ] cli: Fix a bug which prevented initializing a watch when using a namespaced token. ] connect: proxy upstreams inherit namespace from service if none are defined. ] dns: fixes a bug with edns truncation where the response could exceed the size limit in some cases. ] txn: fixes Txn.Apply to properly authorize service registrations. ] ui: Fix dropdown option duplication in the new intentions form ] ui: Hide all metrics for ingress gateway services ] ui: Properly encode non-URL safe characters in OIDC responses ] ui: fixes a bug with some service failovers not showing the routing tab visualization ] SECURITY: xds: ensure envoy verifies the subject alternative name for upstreams ] xds: ensure single L7 deny intention with default deny policy does not result in allow action ] BUG FIXES: ca: Fixed a bug that returned a malformed certificate chain when the certificate did not having a trailing newline. ] ui: Send service name down to Stats to properly call endpoint for Upstreams and Downstreams metrics ] IMPROVEMENTS: debug: capture a single stream of logs, and single pprof profile and trace for the whole duration ] licensing: (Enterprise Only)* In order to have forward compatibility with Consul Enterprise v1.10, the ability to parse licenses from the configuration or environment has been added. This can be specified with the `licensepath` configuration, the `CONSULLICENSE` environment variable or the `CONSULLICENSEPATH` environment variable. On server agents this configuration will be ignored. Client agents and the snapshot agent will use the configured license instead of automatically retrieving one. ] monitoring: optimize the monitoring endpoint to avoid losing logs when under high load. ] BUG FIXES: license: (Enterprise only)* Fixed an issue that would cause client agents on versions before 1.10 to not be able to retrieve the license from a 1.10+ server. ] monitor: fix monitor to produce json format logs when requested ] IMPROVEMENTS: acl: Give more descriptive error if auth method not found. ] areas: (Enterprise only)* Use server agent's gossip_wan config when setting memberlist configuration for network areas. Previously they used memberlists WAN defaults. cli: added a `-force-without-cross-signing` flag to the `ca set-config` command. connect/ca: The ForceWithoutCrossSigning field will now work as expected for CA providers that support cross signing. ] connect: update supported envoy versions to 1.16.3, 1.15.4, 1.14.7, 1.13.7 ] connect: update supported envoy versions to 1.16.4, 1.15.5, 1.14.6, and 1.13.7 ] telemetry: Add new metrics for status of secondary datacenter

] telemetry: The usage data in the `metrics` API now includes cluster member counts, reporting clients on a per segment basis. ] ui: Added CRD popover 'informed action' for intentions managed by CRDs ] ui: Added humanized formatting to lock session durations ] ui: Only show a partial list of intention permissions, with the option to show all ] ui: updates the ui with the new consul brand assets ] BUG FIXES: agent: ensure we hash the non-deprecated upstream fields on ServiceConfigRequest ] agent: fix logging output by removing leading whitespace from every log line ] api: include the default value of raft settings in the output of /v1/agent/self ] areas: (Enterprise only)* Revert to the 10s dial timeout used before connection pooling was introduced in 1.7.3. areas: (Enterprise only)* Selectively merge gossip_wan config for network areas to avoid attempting to enable gossip encryption where it was not intended or necessary. autopilot: (Enterprise only)* Fixed an issue where autopilot could cause a new leader to demote the wrong voter when redundancy zones are in use and the previous leader failed. ] cli: removes the need to set debug_enabled=true to collect debug data from the CLI. Now the CLI behaves the same way as the API and accepts either an ACL token with operator:read, or debug_enabled=true. ] cli: snapshot inspect command would panic on invalid input. ] envoy: fixes a bug where a large envoy config could cause the `consul connect envoy` command to deadlock when attempting to start envoy. ] http: fix a bug that caused the `X-Consul-Effective-Consistency` header to be missing on request for service health ] local: agents will no longer persist the default user token along with a service or check. ] namespaces: (Enterprise only)* fixes a problem where the logs would contain many warnings about namespaces not being licensed. server: ensure that central service config flattening properly resets the state each time ] ui: Add conditionals to lock sessions tab ] ui: De-duplicate tags in rendered tag listings ] ui: Don't render a DOM element for empty namespace descriptions ] ui: Reflect the change of Session API response shape for Checks in post 1.7 Consul ] ui: Removes the extra rendering of namespace in service upstream list ] SECURITY: Add content-type headers to raw KV responses to prevent XSS attacks ] audit-logging: Parse endpoint URL to prevent requests from bypassing the audit log IMPROVEMENTS: api: `AutopilotServerHelath` now handles the 429 status code returned by the v1/operator/autopilot/health endpoint and still returned the parsed reply which will indicate server healthiness ] client: when a client agent is attempting to dereigster a service, anddoes not have access to the ACL token used to register a service, attempt to use the agent token instead of the default user token. If no agent token is set, fall back to the default user token. ] connect: Automatically rewrite the Host header for Terminating Gateway HTTP services ] ui: support stricter content security policies ] BUG FIXES: api: ensure v1/health/ingress/:service endpoint works properly when streaming is enabled ] areas: Fixes a bug which would prevent newer servers in a network areas from connecting to servers running a version of Consul prior to 1.7.3. audit-logging: (Enterprise only) Fixed an issue that resulted in usage of the agent master token or managed service provider tokens from being resolved properly. ] cache: fix a bug in the client agent cache where streaming could potentially leak resources. ]. ] cache: fix a bug in the client agent cache where streaming would disconnect every 20 minutes and cause delivery delays.

] command: when generating envoy bootstrap configs to stdout do not mix informational logs into the json ] config: correct config key from `advertiseaddripv6` to `advertiseaddrwan_ipv6` ] http: fix a bug in Consul Enterprise that would cause the UI to believe namespaces were supported, resulting in warning logs and incorrect UI behaviour. ] snapshot: fixes a bug that would cause snapshots to be missing all but the first ACL Auth Method. ] ui: Fix intention form cancel button ] IMPROVEMENTS: connect: if the token given to the vault provider returns no data avoid a panic ] connect: update supported envoy point releases to 1.16.2, 1.15.3, 1.14.6, 1.13.7 ] xds: only try to create an ipv6 expose checks listener if ipv6 is supported by the kernel ] BUG FIXES: api: Remove trailing periods from the gateway internal HTTP API endpoint ] cache: Prevent spamming the logs for days when a cached request encounters an "ACL not found" error. ] connect: connect CA Roots in the primary datacenter should use a SigningKeyID derived from their local intermediate ] proxycfg: avoid potential deadlock in delivering proxy snapshot to watchers. ] replication: Correctly log all replication warnings that should not be suppressed ] streaming: fixes a bug caused by caching an incorrect snapshot, that would cause clients to error until the cache expired. ] ui: Exclude proxies when showing the total number of instances on a node. ] ui: Fixed a bug in older browsers relating to String.replaceAll and fieldset w/flexbox usage ] xds: deduplicate mesh gateway listeners by address in a stable way to prevent some LDS churn ] xds: prevent LDS flaps in mesh gateways due to unstable datacenter lists; also prevent some flaps in terminating gateways as well ] FEATURES: ui: Add additional search/filter status pills for viewing and removing current filters in listing views ] IMPROVEMENTS: cli: Add new `-cluster-id` and `common-name` to `consul tls ca create` to support creating a CA for Consul Connect. ] license: (Enterprise only)* Temporary client license duration was increased from 30m to 6h. server: (Enterprise Only)* Validate source namespaces in service-intentions config entries. ] server: use the presence of stored federation state data as a sign that we already activated the federation state feature flag ] BUG FIXES: autopilot: Fixed a bug that would cause snapshot restoration to stop autopilot on the leader. ] server: When wan federating via mesh gateways after initial federation default to using the local mesh gateways unless the heuristic indicates a bypass is required. ] server: When wan federating via mesh gateways only do heuristic primary DC bypass on the leader. ] ui: Fixed a bug that would cause missing or duplicate service instance healthcheck listings. ] FEATURES: agent: add config flag `MaxHeaderBytes` to control the maximum size of the http header per client request. ] cli: The `consul intention` command now has a new `list` subcommand to allow the listing of configured intentions. It also supports the `-namespace=` option. ] IMPROVEMENTS: server: deletions of intentions by name using the intention API is now idempotent ] streaming: display a warning on agent(s) when incompatible streaming parameters are used ] ui: Various accessibility scan test improvements ] DEPRECATIONS: api: the `tag`, `node-meta`, and `passing` query parameters for various health and catalog endpoints are now deprecated. The `filter` query parameter should be used as a replacement for all of the deprecated fields. The deprecated query parameters will be removed in a future version of Consul. ] BUG FIXES: client: Help added in Prometheus in relases

does not generate warnings anymore in logs ] client: properly set GRPC over RPC magic numbers when encryption was not set or partially set in the cluster with streaming enabled ] connect: Fixed a bug in the AWS PCA Connect CA provider that could cause the intermediate PKI path to be deleted after reconfiguring the CA ] connect: Fixed a bug in the Vault Connect CA provider that could cause the intermediate PKI path to be deleted after reconfiguring the CA ] connect: Fixed an issue that would prevent updating the Connect CA configuration if the CA provider didn't complete initialization previously. ] leader: Fixed a bug that could cause Connect CA initialization failures from allowing leader establishment to complete resulting in potentially infinite leader elections. ] rpc: Prevent misleading RPC error claiming the lack of a leader when Raft is ok but there are issues with client agents gossiping with the leader. ] server: Fixes a server panic introduced in 1.9.0 where Connect service mesh is being used. Node de-registration could panic if it hosted services with multiple upstreams. ] state: fix computation of usage metrics to account for various places that can modify multiple services in a single transaction. ] ui: Display LockDelay in nanoseconds as a temporary fix to the formatting ] ui: Fix an issue where registering an ingress-gateway with no central config would result in a JS error due to the API reponse returning `null` ] ui: Fixes an issue where clicking backwards and forwards between a service instance can result in a 404 error ] ui: Fixes an issue where intention description or metadata could be overwritten if saved from the topology view. ] ui: Fixes an issue with setting -ui-content-path flag/config ] ui: ensure namespace is used for node API requests ] ui: request intention listing with ns= parameter to retrieve all intentions across namespaces ] FEATURES: ui: add copyable IDs to the Role and Policy views ] IMPROVEMENTS: cli: (Enterprise only)* A new `-read-replica` flag can now be used to enable running a server as a read only replica. Previously this was enabled with the now deprecated `-non-voting-server` flag. ] config: (Enterprise only)* A new `readreplica` configuration setting can now be used to enable running a server as a read only replica. Previously this was enabled with the now deprecated `nonvoting_server` setting. ] DEPRECATIONS: cli: (Enterprise only)* The `-non-voting-server` flag is deprecated in favor of the new `-read-replica` flag. The `-non-voting-server` flag is still present along side the new flag but it will be removed in a future release. ] config: (Enterprise only)* The `nonvotingserver` configuration setting is deprecated in favor of the new `readreplica` setting. The `nonvoting_server` configuration setting is still present but will be removed in a future release. ] gossip: (Enterprise only)* Read replicas now advertise themselves by setting the `read_replica` tag. The old `nonvoter` tag is still present but is deprecated and will be removed in a future release. ] server: (Enterprise only)* Addition of the `nonvoter` tag to the service registration made for read replicas is deprecated in favor of the new tag name of `read_replica`. Both are present in the registration but the `nonvoter` tag will be completely removed in a future release. ] BUG FIXES: agent: prevent duplicate services and check registrations from being synced to servers. ] connect: fixes a case when updating the CA config in a secondary datacenter to correctly trigger the creation of a new intermediate certificate ] connect: only unset the active root in a secondary datacenter when a new one is replacing it ] namespaces: (Enterprise only)* Prevent stalling of replication in secondary datacenters due to conflicts between the namespace replicator and other

] streaming: ensure the order of results provided by /health/service/:serviceName is consistent with and without streaming enabled ] BREAKING CHANGES: agent: The `enablecentralservice_config` option now defaults to true. ] connect: Switch the default gateway port from 443 to 8443 to avoid assumption of Envoy running as root. ] connect: Update Envoy metrics names and labels for proxy listeners so that attributes like datacenter and namespace can be extracted. ] connect: intention destinations can no longer be reassigned ] raft: Raft protocol v2 is no longer supported. If currently using protocol v2 then an intermediate upgrade to a version supporting both v2 and v3 protocols will be necessary (1.0.0 - 1.8.x). Note that the Raft protocol configured with the `raft_protocol` setting and the Consul RPC protocol configured with the `protocol` setting and output by the `consul version` command are distinct and supported Consul RPC protocol versions are not altered. ] sentinel: (Consul Enterprise only)* update to v0.16.0, which replaces `whitelist` and `blacklist` with `allowlist` and `denylist` server: (Enterprise only)* Pre-existing intentions defined with non-existent destination namespaces were non-functional and are erased during the upgrade process. This should not matter as these intentions had nothing to enforce. ] server: (OSS only)* Pre-existing intentions defined with either a source or destination namespace value that is not "default" are rewritten or deleted during the upgrade process. Wildcards first attempt to downgrade to "default" unless an intention already exists, otherwise these non-functional intentions are deleted. ] xds: Drop support for Envoy versions 1.12.0, 1.12.1, 1.12.2, and 1.13.0, due to a lack of support for url_path in RBAC. ] SECURITY: Fix Consul Enterprise Namespace Config Entry Replication DoS. Previously an operator with service:write ACL permissions in a Consul Enterprise cluster could write a malicious config entry that caused infinite raft writes due to issues with the namespace replication logic. ] ] Increase the permissions to read from the `/connect/ca/configuration` endpoint to `operator:write`. Previously Connect CA configuration, including the private key, set via this endpoint could be read back by an operator with `operator:read` privileges. ] FEATURES: agent: Add a new RPC endpoint for streaming cluster state change events to clients. agent: Allow client agents to be configured with an advertised reconnect timeout to control how long until the nodes are reaped by others in the cluster. ] agent: moved ui config options to a new `ui_config` stanza in agent configuration and added new options to display service metrics in the UI. ] agent: return the default ACL policy to callers as a header ] autopilot: A new `/v1/operator/autopilot/state` HTTP API was created to give greater visibility into what autopilot is doing and how it has classified all the servers it is tracking. ] autopilot: Added a new `consul operator autopilot state` command to retrieve and view the Autopilot state from consul. ] cli: update `snapshot inspect` command to provide more detailed snapshot data ] connect: support defining intentions using layer 7 criteria ] telemetry: add initialization and definition for non-expiring key metrics in Prometheus ] telemetry: track node and service counts and emit them as metrics ] ui: If Prometheus is being used for monitoring the sidecars, the topology view can be configured to display overview metrics for the services. ] ui: Services using Connect with Envoy sidecars have a topology tab in the UI showing their upstream and downstream services. ] xds: use envoy's rbac filter to handle intentions entirely within envoy ] IMPROVEMENTS: agent: Return HTTP 429 when connections per clients limit (`limits.httpmaxconnsperclient`) has been

] agent: add path_allowlist config option to restrict metrics proxy queries ] agent: allow the /v1/connect/intentions/match endpoint to use the agent cache ] agent: protect the metrics proxy behind ACLs ] api: The `v1/connect/ca/roots` endpoint now accepts a `pem=true` query parameter and will return a PEM encoded certificate chain of all the certificates that would normally be in the JSON version of the response. ] api: support GetMeta() and GetNamespace() on all config entry kinds ] autopilot: (Enterprise Only)* Autopilot now supports using both Redundancy Zones and Automated Upgrades together. ] checks: add health status to the failure message when gRPC healthchecks fail. ] chore: Update to Go 1.15 with mitigation for ] command: remove conditional envoy bootstrap generation for versions <=1.10.0 since those are not supported ] connect: The Vault provider will now automatically renew the lease of the token used, if supported. ] connect: add support for specifying load balancing policy in service-resolver ] connect: intentions are now managed as a new config entry kind "service-intentions" ] raft: Update raft to v1.2.0 to prevent non-voters from becoming eligible for leader elections and adding peer id as metric label to reduce cardinality in metric names ] server: (Consul Enterprise only)* ensure that we also shutdown network segment serf instances on server shutdown ] server: break up Intention.Apply monolithic method ] server: create new memdb table for storing system metadata ] server: make sure that the various replication loggers use consistent logging ] server: remove config entry CAS in legacy intention API bridge code ] snapshot agent: Deregister critical snapshotting TTL check if leadership is transferred. telemetry: All metrics should be present and available to prometheus scrapers when Consul starts. If any non-deprecated metrics are missing please submit an issue with its name. ] telemetry: add config flag `telemetry { disablecompat1.9 = (true|false) }` to disable deprecated metrics in 1.9 ] telemetry: add counter `consul.api.http` with labels for each HTTP path and method. This is intended to replace `consul.http...` ] ui: Add the Upstreams and Exposed Paths tabs for services in mesh ] ui: Moves the Proxy health checks to be displayed with the Service health check under the Health Checks tab ] ui: Upstream and downstream services in the topology tab will show a visual indication if a deny intention or intention with L7 policies is configured. ] ui: add dashboardurltemplate config option for external dashboard links ] DEPRECATIONS: Go 1.15 has dropped support for 32-bit binaries for Darwin, so darwin_386 builds will not be available for any 1.9.x+ releases. ] agent: `ui`, `uidir` and `uicontentpath` are now deprecated for use in agent configuration files. Use `uiconfig.{enabled, dir, content_path}` instead. The command arguments `-ui`, `-ui-dir`, and `-ui-content-path` remain supported. ] telemetry: The measurements in all of the `consul.http...` prefixed metrics have been migrated to `consul.api.http`. `consul.http...` prefixed metrics will be removed in a future version of Consul. ] telemetry: the disablecompat1.9 config will cover more metrics deprecations in future 1.9 point releases. These metrics will be emitted twice for backwards compatibility - if the flag is true, only the new metric name will be written. ] BUG FIXES: agent: make the json/hcl decoding of ConnectProxyConfig fully work with CamelCase and snake_case ] agent: when enablecentralservice_config is enabled ensure agent reload doesn't revert check state to critical ] api: Fixed a bug where the Check.GRPCUseTLS field could not be set using snake case. ] api: Fixed a bug where additional headers configured with `httpconfig.responseheaders` would not be served on index and error pages ] autopilot: (Enterprise Only)* Previously servers in other zones would not be promoted when all servers in a second zone had

Now the actual behavior matches the docs and autopilot will promote a healthy non-voter from any zone to replace failure of an entire zone. ] autopilot: Prevent panic when requesting the autopilot health immediately after a leader is elected. ] command: when generating envoy bootstrap configs use the datacenter returned from the agent services endpoint ] connect: Fixed an issue where the Vault intermediate was not renewed in the primary datacenter. ] connect: fix Vault provider not respecting IntermediateCertTTL ] connect: fix connect sidecars registered via the API not being automatically deregistered with their parent service after an agent restart by persisting the LocallyRegisteredAsSidecar property. ] connect: use stronger validation that ingress gateways have compatible protocols defined for their upstreams ] license: (Enterprise only) Fixed an issue where the UI would see Namespaces and SSO as licensed when they were not. license: (Enterprise only)* Fixed an issue where warnings about Namespaces being unlicensed would be emitted erroneously. namespace: (Enterprise Only)* Fixed a bug that could case snapshot restoration to fail when it contained a namespace marked for deletion while still containing other resources in that namespace. ] namespace: (Enterprise Only)* Fixed an issue where namespaced services and checks were not being deleted when the containing namespace was deleted. raft: (Enterprise only) properly update consul server meta non_voter for non-voting Enterprise Consul servers ] server: skip deleted and deleting namespaces when migrating intentions to config entries ] telemetry: fixed a bug that caused logs to be flooded with `] ui: show correct datacenter for gateways ] SECURITY: ci: Upgrade golang.org/x/net to address ] SECURITY: ci: Upgrade to Go 1.16.12 to address ] namespaces: (Enterprise only)* Creating or editing namespaces that include default ACL policies or ACL roles now requires `acl:write` permission in the default namespace. This change fixes CVE-2021-41805. BUG FIXES: snapshot: (Enterprise only)* fixed a bug where the snapshot agent would ignore the `license_path` setting in config files ui: Fixes an issue where under some circumstances after logging we present the data loaded previous to you logging in. ] ui: Include `Service.Namespace` into available variables for `dashboardurltemplates` ] SECURITY: namespaces: (Enterprise only)* Creating or editing namespaces that include default ACL policies or ACL roles now requires `acl:write` permission in the default namespace. This change fixes CVE-2021-41805. IMPROVEMENTS: ci: Artifact builds will now only run on merges to the release branches or to `main` ] ci: The Linux packages are now available for all supported Linux architectures including arm, arm64, 386, and amd64 ] ci: The Linux packaging service configs and pre/post install scripts are now available under ] BUG FIXES: acl: fixes the fallback behaviour of down_policy with setting extend-cache/async-cache when the token is not cached. ] raft: Consul leaders will attempt to transfer leadership to another server as part of gracefully leaving the cluster. ] rpc: only attempt to authorize the DNSName in the client cert when verifyincomingrpc=true ] server: (Enterprise only)* Ensure that servers leave network segments when leaving other gossip pools ui: Fixed styling of Role delete confirmation button with the Token edit page ] xds: fixes a bug where replacing a mesh gateway node used for WAN federation (with another that has a different IP) could leave gateways in the other DC unable to re-establish the connection ] FEATURES: sso/oidc: (Enterprise only)* Add support for providing acr_values in OIDC auth flow ] IMPROVEMENTS: audit-logging: (Enterprise Only)* Audit logs will now include select HTTP headers in each logs payload. Those headers are: `Forwarded`, `Via`, `X-Forwarded-For`, `X-Forwarded-Host` and `X-Forwarded-Proto`. ] BUG FIXES: tls: consider presented intermediates during server connection tls

] ui: (Enterprise Only)* Fixes a visual issue where namespaces would "double up" in the Source/Destination select menu when creating/editing intentions ] KNOWN ISSUES: tls: The fix for introduced an issue that could prevent TLS certificate validation when intermediate CA certificates used to sign server certificates are transmitted in the TLS session but are not present in all Consul server's configured CA certificates. This has the effect of preventing Raft RPCs between the affected servers. As a work around until the next patch releases, ensure that all intermediate CA certificates are present in all Consul server configurations prior to using certificates that they have signed. SECURITY: rpc: authorize raft requests ] IMPROVEMENTS: areas: (Enterprise only)* Add 15s timeout to opening streams over pooled connections. areas: (Enterprise only)* Apply backpressure to area gossip packet ingestion when more than 512 packets are waiting to be ingested. areas: (Enterprise only)* Make implementation of WriteToAddress non-blocking to avoid slowing down memberlist's packetListen routine. deps: update to gogo/protobuf v1.3.2 ] BUG FIXES: acl: fixes a bug that prevented the default user token from being used to authorize service registration for connect proxies. ] ca: fixed a bug when ca provider fail and provider state is stuck in `INITIALIZING` state. ] ca: report an error when setting the ca config fail because of an index check. ] cli: Ensure the metrics endpoint is accessible when Envoy is configured to use a non-default admin bind address. ] cli: Fix a bug which prevented initializing a watch when using a namespaced token. ] connect: proxy upstreams inherit namespace from service if none are defined. ] dns: fixes a bug with edns truncation where the response could exceed the size limit in some cases. ] txn: fixes Txn.Apply to properly authorize service registrations. ] SECURITY: xds: ensure envoy verifies the subject alternative name for upstreams ] BUG FIXES: ca: Fixed a bug that returned a malformed certificate chain when the certificate did not having a trailing newline. ] IMPROVEMENTS: debug: capture a single stream of logs, and single pprof profile and trace for the whole duration ] licensing: (Enterprise Only)* In order to have forward compatibility with Consul Enterprise v1.10, the ability to parse licenses from the configuration or environment has been added. This can be specified with the `licensepath` configuration, the `CONSULLICENSE` environment variable or the `CONSULLICENSEPATH` environment variable. On server agents this configuration will be ignored. Client agents and the snapshot agent will use the configured license instead of automatically retrieving one. ] monitoring: optimize the monitoring endpoint to avoid losing logs when under high load. ] BUG FIXES: license: (Enterprise only)* Fixed an issue that would cause client agents on versions before 1.10 to not be able to retrieve the license from a 1.10+ server. ] monitor: fix monitor to produce json format logs when requested ] BUG FIXES: agent: fix logging output by removing leading whitespace from every log line ] cli: removes the need to set debug_enabled=true to collect debug data from the CLI. Now the CLI behaves the same way as the API and accepts either an ACL token with operator:read, or debug_enabled=true. ] envoy: fixes a bug where a large envoy config could cause the `consul connect envoy` command to deadlock when attempting to start envoy. ] namespaces: (Enterprise only)* fixes a problem where the logs would contain many warnings about namespaces not being licensed. IMPROVEMENTS: areas: (Enterprise only)* Use server agent's gossip_wan config when setting memberlist configuration for network areas. Previously they used memberlists WAN defaults. cli: added a `-force-without-cross-signing` flag to the `ca set-config`

connect/ca: The ForceWithoutCrossSigning field will now work as expected for CA providers that support cross signing. ] connect: update supported envoy versions to 1.14.7, 1.13.7, 1.12.7, 1.11.2 ] telemetry: Add new metrics for status of secondary datacenter replication. ] BUG FIXES: agent: ensure we hash the non-deprecated upstream fields on ServiceConfigRequest ] api: include the default value of raft settings in the output of /v1/agent/self ] areas: (Enterprise only)* Revert to the 10s dial timeout used before connection pooling was introduced in 1.7.3. areas: (Enterprise only)* Selectively merge gossip_wan config for network areas to avoid attempting to enable gossip encryption where it was not intended or necessary. local: agents will no longer persist the default user token along with a service or check. ] server: ensure that central service config flattening properly resets the state each time ] SECURITY: Add content-type headers to raw KV responses to prevent XSS attacks ] audit-logging: Parse endpoint URL to prevent requests from bypassing the audit log BUG FIXES: areas: Fixes a bug which would prevent newer servers in a network areas from connecting to servers running a version of Consul prior to 1.7.3. audit-logging: (Enterprise only) Fixed an issue that resulted in usage of the agent master token or managed service provider tokens from being resolved properly. ] command: when generating envoy bootstrap configs to stdout do not mix informational logs into the json ] config: correct config key from `advertiseaddripv6` to `advertiseaddrwan_ipv6` ] snapshot: fixes a bug that would cause snapshots to be missing all but the first ACL Auth Method. ] IMPROVEMENTS: cli: Add new `-cluster-id` and `common-name` to `consul tls ca create` to support creating a CA for Consul Connect. ] connect: if the token given to the vault provider returns no data avoid a panic ] connect: update supported envoy point releases to 1.14.6, 1.13.7, 1.12.7, 1.11.2 ] license: (Enterprise only)* Temporary client license duration was increased from 30m to 6h. server: use the presense of stored federation state data as a sign that we already activated the federation state feature flag ] xds: only try to create an ipv6 expose checks listener if ipv6 is supported by the kernel ] BUG FIXES: api: Remove trailing periods from the gateway internal HTTP API endpoint ] cache: Prevent spamming the logs for days when a cached request encounters an "ACL not found" error. ] connect: connect CA Roots in the primary datacenter should use a SigningKeyID derived from their local intermediate ] proxycfg: avoid potential deadlock in delivering proxy snapshot to watchers. ] server: When wan federating via mesh gateways after initial federation default to using the local mesh gateways unless the heuristic indicates a bypass is required. ] server: When wan federating via mesh gateways only do heuristic primary DC bypass on the leader. ] xds: deduplicate mesh gateway listeners by address in a stable way to prevent some LDS churn ] xds: prevent LDS flaps in mesh gateways due to unstable datacenter lists; also prevent some flaps in terminating gateways as well ] BUG FIXES: connect: Fixed a bug in the AWS PCA Connect CA provider that could cause the intermediate PKI path to be deleted after reconfiguring the CA ] connect: Fixed a bug in the Vault Connect CA provider that could cause the intermediate PKI path to be deleted after reconfiguring the CA ] connect: Fixed an issue that would prevent updating the Connect CA configuration if the CA provider didn't complete initialization previously. ] leader: Fixed a bug that could cause Connect CA initialization failures from allowing leader establishment to complete resulting in potentially infinite leader

] rpc: Prevent misleading RPC error claiming the lack of a leader when Raft is ok but there are issues with client agents gossiping with the leader. ] ui: ensure namespace is used for node API requests ] BUG FIXES: acl: global tokens created by auth methods now correctly replicate to secondary datacenters ] connect: fixes a case when updating the CA config in a secondary datacenter to correctly trigger the creation of a new intermediate certificate ] connect: only unset the active root in a secondary datacenter when a new one is replacing it ] license: (Enterprise only) Fixed an issue where the UI would see Namespaces and SSO as licensed when they were not. license: (Enterprise only)* Fixed an issue where warnings about Namespaces being unlicensed would be emitted erroneously. namespace: (Enterprise Only)* Fixed a bug that could case snapshot restoration to fail when it contained a namespace marked for deletion while still containing other resources in that namespace. ] namespace: (Enterprise Only)* Fixed an issue where namespaced services and checks were not being deleted when the containing namespace was deleted. namespaces: (Enterprise only)* Prevent stalling of replication in secondary datacenters due to conflicts between the namespace replicator and other replicators. ] SECURITY: Increase the permissions to read from the `/connect/ca/configuration` endpoint to `operator:write`. Previously Connect CA configuration, including the private key, set via this endpoint could be read back by an operator with `operator:read` privileges. ] SECURITY: Fix Consul Enterprise Namespace Config Entry Replication DoS. Previously an operator with service:write ACL permissions in a Consul Enterprise cluster could write a malicious config entry that caused infinite raft writes due to issues with the namespace replication logic. ] ] IMPROVEMENTS: api: The `v1/connect/ca/roots` endpoint now accepts a `pem=true` query parameter and will return a PEM encoded certificate chain of all the certificates that would normally be in the JSON version of the response. ] connect: The Vault provider will now automatically renew the lease of the token used, if supported. ] connect: update supported envoy releases to 1.14.5, 1.13.6, 1.12.7, 1.11.2 for 1.8.x ] BUG FIXES: agent: when enablecentralservice_config is enabled ensure agent reload doesn't revert check state to critical ] connect: Fixed an issue where the Vault intermediate was not renewed in the primary datacenter. ] connect: fix Vault provider not respecting IntermediateCertTTL ] connect: fix connect sidecars registered via the API not being automatically deregistered with their parent service after an agent restart by persisting the LocallyRegisteredAsSidecar property. ] fixed a bug that caused logs to be flooded with `] ui: show correct datacenter for gateways ] FEATURES: agent: expose the list of supported envoy versions on /v1/agent/self ] cache: Config parameters for cache throttling are now reloaded automatically on agent reload. Restarting the agent is not needed anymore. ] connect: all config entries pick up a meta field ] IMPROVEMENTS: api: Added `ACLMode` method to the `AgentMember` type to determine what ACL mode the agent is operating in. ] api: Added `IsConsulServer` method to the `AgentMember` type to easily determine whether the agent is a server. ] api: Added constants for common tag keys and values in the `Tags` field of the `AgentMember` struct. ] api: Allow for the client to use TLS over a Unix domain socket. ] api: `GET v1/operator/keyring` also lists primary keys. ] connect: Add support for http2 and grpc to ingress gateways ] serf: update to `v0.9.4` which supports primary keys in the ListKeys

] BUGFIXES: connect: use stronger validation that ingress gateways have compatible protocols defined for their upstreams ] agent: ensure that we normalize bootstrapped config entries ] api: Fixed a panic caused by an api request with Connect=null ] connect: `connect envoy` command now respects the `-ca-path` flag ] connect: fix bug in preventing some namespaced config entry modifications ] connect: fix renewing secondary intermediate certificates ] ui: fixed a bug related to in-folder KV creation ] BUGFIXES: catalog: fixed a bug where nodes, services, and checks would not be restored with the correct Create/ModifyIndex when restoring from a snapshot ] vendor: update github.com/armon/go-metrics to v0.3.4 to mitigate a potential panic when emitting Prometheus metrics at an interval longer than the metric expiry time ] connect: (Consul Enterprise only)* Fixed a regression that prevented mesh gateways from routing to services in their local datacenter that reside outside of the default namespace. auto_config: Fixed an issue where auto-config could be enabled in secondary DCs without enabling token replication when ACLs were enabled. ] xds: revert setting setnodeonfirstmessage_only to true when generating envoy bootstrap config ] FEATURES: acl: Added ACL Node Identities for easier creation of Consul Agent tokens. ] agent: Added Consul client agent automatic configuration utilizing JWTs for authorizing the request to generate ACL tokens, TLS certificates and retrieval of the gossip encryption key. ], ], ], ], ], ], ], ], ], ], ], ], ], ] IMPROVEMENTS: acl: allow auth methods created in the primary datacenter to optionally create global tokens ] agent: Allow to restrict servers that can join a given Serf Consul cluster. ] agent: new configuration options allow ratelimiting of the agent-cache: `cache.entryfetchrate` and `cache.entryfetchmax_burst`. ] api: Added methods to allow passing query options to leader and peers endpoints to mirror HTTP API ] autoconfig: when configuring autoconfig, connect is turned on automatically ] connect: various changes to make namespaces for intentions work more like for other subsystems ] connect: Append port number to expected ingress hosts ] connect: add support for envoy 1.15.0 and drop support for 1.11.x ] connect: support Envoy v1.14.4, v1.13.4, v1.12.6 ] dns: Improve RCODE of response when query targets a non-existent datacenter. ],] version: The `version` CLI subcommand was altered to always show the git revision the binary was built from on the second line of output. Additionally the command gained a `-format` flag with the option now of outputting the version information in JSON form. NOTE* This change has the potential to break any parsing done by users of the `version` commands output. In many cases nothing will need to be done but it is possible depending on how the output is parsed. ] BUGFIXES: agent: Fixed a bug where Consul could crash when `verify_outgoing` was set to true but no client certificate was used. ] agent: Fixed an issue with lock contention during RPCs when under load while using the Prometheus metrics sink. ] auto_encrypt: Fixed an issue where auto encrypt certificate signing wasn't using the connect signing rate limiter. ] auto_encrypt: Fixed several issues around retrieving the first TLS certificate where it would have the wrong CN and SANs. This was being masked by a second bug (also fixed) causing that certificate to immediately be discarded with a second certificate request being made afterwards. ] auto_encrypt: Fixed an issue that caused auto encrypt certificates to not be updated properly if the agents token was changed and the old token was deleted. ] autopilot: (Consul Enterprise only)* Fixed an issue where using autopilot with redundancy zones wouldn't demote extra voters in a zone to match the "one voter per zone" desired state when

connect: fix crash that would result if a mesh or terminating gateway's upstream has a hostname as an address and no healthy service instances available. ] connect: Fixed issue where specifying a prometheus bind address would cause ingress gateways to fail to start up gossip: Avoid issue where two unique leave events for the same node could lead to infinite rebroadcast storms ] router: Mark its own cluster as healthy when rebalancing. ] snapshot: (Consul Enterprise only)* Fixed a regression when using Azure blob storage. xds: version sniff envoy and switch regular expressions from 'regex' to 'safe_regex' on newer envoy versions ] BREAKING CHANGES: acl: Remove deprecated `aclenforceversion_8` option ] FEATURES: Terminating Gateway*: Envoy can now be run as a gateway to enable services in a Consul service mesh to connect to external services through their local proxy. Terminating gateways unlock several of the benefits of a service mesh in the cases where a sidecar proxy cannot be deployed alongside services such as legacy applications or managed cloud databases. Ingress Gateway*: Envoy can now be run as a gateway to ingress traffic into the Consul service mesh, enabling a more incremental transition for applications. WAN Federation over Mesh Gateways*: Allows Consul datacenters to federate by forwarding WAN gossip and RPC traffic through Mesh Gateways rather than requiring the servers to be exposed to the WAN directly. JSON Web Token (JWT) Auth Method*: Allows exchanging a signed JWT from a trusted external identity provider for a Consul ACL token. Single Sign-On (SSO) [Enterprise]*: Lets an operator configure Consul to use an external OpenID Connect (OIDC) provider to automatically handle the lifecycle of creating, distributing and managing ACL tokens for performing CLI operations or accessing the UI. Audit Logging [Enterprise]*: Adds instrumentation to record a trail of events (both attempted and authorized) by users of Consuls HTTP API for purposes of regulatory compliance. acl: add DisplayName field to auth methods ] acl: add MaxTokenTTL field to auth methods ] agent/xds: add support for configuring passive health checks ] cli: Add -config flag to "acl authmethod update/create" ] serf: allow to restrict servers that can join a given Serf Consul cluster. ] ui: Help menu to provide further documentation/learn links ] ui: (Consul Enterprise only)* SSO support ] ] ] ui: Support for termininating and ingress gateways ] ] IMPROVEMENTS: acl: change authmethod.Validator to take a logger ] agent: show warning when enablescriptchecks is enabled without safety net ] api: Added filtering support to the v1/connect/intentions endpoint. ] autoencrypt: add validations for autoencrypt.{tls,allow_tls} ] build: switched to compile with Go 1.14.1 ] config: validate system limits against limits.httpmaxconnsperclient ] connect: support envoy 1.12.3, 1.13.1, and 1.14.1. Envoy 1.10 is no longer officially supported. ],] connect: add DNSSAN and IPSAN to cache key for ConnectCALeafRequest ] connect: Added a new expose CLI command for ingress gateways ] license: (Consul Enterprise only)* Update licensing to align with the current modules licensing

logging: catch problems with the log destination earlier by creating the file immediately ] proxycfg: support path exposed with non-HTTP2 protocol ] tls: remove old ciphers ] ui: Show the last 8 characters of AccessorIDs in listing views ] ui: Make all tabs within the UI linkable/bookmarkable and include in history ] ui: Redesign of all service pages ] ] ] ] ui: Show intentions per individual service ] ui: Improved login/logout flow ] ui: Revert search to search as you type, add sort control for the service listing page ] ui: Omit proxy services from the service listing view and mark services as being proxied ] ui: Display proxies in a proxy info tab with the service instance detail page ] ui: Add live updates/blocking queries to gateway listings ] ui: Improved 'empty states' ] ui: Add ability to sort services based on health ] ui: Add explanatory tooltip panels for gateway services ui: Reduce discovery-chain log errors BUGFIXES: agent: (Consul Enterprise only)* Fixed several bugs related to Network Area and Network Segment compatibility with other features caused by incorrectly doing version or serf tag checking. ] agent: rewrite checks with proxy address, not local service address ] agent: Preserve ModifyIndex for unchanged entry in KV transaciton ] agent: use default resolver scheme for gRPC dialing ] cache: Fix go routine leak in the agent cache which could cause increasing memory usage. ] cli: enable TLS when `CONSULHTTPADDR` has an `https` scheme ] connect: Internal refactoring to allow Connect proxy config to contain lists of structured configuration ]] license: (Consul Enterprise only)* Fixed a bug that would cause a license reset request to only be applied on the leader server. sdk: Fix race condition in freeport ] server: strip local ACL tokens from RPCs during forwarding if crossing datacenters ] ui: Quote service names when filtering intentions to prevent 500 errors when accessing a service ] ] ui: Miscellaneous amends for Safari and Firefox ] ] ui: Ensure a value is always passed to CONSULSSOENABLED ] SECURITY: Add content-type headers to raw KV responses to prevent XSS attacks ] BUG FIXES: command: when generating envoy bootstrap configs to stdout do not mix informational logs into the json ] config: correct config key from `advertiseaddripv6` to `advertiseaddrwan_ipv6` ] snapshot: fixes a bug that would cause snapshots to be missing all but the first ACL Auth Method. ] IMPROVEMENTS: connect: update supported envoy point releases to 1.13.7, 1.12.7, 1.11.2, 1.10.0 ] license: (Enterprise only)* Temporary client license duration was increased from 30m to 6h. xds: only try to create an ipv6 expose checks listener if ipv6 is supported by the kernel ] BUG FIXES: cache: Prevent spamming the logs for days when a cached request encounters an "ACL not found" error. ] connect: connect CA Roots in the primary datacenter should use a SigningKeyID derived from their local intermediate ] xds: deduplicate mesh gateway listeners by address in a stable way to prevent some LDS churn ] xds: prevent LDS flaps in mesh gateways due to unstable datacenter lists; also prevent some flaps in terminating gateways as well ] BUG FIXES: rpc: Prevent misleading RPC error claiming the lack of a leader when Raft is ok but there are issues with client agents gossiping with the leader. ] ui: ensure namespace is used for node API requests ] BUG FIXES: license: (Enterprise only)* Fixed an issue where warnings about Namespaces being unlicensed would be emitted erroneously. namespace: (Enterprise Only)* Fixed a bug that could case snapshot restoration to fail when it contained a namespace marked for deletion while still containing other resources in that namespace. ] namespace: (Enterprise Only)* Fixed an issue where namespaced services and checks were not being deleted when the containing namespace was deleted. namespaces: (Enterprise only)* Prevent stalling of replication in secondary datacenters due to conflicts between the namespace replicator and other replicators. ] SECURITY: Increase the permissions to read from the `/connect/ca/configuration` endpoint to `operator:write`. Previously Connect CA configuration, including the private key, set via this endpoint could be read back by an operator with `operator:read` privileges. ] SECURITY: Fix Consul Enterprise Namespace Config Entry Replication DoS. Previously an operator with service:write ACL permissions in a Consul Enterprise cluster could write a malicious config entry that caused infinite raft writes due to issues with the namespace replication

] IMPROVEMENTS: connect: update supported envoy releases to 1.13.6, 1.12.7, 1.11.2, 1.10.0 for 1.7.x ] BUG FIXES: agent: when enablecentralservice_config is enabled ensure agent reload doesn't revert check state to critical ] FEATURES: agent: expose the list of supported envoy versions on /v1/agent/self ] BUG FIXES: connect: fix bug in preventing some namespaced config entry modifications ] api: fixed a panic caused by an api request with Connect=null ] BUGFIXES: catalog: fixed a bug where nodes, services, and checks would not be restored with the correct Create/ModifyIndex when restoring from a snapshot ] vendor: update github.com/armon/go-metrics to v0.3.4 to mitigate a potential panic when emitting Prometheus metrics at an interval longer than the metric expiry time ] BUG FIXES: xds: revert setting setnodeonfirstmessage_only to true when generating envoy bootstrap config ] telemetry: fix for a lock contention issue with the go-metrics Prometheus sink that could cause performance issues ] telemetry: fix for a lock contention issue with the go-metrics Dogstatsd sink that could cause performance issues ] BUG FIXES: agent: Fixed an issue with lock contention during RPCs when under load while using the Prometheus metrics sink. ] gossip: Avoid issue where two unique leave events for the same node could lead to infinite rebroadcast storms ] snapshot: (Consul Enterprise only)* Fixed a regression when using Azure blob storage. Return a service splitter's weight or a zero ] SECURITY: Adding an option `httpconfig.usecache` to disable agent caching for http endpoints, because Consuls DNS and HTTP API expose a caching feature susceptible to DoS. Propagate and enforce changes to legacy ACL tokens rules in secondary data centers. Only resolve local acl token in the datacenter it belongs to. Requiring service:write permissions, a service-router entry without a destination no longer crashes Consul servers. BUG FIXES: acl: Fixed an issue where legacy management tokens could not be used in secondary datacenters. ] agent: Fixed a race condition that could cause an agent to crash when first starting. ] connect: ensure proxy-defaults protocol is used for upstreams ] connect: setup intermediatepkipath on secondary when using vault IMPROVEMENTS: acl: (Consul Enterprise only)* - Disable the ACL.Bootstrap RPC endpoints when managed service provider tokens are in use. ] acl: (Consul Enterprise only)* - Consul agents will now use the first managed service provider token for the agents token when any are present. acl: Added a v1/acl/policy/name/:name HTTP endpoint to read a policy by name. ] acl: Added JSON format output to all of the ACL CLI commands. ] agent/xds: Update mesh gateway to use the service resolver connect timeout when configured ] cli: Log "newer version available" message at `INFO` level ] config: Consul Enterprise specific configuration are now parseable in OSS but will emit warnings about them not being used. network areas: (Consul Enterprise only)* - Network areas are using memberlist with TCP and for every message a new connection was established. Now the connections multiplexed with yamux, which means that way fewer connections are created. network segments: (Consul Enterprise only)* - The segment configuration is no longer stored in serf node tags. There is now an RPC endpoint for the same information, which means that the number of network segment is no longer limited by node meta tag size. snapshot agent: (Consul Enterprise only)* - Azure has different environments, of which it was only possible to use the public one so far. A new flag was added so that every other environment can be used as well, like Azure

BUGFIXES: agent: don't let left nodes hold onto their node-id ] agent: (Consul Enterprise only)* Fixed several bugs related to Network Area ann Network Segment compatibility with other features caused by incorrectly doing version or serf tag checking. ] cli: ensure that 'snapshot save' is fsync safe and also only writes to the requested file on success ] cli: fix usage of gzip.Reader to better detect corrupt snapshots during save/restore ] connect: Fix panic when validating a service-router config entry with no destination ] namespace: (Consul Enterprise only)* Fixed several bugs where results from multiple namespaces would be returned when only a single namespace was being queried when the token making the request had permissions to see all of them. snapshot agent (Consul Enterprise only)*: Ensure snapshots persisted with the local backend are fsync safe and also only writes to the requested file on success. snapshot agent (Consul Enterprise only)*: Verify integrity of snapshots locally before storing with the configured backend. ui: Ensure blocking queries are used in the service instance page instead of polling ] ui: Fix a refreshing/rescrolling issue for the healthcheck listings ] ] ui: Fix token duplication action bug ] ui: Lazily detect HTTP protocol along with a fallback for non-detection ] ] ui: Ensure KV names using 'special' terms within the default namespace are editable when the URL doesn't include the default namespace ] xds: Fix flapping of mesh gateway connect-service watches ] IMPROVEMENTS: agent: add option to configure max request length for `/v1/txn` endpoint ] build: bump the expected go language version of the main module to 1.13 ] agent: add http_config.response header to the UI headers ] agent: Added documentation and error messages related to `kvmaxvalue_size` option ] agent: Take Prometheus MIME-type header into account ] BUGFIXES: acl: Updated token resolution so managed service provider token applies to all endpoints. ] agent: Fixed error output when agent crashes early ] agent: Handle bars in node names when displaying lists in CLI like `consul members` ] agent: Avoid discarding health check status on `consul reload` ] network areas: (Consul Enterprise only)* - Fixed compatibility issues with network areas and v1.4.0+ ACLs as well as network areas and namespaces. The issue was that secondary datacenters connected to the primary via a network area were not properly detecting that the primary DC supported those other features. sessions: Fixed backwards incompatibility with 1.6.x and earlier ]] sessions: Fixed backwards incompatibility with 1.6.x and earlier ]] ui: Fixed a DOM refreshing bug on the node detail page which forced an scroll reset ]] ui: Fix blocking query requests for the coordinates API requests ] ui: Enable recovery from an unreachable datacenter ] IMPROVEMENTS: agent: sensible keyring error ] agent: add server `raft.{last,applied}_index` gauges ] build: Switched to compile with Go 1.13.7 ] config: increase `httpmaxconnsperclient` default to 200 ] tls: support TLS 1.3 ] BUGFIXES: acl: (Consul Enterprise only)* Fixed an issue that prevented remote policy and role resolution from working when namespace policy or role defaults were configured. dns: Fixed an issue that could cause the DNS server to consume excessive CPU resources when trying to parse IPv6 recursor addresses: ] dns: Fixed an issue that caused Consul to setup a root zone handler when no `alt_domain` was configured. ] sessions: Fixed an issue that was causing deletions of a non-existent session to return a 500 when ACLs were enabled. ] xds: Fix envoy retryOn behavior when multiple behaviors are configured ] xds: Mesh Gateway fixes to prevent configuring extra clusters and for properly handling a service-resolvers default subset. ] ui: Gracefully cope with errors in discovery-chain when connect is disabled ] NOTES: cli: Our Windows 32-bit and 64-bit executables for this version and up will be signed with a HashiCorp

Windows users will no longer see a warning about an "unknown publisher" when running our software. cli: Our darwin releases for this version and up will be signed and notarized according to Apple's requirements. Prior to this release, MacOS 10.15+ users attempting to run our software may see the error: "'consul' cannot be opened because the developer cannot be verified." This error affected all MacOS 10.15+ users who downloaded our software directly via web browsers, and was caused by changes to . MacOS 10.15+ users should plan to upgrade to 1.7.0+. SECURITY: dns: Updated miekg/dns dependency to fix a memory leak and CVE-2019-19794. ], ] updated to compile with ] which includes a fix for CVE-2020-0601 on windows ] BREAKING CHANGES: http: The HTTP API no longer accepts JSON fields that are unknown to it. Instead errors will be returned with 400 status codes ] dns: PTR record queries now return answers that contain the Consul datacenter as a label between `service` and the domain. ] agent: The ACL requirement for the is now `operator:write` rather than `agent:write`. ] logging: Switch over to using go-hclog and allow emitting either structured or unstructured logs. This changes the log format quite a bit and could break any log parsing users may have in place. ]] intentions: Change the ACL requirement and enforcement for wildcard rules. Previously this would look for an ACL rule that would grant access to the service/intention ``. Now, in order to write a wildcard intention requires write access to all intentions and reading a wildcard intention requires read access to any intention that would match. Additionally intention listing and reading allow access if the requester can read either side of the intention whereas before it only allowed it for permissions on the destination side. ] telemetry: `consul.rpc.query` has changed to only measure the start of `srv.blockingQuery()` calls. In certain rare cases where there are lots of idempotent updates this will cause the metric to report lower than before. The counter should now provides more meaningful behavior that maps to the rate of client-initiated requests. ] FEATURES: Namespaces (Consul Enterprise only)* This version adds namespacing to Consul. Namespaces help reduce operational challenges by removing restrictions around uniqueness of resource names across distinct teams, and enable operators to provide self-service through delegation of administrative privileges. Namespace support was added to: ACLs Key/Value Store Sessions Catalog Connect UI ] agent: Add Cloud Auto-join support for Tencent Cloud ] connect: Added a new CA provider allowing Connect certificates to be managed by AWS . connect: Allow configuration of upstream connection limits in Envoy ] ui: Adds UI support for ui: Visualisation of the Discovery Chain IMPROVEMENTS: acl: Use constant time comparison when checking for the ACL agent master token. ] acl: Add accessorID of token when ops are denied by ACL system ] agent: default the primary_datacenter to the datacenter if not configured ] agent: configurable `MaxQueryTime` and `DefaultQueryTime` ] agent: do not deregister service checks twice ] agent: remove service sidecars in `cleanupRegistration` ] agent: setup grpc server with auto_encrypt certs and add `-https-port` agent: some check types now support configuring a number of consecutive failure and success before the check status is updated in the catalog. ] agent: clients should only attempt to remove pruned nodes once per call ] agent: Consul HTTP checks can now send a configurable `body` in the request. ] agent: increase watchLimit to

] api: A new `/v1/catalog/node-services/:node` endpoint was added that mirrors the existing `/v1/catalog/node/:node` endpoint but has a response structure that contains a slice of services instead of a map of service ids to services. This new endpoint allows retrieving all services in all namespaces for a node. ] api: add option to set TLS options in-memory for API client ] api: add replace-existing-checks param to the api package ] auto_encrypt: set dns and ip san for k8s and provide configuration ] cli: improve the file safety of 'consul tls' subcommands ] cli: give feedback to CLI user on forceleave command if node does not exist ] connect: Envoy's whole stats endpoint can now be exposed to allow integrations like DataDog agent ] connect: check if intermediate cert needs to be renewed. ] connect: Allow inlining of the TLS certificate in the Envoy configuration. ] dns: Improvement to enable dual stack IPv4/IPv6 addressing of services and lookup via DNS ] lock: `consul lock` will now receive shutdown signals during the lock-acquisition process. ] raft: increase raft notify buffer ] raft: update raft to v1.1.2 ] router: do not surface left servers ] rpc: log method when a server/server RPC call fails ] sentinel: (Consul Enterprise only)* The Sentinel framework was upgraded to v0.13.0. See the for more information. telemetry: Added `consul.rpc.queries_blocking` gauge to measure the current number of in-flight blocking queries. ] ui: Discovery chain improvements for clarifying the default router ] ui: Added unique browser titles to each page ] ui: Add live updates/blocking queries to the Intention listing page ] ui: Use more consistent icons with other HashiCorp products in the UI ui: Improvements to the Discovery Chain visualisation in respect to redirects ui: Improvement keyboard navigation of the main menu ui: New row confirmation dialogs ui: Various visual CSS amends and alterations [[GH6881]](https://github.com/hashicorp/consul/ ui: Hides the Routing tab for a service proxy ] ui: Add ability to search nodes listing page with IP Address ] xds: mesh gateway CDS requests are now allowed to receive an empty CDS reply ] xds: Verified integration test suite with Envoy 1.12.2 & 1.13.0 ] agent: Added ACL token for Consul managed service providers ] BUGFIXES: agent: fix watch event behavior ] agent: ensure node info sync and full sync ] autopilot: Fixed dead server removal condition to use correct failure tolerance. ] cli: services register command now correctly registers an unamed healthcheck ] cli: remove `-dev` from `consul version` in ARM builds in the 1.6.2 release ] cli: uicontentpath config option fix ] config: Fixed a bug that caused some config parsing to be case-sensitive: ] connect: CAs can now use RSA keys correctly to sign EC leafs ] connect: derive connect certificate serial numbers from a memdb index instead of the provider table max index ] connect: ensure that updates to the secondary root CA configuration use the correct signing key ID values for comparison ] connect: use correct subject key id for leaf certificates. ] log: handle discard all logfiles properly ] state: restore a few more service-kind index updates so blocking in ServiceDump works in more cases ] tls: fix behavior related to autoencrypt and verifyincoming (#6899) ] ui: Ensure the main navigation menu is closed on click ] ui: Ensure KV flags are passed through to Consul on update ] ui: Fix positioning of active icon in main navigation menu ] ui: Ensure the Namespace property is sent to Consul in OSS ] ui: Remove the Policy/Service Identity selector from namespace policy form ] ui: Fix positioning of active icon in the selected menu item ] ui: Discovery-Chain: Improve parsing of redirects ] ui: Fix styling of duplicate intention error message SECURITY: Increase the permissions to read from the `/connect/ca/configuration` endpoint to

Previously Connect CA configuration, including the private key, set via this endpoint could be read back by an operator with `operator:read` privileges. ] BUG FIXES: api: fixed a panic caused by an api request with Connect=null ] BUG FIXES: vendor: update github.com/armon/go-metrics to v0.3.4 to mitigate a potential panic when emitting Prometheus metrics at an interval longer than the metric expiry time ] BUG FIXES: agent: Fixed an issue with lock contention during RPCs when under load while using the Prometheus metrics sink. ] gossip: Avoid issue where two unique leave events for the same node could lead to infinite rebroadcast storms ] SECURITY: Adding an option `httpconfig.usecache` to disable agent caching for http endpoints, because Consuls DNS and HTTP API expose a caching feature susceptible to DoS. Propagate and enforce changes to legacy ACL tokens rules in secondary data centers. Only resolve local acl token in the datacenter it belongs to. BUG FIXES: acl: Fixed an issue where legacy management tokens could not be used in secondary datacenters. ] agent: Fixed a race condition that could cause an agent to crash when first starting. ] BUG FIXES: agent: (Consul Enterprise only)* Fixed several bugs related to Network Area and Network Segment compatibility with other features caused by incorrectly doing version or serf tag checking. ] SECURITY: dns: Updated miekg/dns dependency to fix a memory leak and CVE-2019-19794. ], ] SECURITY agent: mitigate potential DoS vector allowing unbounded server resource usage from unauthenticated connections ] acl: add ACL enforcement to the `v1/agent/health/service/` endpoints ] IMPROVEMENTS tls: `autoencrypt` and `verifyincoming` ] BUG FIXES agent: output proper HTTP status codes for Txn requests that are too large ] connect: derive connect certificate serial numbers from a memdb index instead of the provider table max index ] connect: ensure that updates to the secondary root CA configuration use the correct signing key ID values for comparison ] SECURITY Updated to compile with Go 1.12.13 which includes a fix for CVE-2019-17596 in ] ] FEATURES agent: store check type in catalog ] agent: update force-leave to allow for complete removal of members ] agent: updates to the agent token trigger anti-entropy full syncs ] snapshot agent (Consul Enterprise): Added support for saving snapshots to Google Cloud Storage. connect: Added proxy config stanza to allow exposing HTTP paths through Envoy for non-Connect-enabled services ] IMPROVEMENTS licensing (Consul Enterprise): Increase initial server temporary license duration to 6 hours to allow for longer upgrades/migrations. server: ensure the primary datacenter and ACL datacenter match ] sdk: ignore panics due to stray goroutines logging after a test completes ] agent: allow mesh gateways to initialize even if there are no connect services registered yet ] agent: endpoint performance improvements, Txn endpoint in particular. ] sdk: add NewTestServerT, deprecate NewTestServer in testutil to prevent nil point dereference ] agent: auto_encrypt provided TLS certificates can now be used to enable HTTPS on clients ] sentinel (Consul Enterprise): update to v0.13.0, see for more details BUG FIXES ARM release binaries: Starting with v1.6.2, Consul will ship three separate versions of ARM builds. The previous ARM binaries of Consul could potentially crash due to the way the Go runtime manages internal pointers to its Go routine management constructs and how it keeps track of them especially during signal handling. From v1.6.2 forward, it is recommended to use: consul{version}linux_armelv5.zip for all 32-bit armel systems consul{version}linux_armhfv6.zip for all armhf systems with v6+ architecture consul{version}linux_arm64.zip for all v8 64-bit architectures agent: Parse the HTTP Authorization header as

] agent: minimum quorum check added to Autopilot with minQuorum option ] agent: cache notifications work after error if the underlying RPC returns index=1 ] agent: tolerate more failure scenarios during service registration with central config enabled ] cache: remove data race in agent cache ] connect: connect CA Roots in secondary datacenters should use a SigningKeyID derived from their local intermediate ] connect: don't colon-hex-encode the AuthorityKeyId and SubjectKeyId fields in connect certs ] connect: intermediate CA certs generated with the vault provider lack URI SANs ] debug: Fix a bug in sync.WaitGroup usage. ] xds: tcp services using the discovery chain should not assume RDS during LDS ] ui: Fix a bug where switching datacenters using the datacenter menu would lead to an empty service listing ] IMPROVEMENTS agent: Distinguish between DC not existing and not being available ] agent: Added `replace-existing-checks` param to service registration endpoint to replace existing checks when re-registering a service. ] autoencrypt: verifyincomingrpc is good enough for autoencrypt.allow_tls ] connect: Ensure that a secondary CA's intermediate certificate will show in the various API endpoints CA Roots output ] ui: Reconcile ember-data store ] ui: Allow text selection of clickable elements and their contents without then jumping the user to the linked page ] ui: Adds the ability to frontend search instances by address (ip:port) ] ui: Add CheckID to the output panels of healthchecks ] ui: Enable blocking queries by default ] txn: don't try to decode request bodies > raft.SuggestedMaxDataSize ] BUG FIXES network areas (Consul Enterprise): Ensure that TCP based transport for network area memberlist propgates failed nodes properly ] network areas (Consul Enterprise): make sure network areas are left as well when consul is leaving ] ui: Show the correct message when a session has been removed from a KV ] ui: Ensure KV sessions visually aren't shared between multiple KV's ] tls: make sure auto_encrypt has private key type and bits ] FEATURES ui: Add leader icon for node listing view to call out which node is the current leader ] SECURITY: Updated to compile with Go 1.12.8 which mitigates CVE-2019-9512 and CVE-2019-9514 for the builtin HTTP server ] Updated the google.golang.org/grpc dependency to v1.23.0 to mitigate CVE-2019-9512, CVE-2019-9514, and CVE-2019-9515 for the gRPC server. ] BREAKING CHANGES: connect: remove deprecated managed proxies and ProxyDestination config ] FEATURES: Connect Envoy Supports L7 Routing:* Additional configuration entry types `service-router`, `service-resolver`, and `service-splitter`, allow for configuring Envoy sidecars to enable reliability and deployment patterns at L7 such as HTTP path-based routing, traffic shifting, and advanced failover capabilities. For more information see the docs. Mesh Gateways:* Envoy can now be run as a gateway to route Connect traffic across datacenters using SNI headers, allowing connectivty across platforms and clouds and other complex network topologies. Read more in the . Intention & CA Replication:* In order to enable connecitivty for services across datacenters, Connect intentions are now replicated and the Connect CA cross-signs from the . This feature was previously part of Consul Enterprise. agent: add `local-only` parameter to operator/keyring list requests to force queries to only hit local

] connect: expose an API endpoint to compile the discovery chain ] connect: generate the full SNI names for discovery targets in the compiler rather than in the xds package ] connect: introduce ExternalSNI field on service-defaults ] xds: allow http match criteria to be applied to routes on services using grpc protocols ] IMPROVEMENTS: agent: Added tagged addressing to services similar to the already present Node tagged addressing ] agent: health checks: change long timeout behavior to use to user-configured `timeout` value ] api: Display allowed HTTP CIDR information nicely ] api: Update filtering language to include substring and regular expression matching on string values ] connect: added a new `-bind-address` cli option for envoy to create a mapping of the desired bind addresses to use instead of the default rules or tagged addresses ] connect: allow L7 routers to match on http methods ] connect: change router syntax for matching query parameters to resemble the syntax for matching paths and headers for consistency. ] connect: detect and prevent circular discovery chain references ] connect: ensure time.Duration fields retain their human readable forms in the API ] connect: reconcile how upstream configuration works with discovery chains ] connect: rework how the service resolver subset OnlyPassing flag works ] connect: simplify the compiled discovery chain data structures ] connect: validate and test more of the L7 config entries ] gossip: increase size of gossip key generated by keygen to 32 bytes and document support for AES 256 ] license (enterprise): Added license endpoint support to the API client ] xds: improve how envoy metrics are emitted ] xds: Verified integration test suite with Envoy 1.11.1 ] BUG FIXES: acl: Fixed a bug that could prevent transition from legacy ACL mode to new ACL mode agent: blocking central config RPCs iterations should not interfere with each other ] agent: fix an issue that could cause a panic while transferring leadership due to replication ] api: Fix a bug where the service tagged addresses were not being returned through the `v1/agent/service/:service` api. ] api: un-deprecate api.DecodeConfigEntry ] auto_encrypt: use server-port ] autopilot: update to also remove failed nodes from WAN gossip pool ] cli: ensure that the json form of config entries can be submitted with 'consul config write' ] cli: Fixed bindable IP detection with the `connect envoy` command. ] config: Ensure that all config entry writes are transparently forwarded to the primary datacneter. ] connect: allow 'envoyclusterjson' escape hatch to continue to function ] connect: allow mesh gateways to use central config ] connect: ensure intention replication continues to work when the replication ACL token changes ] connect: ensure local dc connections do not use the gateway ] connect: fix bug in service-resolver redirects if the destination uses a default resolver ] connect: Fixed a bug that would prevent CA replication/initializing in a secondary DC from working when ACLs were enabled. ] connect : Fixed a regression that broken xds endpoint generation for prepared query upstreams. ] connect: fix failover through a mesh gateway to a remote datacenter ] connect: resolve issue where `MeshGatewayConfig` could be returned empty ] connect: updating a service-defaults config entry should leave an unset protocol alone ] connect: validate upstreams and prevent duplicates ] server: if inserting bootstrap config entries fails don't silence the errors ] snapshot: fix TCP half-close implementation for TLS connections ] KNOWN ISSUES autoencrypt: clients with autoencrypt enabled won't be able to start because of ]. There is a fix, but it came too late and we couldn't include it in the release. It will be part of 1.6.1 and we recommend that if you are using auto_encrypt you postpone the

IMPROVEMENTS: raft: allow trailing logs to be configured as an escape hatch for extreme load that prevents followers catching up with leader ] raft: added raft log chunking capabilities to allow for storing larger KV entries ] agent: added configurable limit for log files to be rotated ] api: The v1/status endpoints can now be forwarded to remote datacenters ] BUG FIXES: autopilot: update to also remove failed nodes from WAN gossip pool ] agent: avoid reverting any check updates that occur while a service is being added or the config is reloaded ] auto-encrypt: fix an issue that could cause cloud retry-join to fail when utilized with auto-encrypt by falling back to a default port FEATURE tls: auto_encrypt enables automatic RPC cert provisioning for consul clients ] IMPROVEMENTS ui: allow for customization of consul UI path ] acl: allow service deregistration with node write permission ] agent: support for maximum size for Output of checks ] agent: improve startup message when no error occurs ] agent: make sure client agent rate limits apply when hitting the client interface on a server directly ] agent: use stale requests when performing full sync ] agent: transfer leadership when establishLeadership fails ] agent: added metadata information about servers into consul service description ] connect: provide -admin-access-log-path for envoy ] connect: upgrade Envoy xDS protocol to support Envoy 1.10 ] dns: support alt domains for dns resolution ] license (enterprise): add command to reset license to builtin one ui: Improve linking between sidecars and proxies and their services/service instances ] ui: Add ability to search for tokens by policy, role or service identity name ] BUG FIXES: agent: fix several data races and bugs related to node-local alias checks ] api: update link to agent caching in comments ] connect: fix proxy address formatting for IPv6 addresses ] connect: store signingKeyId instead of authorityKeyId ] ui: fix service instance linking when multiple non-unique service id's exist on multiple nodes ] ui: Improve error messaging for ACL policies ] txn: Fixed an issue that would allow a CAS operation on a service to work when it shouldn't have. ] SECURITY: acl: fixed an issue that if an ACL rule is used for prefix matching in a policy, keys not matching that specific prefix can be deleted by a token using that policy even with default_deny settings configured ] BUG FIXES: agent: Fixed an issue where recreating a node using a different ID would prevent the new node from correctly joining. ] SECURITY: connect: Envoy versions lower than 1.9.1 are vulnerable to and . Both are related to HTTP request parsing and so only affect Consul Connect users if they have configured HTTP routing rules via the ["escape hatch"](#custom-configuration). We recommend Envoy 1.9.1 be used. Note that while we officially deprecate support for older version of Envoy in 1.5.0, we recommend using Envoy 1.9.1 with all previous versions of Consul Connect too (back to 1.3.0 where Envoy support was introduced). BREAKING CHANGES: /watch: (note this only affects downstream programs importing `/watch` package as a library not the `watch` feature in Consul) The watch package was moved from github.com/hashicorp/consul/watch to github.com/hashicorp/consul/api/watch to live in the API module. This was necessary after updating the repo to use Go modules or else various other bugs cropped up. The watch package API has not changed so projects depending on it should need to only update the import statement to get their code functioning again. ] ui: Legacy UI has been removed. Setting the CONSULUILEGACY environment variable to 1 or true will no longer revert to serving the old UI. ] FEATURES: Connect Envoy Supports L7 Observability:* We introduce features that allow configuring Envoy sidecars to emit metrics and tracing at L7 (http, http2, grpc supported). For more information see the docs. Centralized Configuration:* Enables central configuration of some service and proxy defaults. For more information see the docs api: Implement data filtering for some endpoints using a new filtering language. ] snapshot agent (Consul Enterprise): Added support for saving snapshots to Azure Blob

acl: tokens can be created with an optional expiration time ] acl: tokens can now be assigned an optional set of service identities ] acl: tokens can now be assigned to roles ] acl: adding support for kubernetes auth provider login ] ui: Template-able Dashboard links for Service detail pages ] ] ui: support for ACL Roles ] IMPROVEMENTS: cli: allow to add ip addresses as Subject Alternative Names when creating certificates with `consul tls cert create` ] dns: Allow for hot-reload of many DNS configurations. ] agent: config is now read if json or hcl is set as the config-format or the extension is either json or hcl ] acl: Allow setting token accessor ids and secret ids during token creation. ] ui: Service Instances page redesign and further visibility of Connect Proxies ui: Blocking Query support / live updates for Services and Nodes, requires enabling per user via the UI Settings area ui: Finer grained searching for the Service listing page ui: Add proxy icons to proxy services and instances where appropriate ] BUG FIXES: api: fix panic in 'consul acl set-agent-token' ] api: fix issue in the transaction API where the health check definition struct wasn't being deserialized properly ] acl: memdb filter of tokens-by-policy was inverted ] acl: Fix legacy rules translation for JSON based rules. ] agent: Fixed a bug causing RPC errors when the `discoverymaxstale` time was exceeded. ] agent: Fix an issue with registering health checks for an agent service where the service name would be missing. ] connect: fix an issue where Envoy would fail to bootstrap if some upstreams were unavailable ] connect: fix an issue where health checks on proxies might be missed by watchers of `/health/service/:service` API ] connect: fix a race condition that could leave proxies with no configuration for long periods on startup ] logger: fix an issue where the `log-file` option was not respecting the `log-level` ] catalog: fix an issue where renaming nodes could cause registration instability ] network areas (Consul Enterprise): Fixed an issue that could cause a lock to be held unnecessarily causing other operations to hang. SECURITY: acl: fixed an issue that if an ACL rule is used for prefix matching in a policy, keys not matching that specific prefix can be deleted by a token using that policy even with default_deny settings configured ] SECURITY: Fixed a problem where `verifyserverhostname` was not being respected and the default `false` was being used. This problem exists only in Consul 1.4.3. (CVE-2019-9764) ] FEATURES: agent: enable reloading of agent-to-agent TLS configuration ] IMPROVEMENTS: api: `/health/service/:service` blocking queries now only need a single goroutine regardless of number of instances in the service and watch channel which can massively reduce the number of goroutines on busy servers. ] BUG FIXES: api: Fixed a bug where updating node information wasn't reflected in health result index. ] agent: Fixed a bug that would cause removal of all of an agents health checks when only one service was removed. ] connect: Fixed a bug where `sidecar_service` registered proxies might not be removed correctly due to ACLs for the service being removed first dissallowing the agent permission to delete the proxy. ] tlsutil: don't use `server_name` config for RPC connections. ] SECURITY: Fixed a potential privilege escalation issue with the Consul 1.4.X ACL system when ACL token replication was enabled. (CVE-2019-8336) ] BUG FIXES: agent: Fixed a bug that could cause invalid memberlist protocol versions to propagate throughout the cluster. ] server: Fixed a race condition during server initialization and leadership

] agent: only enable TLS on gRPC if the HTTPS API port is enabled ] agent: Fixed default log file permissions. ] api: Fixed bug where `/connect/intentions` endpoint didn't return `X-Consul-Index` ] agent: Ensure that reaped servers are removed from RPC routing. ] acl: Fix potential race condition when listing or retrieving ACL tokens. ] agent: Fixed race condition that could turn up while registering services on the local agent. ] FEATURES: prepared queries: Enable ServiceMeta filtering for prepared queries. ] dns: Enabled caching of RPC responses within the DNS server. ] IMPROVEMENTS: agent: Check ACLs more often for xDS stream endpoints. ] connect: Sidecar services now inherit tags and service metadata of the parent service by default. ] connect: Envoy proxies can now have cluster-specific config overrides via new "escape hatches": ] agent: Added opt-in ACL token persistence for tokens set with the agent/token/ endpoints: ] agent: Default to requiring protocol version 1.2 for TLS connections. The docs previously said this was going to be the default in 0.8+ but it had been left at 1.0 until now. ] BUG FIXES: api: Fixed backwards compatibility in the Consul Go API client. ] dns: Fixed a bug that would cause node meta TXT records to always be generated even if they were not used in the responses. ] Note: Consul 1.4.1 can break compatibility with older versions of the Consul Go API client. At this time, we recommend that you not upgrade to 1.4.1 if you use the Go API client or other applications that utilize it such as Nomad. Read more: ] FEATURES: api: The transaction API now supports catalog operations for interacting with nodes, services and checks. See the for more information. ] SECURITY: Fixed an issue that caused `verifyserverhostname` to not implicitly configure `verifyoutgoing` to true. The documentation stated this was implicit. The previous implementation had a bug that resulted in this being partially incorrect and resulted in plaintext communication in agent-to-agent RPC when `verifyoutgoing` was not explicitly set. (CVE-2018-19653) ] IMPROVEMENTS: agent: Improve blocking queries for services that do not exist. ] api: Added new `/v1/agent/health/service/name/<service name>` and `/v1/agent/health/service/id/<service id>` endpoints to allow querying a services status from the agent itself and avoid querying a Consul server. ] api: Added a new `allowwritehttp_from` configuration to set which CIDR network ranges can send non GET/HEAD/OPTIONS HTTP requests. Requests originating from other addresses will be denied. ] cli: Added a new cli command: `consul tls` with subcommands `ca create` and `cert create` to help bootstrapping a secure agent TLS setup. This includes a new guide for creating certificates. connect: clients are smarter about when they regenerate leaf certificates to improve performance and reliability ] gossip: CPU performance improvements to memberlist gossip on very large clusters ] connect: Added support for prepared query upstream proxy destination type watching. connect: (Consul Enterprise) Now forwards any intention API calls from secondary datacenters to the primary instead of erroring when intention replication is enabled. connect: Now controls rate of Certificate Signing Requests during a CA rotation so the servers aren't overwhelmed. ] BUG FIXES: acl: Fixed a concurrent policy resolution issue that would fail to resolve policies for a token ] acl: Fixed a few racey edge cases regarding policy resolution where the RPC request could error out due to the token used for the request being deleted or modified after the token was read but before policy resolution. ] acl: Fixed a bug that would cause legacy ACL tokens of type management to not get full privileges when they also had rules set on them. ] agent: Prevent health check status flapping during check

] agent: Consul 1.2.3 added DNS weights but this caused an issue with agent Anti-Entropy that didn't set the same default and so performed a re-sync every 2 minutes despite no changes. ] agent: Fix an anti-entropy state syncing issue where an invalid token being used for registration of 1 service could cause a failure to register a different service with a valid token. ] agent: (Consul Enterprise) Snapshot agent now uses S3 API for unversioned objects to workaround an issue when a bucket has versioning enabled. agent: Fixed a bug where agent cache could return an error older than the last non-error value stored. This mostly affected Connect bootstrapping in integration environments but lead to some very hard to track down "impossible" issues ] agent: snapshot verification now works regardless of spacing in `meta.json` ] agent: Fixed a bug where `disablehostnode_id = false` was not working properly ] agent: Fixed issue where DNS weights added in 1.2.3 caused unnecessary Anti-Entropy syncs due to implicit vs explicit default weights being considered "different". ] api: Fixed an issue where service discovery requests that use both `?cached` and multiple repeated tag filters might incorrectly see the cached result for a different query ] api: Fixed an issue causing blocking query wait times to not be used when retrieving leaf certificates. ] cli: display messages from serf in cli ] connect: Fixed an issue where a blank CA config could be written to a snapshot when Connect was disabled. ] connect: Fixed a bug with the create and modify indices of leaf certificates not being incremented properly. ] connect: Fixed an issue where certificates could leak and remain in client memory forever ] connect: (Consul Enterprise) When requesting to sign intermediates the primary dc is now used connect: added tls config for vault connect ca provider ] connect: Fix a panic on 32 bit systems for unaligned 64 bit atomic operations. ] debug: Fixed an issue causing the debug archive to not be gzipped. ] dns: Fix an issue causing infinite recursion for some DNS queries when a nodes address had bee misconfigured ] watch: Fix a data race during setting up a watch plan. ] ui: Correctly encode/decode URLs within the KV areas. Also encode/decode slashes in URLS related to service names ] FEATURES: New ACL System:* The ACL system has been redesigned while allowing for in-place upgrades that will automatically migrate to the new system while retaining compatibility for existing ACL tokens for clusters where ACLs are enabled. This new system introduces a number of improvements to tokens including accessor IDs and a new policy model. It also includes a new CLI for ACL interactions and a completely redesigned UI experience to manage ACLs and policies. WAN federated clusters will need to add the additional replication token configuration in order to ensure WAN ACL replication in the new system. ] ACL CLI. New ACL HTTP APIs. Splitting ACL Tokens into Tokens and Policies with rules being defined on policies and tokens being linked to policies. ACL Tokens have a public accessor ID now in addition to the secret ID that they used to have. Setting a replication token is now required but it only needs "read" permissions on ACLs. Update to the rules language to allow for exact-matching rules in addition to prefix matching rules Added DC local tokens. Auto-Transitioning from legacy mode to normal mode as the cluster's servers get upgraded. ACL UI updates to support new functionality. Multi-datacenter Connect:* (Consul Enterprise) Consul Connect now supports multi-datacenter connections and replicates

This allows WAN federated DCs to provide connections from source and destination proxies in any DC. New command `consul debug` which gathers information about the cluster to help resolve incidents and debug issues faster. ] IMPROVEMENTS: dns: Implement prefix lookups for DNS TTL. ] ui: Add JSON and YAML linting to the KV code editor. ] connect: Fix comment DYNAMICDNS to LOGICALDNS. ] terraform: fix formatting of consul.tf. ] BUG FIXES: snapshot: Fixed a bug where node ID and datacenter weren't being included in or restored from the snapshots. ] api: Fixed migration issue where changes to allow multiple tags in 1.3.0 would cause broken results during a migration from earlier versions ] BUG FIXES: api: Fix issue introduced in 1.3.0 where catalog queries with tag filters change behaviour during upgrades from 1.2.x or earlier. (Back-ported from 1.4.0 release candidate.) ]. FEATURES: Connect Envoy Support*: This release includes support for using Envoy as a Proxy with Consul Connect (Beta). Read the [announcement blog post](https://www.hashicorp.com/blog/consul-1-3-envoy) or [reference documentation](https://www.consul.io/docs/connect/proxies/envoy.html) for more detail. Sidecar Service Registration*: As part of the ongoing Connect Beta we add a new, more convenient way to [register sidecar proxies](https://www.consul.io/docs/connect/proxies/sidecar-service.html) from within a regular service definition. Deprecating Managed Proxies*: The Connect Beta launched with a feature named "managed proxies". These will no longer be supported in favour of the simpler sidecar service registration. Existing functionality will not be removed until a later major release but will not be supported with fixes. See the [deprecation notice](https://www.consul.io/docs/connect/proxies/managed-deprecated.html) for full details. New command `consul services register` and `consul services deregister` for registering and deregistering services from the command line. ] api: Service discovery endpoints now support . ] dns: Added SOA configuration for DNS settings. ] IMPROVEMENTS: ui: Improve layout of node 'cards' by restricting the grid layout to a maximum of 4 columns ui: Load the TextEncoder/Decoder polyfill dynamically so it's not downloaded to browsers with native support ] cli: `consul connect proxy` now supports a [`--sidecar-for` option](https://www.consul.io/docs/commands/connect/proxy.html#sidecar-for) to allow simple integration with new sidecar service registrations. api: /health and /catalog endpoints now support filtering by multiple tags ] agent: Only update service `ModifyIndex` when it's state actually changes. This makes service watches much more efficient on large clusters. ] config: Operators can now enable script checks from local config files only. ] BUG FIXES: agent: (Consul Enterprise) Fixed an issue where the `nonvotingserver` setting could be ignored when bootstrapping the cluster. ] cli: forward SIGTERM to child process of 'lock' and 'watch' subcommands ] connect: Fix to ensure leaf certificates for a service are not shared between clients on the same agent using different ACL tokens ] ui: Ensure service names that contain slashes are displayable watch: Fix issue with HTTPs only agents not executing watches properly. ] SECURITY: agent: backported enablelocalscript_checks feature from 1.3.0. ] FEATURES: agent: New Cloud Auto-join provider: Kubernetes (K8S) ] http: Added support for "Authorization: Bearer" head in addition to the X-Consul-Token header. ] dns: Added a way to specify SRV weights for each service instance to allow weighted DNS load-balancing. ] dns: Include EDNS-ECS options in EDNS responses where appropriate: see ] ui: Add markers/icons for external sources IMPROVEMENTS: ui: Switch to fullscreen layout for lists and detail, left aligned forms connect: TLS certificate readiness now performs x509 certificate verification to determine whether the cert is usable. ] ui: The syntax highlighting/code editor is now on by default ui: Fallback to showing `Node.Address` if

is not set gossip: Improvements to Serf and memberlist improving gossip stability on very large clusters (over 35k tested) ] BUG FIXES: agent: Avoid returning empty data on startup of a non-leader server ] agent: Fixed a panic when serfwan port was -1 but a reconnecttimeout_wan value was set. ] agent: Fixed a problem where errors regarding DNS server creation where never shown. ] agent: Start with invalid http configuration again, even though the build-in proxy for connect won't start in that case. ] catalog: Allow renaming nodes with IDs. ],],] dns: Fixes a bug with the DNS recursor, where we would not move onto the next provided recursor if we encounter a SERVFAIL or REFUSED* status. ] server: Fixed a memory leak in blocking queries against /event/list. ] server: Fixed an issue where autopilot health checking could mistakenly mark healthy servers as failed, causing a non-voting server to be promoted unnecessarily. snapshot: Fixed a bug where node metadata wasn't being included in or restored from the snapshots. ] connect: Fixed a bug where managed proxy instances registered for instances with different name and ID and with restrictive ACL would not be allowed. ] connect: Fixed a bug where built-in CA state was not correctly restored from a snapshot ] connect: Fixed a bug where Checks with `deregistercriticalservice_after` would deregister the service but not remove the managed proxy ] connect: Fixed a bug that would output an error about pruning CAs every hour on the leader and might cause some CA configurations not to be pruned correctly ] raft: Update raft vendoring to pull in a fix for a potential memory leak. ] license: (Consul Enterprise) Fix an issue with the license not being reloaded from snapshots. license: (Consul Enterprise) Fix an issue with encoding/decoding of the license package type from the /v1/operator/license endpoint. cli: Correctly exit with error code 1 when failing to list DCs with the catalog command ui: Improve layout on screens of a large portrait orientation ui: Various browser layout bugs for various vendors/setups SECURITY: acl: Fixed an issue where writes operations on the Keyring and Operator were being allowed with a default allow policy even when explicitly denied in the policy. ] FEATURES: Alias Checks:* Alias checks allow a service or node to alias the health status of another service or node in the cluster. ] agent: New Cloud Auto-join providers: vSphere and Packet.net. ] cli: Added `-serf-wan-port`, `-serf-lan-port`, and `-server-port` flags to CLI for cases where these can't be specified in config files and `-hcl` is too cumbersome. ] connect: The TTL of leaf (service) certificates in Connect is now configurable. ] IMPROVEMENTS: proxy: With `-register` flag, heartbeat failures will only log once service registration succeeds. ] http: 1.0.3 introduced rejection of non-printable chars in HTTP URLs due to a security vulnerability. Some users who had keys written with an older version which are now dissallowed were unable to delete them. A new config option is added to allow those users to remove the offending keys. Leaving this new option set long term is strongly discouraged as it bypasses filtering necessary to prevent some known vulnerabilities. ] agent: Allow for advanced configuration of some gossip related parameters. ] agent: Make some Gossip tuneables configurable via the config file ] ui: Included searching on `.Tags` when using the freetext search field. ] ui: Service.ID's are now shown in the Service detail page and (only if it is different from the service name) the Node Detail > ] BUG FIXES: acl/connect: Fix an issue that was causing managed proxies not to work when ACLs were enabled. ] connect: Fix issue with managed proxies and watches attempting to use a client addr that is

or :: ] connect: Allow Native and Unmanaged proxy configurations via config file ] connect: Fix bug causing 100% CPU on agent when Connect is disabled but a proxy is still running ] proxy: Don't restart proxies setup in a config file when Consul restarts ] ui: Display the Service.IP address instead of the Node.IP address in the Service detail view. ] ui: Watch for trailing slash stripping 301 redirects and forward the user to the correct location. ] connect: Fixed an issue in the connect native HTTP client where it failed to resolve service names. ] IMPROVEMENTS: acl: Prevented multiple ACL token refresh operations from occurring simultaneously. ] acl: Add async-cache down policy mode to always do ACL token refreshes in the background to reduce latency. ] proxy: Pass through HTTP client env vars to managed proxies so that they can connect back to Consul over HTTPs when not serving HTTP. ] connect: Persist intermediate CAs on leader change. ] BUG FIXES: api: Intention APIs parse error response body for error message. ] agent: Intention read endpoint returns a 400 on invalid UUID ] agent: Service registration with "services" does not error on Connect upstream configuration. ] dns: Ensure that TXT RRs dont get put in the Answer section for A/AAAA queries. ] dns: Ensure that only 1 CNAME is returned when querying for services that have non-IP service addresses. ] api: Fixed issue where `Lock` and `Semaphore` would return earlier than their requested timeout when unable to acquire the lock. ], ], ] watch: Fix issue with HTTPs only agents not executing watches properly ] agent: Managed proxies that bind to 0.0.0.0 now get a health check on a reasonable IP ] server: (Consul Enterprise) Fixed an issue causing Consul to panic when network areas were used license: (Consul Enterprise) Fixed an issue causing the snapshot agent to log erroneous licensing errors FEATURES: Connect Feature Beta*: This version includes a major new feature for Consul named Connect. Connect enables secure service-to-service communication with automatic TLS encryption and identity-based authorization. For more details and links to demos and getting started guides, see the . Connect must be enabled explicitly in configuration so upgrading a cluster will not affect any existing functionality until it's enabled. This is a Beta feature, we don't recommend enabling this in production yet. Please see the documentation for more information. dns: Enable PTR record lookups for services with IPs that have no registered node ] ui: Default to serving the new UI. Setting the `CONSULUILEGACY` environment variable to `1` or `true` will revert to serving the old UI IMPROVEMENTS: agent: A Consul user-agent string is now sent to providers when making retry-join requests ] client: Add metrics for failed RPCs agent: Add configuration entry to control including TXT records for node meta in DNS responses client: Make RPC rate limit configuration reloadable ] BUG FIXES: agent: Fixed an issue where watches were being duplicated on reload. ] agent: Fixed an issue with Agent watches on a HTTPS only agent would fail to use TLS. ] agent: Fixed bug that would cause unnecessary and frequent logging yamux keepalives ] dns: Re-enable full DNS compression ] SECURITY: agent: backported enablelocalscript_checks feature from 1.3.0. ] FEATURES: UI: The web UI has been completely redesigned and rebuilt and is in an opt-in beta period. Setting the `CONSULUIBETA` environment variable to `1` or `true` will replace the existing UI with the new one. The existing UI will be deprecated and removed in a future release. ] api: Added support for Prometheus client format in metrics endpoint with `?format=prometheus` (see ) ] agent: New Cloud Auto-join provider: Joyent

] agent: (Consul Enterprise) Implemented license management with license propagation within a datacenter. BREAKING CHANGES: agent: The following previously deprecated fields and config options have been removed ]: `CheckID` has been removed from config file check definitions (use `id` instead). `script` has been removed from config file check definitions (use `args` instead). `enableTagOverride` is no longer valid in service definitions (use `enabletagoverride` instead). The (beginning with `consul.consul.`) has been removed along with the `enabledeprecatednames` option from the metrics configuration. IMPROVEMENTS: agent: Improve DNS performance on large clusters ] agent: `startjoin`, `startjoinwan`, `retryjoin`, `retryjoinwan` config params now all support go-sockaddr templates ] server: Added new configuration options `raftsnapshotinterval` and `raftsnapshotthreshold` to allow operators to configure how often servers take raft snapshots. The default values for these have been tuned for large and busy clusters with high write load. ] BUG FIXES: agent: Only call signal.Notify once during agent startup ] agent: Add support for the new Service Meta field in agent config ] api: Add support for the new Service Meta field in API client ] agent: Updated serf library for two bug fixes - allow enough time for leave intents to propagate ] and preventing a deadlock ] agent: When node-level checks (e.g. maintenance mode) were deleted, some watchers currently in between blocking calls may have missed the change in index. See ] SECURITY: agent: backported enablelocalscript_checks feature from 1.3.0. ] IMPROVEMENTS: build: Bumped Go version to 1.10 ] agent: Blocking queries on service-specific health and catalog endpoints now return a per-service `X-Consul-Index` improving watch performance on very busy clusters. ]. Note this may break blocking clients that relied on undocumented implementation details* as noted in the . agent: All endpoints now respond to OPTIONS requests. ] agent: List of supported TLS cipher suites updated to include newer options, ] agent: WAN federation can now be disabled by setting the serf WAN port to -1. ] agent: Added support for specifying metadata during service registration. ] agent: Added a new `discover-max-stale` config option to enable stale requests for service discovery endpoints. ] agent: (Consul Enterprise) Added a new option to the snapshot agent for configuring the S3 endpoint. dns: Introduced a new config param to limit the number of A/AAAA records returned. ] dns: Upgrade vendored DNS library to pick up bugfixes and improvements. ] server: Updated yamux library to pick up a performance improvement. ] server: Add near=\_ip support for prepared queries ] api: Add support for GZIP compression in HTTP responses. ] api: Add `IgnoreCheckIDs` to Prepared Query definition to allow temporarily bypassing faulty health checks ] BUG FIXES: agent: Fixed an issue where the coordinate update endpoint was not correctly parsing the ACL token. ] agent: Fixed an issue where `consul monitor` couldn't be terminated until the first log line is delivered ] agent: Added warnings for when a node name isn't a valid DNS name and when the node name, a service name or service tags would exceed the allowed lengths for DNS names ] agent: Added truncation of TCP DNS responses to prevent errors for exceeding message size limits ] agent: Added -config-format flag to validate command to specify the syntax that should be used for parsing the config ] agent: HTTP Checks now report the HTTP method used instead of always reporting as a GET server: Fixed an issue where the leader could miss clean up after a leadership transition. ] BUG FIXES: agent: Fixed a panic when using the Azure provider for retry-join. ] agent: Fixed a panic when querying Consul's DNS interface over TCP. ] NOTE ON SKIPPED RELEASE

We found ] after cutting the 1.0.4 release and pushing the 1.0.4 release tag, so we decided to scuttle that release and push 1.0.5 instead with a fix for that issue. SECURITY: dns: Updated DNS vendor library to pick up bug fix in the DNS server where an open idle connection blocks the accept loop. ] FEATURES: agent: Added support for gRPC health checks that probe the standard gRPC health endpoint. ] IMPROVEMENTS: agent: (Consul Enterprise) The `disableupdatecheck` option to disable Checkpoint now defaults to `true` (this is only in the Enterprise version). build: Bumped Go version to 1.9.3. ] BUG FIXES: agent: (Consul Enterprise) Fixed an issue where the snapshot agent's HTTP client config was being ignored in favor of the HTTP command-line flags. agent: Fixed an issue where health checks added to services with tags would cause extra periodic writes to the Consul servers, even if nothing had changed. This could cause extra churn on downstream applications like consul-template or Fabio. ] agent: Fixed several areas where reading from catalog, health, or agent HTTP endpoints could make unintended mofidications to Consul's state in a way that would cause unnecessary anti-entropy syncs back to the Consul servers. This could cause extra churn on downstream applications like consul-template or Fabio. ] agent: Fixed an issue where Serf events for failed Consul servers weren't being proactively processed by the RPC router. This would prvent Consul from proactively choosing a new server, and would instead wait for a failed RPC request before choosing a new server. This exposed clients to a failed request, when often the proactive switching would avoid that. ] SECURITY: dns: Updated DNS vendor library to pick up bug fix in the DNS server where an open idle connection blocks the accept loop. ] FEATURES: agent: Added support for gRPC health checks that probe the standard gRPC health endpoint. ] IMPROVEMENTS: agent: (Consul Enterprise) The `disableupdatecheck` option to disable Checkpoint now defaults to `true` (this is only in the Enterprise version). build: Bumped Go version to 1.9.3. ] BUG FIXES: agent: (Consul Enterprise) Fixed an issue where the snapshot agent's HTTP client config was being ignored in favor of the HTTP command-line flags. agent: Fixed an issue where health checks added to services with tags would cause extra periodic writes to the Consul servers, even if nothing had changed. This could cause extra churn on downstream applications like consul-template or Fabio. ] agent: Fixed an issue where Serf events for failed Consul servers weren't being proactively processed by the RPC router. This would prvent Consul from proactively choosing a new server, and would instead wait for a failed RPC request before choosing a new server. This exposed clients to a failed request, when often the proactive switching would avoid that. ] SECURITY: ui: Patched handlebars JS to escape `=` to prevent potential XSS issues. ] BREAKING CHANGES: agent: Updated Consul's HTTP server to ban all URLs containing non-printable characters (a bad request status will be returned for these cases). This affects some user-facing areas like key/value entry key names which are carried in URLs. ] FEATURES: agent: Added retry-join support for Azure Virtual Machine Scale Sets. ] IMPROVEMENTS: agent: Added agent-side telemetry around Catalog APIs to provide insight on Consul's operation from the user's perspecive. ] agent: Added the `NodeID` field back to the /v1/agent/self endpoint's `Config` block. ] api: Added missing `CheckID` and `Name` fields to API client's `AgentServiceCheck` structure so that IDs and names can be set when registering checks with

] BUG FIXES: agent: Fixed an issue where config file symlinks were not being interpreted correctly. ] agent: Ignore malformed leftover service/check files and warn about them instead of refusing to start. ] agent: Enforce a valid port for the Serf WAN since it can't be disabled. ] agent: Stopped looging messages about zero RTTs when updating network coordinates since they are not harmful to the algorithm. Since we are still trying to find the root cause of these zero measurements, we added new metrics counters so these are still observable. ] server: Fixed a crash when POST-ing an empty body to the /v1/query endpoint. ] server: (Consul Enterprise) Fixed an issue where unhealthy servers were not replaced in a redundancy zone by autopilot (servers previously needed to be removed in order for a replacement to occur). ui: Added a URI escape around key/value keys so that it's not possible to create unexpected partial key names when entering characters like `?` inside a key. ] IMPROVEMENTS: agent: Updated Serf to activate a new feature that resizes its internal message broadcast queue size based on the cluster size. This helps control the amount of memory used by the agent, but prevents spurious warnings about dropped messages in very large Consul clusters. The intent queue warnings have also been disabled since queue telemetry was already available and a simple fixed limit isn't applicable to all clusters, so it could cause a high rate of warnings about intent queue depth that were not useful or indicative of an actual issue. ] agent: Updates posener/complete library to 1.0, which allows autocomplete for flags after an equal sign, and simplifies autocomplete functions. ] BUG FIXES: agent: Updated memberlist to pull in a fix for negative RTT measurements and their associated log messages about rejected coordinates. ] agent: Fixed an issue where node metadata specified via command line arguments overrode node metadata specified by configuration files, instead of merging as was done in versions of Consul prior to 1.0. ] agent: Fixed an issue with the /v1/session/create API where it wasn't possible to create a session without the `serfHealth` check. This is now possible again by including the `checks` key in the JSON body with an empty list. ] agent: Fixed an issue with anti-entropy syncing where checks for services with tags would cause periodic updates to the catalog, even when nothing had changed, causing the Raft index to grow slowly (~2 minutes per node per check) over time, and causing unnecessary writes and wake ups for blocking queries. ], ] cli: Added missing support for `-base64` option to `consul kv get` command. ] server: Fixed an issue with KV store tombstone tracking where bin tracking was being confused by monotonic time information carried in time stamps, resulting in many unnecessary bins. ] server: (Consul Enterprise) Fixed an issue with Network Segments where servers would not properly flood-join each other into all segments. server: Fixed an issue where it wasn't possible to disable Autopilot's dead server cleanup behavior using configuration files. ] server: Removed the 60 second timeout when restoring snapshots, which could cause large restores to fail on slower servers. ] server: Fixed a goroutine leak during keyring operations when errors are encountered. ] FEATURES: New Auto Join Cloud Providers:* Retry join support was added for Aliyun (Alibaba Cloud), Digital Ocean, OpenStack, and Scaleway. Instance metadata can be used with these to make it easy to form Consul clusters. ] HTTP/2 Support:* If TLS is enabled on a Consul agent it will automatically negotiate to use HTTP/2 for suitably configured clients accessing the client

This allows clients to multiplex requests over the same TCP connection, such as multiple, simultaneous blocking queries. ] IMPROVEMENTS: agent: (Consul Enterprise) Added for S3 snapshots using the snapshot agent. agent: Watches in the Consul agent can now be configured to invoke an HTTP endpoint instead of an executable. ] agent: Added a new command line option which can be set to `hcl` or `json` to specify the format of configuration files. This is useful for cases where the file name cannot be controlled in order to provide the required extension. ] agent: DNS recursors can now be specified as templates. ] agent: Serf snapshots no longer save network coordinate information. This enables recovery from errors upon agent restart. ] agent: Added defensive code to prevent out of range ping times from infecting network coordinates. Updates to the coordinate system with negative round trip times or round trip times higher than 10 seconds will log an error but will be ignored. agent: The agent now warns when there are extra unparsed command line arguments and refuses to start. ] agent: Updated go-sockaddr library to get CoreOS route detection fixes and the new `mask` functionality. ] agent: Added a new configuration option that allows HTTP health checks for services requiring 2-way TLS to be checked using the agent's credentials. ] agent: Made logging of health check status more uniform and moved log entries with full check output from DEBUG to TRACE level for less noise. ] build: Consul is now built with Go 1.9.2. ] BUG FIXES: agent: Consul 1.0 shipped with an issue where `Args` was erroneously named `ScriptArgs` for health check definitions in the /v1/agent/check/register and /v1/agent/service/register APIs. Added code to accept `Args` so that the JSON format matches that of health checks in configuration files. The `ScriptArgs` form will still be supported for backwards compatibility. ] agent: Docker container checks running on Linux could get into a flapping state because the Docker agent seems to close the connection prematurely even though the body is transferred. This caused a "connection reset by peer" error which put the check into `critical` state. As of Consul 1.0.1 the "connection reset by peer" error is ignored for the `/exec/<execID>/start` command of the Docker API. ] agent: Added new form of `consul.http.` metrics that were accidentally left out of Consul 1.0. ] agent: Fixed an issue with the server manager where periodic server client connection rebalancing could select a failed server. This affects agents in client mode, as well as servers talking to other servers, including over the WAN. ] agent: IPv6 addresses without port numbers and without surrounding brackets are now properly handled for joins. This affects all join types, but in particular this was discovered with AWS joins where the APIs return addresses formatted this way. ] agent: Fixed a rare startup panic of the Consul agent related to the LAN Serf instance ordering with the router manager. ] agent: Added back an exception for the `snapshot_agent` config key so that those configs can again live alongside Consul's configs. ] dns: Fixed an issue were components of a host name near the datacenter could be quietly ignored (eg. `foo.service.dc1.extra.consul` would silently ignore `.extra`); now an `NXDOMAIN` error will be returned. ] server: Fixed an issue where performing rolling updates of Consul servers could result in an outage from old servers remaining in the cluster. Consul's Autopilot would normally remove old servers when new ones come online, but it was also waiting to promote servers to voters in pairs to maintain an odd quorum

The pairwise promotion feature was removed so that servers become voters as soon as they are stable, allowing Autopilot to remove old servers in a safer way. When upgrading from Consul 1.0, you may need to manually force-leave old servers as part of a rolling update to Consul 1.0.1. ] server: Fixed a deadlock where tombstone garbage collection for the KV store could block other KV operations, stalling writes on the leader. ] SECURITY: ui: Fixed an XSS issue with Consul's built-in web UI where node names were not being properly escaped. ] BREAKING CHANGES: Raft Protocol Now Defaults to 3:* The default has been changed from 2 to 3, enabling all features by default. Version 3 requires Consul running 0.8.0 or newer on all servers in order to work, so if you are upgrading with older servers in a cluster then you will need to set this back to 2 in order to upgrade. See for more details. Also the format of `peers.json` used for outage recovery is different when running with the lastest Raft protocol. See for a description of the required format. ] Config Files Require an Extension:* As part of supporting the format for Consul's config files, an `.hcl` or `.json` extension is required for all config files loaded by Consul, even when using the argument to specify a file directly. ] Deprecated Options Have Been Removed:* All of Consul's previously deprecated command line flags and config options have been removed, so these will need to be mapped to their equivalents before upgrading. ] <details><summary>Detailed List of Removed Options and their Equivalents</summary> | Removed Option | Equivalent | | -- | - | | `-atlas` | None, Atlas is no longer supported. | | `-atlas-token`| None, Atlas is no longer supported. | | `-atlas-join` | None, Atlas is no longer supported. | | `-atlas-endpoint` | None, Atlas is no longer supported. | | `-dc` | | | `-retry-join-azure-tag-name` | | | `-retry-join-azure-tag-value` | | | `-retry-join-ec2-region` | | | `-retry-join-ec2-tag-key` | | | `-retry-join-ec2-tag-value` | | | `-retry-join-gce-credentials-file` | | | `-retry-join-gce-project-name` | | | `-retry-join-gce-tag-name` | | | `-retry-join-gce-zone-pattern` | | | `addresses.rpc` | None, the RPC server for CLI commands is no longer supported. | | `advertise_addrs` | with and/or | | `atlas_infrastructure` | None, Atlas is no longer supported. | | `atlas_token` | None, Atlas is no longer supported. | | `atlasacltoken` | None, Atlas is no longer supported. | | `atlas_join` | None, Atlas is no longer supported. | | `atlas_endpoint` | None, Atlas is no longer supported. | | `dogstatsd_addr` | | | `dogstatsd_tags` | | | `httpapiresponse_headers` | | | `ports.rpc` | None, the RPC server for CLI commands is no longer supported. | | `recursor` | | | `retryjoinazure` | | | `retryjoinec2` | | | `retryjoingce` | | | `statsd_addr` | | | `statsite_addr` | | | `statsite_prefix` | | | `telemetry.statsite_prefix` | | | (service definitions) `serviceid` | | | (service definitions) `dockercontainerid` | | | (service definitions) `tlsskipverify` | | | (service definitions) `deregistercriticalserviceafter` | | </details> `statsite_prefix` Renamed to `metrics_prefix`:* Since the `statsiteprefix` configuration option applied to all telemetry providers, `statsiteprefix` was renamed to . Configuration files will need to be updated when upgrading to this version of Consul. ] `advertise_addrs` Removed:* This configuration option was removed since it was redundant with `advertiseaddr` and `advertiseaddr_wan` in combination with `ports` and also wrongly stated that you could configure both host and port. ] Escaping Behavior Changed for go-discover Configs:* The format for and values that use Cloud auto joining has

Values in `key=val` sequences must no longer be URL encoded and can be provided as literals as long as they do not contain spaces, backslashes `\` or double quotes `"`. If values contain these characters then use double quotes as in `"some key"="some value"`. Special characters within a double quoted string can be escaped with a backslash `\`. ] HTTP Verbs are Enforced in Many HTTP APIs:* Many endpoints in the HTTP API that previously took any HTTP verb now check for specific HTTP verbs and enforce them. This may break clients relying on the old behavior. ] <details><summary>Detailed List of Updated Endpoints and Required HTTP Verbs</summary> | Endpoint | Required HTTP Verb | | -- | | | /v1/acl/info | GET | | /v1/acl/list | GET | | /v1/acl/replication | GET | | /v1/agent/check/deregister | PUT | | /v1/agent/check/fail | PUT | | /v1/agent/check/pass | PUT | | /v1/agent/check/register | PUT | | /v1/agent/check/warn | PUT | | /v1/agent/checks | GET | | /v1/agent/force-leave | PUT | | /v1/agent/join | PUT | | /v1/agent/members | GET | | /v1/agent/metrics | GET | | /v1/agent/self | GET | | /v1/agent/service/register | PUT | | /v1/agent/service/deregister | PUT | | /v1/agent/services | GET | | /v1/catalog/datacenters | GET | | /v1/catalog/deregister | PUT | | /v1/catalog/node | GET | | /v1/catalog/nodes | GET | | /v1/catalog/register | PUT | | /v1/catalog/service | GET | | /v1/catalog/services | GET | | /v1/coordinate/datacenters | GET | | /v1/coordinate/nodes | GET | | /v1/health/checks | GET | | /v1/health/node | GET | | /v1/health/service | GET | | /v1/health/state | GET | | /v1/internal/ui/node | GET | | /v1/internal/ui/nodes | GET | | /v1/internal/ui/services | GET | | /v1/session/info | GET | | /v1/session/list | GET | | /v1/session/node | GET | | /v1/status/leader | GET | | /v1/status/peers | GET | | /v1/operator/area/:uuid/members | GET | | /v1/operator/area/:uuid/join | PUT | </details> Unauthorized KV Requests Return 403:* When ACLs are enabled, reading a key with an unauthorized token returns a 403. This previously returned a 404 response. Config Section of Agent Self Endpoint has Changed:* The /v1/agent/self endpoint's `Config` section has often been in flux as it was directly returning one of Consul's internal data structures. This configuration structure has been moved under `DebugConfig`, and is documents as for debugging use and subject to change, and a small set of elements of `Config` have been maintained and documented. See endpoint documentation for details. ] Deprecated `configtest` Command Removed:* The `configtest` command was deprecated and has been superseded by the `validate` command. Undocumented Flags in `validate` Command Removed:* The `validate` command supported the `-config-file` and `-config-dir` command line flags but did not document them. This support has been removed since the flags are not required. Metric Names Updated:* Metric names no longer start with `consul.consul`. To help with transitioning dashboards and other metric consumers, the field `enabledeprecatednames` has been added to the telemetry section of the config, which will enable metrics with the old naming scheme to be sent alongside the new ones. ] <details><summary>Detailed List of Affected Metrics by Prefix</summary> | Prefix | | | | consul.consul.acl | | consul.consul.autopilot | | consul.consul.catalog | | consul.consul.fsm | | consul.consul.health | | consul.consul.http | | consul.consul.kvs | | consul.consul.leader | | consul.consul.prepared-query | | consul.consul.rpc | | consul.consul.session | | consul.consul.session_ttl | | consul.consul.txn | </details> Checks Validated On Agent Startup:* Consul agents now validate health check definitions in their configuration and will fail at startup if any checks are invalid. In previous versions of Consul, invalid health checks would get

] FEATURES: Support for HCL Config Files:* Consul now supports HashiCorp's format for config files. This is easier to work with than JSON and supports comments. As part of this change, all config files will need to have either an `.hcl` or `.json` extension in order to specify their format. ] Support for Binding to Multiple Addresses:* Consul now supports binding to multiple addresses for its HTTP, HTTPS, and DNS services. You can provide a space-separated list of addresses to and configurations, or specify a template that resolves to multiple addresses. ] Support for RFC1464 DNS TXT records:* Consul DNS responses now contain the node meta data encoded according to RFC1464 as TXT records. ] Support for Running Subproccesses Directly Without a Shell:* Consul agent checks and watches now support an `args` configuration which is a list of arguments to run for the subprocess, which runs the subprocess directly without a shell. The old `script` and `handler` configurations are now deprecated (specify a shell explicitly if you require one). A `-shell=false` option is also available on `consul lock`, `consul watch`, and `consul exec` to run the subprocesses associated with those without a shell. ] Sentinel Integration:* (Consul Enterprise) Consul's ACL system integrates with to enable code policies that apply to KV writes. IMPROVEMENTS: agent: Added support to detect public IPv4 and IPv6 addresses on AWS. ] agent: Improved /v1/operator/raft/configuration endpoint which allows Consul to avoid an extra agent RPC call for the `consul operator raft list-peers` command. ] agent: Improved ACL system for the KV store to support list permissions. This behavior can be opted in. For more information, see the . ] agent: Updates miekg/dns library to later version to pick up bug fixes and improvements. ] agent: Added automatic retries to the RPC path, and a brief RPC drain time when servers leave. These changes make Consul more robust during graceful leaves of Consul servers, such as during upgrades, and help shield applications from "no leader" errors. These are configured with new options. ] agent: Added a new `discardcheckoutput` agent-level configuration option that can be used to trade off write load to the Consul servers vs. visibility of health check output. This is reloadable so it can be toggled without fully restarting the agent. ] api: Updated the API client to ride out network errors when monitoring locks and semaphores. ] build: Updated Go toolchain to version 1.9.1. ] cli: `consul lock` and `consul watch` commands will forward `TERM` and `KILL` signals to their child subprocess. ] cli: Added support for . ] server: Updated BoltDB to final version 1.3.1. ] server: Improved dead member reap algorithm to fix edge cases where servers could get left behind. ] BUG FIXES: agent: Fixed an issue where disabling both the http and https interfaces would cause a watch-related error on agent startup, even when no watches were defined. ] agent: Added an additional step to kill health check scripts that timeout on all platforms except Windows, and added a wait so that it's not possible to run multiple instances of the same health check script at the same time. ] cli: If the `consul operator raft list-peers` command encounters an error it will now exit with a non-zero exit code. ] cli: CLI commands will now show help for all of their arguments. ] server: Fixed an issue where the leader server could get into a state where it was no longer performing the periodic leader loop duties and unable to serve consistent reads after a barrier timeout error. ] SECURITY: agent: backported enablelocalscript_checks feature from

] FEATURES: LAN Network Segments:* (Consul Enterprise) Added a new capability which allows users to configure Consul to support segmented LAN topologies with multiple, distinct gossip pools. ] WAN Join for Cloud Providers:* Added WAN support for retry join for Cloud providers via go-discover, including Amazon AWS, Microsoft Azure, Google Cloud, and SoftLayer. This uses the same "provider" syntax supported for `-retry-join` via the `-retry-join-wan` configuration. ] RPC Rate Limiter:* Consul agents in client mode have a new configuration that enables a rate limit on RPC calls the agent makes to Consul servers. ] IMPROVEMENTS: agent: Switched to using a read lock for the agent's RPC dispatcher, which prevents RPC calls from getting serialized. ] agent: When joining a cluster, Consul now skips the unique node ID constraint for Consul members running Consul older than 0.8.5. This makes it easier to upgrade to newer versions of Consul in an existing cluster with non-unique node IDs. ] build: Upgraded Go version to 1.9. ] server: Consul servers can re-establish quorum after all of them change their IP addresses upon a restart. ] ui: Changed text area font family to monospace to make it easier to manage complex text blocks. ] BUG FIXES: agent: Fixed an issue with consul watches not triggering when ACLs are enabled. ] agent: Updated memberlist library for a deadlock fix. ] agent: Fixed a panic when retrieving NS or SOA records on Consul clients (non-servers). This also changed the Consul server list to come from the catalog and not the agent's local state when serving these requests, so the results are consistent across a cluster. ] cli: Updated the CLI library to pull in a fix that prevents all subcommands from being shown when showing the agent's usage list; now just top-level commands are shown. ] server: Fixed an issue with Consul snapshots not saving on Windows because of errors with the `fsync` syscall. ] BUG FIXES: agent: Fixed an issue where the old `-retry-join-{ec2,azure,gce}` command line flags were not being honored. ] server: Reverted the change that made unauthorized KV queries return 403 instead of 404 because it had a minor bug that affected the operation of Vault, and in addition to fixing the bug, we identified an additional case that needed to be covered. This restores the <= 0.9.0 behavior until we can get a complete fix. ] FEATURES: Secure ACL Token Introduction:* It's now possible to manage Consul's ACL tokens without having to place any tokens inside configuration files. This supports introduction of tokens as well as rotating. This is enabled with two new APIs: A new API allows an agent's ACL tokens to be introduced without placing them into config files, and to update them without restarting the agent. See the for an example. This was extended to ACL replication as well, along with a new config option. [GH-3324,GH-3357] A new allows a cluster's first management token to be created without using the `aclmastertoken` configuration. See the for an example. ] Metrics Viewing Endpoint:* A new API displays the current values of internally tracked metrics. ] IMPROVEMENTS: agent: Retry Join for Amazon AWS, Microsoft Azure, Google Cloud, and (new) SoftLayer is now handled through the https://github.com/hashicorp/go-discover library. With this all `-retry-join-{ec2,azure,gce}-` parameters have been deprecated in favor of a unified configuration. See for details. [GH-3282,GH-3351] agent: Reports a more detailed error message if the LAN or WAN Serf instance fails to bind to an address. ] agent: Added NS records and corrected SOA records to allow Consul's DNS interface to work properly with zone delegation. ] agent: Added support for sending metrics with labels/tags to supported

] agent: Added a new `prefix_filter` option in the `telemetry` config to allow fine-grained allowing/blocking the sending of certain metrics by prefix. ] cli: Added a `-child-exit-code` option to `consul lock` so that it propagates an error code of 2 if the child process exits with an error. ] docs: Added a new showing how to use prepared queries to implement geo failover policies for services. ] docs: Added a new showing critical aspects of operating a Consul cluster that's run inside containers. ] server: Added a `RemoveEmptyTags` option to prepared query templates which will strip out any empty strings in the tags list before executing a query. This is useful when interpolating into tags in a way where the tag is optional, and where searching for an empty tag would yield no results from the query. ] server: Implemented a much faster recursive delete algorithm for the KV store. It has been benchmarked to be up to 100X faster on recursive deletes that affect millions of keys. [GH-1278, GH-3313] BUG FIXES: agent: Clean up temporary files during disk write errors when persisting services and checks. ] agent: Fixed an issue where DNS and client bind address templates were not being parsed via the go-sockaddr library. ] agent: Fixed status code on all KV store operations that fail due to an ACL issue. They now return a 403 status code, rather than a 404. ] agent: Fixed quoting issues in script health check on Windows. ] agent: Fixed an issue where `consul monitor` would exit on any empty log line. ] server: Updated raft library to fix issue with machine crashes causing snapshot files to not get saved to disk ] BREAKING CHANGES: agent: Added a new configuration option that defaults to `false`, meaning that in order to allow an agent to run health checks that execute scripts, this will need to be configured and set to `true`. This provides a safer out-of-the-box configuration for Consul where operators must opt-in to allow script-based health checks. ] api: Reworked `context` support in the API client to more closely match the Go standard library, and added context support to write requests in addition to read requests. [GH-3273, GH-2992] ui: Since the UI is now bundled with the application we no longer provide a separate UI package for downloading. ] FEATURES: agent: Added a new configuration option that allows blocking HTTP API endpoints by prefix. This allows operators to completely disallow access to specific endpoints on a given agent. ] cli: Added a new command for reading datacenters, nodes, and services from the catalog. ] server: (Consul Enterprise) Added a new command and corresponding HTTP endpoint to allow for transitioning the TLS setting of network areas at runtime. ] server: (Consul Enterprise) Added a new `UpgradeVersionTag` field to the Autopilot config to allow for using the migration feature to roll out configuration or cluster changes, without having to upgrade Consul itself. IMPROVEMENTS: agent: (Consul Enterprise) Snapshot agent rotation uses S3's pagination API, enabling retaining more than a 100 snapshots. agent: Removed registration of the `consul` service from the agent since it's already handled by the leader. This means that Consul servers no longer need to have an `aclagenttoken` with write access to the `consul` service if ACLs are enabled. ] agent: Changed /v1/acl/clone response to 403 (from 404) when trying to clone an ACL that doesn't exist. ] agent: Changed the `consul exec` ACL resolution logic to use the `aclagenttoken` if it's

This lets operators configure an `aclagenttoken` with the required `write` privilieges to the `rexec` prefix of the KV store without giving this to the `acltoken`, which would expose those privileges to users as well. ] agent: Updated memberlist to get latest LAN gossip tuning based on the . ] api: Added the ability to pass in a `context` as part of the `QueryOptions` during a request. This provides a way to cancel outstanding blocking queries. ] api: Changed signature for "done" channels on `agent.Monitor()` and `session.RenewPeriodic` methods to make them more compatible with `context`. ] docs: Added a complete end-to-end example of ACL bootstrapping in the . ] vendor: Updated golang.org/x/sys/unix to support IBM s390 platforms. ] agent: rewrote Docker health checks without using the Docker client and its dependencies. ] BUG FIXES: agent: Fixed an issue where watch plans would take up to 10 minutes to close their connections and give up their file descriptors after reloading Consul. ] agent: (Consul Enterprise) Fixed an issue with the snapshot agent where it could get stuck trying to obtain the leader lock after an extended server outage. agent: Fixed HTTP health checks to allow them to set the `Host` header correctly on outgoing requests. ] agent: Serf snapshots can now auto recover from disk write errors without needing a restart. ] agent: Fixed log redacting code to properly remove tokens from log lines with ACL tokens in the URL itself: `/v1/acl/clone/:uuid`, `/v1/acl/destroy/:uuid`, `/v1/acl/info/:uuid`. ] agent: Fixed an issue in the Docker client where Docker checks would get EOF errors trying to connect to a volume-mounted Docker socket. ] agent: Fixed a crash when using Azure auto discovery. ] agent: Added `node` read privileges to the `aclagentmaster_token` by default so it can see all nodes, which enables it to be used with operations like `consul members`. ] agent: Fixed an issue where enabling would cause gossip encryption to be disabled. ] agent: Fixed a race condition where checks that are not associated with any existing services were allowed to persist. ] agent: Stop docker checks on service deregistration and on shutdown. [GH-3265, GH-3295] server: Updated the Raft library to pull in a fix where servers that are very far behind in replication can get stuck in a loop trying to install snapshots. ] server: Fixed a rare but serious deadlock where the Consul leader routine could get stuck with the Raft internal leader routine while waiting for the initial barrier after a leader election. ] server: Added automatic cleanup of failed Raft snapshots. ] server: (Consul Enterprise) Fixed an issue where networks areas would not be able to be added when the server restarts if the Raft log contained a specific sequence of adds and deletes for network areas with the same peer datacenter. ui: Provided a path to reset the ACL token when the current token is invalid. Previously, the UI would get stuck on the error page and it wasn't possible to get back to the settings. ] ui: Removed an extra fetch of the nodes resource when loading the UI. ] ui: Changed default ACL token type to "client" when creating ACLs. ] ui: Display a 404 error instead of a 200 when trying to load a nonexistent node. ] BREAKING CHANGES: agent: Parse values given to `?passing` for health endpoints. Previously Consul only checked for the existence of the querystring, not the value. That means using `?passing=false` would actually still include passing values. Consul now parses the value given to passing as a boolean. If no value is provided, the old behavior remains. This may be a breaking change for some users, but the old experience was incorrect and caused enough confusion to warrant changing

[GH-2212, GH-3136] agent: The default value of has been changed from false to true. This means you need to opt-in to host-based node IDs and by default Consul will generate a random node ID. A high number of users struggled to deploy newer versions of Consul with host-based IDs because of various edge cases of how the host IDs work in Docker, on specially-provisioned machines, etc. so changing this from opt-out to opt-in will ease operations for many Consul users. ] IMPROVEMENTS: agent: Added a `-disable-keyring-file` option to prevent writing keyring data to disk. ] agent: Added automatic notify to systemd on Linux after LAN join is complete, which makes it easier to order services that depend on Consul being available. ] agent: The `httpapiresponseheaders` config has been moved into a new `httpconfig` struct, so the old form is still supported but is deprecated. ] dns: Added support for EDNS(0) size adjustments if set in the request frame. This allows DNS responses via UDP which are larger than the standard 512 bytes max if the requesting client can support it. [GH-1980, GH-3131] server: Added a startup warning for servers when expecting to bootstrap with an even number of nodes. ] agent: (Consul Enterprise) Added support for non rotating, statically named snapshots for S3 snapshots using the snapshot agent. BUG FIXES: agent: Fixed a regression where configuring -1 for the port was no longer disabling the DNS server. ] agent: Fix `consul leave` shutdown race. When shutting down an agent via the `consul leave` command on the command line the output would be `EOF` instead of `Graceful leave completed` ] agent: Show a better error message than 'EOF' when attempting to join with the wrong gossip key. ] agent: Fixed an issue where the `Method` and `Header` features of HTTP health checks were not being applied. ] agent: Fixed an issue where internally-configured watches were not working because of an incorrect protocol error, and unified internal watch handling during reloads of the Consul agent. ] server: Fixed an issue where the leader could return stale data duing queries as it is starting up. ] FEATURES: agent: Added a method for . ] agent: Added a method for . ] agent: Added support for . ] agent: (Consul Enterprise) Added for S3 snapshots using the snapshot agent. IMPROVEMENTS: agent: Added a check which prevents advertising or setting a service to a zero address (`0.0.0.0`, `] agent: Allow binding to any public IPv6 address with `::` ] agent: Removed SCADA-related code for Atlas and deprecated all Atlas-related configuration options. ] agent: Added support for custom check id and name when registering checks along with a service. ] agent: Updated library to add support for new helper functions in bind address templates (`GetPrivateIPs`, `GetPublicIPs`), new math functions, and to pick up fixes for issues with detecting addresses on multi-homed hosts. ] agent: Watches now reset their index back to zero after an error, or if the index goes backwards, which allows watches to recover after a server restart with fresh state. ] agent: HTTP health checks now support custom method and headers. ], ], ], ] agent: Increased the graceful leave timeout from 5 to 15 seconds. ] agent: Added additional logging when the agent handles signals and when it exits. ] build: Added support for linux/arm64 binaries. ] build: Consul now builds with Go 1.8.3. ] ui: Added a sticky scroll to the KV side panel so the KV edit box always stays in

] BUG FIXES: agent: Added defensive code to prevent agents from infecting the network coordinates with `NaN` or `Inf` values, and added code to clean up in environments where this has happened. ] api: Added code to always read from the body of a request so that connections will always be returned to the pool. ] build: Added a vendor fix to allow compilation on Illumos. ] cli: Fixed an issue where `consul exec` would return a 0 exit code, even when there were nodes that didn't respond. ] BUG FIXES: agent: Fixed an issue where NAT-configured agents with a non-routable advertise address would refuse to make RPC connections to Consul servers. This was a regression related to GH-2822 in Consul 0.8.2. ] BREAKING CHANGES: api: HttpClient now defaults to nil in the client config and will be generated if left blank. A NewHttpClient function has been added for creating an HttpClient with a custom Transport or TLS config. ] IMPROVEMENTS: agent: Added an error at agent startup time if both `-ui` and `-ui-dir` are configured together. ] agent: Added the datacenter of a node to the catalog, health, and query API endpoints which contain a Node structure. ] agent: Added the `capath`, `tlsciphersuites`, and `tlspreferservercipher_suites` options to give more flexibility around configuring TLS. ] agent: Reduced the timeouts for the `-dev` server mode so that the development server starts up almost instantly. ] agent: Added `verifyincomingrpc` and `verifyincominghttps` options for more granular control over incoming TLS enforcement. ] agent: Use bind address as source for outgoing connections. ] api: Added the ACL replication status endpoint to the Go API client library. ] cli: Added Raft protocol version to output of `operator raft list-peers` command.] ui: Added optional JSON validation when editing KV entries in the web UI. ] ui: Updated ACL guide links and made guides open in a new tab. ] BUG FIXES: server: Fixed a panic when the tombstone garbage collector was stopped. ] server: Fixed a panic in Autopilot that could occur when a node is elected but cannot complete leader establishment and steps back down. ] server: Added a new peers.json format that allows outage recovery when using Raft protocol version 3 and higher. Previously, you'd have to set the Raft protocol version back to 2 in order to manually recover a cluster. See https://www.consul.io/docs/guides/outage.html#manual-recovery-using-peers-json for more details. ] ui: Add and update favicons ] IMPROVEMENTS: agent: Node IDs derived from host information are now hashed to prevent things like common server hardware from generating IDs with a common prefix across nodes. ] agent: Added new `-disable-host-node-id` CLI flag and `disablehostnode_id` config option to the Consul agent to prevent it from using information from the host when generating a node ID. This will result in a random node ID, which is useful when running multiple Consul agents on the same host for testing purposes. Having this built-in eases configuring a random node ID when running in containers. ] agent: Removed useless "==> Caught signal: broken pipe" logging since that often results from problems sending telemetry or broken incoming client connections; operators don't need to be alerted to these. ] cli: Added TLS options for setting the client/CA certificates to use when communicating with Consul. These can be provided through environment variables or command line flags. ] build: Consul is now built with Go 1.8.1. ] ui: Updates Consul assets to new branding. ] BUG FIXES: api: Added missing Raft index fields to AgentService and Node structures. ] server: Fixed an issue where flood joins would not work with IPv6 addresses. ] server: Fixed an issue where electing a 0.8.x leader during an upgrade would cause a panic in older

] server: Fixed an issue where tracking of leadership changes could become incorrect when changes occurred very rapidly. This could manifest as a panic in Autopilot, but could have caused other issues with multiple leader management routines running simultaneously. ] server: Fixed a panic when checking ACLs on a session that doesn't exist. ] BREAKING CHANGES: Command-Line Interface RPC Deprecation:* The RPC client interface has been removed. All CLI commands that used RPC and the `-rpc-addr` flag to communicate with Consul have been converted to use the HTTP API and the appropriate flags for it, and the `rpc` field has been removed from the port and address binding configs. You will need to remove these fields from your config files and update any scripts that passed a custom `-rpc-addr` to the following commands: `force-leave`, `info`, `join`, `keyring`, `leave`, `members`, `monitor`, `reload` Version 8 ACLs Are Now Opt-Out: The configuration now defaults to `true` to enable by default. If you are upgrading an existing cluster with ACLs enabled, you will need to set this to `false` during the upgrade on both Consul agents and Consul servers*. Version 8 ACLs were also changed so that must be set on agents in order to enable the agent-side enforcement of ACLs. This makes for a smoother experience in clusters where ACLs aren't enabled at all, but where the agents would have to wait to contact a Consul server before learning that. ] Remote Exec Is Now Opt-In:* The default for was changed to "true", so now operators need to opt-in to having agents support running commands remotely via . ] Raft Protocol Compatibility:* When upgrading to Consul 0.8.0 from a version lower than 0.7.0, users will need to set the option to 1 in order to maintain backwards compatibility with the old servers during the upgrade. See guide for more details. FEATURES: Autopilot:* A set of features has been added to allow for automatic operator-friendly management of Consul servers. For more information about Autopilot, see the . Dead Server Cleanup: Dead servers will periodically be cleaned up and removed from the Raft peer set, to prevent them from interfering with the quorum size and leader elections. Server Health Checking: An internal health check has been added to track the stability of servers. The thresholds of this health check are tunable as part of the and the status can be viewed through the HTTP endpoint. New Server Stabilization: When a new server is added to the cluster, there will be a waiting period where it must be healthy and stable for a certain amount of time before being promoted to a full, voting member. This threshold can be configured using the new setting. Advanced Redundancy: (Consul Enterprise) A new option flag has been added for Consul servers to configure a server that does not participate in the Raft quorum. This can be used to add read scalability to a cluster in cases where a high volume of reads to servers are needed, but non-voting servers can be lost without causing an outage. There's also a new configuration that allows Autopilot to manage separating servers into zones for redundancy. Only one server in each zone can be a voting member at one time. This helps when Consul servers are managed with automatic replacement with a system like a resource scheduler or auto-scaling group. Extra non-voting servers in each zone will be available as hot standbys (that help with read-scaling) that can be quickly promoted into service when the voting server in a zone

Upgrade Orchestration: (Consul Enterprise) Autopilot will automatically orchestrate an upgrade strategy for Consul servers where it will initially add newer versions of Consul servers as non-voters, wait for a full set of newer versioned servers to be added, and then gradually swap into service as voters and swap out older versioned servers to non-voters. This allows operators to safely bring up new servers, wait for the upgrade to be complete, and then terminate the old servers. Network Areas:* (Consul Enterprise) A new capability has been added which allows operators to define network areas that join together two Consul datacenters. Unlike Consul's WAN feature, network areas use just the server RPC port for communication, and pairwise relationships can be made between arbitrary datacenters, so not all servers need to be fully connected. This allows for complex topologies among Consul datacenters like hub/spoke and more general trees. See the for more details. WAN Soft Fail:* Request routing between servers in the WAN is now more robust by treating Serf failures as advisory but not final. This means that if there are issues between some subset of the servers in the WAN, Consul will still be able to route RPC requests as long as RPCs are actually still working. Prior to WAN Soft Fail, any datacenters having connectivity problems on the WAN would mean that all DCs might potentially stop sending RPCs to those datacenters. ] WAN Join Flooding:* A new routine was added that looks for Consul servers in the LAN and makes sure that they are joined into the WAN as well. This catches up up newly-added servers onto the WAN as soon as they join the LAN, keeping them in sync automatically. ] Validate command:* To provide consistency across our products, the `configtest` command has been deprecated and replaced with the `validate` command (to match Nomad and Terraform). The `configtest` command will be removed in Consul 0.9. ] IMPROVEMENTS: agent: Fixed a missing case where gossip would stop flowing to dead nodes for a short while. ] agent: Changed agent to seed Go's random number generator. ] agent: Serf snapshots no longer have the executable bit set on the file. ] agent: Consul is now built with Go 1.8. ] agent: Updated aws-sdk-go version (used for EC2 auto join) for Go 1.8 compatibility. ] agent: User-supplied node IDs are now normalized to lower-case. ] agent: Added checks to enforce uniqueness of agent node IDs at cluster join time and when registering with the catalog. ] cli: Standardized handling of CLI options for connecting to the Consul agent. This makes sure that the same set of flags and environment variables works in all CLI commands (see https://www.consul.io/docs/commands/index.html#environment-variables). ] cli: Updated go-cleanhttp library for better HTTP connection handling between CLI commands and the Consul agent (tunes reuse settings). ] cli: The `operator raft` subcommand has had its two modes split into the `list-peers` and `remove-peer` subcommands. The old flags for these will continue to work for backwards compatibility, but will be removed in Consul 0.9. cli: Added an `-id` flag to the `operator raft remove-peer` command to allow removing a peer by ID. ] dns: Allows the `.service` tag to be optional in RFC 2782 lookups. ] server: Changed the internal `EnsureRegistration` RPC endpoint to prevent registering checks that aren't associated with the top-level node being registered. ] BUG FIXES: agent: Fixed an issue with `consul watch` not working when http was listening on a unix socket. ] agent: Fixed an issue where checks and services could not sync deregister operations back to the catalog when version 8 ACL support is

] agent: Fixed an issue where agents could use the ACL token registered with a service when registering checks for the same service that were registered with a different ACL token. ] cli: Fixed `consul kv` commands not reading the `CONSULHTTPTOKEN` environment variable. ] cli: Fixed an issue where prefixing an address with a protocol (such as 'http://' or 'https://') in `-http-addr` or `CONSULHTTPADDR` would give an error. cli: Fixed an issue where error messages would get printed to stdout instead of stderr. ] server: Fixed an issue with version 8 ACLs where servers couldn't deregister nodes from the catalog during reconciliation. ] This fix was generalized and applied to registering nodes as well. ] server: Fixed an issue where servers could temporarily roll back changes to a node's metadata or tagged addresses when making updates to the node's health checks. ] server: Fixed an issue where the service name `consul` was not subject to service ACL policies with version 8 ACLs enabled. ] BUG FIXES: server: Fixed a rare but serious issue where Consul servers could panic when performing a large delete operation followed by a specific sequence of other updates to related parts of the state store (affects KV, sessions, prepared queries, and the catalog). ] IMPROVEMENTS: agent: Integrated gopsutil library to use built in host UUID as node ID, if available, instead of a randomly generated UUID. This makes it easier for other applications on the same host to generate the same node ID without coordinating with Consul. ] agent: Added a configuration option, `tlsminversion`, for setting the minimum allowed TLS version used for the HTTP API and RPC. ] agent: Added a `relay-factor` option to keyring operations to allow nodes to relay their response through N randomly-chosen other nodes in the cluster. ] build: Consul is now built with Go 1.7.5. ] dns: Add ability to lookup Consul agents by either their Node ID or Node Name through the node interface (e.g. DNS `(node-id|node-name).node.consul`). ] BUG FIXES: dns: Fixed an issue where SRV lookups for services on a node registered with non-IP addresses were missing the CNAME record in the additional section of the response. ] FEATURES: KV Import/Export CLI:* `consul kv export` and `consul kv import` can be used to move parts of the KV tree between disconnected consul clusters, using JSON as the intermediate representation. ] Node Metadata:* Support for assigning user-defined metadata key/value pairs to nodes has been added. This can be viewed when looking up node info, and can be used to filter the results of various catalog and health endpoints. For more information, see the , , and endpoint documentation, as well as the section of the agent configuration. ] Node Identifiers:* Consul agents can now be configured with a unique identifier, or they will generate one at startup that will persist across agent restarts. This identifier is designed to represent a node across all time, even if the name or address of the node changes. Identifiers are currently only exposed in node-related endpoints, but they will be used in future versions of Consul to help manage Consul servers and the Raft quorum in a more robust manner, as the quorum is currently tracked via addresses, which can change. ] Improved Blocking Queries:* Consul's implementation was improved to provide a much more fine-grained mechanism for detecting changes. For example, in previous versions of Consul blocking to wait on a change to a specific service would result in a wake up if any service changed. Now, wake ups are scoped to the specific service being watched, if

This support has been added to all endpoints that support blocking queries, nothing new is required to take advantage of this feature. ] GCE auto-discovery:* New `-retry-join-gce` configuration options added to allow bootstrapping by automatically discovering Google Cloud instances with a given tag at startup. ] IMPROVEMENTS: build: Consul is now built with Go 1.7.4. ] cli: `consul kv get` now has a `-base64` flag to base 64 encode the value. ] cli: `consul kv put` now has a `-base64` flag for setting values which are base 64 encoded. ] ui: Added a notice that JS is required when viewing the web UI with JS disabled. ] BUG FIXES: agent: Redacted the AWS access key and secret key ID from the /v1/agent/self output so they are not disclosed. ] agent: Fixed a rare startup panic due to a Raft/Serf race condition. ] cli: Fixed a panic when an empty quoted argument was given to `consul kv put`. ] tests: Fixed a race condition with check mock's map usage. ] FEATURES: Keyring API:* A new `/v1/operator/keyring` HTTP endpoint was added that allows for performing operations such as list, install, use, and remove on the encryption keys in the gossip keyring. See the for more details. ] Monitor API:* A new `/v1/agent/monitor` HTTP endpoint was added to allow for viewing streaming log output from the agent, similar to the `consul monitor` command. See the for more details. ] Reload API:* A new `/v1/agent/reload` HTTP endpoint was added for triggering a reload of the agent's configuration. See the for more details. ] Leave API:* A new `/v1/agent/leave` HTTP endpoint was added for causing an agent to gracefully shutdown and leave the cluster (previously, only `force-leave` was present in the HTTP API). See the for more details. ] Bind Address Templates (beta):* Consul agents now allow syntax to be used for any bind address configuration (`advertiseaddr`, `bindaddr`, `client_addr`, and others). This allows for easy creation of immutable images for Consul that can fetch their own address based on an interface name, network CIDR, address family from an actual RFC number, and many other possible schemes. This feature is in beta and we may tweak the template syntax before final release, but we encourage the community to try this and provide feedback. ] Complete ACL Coverage (beta):* Consul 0.8 will feature complete ACL coverage for all of Consul. To ease the transition to the new policies, a beta version of complete ACL support was added to help with testing and migration to the new features. Please see the for more details. [GH-2594, GH-2592, GH-2590] IMPROVEMENTS: agent: Defaults to `?pretty` JSON for HTTP API requests when in `-dev` mode. ] agent: Updated Circonus metrics library and added new Circonus configration options for Consul for customizing check display name and tags. ] agent: Added a checksum to UDP gossip messages to guard against packet corruption. ] agent: Check whether a snapshot needs to be taken more often (every 5 seconds instead of 2 minutes) to keep the raft file smaller and to avoid doing huge truncations when writing lots of entries very quickly. ] agent: Allow gossiping to suspected/recently dead nodes. ] agent: Changed the gossip suspicion timeout to grow smoothly as the number of nodes grows. ] agent: Added a deprecation notice for Atlas features to the CLI and docs. ] agent: Give a better error message when the given data-dir is not a directory. ] BUG FIXES: agent: Fixed a panic when SIGPIPE signal was received. ] api: Added missing Raft index fields to `CatalogService` structure. ] api: Added missing notes field to `AgentServiceCheck`

] api: Changed type of `AgentServiceCheck.TLSSkipVerify` from `string` to `bool`. ] api: Added new `HealthChecks.AggregatedStatus()` method that makes it easy get an overall health status from a list of checks. ] api: Changed type of `KVTxnOp.Verb` from `string` to `KVOp`. ] cli: Fixed an issue with the `consul kv put` command where a negative value would be interpreted as an argument to read from standard input. ] ui: Fixed an issue where extra commas would be shown around service tags. ] ui: Customized Bootstrap config to avoid missing font file references. ] ui: Removed "Deregister" button as removing nodes from the catalog isn't a common operation and leads to lots of user confusion. ] BREAKING CHANGES: Child process reaping support has been removed, along with the `reap` configuration option. Reaping is also done via in the , so removing it from Consul itself simplifies the code and eases future maintainence for Consul. If you are running Consul as PID 1 in a container you will need to arrange for a wrapper process to reap child processes. ] The default for `maxstale` has been increased to a near-indefinite threshold (10 years) to allow DNS queries to continue to be served in the event of a long outage with no leader. A new telemetry counter has also been added at `consul.dns.stalequeries` to track when agents serve DNS queries that are over a certain staleness (>5 seconds). ] The api package's `PreparedQuery.Delete()` method now takes `WriteOptions` instead of `QueryOptions`. ] FEATURES: Key/Value Store Command Line Interface:* New `consul kv` commands were added for easy access to all basic key/value store operations. ] Snapshot/Restore:* A new /v1/snapshot HTTP endpoint and corresponding set of `consul snapshot` commands were added for easy point-in-time snapshots for disaster recovery. Snapshots include all state managed by Consul's Raft , including Key/Value Entries, Service Catalog, Prepared Queries, Sessions, and ACLs. Snapshots can be restored on the fly into a completely fresh cluster. ] AWS auto-discovery:* New `-retry-join-ec2` configuration options added to allow bootstrapping by automatically discovering AWS instances with a given tag key/value at startup. ] IMPROVEMENTS: api: All session options can now be set when using `api.Lock()`. ] agent: Added the ability to bind Serf WAN and LAN to different interfaces than the general bind address. ] agent: Added a new `tlsskipverify` configuration option for HTTP checks. ] build: Consul is now built with Go 1.7.3. ] BUG FIXES: agent: Fixed a Go race issue with log buffering at startup. ] agent: Fixed a panic during anti-entropy sync for services and checks. ] agent: Fixed an issue on Windows where "wsarecv" errors were logged when CLI commands accessed the RPC interface. ] agent: Syslog initialization will now retry on errors for up to 60 seconds to avoid a race condition at system startup. ] agent: Fixed a panic when both -dev and -bootstrap-expect flags were provided. ] agent: Added a retry with backoff when a session fails to invalidate after expiring. ] agent: Fixed an issue where Consul would fail to start because of leftover malformed check/service state files. ] agent: Fixed agent crashes on macOS Sierra by upgrading Go. [GH-2407, GH-2281] agent: Log a warning instead of success when attempting to deregister a nonexistent service. ] api: Trim leading slashes from keys/prefixes when querying KV endpoints to avoid a bug with redirects in Go 1.7 (golang/go#4800). ] dns: Fixed external services that pointed to consul addresses (CNAME records) not resolving to A-records. ] dns: Fixed an issue with SRV lookups where the service address was different from the

] dns: Fixed an issue where truncated records from a recursor query were improperly reported as errors. ] server: Fixed the port numbers in the sample JSON inside peers.info. ] server: Squashes ACL datacenter name to lower case and checks for proper formatting at startup. [GH-2059, GH-1778, GH-2478] ui: Fixed an XSS issue with the display of sessions and ACLs in the web UI. ] BREAKING CHANGES: The default behavior of `leaveonterminate` and `skipleaveon_interrupt` are now dependent on whether or not the agent is acting as a server or client. When Consul is started as a server the defaults for these are `false` and `true`, respectively, which means that you have to explicitly configure a server to leave the cluster. When Consul is started as a client the defaults are the opposite, which means by default, clients will leave the cluster if shutdown or interrupted. ] ] The `allow_stale` configuration for DNS queries to the Consul agent now defaults to `true`, allowing for better utilization of available Consul servers and higher throughput at the expense of weaker consistency. This is almost always an acceptable tradeoff for DNS queries, but this can be reconfigured to use the old default behavior if desired. ] Output from HTTP checks is truncated to 4k when stored on the servers, similar to script check output. ] Consul's Go API client will now send ACL tokens using HTTP headers instead of query parameters, requiring Consul 0.6.0 or later. ] Removed support for protocol version 1, so Consul 0.7 is no longer compatible with Consul versions prior to 0.3. ] The Raft peers information in `consul info` has changed format and includes information about the suffrage of a server, which will be used in future versions of Consul. ] New behavior from ] translates addresses in HTTP responses and could break clients that are expecting local addresses. A new `X-Consul-Translate-Addresses` header was added to allow clients to detect if translation is enabled for HTTP responses, and a "lan" tag was added to `TaggedAddresses` for clients that need the local address regardless of translation. ] The behavior of the `peers.json` file is different in this version of Consul. This file won't normally be present and is used only during outage recovery. Be sure to read the updated for details. ] Consul's default Raft timing is now set to work more reliably on lower-performance servers, which allows small clusters to use lower cost compute at the expense of reduced performance for failed leader detection and leader elections. You will need to configure Consul to get the same performance as before. See the new guide for more details. ] FEATURES: Transactional Key/Value API:* A new `/v1/txn` API was added that allows for atomic updates to and fetches from multiple entries in the key/value store inside of an atomic transaction. This includes conditional updates based on obtaining locks, and all other key/value store operations. See the for more details. ] Native ACL Replication:* Added a built-in full replication capability for ACLs. Non-ACL datacenters can now replicate the complete ACL set locally to their state store and fall back to that if there's an outage. Additionally, this provides a good way to make a backup ACL datacenter, or to migrate the ACL datacenter to a different one. See the for more details. ] Server Connection Rebalancing:* Consul agents will now periodically reconnect to available Consul servers in order to redistribute their RPC query load. Consul clients will, by default, attempt to establish a new connection every 120s to 180s unless the size of the cluster is sufficiently

The rate at which agents begin to query new servers is proportional to the size of the Consul cluster (servers should never receive more than 64 new connections per second per Consul server as a result of rebalancing). Clusters in stable environments who use `allow_stale` should see a more even distribution of query load across all of their Consul servers. ] Raft Updates and Consul Operator Interface:* This version of Consul upgrades to "stage one" of the v2 HashiCorp Raft library. This version offers improved handling of cluster membership changes and recovery after a loss of quorum. This version also provides a foundation for new features that will appear in future Consul versions once the remainder of the v2 library is complete. ] <br> Consul's default Raft timing is now set to work more reliably on lower-performance servers, which allows small clusters to use lower cost compute at the expense of reduced performance for failed leader detection and leader elections. You will need to configure Consul to get the same performance as before. See the new guide for more details. ] <br> Servers will now abort bootstrapping if they detect an existing cluster with configured Raft peers. This will help prevent safe but spurious leader elections when introducing new nodes with `bootstrap_expect` enabled into an existing cluster. ] <br> Added new `consul operator` command, HTTP endpoint, and associated ACL to allow Consul operators to view and update the Raft configuration. This allows a stale server to be removed from the Raft peers without requiring downtime and peers.json recovery file use. See the new and the for details, as well as the updated . ] Serf Lifeguard Updates:* Implemented a new set of feedback controls for the gossip layer that help prevent degraded nodes that can't meet the soft real-time requirements from erroneously causing `serfHealth` flapping in other, healthy nodes. This feature tunes itself automatically and requires no configuration. ] Prepared Query Near Parameter:* Prepared queries support baking in a new `Near` sorting parameter. This allows results to be sorted by network round trip time based on a static node, or based on the round trip time from the Consul agent where the request originated. This can be used to find a co-located service instance is one is available, with a transparent fallback to the next best alternate instance otherwise. ] Automatic Service Deregistration:* Added a new `deregistercriticalservice_after` timeout field for health checks which will cause the service associated with that check to get deregistered if the check is critical for longer than the timeout. This is useful for cleanup of health checks registered natively by applications, or in other situations where services may not always be cleanly shutdown. ] WAN Address Translation Everywhere:* Extended the config option to also translate node addresses in HTTP responses, making it easy to use this feature from non-DNS clients. ] RPC Retries:* Consul will now retry RPC calls that result in "no leader" errors for up to 5 seconds. This allows agents to ride out leader elections with a delayed response vs. an error. ] Circonus Telemetry Support:* Added support for Circonus as a telemetry destination. ] IMPROVEMENTS: agent: Reap time for failed nodes is now configurable via new `reconnecttimeout` and `reconnecttimeout_wan` config options (). ] agent: Joins based on a DNS lookup will use TCP and attempt to join with the full list of returned addresses. ] agent: Consul will now refuse to start with a helpful message if the same UNIX socket is used for more than one listening endpoint. ] agent: Removed an obsolete warning message when Consul starts on Windows. ] agent: Defaults bind address to

when running in `-dev` mode. ] agent: Added version information to the log when Consul starts up. ] agent: Added timing metrics for HTTP requests in the form of `consul.http.<verb>.<path>`. ] build: Updated all vendored dependencies. ] build: Consul releases are now built with Go 1.6.3. ] checks: Script checks now support an optional `timeout` parameter. ] checks: HTTP health checks limit saved output to 4K to avoid performance issues. ] cli: Added a `-stale` mode for watchers to allow them to pull data from any Consul server, not just the leader. ] ] dns: Consul agents can now limit the number of UDP answers returned via the DNS interface. The default number of UDP answers is `3`, however by adjusting the `dnsconfig.udpanswer_limit` configuration parameter, it is now possible to limit the results down to `1`. This tunable provides environments where RFC3484 section 6, rule 9 is enforced with an important workaround in order to preserve the desired behavior of randomized DNS results. Most modern environments will not need to adjust this setting as this RFC was made obsolete by RFC 6724\. See the documentation for additional details for when this should be used. ] dns: Consul now compresses all DNS responses by default. This prevents issues when recursing records that were originally compressed, where Consul would sometimes generate an invalid, uncompressed response that was too large. ] dns: Added a new `recursor_timeout` configuration option to set the timeout for Consul's internal DNS client that's used for recursing queries to upstream DNS servers. ] dns: Added a new `-dns-port` command line option so this can be set without a config file. ] ui: Added a new network tomography visualization to the UI. ] BUG FIXES: agent: Fixed an issue where a health check's output never updates if the check status doesn't change after the Consul agent starts. ] agent: External services can now be registered with ACL tokens. ] agent: Fixed an issue where large events affecting many nodes could cause infinite intent rebroadcasts, leading to many log messages about intent queue overflows. ] agent: Gossip encryption keys are now validated before being made persistent in the keyring, avoiding delayed feedback at runtime. ] dns: Fixed an issue where DNS requests for SRV records could be incorrectly trimmed, resulting in an ADDITIONAL section that was out of sync with the ANSWER. ] dns: Fixed two issues where DNS requests for SRV records on a prepared query that failed over would report the wrong domain and fail to translate addresses. ] ] server: Fixed a deadlock related to sorting the list of available datacenters by round trip time. ] server: Fixed an issue with the state store's immutable radix tree that would prevent it from using cached modified objects during transactions, leading to extra copies and increased memory / GC pressure. ] server: Upgraded Bolt DB to v1.2.1 to fix an issue on Windows where Consul would sometimes fail to start due to open user-mapped sections. ] OTHER CHANGES: build: Switched from Godep to govendor. ] BACKWARDS INCOMPATIBILITIES: Added a new `query` ACL type to manage prepared query names, and stopped capturing ACL tokens by default when prepared queries are created. This won't affect existing queries and how they are executed, but this will affect how they are managed. Now management of prepared queries can be delegated within an organization. If you use prepared queries, you'll need to read the before upgrading to this version of Consul. ] Consul's Go API client now pools connections by default, and requires you to manually opt-out of this

Previously, idle connections were supported and their lifetime was managed by a finalizer, but this wasn't reliable in certain situations. If you reuse an API client object during the lifetime of your application, then there's nothing to do. If you have short-lived API client objects, you may need to configure them using the new `api.DefaultNonPooledConfig()` method to avoid leaking idle connections. ] Consul's Go API client's `agent.UpdateTTL()` function was updated in a way that will only work with Consul 0.6.4 and later. The `agent.PassTTL()`, `agent.WarnTTL()`, and `agent.FailTTL()` functions were not affected and will continue work with older versions of Consul. ] FEATURES: Added new template prepared queries which allow you to define a prefix (possibly even an empty prefix) to apply prepared query features like datacenter failover to multiple services with a single query definition. This makes it easy to apply a common policy to multiple services without having to manage many prepared queries. See for more details. ] Added a new ability to translate address lookups when doing queries of nodes in remote datacenters via DNS using a new `translatewanaddrs` configuration option. This allows the node to be reached within its own datacenter using its local address, and reached from other datacenters using its WAN address, which is useful in hybrid setups with mixed networks. ] IMPROVEMENTS: Added a new `disable_hostname` configuration option to control whether Consul's runtime telemetry gets prepended with the host name. All of the telemetry configuration has also been moved to a `telemetry` nested structure, but the old format is currently still supported. ] Consul's Go dependencies are now vendored using Godep. ] Added support for `EnableTagOverride` for the catalog in the Go API client. ] Consul now ships built from Go 1.6. ] Added a new `/v1/agent/check/update/<check id>` API for updating TTL checks which makes it easier to send large check output as part of a PUT body and not a query parameter. ]. Added a default set of `Accept` headers for HTTP checks. ] Added support for RHEL7/Systemd in Terraform example. ] BUG FIXES: Updated the internal web UI (`-ui` option) to latest released build, fixing an ACL-related issue and the broken settings icon. ] Fixed an issue where blocking KV reads could miss updates and return stale data when another key whose name is a prefix of the watched key was updated. ] Fixed the redirect from `/` to `/ui` when the internal web UI (`-ui` option) is enabled. ] Updated memberlist to pull in a fix for leaking goroutines when performing TCP fallback pings. This affected users with frequent UDP connectivity problems. ] Added a fix to trim UDP DNS responses so they don't exceed 512 bytes. ] Updated go-dockerclient to fix Docker health checks with Docker 1.10. ] Removed fixed height display of nodes and services in UI, leading to broken displays when a node has a lot of services. ] BUG FIXES: Fixed an issue when running Consul as PID 1 in a Docker container where it could consume CPU and show spurious failures for health checks, watch handlers, and `consul exec` commands ] SECURITY: Build against Go 1.5.3 to mitigate a security vulnerability introduced in Go 1.5. For more information, please see https://groups.google.com/forum/#!topic/golang-dev/MEATuOi_ei4 This is a security-only release; other than the version number and building against Go 1.5.3, there are no changes from 0.6.1. BACKWARDS INCOMPATIBILITIES: The new `-monitor-retry` option to `consul lock` defaults to 3. This will cause the lock monitor to retry up to 3 times, waiting 1s between each attempt if it gets a 500 error from the Consul

For the vast majority of use cases this is desirable to prevent the lock from being given up during a brief period of Consul unavailability. If you want to get the previous default behavior you will need to set the `-monitor-retry=0` option. IMPROVEMENTS: Consul is now built with Go 1.5.2 Added source IP address and port information to RPC-related log error messages and HTTP access logs ] ] API clients configured for insecure SSL now use an HTTP transport that's set up the same way as the Go default transport ] Added new per-host telemetry on DNS requests ] Added support for reaping child processes which is useful when running Consul as PID 1 in Docker containers ] Added new `-ui` command line and `ui` config option that enables a built-in Consul web UI, making deployment much simpler ] Added new `-dev` command line option that creates a completely in-memory standalone Consul server for development Added a Solaris build, now that dependencies have been updated to support it ] Added new `-try` option to `consul lock` to allow it to timeout with an error if it doesn't acquire the lock ] Added a new `-monitor-retry` option to `consul lock` to help ride out brief periods of Consul unavailabily without causing the lock to be given up ] BUG FIXES: Fixed broken settings icon in web UI ] Fixed a web UI bug where the supplied token wasn't being passed into the internal endpoint, breaking some pages when multiple datacenters were present ] BACKWARDS INCOMPATIBILITIES: A KV lock acquisition operation will now allow the lock holder to update the key's contents without giving up the lock by doing another PUT with `?acquire=<session>` and providing the same session that is holding the lock. Previously, this operation would fail. FEATURES: Service ACLs now apply to service discovery ] Added event ACLs to guard firing user events ] Added keyring ACLs for gossip encryption keyring operations ] Added a new TCP check type that does a connect as a check ] Added new "tag override" feature that lets catalog updates to a service's tags flow down to agents ] Ported in-memory database from LMDB to an immutable radix tree to improve read throughput, reduce garbage collection pressure, and make Consul 100% pure Go ] Added support for sending telemetry to DogStatsD ] Added new network tomography subsystem that estimates the network round trip times between nodes and exposes that in raw APIs, as well as in existing APIs (find the service node nearest node X); also includes a new `consul rtt` command to query interactively ] Consul now builds under Go

by default ] Added built-in support for running health checks inside Docker containers ] Added prepared queries which support service health queries with rich features such as filters for multiple tags and failover to remote datacenters based on network coordinates; these are available via HTTP as well as the DNS interface ] BUG FIXES: Fixed expired certificates in unit tests ] Allow services with `/` characters in the UI ] Added SOA/NXDOMAIN records to negative DNS responses per RFC2308 ] ] ] ] Token hiding in HTTP logs bug fixed ] RFC6598 addresses are accepted as private IPs ] Fixed reverse DNS lookups to recursor ] Removes the trailing `/` added by the `consul lock` command ] Fixed bad lock handler execution during shutdown ] ] ] Added missing support for AAAA queries for nodes ] Tokens passed from the CLI or API work for maint mode ] Fixed service deregister/reregister flaps that could happen during `consul reload` ] Fixed the Go API client to properly distinguish between expired sessions and sessions that don't exist ] Fixed the KV section of the UI to work on Safari ] Cleaned up JavaScript for built-in UI with bug fixes ] IMPROVEMENTS: Added sorting of `consul members` command output ] Updated AWS templates for RHEL6, CentOS6 ] ] Advertised gossip/rpc addresses can now be configured ] Failed lock acquisition handling now responds based on type of failure ] Agents now remember check state across restarts ] Always run ACL tests by default in API tests ] Consul now refuses to start if there are multiple private IPs ] Improved efficiency of servers managing incoming connections from agents ] Added logging of the DNS client addresses in error messages ] Added `-http-port` option to change the HTTP API port number ] Atlas integration options are reload-able via SIGHUP ] Atlas endpoint is a configurable option and CLI arg ] Added `-pass-stdin` option to `consul lock` command ] Enables the `/v1/internal/ui/` endpoints, even if `-ui-dir` isn't set ] Added HTTP method to Consul's log output for better debugging ] Lock holders can `?acquire=<session>` a key again with the same session that holds the lock to update a key's contents without releasing the lock ] Improved an O(n^2) algorithm in the agent's catalog sync code ] Switched to net-rpc-msgpackrpc to reduce RPC overhead ] Removed all uses of the http package's default client and transport in Consul to avoid conflicts with other packages ] ] Added new `X-Consul-Token` HTTP header option to avoid passing tokens in the query string ] Increased session TTL max to 24 hours (use with caution, see note added to the Session HTTP endpoint documentation) ] Added support to the API client for retrying lock monitoring when Consul is unavailable, helping prevent false indications of lost locks (eg. apps like Vault can avoid failing over when a Consul leader election occurs) ] Added reap of receive buffer space for idle streams in the connection pool ] MISC: Lots of docs fixes Lots of Vagrantfile cleanup Data migrator utility removed to eliminate cgo dependency ] UPGRADE NOTES: Consul will refuse to start if the data directory contains an "mdb" folder. This folder was used in versions of Consul up to 0.5.1. Consul version 0.5.2 included a baked-in utility to automatically upgrade the data format, but this has been removed in Consul 0.6 to eliminate the dependency on cgo. New service read, event firing, and keyring ACLs may require special steps to perform during an upgrade if ACLs are enabled and set to deny by default. Consul will refuse to start if there are multiple private IPs available, so if this is the case you will need to configure Consul's advertise or bind addresses before upgrading. See https://www.consul.io/docs/upgrade-specific.html for detailed upgrade instructions. FEATURES: Include datacenter in the `members` output HTTP Health Check sets user agent "Consul Health Check" ] BUG FIXES: Fixed memory leak caused by blocking query ] MISC: Remove unused constant ] FEATURES: Ability to configure minimum session

] Ability to set the initial state of a health check when registering ] New `configtest` sub-command to verify config validity ] ACL enforcement is prefix based for service names ] ACLs support upsert for simpler restore and external generation ] ACL tokens can be provided per-service during registration ] Support for distinct LAN and WAN advertise addresses ] Migrating Raft log from LMDB to BoltDB ] `sessionttlmin` is now configurable to reduce the minimum TTL ] Adding `verifyserverhostname` to protect against server forging ] BUG FIXES: Datacenter is lowercased, fixes DNS lookups ] Deregister all checks when service is deregistered ] Fixing issues with updates of persisted services ] Chained CNAME resolution fixes ] Tokens are filtered out of log messages ] Fixing anti-entropy issue if servers rollback Raft log ] Datacenter name is case insensitive for DNS lookups Queries for invalid datacenters do not leak sockets ] IMPROVEMENTS: HTTP health checks more reliable, avoid KeepAlives ] Improved protection against a passive cluster merge SIGTERM is properly handled for graceful shutdown ] Better staggering of deferred updates to checks ] Configurable stats prefix ] Raft uses BoltDB as the backend store. ] API RenewPeriodic more resilient to transient errors ] FEATURES: Key rotation support for gossip layer. This allows the `encrypt` key to be changed globally. See "keyring" command. ] Options to join the WAN pool on start (`startjoinwan`, `retryjoinwan`) ] Optional HTTPS interface ] Ephemeral keys via "delete" session behavior. This allows keys to be deleted when a session is invalidated instead of having the lock released. Adds new "Behavior" field to Session which is configurable. ] Reverse DNS lookups via PTR for IPv4 and IPv6 ] API added checks and services are persisted. This means services and checks will survive a crash or restart. ] ACLs can now protect service registration. Users in blacklist mode should allow registrations before upgrading to prevent a service disruption. ] ] Sessions support a heartbeat failure detector via use of TTLs. This adds a new "TTL" field to Sessions and a `/v1/session/renew` endpoint. Heartbeats act like a failure detector (health check), but are managed by the servers. ] ] Support for service specific IP addresses. This allows the service to advertise an address that is different from the agent. ] ] Support KV Delete with Check-And-Set ] Merge `armon/consul-api` into `api` as official Go client. Support for distributed locks and semaphores in API client ] ] Support for native HTTP health checks ] Support for node and service maintenance modes ] Added new "consul maint" command to easily toggle maintenance modes ] Added new "consul lock" command for simple highly-available deployments. This lets Consul manage the leader election and easily handle N+1 deployments without the applications being Consul aware. ] Multiple checks can be associated with a service ] ] BUG FIXES: Fixed X-Consul-Index calculation for KV ListKeys Fixed errors under extremely high read parallelism Fixed issue causing event watches to not fire reliably ] Fixed non-monotonic X-Consul-Index with key deletion ] ] Fixed use of default instead of custom TLD in some DNS responses ] Fixed memory leaks in API client when an error response is returned ] Fixed issues with graceful leave in single-node bootstrap cluster ] Fixed issue preventing node reaping ] Fixed gossip stability at very large scale Fixed string of rpc error: rpc error: ... no known leader. ] Fixed panic in `exec` during cancellation Fixed health check state reset caused by SIGHUP ] Fixed bug in UI when multiple datacenters

IMPROVEMENTS: Support "consul exec" in foreign datacenter ] Improved K/V blocking query performance ] CLI respects CONSULRPCADDR environment variable to load parameter ] Added support for multiple DNS recursors ] Added support for defining multiple services per configuration file ] Added support for defining multiple checks per configuration file ] Allow mixing of service and check definitions in a configuration file ] Allow notes for checks in service definition file ] Random stagger for agent checks to prevent thundering herd ] More useful metrics are sent to statsd/statsite Added configuration to set custom HTTP headers (CORS) ] Reject invalid configurations to simplify validation ] Guard against accidental cluster mixing ] ] Added option to filter DNS results on warning ] Improve write throughput with raft log caching ] Added ability to bind RPC and HTTP listeners to UNIX sockets ] ] K/V HTTP endpoint returns 400 on conflicting flags ] ] MISC: UI confirms before deleting key sub-tree ] More useful output in "consul version" ] Many documentation improvements Reduce log messages when quorum member is logs ] UPGRADE NOTES: If `acldefaultpolicy` is "deny", ensure tokens are updated to enable service registration to avoid a service disruption. The new ACL policy can be submitted with 0.4 before upgrading to 0.5 where it will be enforced. Servers running 0.5.X cannot be mixed with older servers. (Any client version is fine). There is a 15 minute upgrade window where mixed versions are allowed before older servers will panic due to an unsupported internal command. This is due to the new KV tombstones which are internal to servers. FEATURES: Adding flags for `-retry-join` to attempt a join with configurable retry behavior. ] BUG FIXES: Fixed ACL token in UI Fixed ACL reloading in UI ] Fixed long session names in UI ] Fixed exit code from remote exec ] Fixing only a single watch being run by an agent ] Fixing potential race in connection multiplexing Fixing issue with Session ID and ACL ID generation. ] Fixing multiple headers for /v1/event/list endpoint ] Fixing graceful leave of leader causing invalid Raft peers ] Fixing bug with closing TLS connection on error Fixing issue with node reaping ] Fixing aggressive deadlock time ] Fixing syslog filter level ] Serf snapshot compaction works on Windows ] Raft snapshots work on Windows ] Consul service entry clean by clients now possible Fixing improper deserialization IMPROVEMENTS: Use "critical" health state instead of "unknown" ] Consul service can be targeted for exec ] Provide debug logging for session invalidation ] Added "Deregister" button to UI ] Added `enable_truncate` DNS configuration flag ] Reduce mmap() size on 32bit systems ] Temporary state is cleaned after an abort ] ] MISC: Health state "unknown" being deprecated FEATURES: Fine-grained ACL system to restrict access to KV store. Clients use tokens which can be restricted to (read, write, deny) permissions using longest-prefix matches. Watch mechanisms added to invoke a handler when data changes in consul. Used with the `consul watch` command, or by specifying `watches` in an agent configuration. Event system added to support custom user events. Events are fired using the `consul event` command. They are handled using a standard watch. Remote execution using `consul exec`. This allows for command execution on remote instances mediated through Consul. RFC-2782 style DNS lookups supported UI improvements, including support for ACLs. IMPROVEMENTS: DNS case-insensitivity ] Support for HTTP `?pretty` parameter to pretty format JSON output. Use $SHELL when invoking handlers. ] Agent takes the `-encrypt` CLI Flag ] New `statsd_add` config for Statsd support. ] New `addresses` config for providing an override to `client_addr` for DNS, HTTP, or RPC endpoints. ] ] Support for security bulletins and update announcements. BUG FIXES: Fixed race condition in `-bootstrap-expect` ] Require PUT to /v1/session/destroy ] Fixed registration race condition ] ] UPGRADE NOTES: ACL support should not be enabled until all server nodes are running Consul 0.4. Mixed server versions with ACL support enabled may result in panics. FEATURES: Improved bootstrapping process, thanks to @robxu9 BUG FIXES: Fixed issue with service re-registration ] Fixed handling of `-rejoin` flag Restored

TLS behavior, thanks to @nelhage ] Fix the statsite flags, thanks to @nelhage ] Fixed filters on critical / non-passing checks ] Fixed initial log compaction crash ] IMPROVEMENTS: UI Improvements Improved handling of Serf snapshot data Increase reliability of failure detector More useful logging messages FEATURES: Better, faster, cleaner UI ] ] Sessions, which act as a binding layer between nodes, checks and KV data. ] Key locking. KV data integrates with sessions to enable distributed locking. ] DNS lookups can do stale reads and TTLs. ] Added new /v1/agent/self endpoint ] `reload` command can be used to trigger configuration reload from the CLI ] IMPROVEMENTS: `members` has a much cleaner output format ] `info` includes build version information Sorted results for datacneter list ] Switch multiplexing to yamux Allow multiple CA certs in ca_file ] Enable logging to syslog. ] Allow raw key value lookup ] Log encryption enabled ] Support `-rejoin` to rejoin a cluster after a previous leave. ] Support the "any" wildcard for v1/health/state/ ] Defer sync of health check output ] Provide output for serfHealth check ] Datacenter name is validated ] Configurable syslog facilities ] Pipelining replication of writes Raft group commits Increased stability of leader terms Prevent previously left nodes from causing re-elections BUG FIXES: Fixed memory leak in in-memory stats system Fixing race between RPC and Raft init ] Server-local RPC is avoids network ] Fixing builds for older OSX ] MISC: Fixed missing prefixes on some log messages Removed the `-role` filter of `members` command Lots of docs fixes IMPROVEMENTS: Improved the URL formatting for the key/value editor in the Web UI. Importantly, the editor now allows editing keys with dashes in the name. ] The web UI now has cancel and delete folder actions in the key/value editor. ], ] Add flag to agent to write pid to a file. ] Time out commands if Raft exceeds command enqueue timeout Adding support for the `-advertise` CLI flag. ] Fixing potential name conflicts on the WAN gossip ring ] /v1/catalog/services returns an empty slice instead of null. ] `members` command returns exit code 2 if no results. ] BUG FIXES: Renaming "separator" to "separator". This is the correct spelling, but both spellings are respected for backwards compatibility. ] Private IP is properly found on Windows clients. Windows agents won't show "failed to decode" errors on every RPC request. Fixed memory leak with RPC clients. ] Serf name conflict resolution disabled. ] Raft deadlock possibility fixed. ] MISC: Updating to latest version of LMDB Reduced the limit of KV entries to 512KB. ]. Warn if any Raft log exceeds 1MB Lots of docs fixes FEATURES: Adding Web UI for Consul. This is enabled by providing the `-ui-dir` flag with the path to the web directory. The UI is visited at the standard HTTP address (Defaults to http://127.0.0.1:8500/). There is a demo . Adding new read consistency modes. `?consistent` can be used for strongly consistent reads without caveats. `?stale` can be used for stale reads to allow for higher throughput and read scalability. ] /v1/health/service/ endpoint can take an optional `?passing` flag to filter to only nodes with passing results. ] The KV endpoint supports listing keys with the `?keys` query parameter, and limited up to a separator using `?separator=`. IMPROVEMENTS: Health check output goes into separate `Output` field instead of overriding `Notes`. ] Adding a minimum check interval to prevent checks with extremely low intervals fork bombing. ] Raft peer set cleared on leave. ] Case insensitive parsing checks. ] Increase limit of DB size and Raft log on 64bit systems.