Repository navigation
Conversation
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 2, 2026 04:10
e1c4804 to
07f5b55
Compare
niemyjski
added this pull request to stack #2642
October 5, 2026 02:11
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 13, 2026 02:39
c2acf5a to
6688148
Compare
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
2 times, most recently
from
October 13, 2026 02:58
92223ac to
3dc04bf
Compare
niemyjski
removed this pull request from stack #2642
October 13, 2026 03:05
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 13, 2026 03:05
3dc04bf to
0e46b92
Compare
niemyjski
added this pull request to stack #2659
October 13, 2026 03:05
niemyjski
removed this pull request from stack #2659
October 13, 2026 12:26
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 13, 2026 12:26
9ae1938 to
b4a4dc6
Compare
niemyjski
added this pull request to stack #2660
October 13, 2026 12:27
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 13, 2026 12:40
b4a4dc6 to
c876182
Compare
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
2 times, most recently
from
October 13, 2026 13:55
8f51fff to
75fae6d
Compare
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 14, 2026 02:46
75fae6d to
6ff97ff
Compare
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
2 times, most recently
from
October 14, 2026 03:03
874f431 to
b6c99e2
Compare
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 14, 2026 03:16
b6c99e2 to
ae52daf
Compare
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
4 times, most recently
from
October 14, 2026 14:29
361bb67 to
23c5807
Compare
niemyjski
force-pushed
the
issue/trusted-forwarded-headers
branch
from
October 15, 2026 01:44
23c5807 to
830924d
Compare
This was referenced Oct 15, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously, the API accepted forwarded client IPs and schemes from any peer. This restricts forwarding to framework loopback defaults plus configured peers, processes headers before their consumers, and normalizes mapped IPv4 addresses for consistent IP-based limits. Dev and prod deployments now discover the selected Azure gateway's delegated association subnet and pass its prefixes into Helm automatically. The configuration helper and its tests live under Security.
Validation: backend build passed with zero warnings/errors; 25 forwarding tests and 48 extension tests passed; 22 deployment/CI tooling tests passed, including real offline dev/prod Helm renders with mocked Kubernetes/Azure responses. No environment access or deployment was performed. Exact-head Website and Build CI passed, including the API and browser test aggregates; publication and deployment jobs were skipped.
Rollout blocker: discovery does not verify the API-visible traffic path or deployment identity permissions; #2668 retains those acceptance checks. Remote proxy installations must configure trust with the upgrade. Known CI issue: #2667 tracks the previously reproduced webhook tracing-provider interference; this change does not fix it.
Configuration, deployment, and verification details
k8s/scripts/discover-forwarded-headers.mjsbefore Helm upgrade. It reads the gateway selected by the rendered ingress, resolves its association subnet IDs with Azure CLI, and requires matching subnet identity, AGC delegation, and valid non-/0 prefixes. Failed reads or invalid configuration stop the upgrade. The deployment identity needs Kubernetes read access to the selected ApplicationLoadBalancer and Azure subnet read access.forwardedHeaders.knownNetworksreplaces the entire prior list, including with--reuse-values; the chart emits indexed environment settings and a forward limit of one. Conflicting manual ForwardedHeaders config keys fail rendering rather than silently extending trust. Failed discovery removes stale output. Existing ConfigMap checksums restart app/API pods when configuration changes.config.EX_ForwardedHeaders__KnownProxies__0orconfig.EX_ForwardedHeaders__KnownNetworks__0settings. No cluster-wide, Service, controller-pod, or trust-all fallback is used.UseForwardedHeaders()remains after error handling and before HTTPS, IP-dependent headers, logging, authentication, and throttling, consistent with Microsoft's ordering guidance. OAuth/MCP public origins remain explicitly configured; host/prefix forwarding, routes, payloads, and WebSocket formats are unchanged.node --test tests/ci/shards.test.mjs tests/ci/forwarded-headers-discovery.test.mjs. They require Helm but never call real kubectl or Azure CLI. Backend test classes:Exceptionless.Tests.Security.ForwardedHeadersConfigurationTestsandExceptionless.Tests.Extensions.*.