Repository navigation
docs: correct the v0.2 egress guard, exit code and limits wording - #6
Merged
Merged
Conversation
Post-merge review of the v0.2 docs against the v0.2.0 code. - Egress guard: its own section with its exact scope. With HTTP_PROXY or HTTPS_PROXY set, Parallax connects to the proxy, so the guard checks the proxy's address, not the target's; the docs said a hostname resolving to a metadata address is always refused. gRPC health ignores the proxy and stays guarded. Not general SSRF protection: loopback and private ranges are allowed, the OTLP exporter is not covered, and the metadata list is not exhaustive. - Exit 0 means no call was unanswered, not that every call was answered: calls skipped by -max-in-flight do not change the exit code. CI should fail on skipped above 0. - The Hard limits paragraph had split the manifest table, so the run.allow / run.deny row (deny always wins) rendered as raw text. - Smaller corrections: detail is cut to 512 bytes then "...", a baseURL fragment is rejected, dry-run exit 2 includes the hard limits, skipped result lines documented, the -allow-link-local link target fixed. Passed the C2 docs gate: README 0.93, DOCKERHUB.md 0.92, no Critical. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ETWOYA
approved these changes
Oct 13, 2026
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 is a review of the v0.2 docs from #5 against the v0.2.0 code, made after #5 merged. Those edits shipped without a docs gate pass. The gate found three statements that were false for v0.2.0, plus a rendering break.
Corrections
HTTP_PROXYorHTTPS_PROXYset, the HTTP transport connects to the proxy, soguardEgresschecks the proxy's address, never the target's (internal/probe/probe.go:92-93).-max-in-flightleave the exit code at 0 (cmd/parallax/main.go:175-181). With the default 20 calls/s and 5 s timeout, slow but healthy targets can exceed 64 in flight. The docs now tell CI to fail when the pass line reportsskippedabove 0.run.allow/run.denyrow rendered as raw pipes. That row is the only place "deny always wins" is stated.detailis cut to 512 bytes, then....baseURLfragment is rejected.traceId, no probe span, and counted incalls.-allow-link-locallink now points to the guard section.Engine issues (for the engine owner, not changed here)
169.254.169.254is sent to the proxy, and the proxy decides. If the guard is meant to hold with a proxy, it has to check the target before proxying.baseURL: http://svc#,manifest.go:256special-cases only a trailing?, so#passes and every route then probes/.Verification
After merge
Re-paste
DOCKERHUB.mdonto Docker Hub, from the# Parallaxline down.🤖 Generated with Claude Code