router: Move from Host header to explicit headers for actor and atespace - #1333
Open
Keith Mattix II (keithmattix) wants to merge 10 commits into
Open
router: Move from Host header to explicit headers for actor and atespace#1333Keith Mattix II (keithmattix) wants to merge 10 commits into
Keith Mattix II (keithmattix) wants to merge 10 commits into
Conversation
Eitan Yarmush (EItanya)
left a comment
Collaborator
There was a problem hiding this comment.
Looking good to me overall. Just a few nits. Also I think we need to figure out how to message this to the community as it will definitely break existing demos and things.
Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
…tivity in extproc Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
Signed-off-by: Keith Mattix II <keithmattix2@gmail.com>
Keith Mattix II (keithmattix)
force-pushed
the
no-host-header
branch
from
September 1, 2026 18:38
77fb4e1 to
3c0067d
Compare
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.
This PR is purposefully controversial to try and encourage movement on the DNS issue (#445).
There has been an emerging consensus that substrate is not a system that we expect end-users to interact with directly; we can assume a higher level orchestrator is acting on the user's behalf to program substrate. Therefore, our networking scheme does not need to utilize the HOST header to encode the (actor name, atespace) reference tuple. This PR encodes that same tuple as two distinct headers: x-ate-actor-name and x-ate-atespace. We expect the higher order system originating substrate requests to be able to set these headers and remove any need for us to rewrite DNS. Note that this also applies to actor-to-actor requests: atunnel is originating CONNECT to the egress PEP, so when addressing another actor, it can set the requisite headers in the CONNECT request and the PEP can know to forward them to the router.
NOTE: CONNECT vs. direct HTTP (#1208) is a similar conversation; I see no reason not to lean 100% into CONNECT as the standard datapath for tunneling if we expect substrate to be controlled by a higher-order system. I only want to bite off one controversial issue at a time, so I'll save that for later 😄
Breaking change
Clients that previously selected an Actor with
Host: <actor>.<atespace>.actors.resources.substrate.ate.devmust now send bothX-Ate-Actor-Name: <actor>andX-Ate-Atespace: <atespace>. The custom Actor DNS suffix is removed.Host/:authorityremains application metadata, except that CONNECT authority still carries the target port.