contribution/compass
envoyproxy/envoy

Envoy

80 signals · 92 observation events

Open repository ↗

Cloud-native high-performance edge/middle/service proxy

28.8K stars5.6K forksC++Apache-2.0carscatscats-over-dogscncfcorgismore-catsnanoservicesrocket-shipskeyword: Envoy Proxy
PROJECT NEWS

Release, roadmap, and discussion

All news →
envoyproxy/envoy

Envoy

Platform / Networking / Runtime Infrastructure
Latest stable

v1.39.0

v1.39.0
  • Summary of changes
  • Breaking changes
  • build: Envoy now uses Bazel 8. Because Envoy still uses WORKSPACE mode, --enableworkspace and --noenablebzlmod are required and have been added to .bazelrc; external-repository runfiles now appear directly under the runfiles root.
  • build: the Intel DLB connection balancer (envoy.network.connectionbalance.dlb) is disabled for all builds due to a broken source archive.
  • TLS: enforcersakeyusage is deprecated and ignored; Envoy now always enforces the certificate keyUsage extension.
Original release notes ↗

Publicly indicated next

Prereleases and milestones indicate public plans; they are not delivery commitments.

Observation trail

  1. discoveredinitial snapshot
  2. changedupdatedAt
  3. discoveredinitial snapshot
  4. discoveredinitial snapshot
  5. changedupdatedAt, metrics
  6. changedupdatedAt
  7. changedupdatedAt, metrics, assignees
  8. changedupdatedAt, metrics
  9. changedupdatedAt
  10. discoveredinitial snapshot
  11. changedupdatedAt
  12. changedupdatedAt, metrics, assignees
  13. discoveredinitial snapshot
  14. changedupdatedAt
  15. changedupdatedAt
  16. changedupdatedAt
  17. changedupdatedAt
  18. changedupdatedAt
  19. changedupdatedAt
  20. discoveredinitial snapshot
  21. changedupdatedAt
  22. changedtitle, text, updatedAt
  23. changedtext, updatedAt
  24. discoveredinitial snapshot
  25. changedupdatedAt, metrics, labels
  26. discoveredinitial snapshot
  27. discoveredinitial snapshot
  28. changedinitial snapshot
  29. changedinitial snapshot
  30. changedinitial snapshot
30 shown
pull request

Using PassthroughState pointer as key for TLS baggage exchange

<!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may email envoy-security@googlegroups.com. Thank you in advance for helping to keep Envoy secur

importance 1@grnmeiraopenwaitingOriginal evidence ↗
pull request

Fix listFineGrainLoggers so that it lists loggers

Also add test to avoid regression Change-Id: I93d401aad43ea51a853725a8939f5b5524b3f8e1 <!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may emai

importance 1@etruong42openOriginal evidence ↗
pull request

ai_protocol_manager: add response handling and extract response token usage oai, ahth, gemini

Adds response-side (encode-path) handling to the AI Protocol Manager filter: 2xx SSE and JSON responses in the OpenAI (Chat Completions + Responses API), Anthropic (Messages), and Gemini (`generateContent`/`streamGenerateContent`) dialects are observed as they stream through, and normalized token usage is published as dynamic metadata at a clean end of strea

importance 1@botengyaoopenapiOriginal evidence ↗
pull request

network: send zero-length UDP datagrams

Preserve empty datagrams across all UDP send paths. Justification: RFC 768 permits UDP datagrams with an empty payload: the minimum UDP Length is 8 octets, corresponding to the UDP header alone. Envoy currently treats these valid datagrams as no-op writes and silently drops them. This change ensures they reach the socket send operation for connected and unco

importance 1@nezdolikopenOriginal evidence ↗
pull request

reverse_tunnel: add tunnel setup latency stats

## Commit Message reverse_tunnel: add tunnel setup latency stats ## Description Adds max_tunnel_setup_time on the downstream reverse-tunnel initiator and emits tunnel_setup_time (histogram) / tunnel_setup_time_exceeded (counter) for how long it takes a host to reach its configured connection count. Attempts continue after the deadline; late completions are n

importance 1@aakuganapiOriginal evidence ↗
pull request

quic: promote HTTP/3 API status from alpha to stable

QUIC/HTTP3 is well-supported both internally and externally in Envoy. CVEs in it are treated with the highest priority. It's long-overdue to take it out of alpha. Changes: - Remove 'QUIC upstream support is currently not ready for internet use' warnings from http_protocol_options.proto (ExplicitHttpConfig, UseDownstreamHttpConfig, AutoHttpConfig). - Remove s

importance 1@abeyadclosedOriginal evidence ↗
pull request

filesystem: refactor win32 watcher_impl to use absl mutex and fix buffer alignment

Additional Description: Refactors the Win32 filesystem watcher (`WatcherImpl`): - Replaces `<concurrent_queue.h>` (`concurrency::concurrent_queue`) with a thread-safe `ThreadSafeQueue` using `absl::Mutex`. This eliminates duplicate symbol link conflicts between `libc++` and MSVC `libconcrt.lib`. - Changes `DirectoryWatch` buffer type from `std::vector<uint8_

importance 1@citrus7openwaitingOriginal evidence ↗
pull request

Avoid unnecesary renaming of watcher_target.yaml

This avoids the race condition where watcher_target.yaml is not present Change-Id: I7f8c67023ac31f3a9cac294caca5c0d18c30ee1d <!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (p

importance 1@etruong42openOriginal evidence ↗
pull request

c-ares: move dns shared resolver logic to upstream cluster

Commit Message: c-ares: move dns shared resolver logic to upstream cluster Additional Description: In #45073 I added qcache_max_ttl for the c-ares resolver and shared the resolver across clusters with identical c-ares configs so the query cache is shared. However, I didn't realize the UDP DNS filter also calls CaresDnsResolverFactory::createDnsResolver() dir

importance 1@andy-fongOriginal evidence ↗
pull request

transport_socket(http_11_proxy): add Proxy-Authorization header support

Commit Message: This patch adds support in HTTP/1.1 Proxy for HTTP proxy authorization. The HTTP/1.1 Proxy looks up the encoded credentials in its host's typed filter metadata and sends it with the Proxy-Authorization HTTP header in the CONNECT request to the proxy. Proxy authorization is still unsupported when filter state metadata is used. Additional Descr

importance 1@glennc24openOriginal evidence ↗
pull request

Allow connection teardown even when cert selection is not yet complete

https://github.com/envoyproxy/envoy/pull/45755 allowed the socket state to transition to `ShutdownSent` before cert selection is complete (as intended). However, this could cause `ENVOY_BUG` to be thrown when `SslSocket::onAsynchronousCertificateSelectionComplete()` is invoked. This patch updates `SslSocket::onAsynchronousCertificateSelectionComplete` to all

importance 1@etruong42openOriginal evidence ↗
pull request

Add extension point to OpenTelemetry tracer for custom exporters.

<!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may email envoy-security@googlegroups.com. Thank you in advance for helping to keep Envoy secur

importance 1@jakebennertopenapiOriginal evidence ↗
pull request

Restrict local reply streaming integration tests

... so that it runs only on Envoy gRPC Change-Id: If3ff45c3ee9db39b14ed506a7ef85ae00ec7db24 <!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may

importance 1@etruong42openOriginal evidence ↗
pull request

Ensure upstream hosts have rebalanced utilization

... before asserting new traffic patterns in test <!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may email envoy-security@googlegroups.com. Th

importance 1@etruong42openOriginal evidence ↗
pull request

Create Snapshot of runtime stats before incrementing counter

The stats_.load_success_ counter is incremented before the Snapshot of runtime metrics is taken. This leads to a small window where a client can request runtime metrics after load_success_ counter indicates a successful load but before the latest runtime metrics are available. Change-Id: Iac433fdf7637eec59186cfa44f2e065d367fc73f <!-- !!!ATTENTION!!! If you a

importance 1@etruong42openOriginal evidence ↗
pull request

build(deps): bump mypy from 1.20.2 to 2.3.0 in /mobile/tools/python

Bumps [mypy](https://github.com/python/mypy) from 1.20.2 to 2.3.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/mypy/blob/master/CHANGELOG.md">mypy's changelog</a>.</em></p> <blockquote> <h1>Mypy Release Notes</h1> <h2>Next Release</h2> <h3>Packaging changes</h3> <ul> <li>No longer provide mypyc-accelerated wh

importance 0@dependabot[bot]openstaledependenciespythonOriginal evidence ↗
pull request

network_ext_proc: add onNewConnection event handling

Commit Message: network_ext_proc: add onNewConnection event handling Additional Description: This PR adds first-class support for `onNewConnection` event handling in the NetworkExternalProcessor Key changes: 1. **API Updates**: - `api/envoy/extensions/filters/network/ext_proc/v3/ext_proc.proto`: Added `ConnectionSendMode process_new_connection` (defaulting t

importance 0@botengyaoopenOriginal evidence ↗
pull request

Avoid excessive hashing for well-known header lookups

<!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may email envoy-security@googlegroups.com. Thank you in advance for helping to keep Envoy secur

importance 0@etruong42openOriginal evidence ↗
pull request

cluster specifier: support new attempt aware cluster specifier

Commit Message: cluster specifier: support new attempt aware cluster specifier Additional Description: Risk Level: Testing: Docs Changes: Release Notes: Platform Specific Features: [Optional Runtime guard:] [Optional Fixes #Issue] [Optional Fixes commit #PR or SHA] [Optional Deprecated:] [Optional [API Considerations](https://github.com/envoyproxy/envoy/blob

importance 0@wbpcodeapiOriginal evidence ↗
pull request

tls_inspector: fix GREASE filtering in JA4_c signature algorithms

## Summary The JA4 fingerprint's third component hashes the ClientHello's extension list joined to its `signature_algorithms` list. Per the [JA4 spec](https://github.com/FoxIO-LLC/ja4/blob/main/technical_details/JA4.md), GREASE codepoints must be excluded everywhere they appear — including in `signature_algorithms`. `getJA4ExtensionHash` already applies `isN

importance 0@dangle1openOriginal evidence ↗
pull request

tidy: enforce and apply C++20 container `contains()`

Enable the `readability-container-contains` clang-tidy check so that `count(k)`/`find(k) != end()` membership tests are flagged going forward, and apply the `.contains()` conversion across the non-extensions code (the extensions tree was cleaned up separately). Readability cleanup with no behavior change.

importance 0@jwendellclosedOriginal evidence ↗
pull request

cleanup: replace erase-remove idiom with std::erase_if or absl::erase_if

### Description Replace the traditional erase-remove idiom with the more concise `std::erase_if` and `absl::erase_if` APIs where applicable. This improves readability by expressing the intent to remove elements matching a predicate directly, while preserving the existing behavior. ### Changes Replace `std::remove_if` followed by `erase` with `std::erase_if`

importance 0@Amila-RukshanopenOriginal evidence ↗
pull request

fix: health check probes blocked indefinitely when EDS initialFetchTimeout is 0s

_Commit Message:_ when a cluster is configured with EDS and initialFetchTimeout: 0s, the cluster stays in warming state indefinitely until EDS delivers its first response, no timeout fires to unblock it. _Additional Description:_ added a bypass in ClusterImplBase::setHealthChecker(). when health_check_after_cluster_warming is enabled, health checks are still

importance 0@yuehaiiopenOriginal evidence ↗
pull request

Rescope Logger::Levels enum so it can be moved to envoy/ directory

The main change is in the source/common/common/base_logger.h, moving the Levels enum out of the Logger class into the outer Logger namespace. This is intermediate step to using this enum in Envoy's interfaces in the envoy/ directory. This will prevent leaking of the spdlog dependency to proprietary components that need to manipulate Envoy's log level program

importance 0@yanavlasovclosedOriginal evidence ↗
pull request

orca: make OOB active_sessions gauge composable across managers

<!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may email envoy-security@googlegroups.com. Thank you in advance for helping to keep Envoy secur

importance 0@jukieclosedOriginal evidence ↗
pull request

ExtProc: clarify docs on end_of_stream_without_message field

Commit Message: ExtProc: clarify docs on end_of_stream_without_message field Additional Description: Clarify description of the field, and mark it as not-implemented-hide to exclude from Envoy docs. Risk Level: Low Testing: N/A Docs Changes: Included in PR Release Notes: N/A Platform Specific Features: N/A CC @yanjunxiang-google

importance 0@markdrothopenapiOriginal evidence ↗
pull request

[draft] dym: go sdk for udp listener filter

<!-- !!!ATTENTION!!! If you are fixing **any** crash or **any** potential security issue, **do not open a pull request**. Instead, please [open a GitHub Security Advisory](https://github.com/envoyproxy/envoy/security/advisories/new) (preferred). Alternatively, you may email envoy-security@googlegroups.com. Thank you in advance for helping to keep Envoy secur

importance 0@ovadiagalopenOriginal evidence ↗
pull request

fix: wasm remote code fetch race writing negative cache entry

● Problem When multiple Envoy worker threads simultaneously call createWasm() for a remote wasm plugin, Thread A starts the HTTP fetch and marks the cache entry in_progress = true. Threads B–N find the entry in_progress, call cb(nullptr) to signal failure, then fall through (missing return) to the code.empty() block. There, they write a negative cache entry

importance 0@eformatopenOriginal evidence ↗
pull request

coroutine: add ASSIGN_OR_CO_RETURN and CO_RETURN_IF_ERROR macros

Commit Message: These are the macros that mirror directly `RETURN_IF_ERROR` and `ASSIGN_OR_RETURN` but for `Envoy::Coroutine::Task<absl::Status>` and `Envoy::Coroutine::Task<absl::StatusOr<T>>` coroutines. Additional Description: Risk Level: low Testing: unit test Docs Changes: N/A Release Notes: no - internal helper utilities Platform Specific Features: N/A

importance 0@penguingaoclosedOriginal evidence ↗
pull request

Add support for `serverNameOverride` in ALTS and create `ServerNameDecoratorTransportSocketOptions`

Commit Message: support `serverNameOverride` in ALTS and add `ServerNameDecoratingTransportSocketOptions` Additional Description: These two changes are in pursuit of eventually being able to pass the original target name to the TransportSocket 1) Create `ServerNameDecoratingTransportSocketOptions` as a `TransportSocketOptions` wrapper class that populates th

importance 0@MichaelHDingopenOriginal evidence ↗