Uh oh!
There was an error while loading. Please reload this page.
docs: correct air-gapped and MySQL-egress overclaims (backend#1186) - #68
Merged
Conversation
Two customer-facing claims were factually wrong: - FAQ answered "Do you support air-gapped clusters? Yes". The environment needs outbound HTTPS to the tracebloc platform to run experiments, so it is not air-gapped. Reframed to the offline / egress-proxy flow we actually support, with the RFC-0003 §1 framing (defined, auditable ingress/egress; raw data never leaves). - Security page claimed training pods "can't reach MySQL". The chart's NetworkPolicy explicitly permits TCP/3306 to the in-cluster MySQL — training reads its dataset from it — and allowExternalHttps defaults true today, so "denied data egress" was not enforced. Reworded to describe the isolation as it actually is. Refs tracebloc/backend#1186 (RFC-0003 §9 messaging alignment). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Contributor
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
saadqbal
approved these changes
Jul 24, 2026
Uh oh!
There was an error while loading. Please reload this page.
LukasWodka added a commit
that referenced
this pull request
Jul 31, 2026
PR #68 corrected the "air-gapped" FAQ and the security.mdx MySQL claim, but only touched security.mdx + faqs.mdx. Three pages still carried the same factual error on main: - overview.mdx: "a NetworkPolicy that blocks data egress from training pods" — false by default (networkPolicy.training.allowExternalHttps defaults true), and it contradicted the already-merged security.mdx ("Direct outbound HTTPS is still allowed by default today"). - configuration.mdx + eks-client-deployment-guide.mdx: NetworkPolicy "blocking pod-to-pod, MySQL, and Kubernetes API access" — the chart's network-policy-training.yaml (rule 3) explicitly PERMITS TCP/3306 to the in-cluster mysql-client pod; training reads its dataset from it and CrashLoopBackOffs without it. Reworded to mirror the accurate security.mdx description: MySQL and the results proxy stay reachable, arbitrary pod-to-pod + K8s API are blocked, direct outbound HTTPS is on by default with an optional stricter lockdown. Verified against client/client/templates/network-policy-training.yaml and values.yaml (allowExternalHttps: true). Refs tracebloc/backend#1186. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
3 tasks
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 freeto 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.
What this fixes
The factual-correction half of
tracebloc/backend#1186(RFC-0003 §9 messaging alignment). Two customer-facing claims in the docs were factually wrong — this PR corrects only those. Positioning/voice work is deferred to Lukas (see below).Scope: docs repo only. No website copy, no terminology source-of-truth rewrite.
1. FAQ: "Do you support air-gapped clusters? Yes" — factually wrong
tools-help/faqs.mdxanswered yes to air-gapped support. The environment is outbound-only and requires outbound HTTPS to the tracebloc platform (api.tracebloc.io+ Service Bus) to run experiments — with no backend egress, experiments never leave Pending. A fully air-gapped cluster can't operate, so "yes" is an overclaim. (The linkedINSTALL.mdcovers an offline chart install and proxy routing — not disconnected operation.)HTTP_PROXY/HTTPS_PROXY) — and states plainly that the environment is outbound-only and not fully air-gapped. Uses the decided RFC-0003 §1 framing: defined, auditable ingress and egress; raw data never leaves your infrastructure; only the results and weights you choose to share are sent out.Verified against
tracebloc/client/docs/INSTALL.md(packaged-chart §2 + corporate-proxy note) and the outbound-host list.2. Security page: training pods "can't reach MySQL" — factually wrong (it's the opposite)
environment-setup/security.mdxclaimed training pods "are denied data egress — they can't reach MySQL, other pods, or the Kubernetes API." Training pods read their dataset from the in-cluster MySQL — the chart'sNetworkPolicy(client/client/templates/network-policy-training.yaml, rule 3) explicitly permits TCP/3306 to themysql-clientpod; the template comment notes that without it the job CrashLoopBackOffs before the first batch. Separately, "denied data egress" isn't enforced by default today:networkPolicy.training.allowExternalHttpsdefaults true (values.yaml:188), so direct outbound HTTPS is currently allowed — the stricter lockdown ships with the chart but is off until an operator enables it (RFC-0003 §3.5 / D6,client-runtime#199).Verified against the chart's
NetworkPolicytemplate,values.yaml, andclient/docs/SECURITY.md §4.2.Deferred to Lukas (positioning / voice — intentionally NOT in this PR)
TERMINOLOGY.md.workspace→secure environmentrename acrossenvironment-setup/overview.mdxandsecurity.mdx(e.g. "workspace ↔ platform traffic", "Your workspace needs outbound HTTPS…"). Terminology drift, not a factual error — left untouched here.tracebloc-websitemarketing copy — the draft flags several website hits (posts/tracebloc-engineer-guide.mdx,src/config/seo.config.tskeywords, "zero data movement", etc.); out of scope for this docs-only PR.Refs
tracebloc/backend#1186.🤖 Generated with Claude Code
Note
Low Risk
Documentation-only factual corrections with no runtime, auth, or data-path code changes.
Overview
Fixes two factually incorrect customer-facing claims in the security FAQ and setup docs (RFC-0003 §9 alignment).
environment-setup/security.mdx— Replaces the bullet that said training pods cannot reach MySQL with an accurate description of the chart’sNetworkPolicy: inbound denied, arbitrary pod-to-pod and Kubernetes API blocked, in-cluster MySQL and the result/FLOPs proxy allowed, default direct outbound HTTPS still on, optional stricter egress gateway, and CNI requirement linked to the EKS guide.tools-help/faqs.mdx— Drops the “Do you support air-gapped clusters? Yes” answer in favor of “Can I install offline or run behind an egress proxy?”, covering packaged-chart install andHTTP_PROXY/HTTPS_PROXY, and stating plainly that operation is outbound-only and not fully air-gapped while describing defined ingress/egress and what may leave the infrastructure.Reviewed by Cursor Bugbot for commit 454d5d6. Bugbot is set up for automated code reviews on this repo. Configure here.