Repository navigation
State the network surface commitment and assert the page matches it - #594
Open
robertjamesprior wants to merge 6 commits into
Open
robertjamesprior wants to merge 6 commits into
robertjamesprior wants to merge 6 commits into
Conversation
Readers copy the destination table and the CSP snippets on this page straight into firewalls and Content Security Policies, but nothing said Kernel would keep those destinations stable and nothing checked that the table, the snippets and the platform agreed. The table and its own CSP block have already drifted apart once. Add a "What we commit to" section stating that the destinations and ports do not move without a changelog entry and advance notice, along with the three things inside this page's scope that are deliberately not covered. Vendor compat/network_surface.json from kernel/kernel packages/api/lib/compat, where the API validates session URLs against the same file and the Ansible inventory validator checks host domains against it. scripts/check_network_surface.py asserts the page's table, Live View CSP block and stated exclusions all match it, and runs on every pull request. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
robertjamesprior
force-pushed
the
hypeship/network-surface-check
branch
from
October 8, 2026 15:43
f3f017f to
84fbe76
Compare
The canonical manifest lists ports ascending and records the port 443 transition, so the vendored copy and its pin move with it. The table check compares the port cell to the list, and a CSP source with no port counts as 443, so the origins the rollout added have to be present.
robertjamesprior
marked this pull request as ready for review
November 8, 2026 02:11
Matches kernel/kernel contracts/network-surface.json, which is now in canonical JSON.stringify form and no longer carries `version` or `transition`. Nothing here read either field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
robertjamesprior
force-pushed
the
hypeship/network-surface-check
branch
from
November 8, 2026 20:51
6a51db8 to
7ae010b
Compare
This branch was successfully 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.
Summary
Readers copy the destination table and the CSP snippets on
/info/network-accessstraight into firewalls and Content Security Policies. Two things were missing: the page never said Kernel would keep those destinations stable, and nothing checked that the table, its own CSP snippet and the platform agreed. The table and the snippet have already drifted apart once.compat/network_surface.jsonis vendored byte-identical fromkernel/kernelcontracts/network-surface.json, which validates its own shape in that repo and is what the Ansible inventory validator checks host domains against, so the promise, the page and the assertion are one object.portsascending, so the table check compares the port cell to the list and a CSP source with no port counts as 443. The page already published both ports; this brings the surface up to it.scripts/check_network_surface.pyasserts the destination table, the Live View CSP block and the stated exclusions all match the surface. Wired to a new workflow on every pull request.The commitment is scoped to this page's subject on purpose. It says nothing about API response shapes, error codes or SDK signatures, which have no equivalent published page yet, so it cannot accidentally disclaim them.
Testing
python3 scripts/check_network_surface.pypasses against the page as it stands, which confirms the vendored surface matches what is already published rather than restating it. Verified the negative cases by removing a host from the table (ports ['8443'] != ['443', '8443']) and by dropping the portless origins from the CSP block, which fails naming the missing*.onkernel.com:443and*.kernel.sh:443. Confirmed all three vendored copies are byte-identical. Workflow YAML parses.🤖 Generated with Claude Code
Note
Low Risk
Docs and CI validation only; no runtime services, auth, or customer data paths change.
Overview
Formalizes the firewall allowlist promise on
info/network-access.mdxwith a new What we commit to section: listed destinations and ports won’t change without a changelog and notice, plus three explicit out-of-scope items (per-session wildcard hostnames, metro placement, egress IPs).Adds a single source of truth by vendoring
compat/network_surface.json(withcompat/network_surface.sha256as a tamper pin) from the kernelnetwork-surface.jsoncontract, including ordered ports (443,8443) andsession_facingmetadata for wildcard CDP/Live View traffic.Prevents doc drift with
scripts/check_network_surface.py, which fails CI if the destinations table, Live View CSP```textblock, exclusion bullets, or vendored hash don’t match the JSON. A new.github/workflows/network-surface.ymlruns that check on every pull request and on pushes tomain.Reviewed by Cursor Bugbot for commit 7ae010b. Bugbot is set up for automated code reviews on this repo. Configure here.