fix(e2e): the dashboard leg reaches a hardened stack; no vacuous drop-off pass - #394
Merged
Conversation
…f check can no longer pass vacuously The workers-alive phase curled with plain -fsS: no redirect following, no self-signed trust, no way to present credentials — every path through a current stack's Caddy front (HTTP 308 -> HTTPS, self-signed cert, basic auth) returned an empty payload, the visibility check failed against a healthy stack, and the drop-off loop then broke on its first probe and reported "dropped off within 0s" — a pass that measured nothing. dash_curl now follows redirects, accepts the stack's own cert, and presents E2E_DASH_AUTH when set; a never-visible worker skips the drop-off check with the reason stated. E2E_STRATUM_PASS's docs now say to set it only to a password the stack actually enforces. Header example host generalized. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXdRGcURkgbuoo5hUG8rmB
Same class as the header example: operator-facing usage text carries a placeholder, never a real box name. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXdRGcURkgbuoo5hUG8rmB
…ever an error page Adversarial-review finding: dropping -f from the old form changed error semantics; a 401/5xx body could reach the hostname grep. Re-verified against the live hardened stack: the -f form still follows the redirect chain and returns an empty payload on 401. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QXdRGcURkgbuoo5hUG8rmB
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.
Closes #390 — both halves, plus the vacuous pass the incident report didn't name.
Dashboard leg (finding 1).
phase_dashboardcurled with plain-fsS: no redirect following, no self-signed trust, no credentials. A current stack fronts the dashboard with Caddy — HTTP 308 → HTTPS, self-signed cert, basic auth — so every probe returned empty and the leg failed against a healthy stack. Newdash_curlfollows redirects, accepts the stack's own cert, and presents the newE2E_DASH_AUTH(user:pass) knob when set;E2E_DASH_URLis documented as the stack's/api/state.The vacuous drop-off pass. When the worker was never visible, the drop-off loop broke on its first probe and reported "dropped off within 0s" — a pass that measured nothing. A never-visible worker now reports the failure and skips the drop-off check with the reason stated.
Stratum leg (finding 2).
E2E_STRATUM_PASS's docs now say to set it only to a password the stack actually enforces — on a stack with auth off, any value makes the auth phases run and honestly report a "failure" that is a harness misconfiguration.Both literal host examples in usage/error text generalized to a placeholder (same class as the sibling repo's topology policy; the guard itself landed in #393).
What was RUN:
dash_curlbehavior via a recorded-argv curl stub (redirect/cert flags present;-upresent exactly whenE2E_DASH_AUTHis set), the never-visible path (failure + skip, andassert_absenton the vacuous "dropped off within"), and the visible-then-stopped path still measuring a real drop-off. Mutation, run: restoring the pre-fix body (no skip/return) turns theassert_absentred.dash_curl's form follows 1 redirect to HTTPS through the self-signed cert and reaches the basic-auth 401; wrong creds still 401. Not validated live: the credentialed 200 path — that needs the operator's dashboard password; the credentialed flag-wiring is covered by the argv-stub asserts instead. The full opt-in leg against a live stack with real creds remains a bench-run item (rig-e2e flock), unchanged in scope.make lintclean.