Repository navigation
fix(tests): hide contract harness credentials from process arguments - #561
Conversation
|
Blocked on authenticated stratum evidence bench-ci#1106 prevents completing the touched stratum proof. Job The credential fix, special-character/argument-inspection/restoration regression, documentation and repeated verifier/security reviews are finished in draft PR #561. The coverage test-routing correction is pushed at |
|
Resumed validation Rigforge#562 is closed through PR #567, and the runner-managed authentication fixture/routing prerequisites are deployed. PR #561 now merges Job |
|
Diagnostic proof queued Job The follow-up at |
|
Blocked on rigforge#570, with an additional proof prerequisite in bench-ci#1182. Job The credential-transport implementation, mandatory argument-inspection/error-restoration regressions, documentation, clean author-side verifier/security review and all eight current-head GitHub checks are complete in draft PR #561. The owning workers must finish those prerequisites; then this session can incorporate the base and obtain a fresh pushed-SHA narrow run proving revocation plus Stratum acceptance/rejection/recovery. Evidence blocks in the PR have been regenerated. No identical retry, weakened assertion or manual bench intervention was used. |
|
Blocked on bench-ci#1249. The Stratum and control readiness prerequisites are merged and incorporated into draft PR #561 at pushed head The new narrow |
|
Blocked on bench-ci#677. Job PR #561's credential implementation, regressions, documentation, clean verifier/security reviews and all eight current-head GitHub checks are complete. Bench maintainers must resolve the managed checkout permission/ownership cause and restore normal fetch capability before a new narrow |
|
Ready for review This change removes generated credentials from contract-harness process arguments by reusing stdin-based configuration and HTTP transport plus standard-library HMAC. Mandatory regressions inspect those arguments and preserve authentication, revocation, failure handling and restoration; documentation describes the behavior. The merged prerequisites retain bounded listener readiness and isolate the authenticated Stratum fixture. At unchanged head Unrelated hardware phases were not run because this fix changes credential transport in these two phases. No local container/full-suite PASS is claimed; GitHub owns those checks. No code, release/pin or payout configuration changed during operational recovery. The PR stays draft for the independent reviewer and runner merge gate. |
|
Adversarial review: PASS Reviewed head: PASS at 1151743: private credential transport and mandatory regressions satisfy #559 while preserving authentication, revocation, Stratum and restoration gates. Independent regression/mutation checks, all eight head checks and current-head job 2160 substantiate the claim; public topology scans, security and ponytail review have no findings. Earlier failed/error jobs remain historical evidence with their existing owners and are not credited as passing proof. Acceptance: remove generated master/named tokens, derived bearer keys and Stratum passwords from external process arguments using private stdin/owner-only transport and constant programs. Prove argument safety without hardware and retain raw/derived authentication, authenticated apply, actual revoked-bearer HTTP 401 on both listeners, Stratum acceptance/rejection/no-work/recovery and byte-identical EXIT restoration, including failures. Job 2160 executes all seven access-token and four Stratum assertions. Its full log, status and both phase artifacts agree; ordinary branch checkout/apply, rig restoration, temporary fixture byte restoration and healthy baseline/chain-sync verification all succeeded. Job 2150 remains an environment error owned by bench-ci#1271; a subsequent successful product proof does not close that separate target recovery. Historical 2019 omitted-skip reporting remains bench-ci#1107; its skipped Stratum phase is not coverage. Base and file-budget rules held; no release files, product services, OS changes or companion PR. No findings. Command record (private tool/scratch locations use placeholders):
|
|
adversarial-review: PASS at 1151743, round 1, by the pithead-reviewer reviewer (a fresh session that did not produce this head; gpt-6.1-sol). PASS at 1151743: independent regressions, mutation failures, eight green head checks and job 2160 substantiate #559’s credential-transport and preserved authentication/restoration contracts. Security, ponytail and public topology reviews have no findings. The verdict and full command record are published on PR #561. Evidence
|
Closes #559
Generated contract-harness credentials previously entered jq programs, curl bearer-header arguments and OpenSSL HMAC arguments. Access-token configuration now uses private stdin with a constant jq program; authenticated HTTP calls reuse the curl stdin helper; HMAC derivation uses Python's standard library with its key on stdin. Stratum setup/recovery retain the credential-safe stdin transport and fixture isolation from the merged prerequisites. Authentication, apply, revocation, rejection/no-work, recovery and EXIT restoration assertions remain mandatory. Bounded failure diagnostics export only fixed numeric/service-state fields and classified log counts.
The mandatory hardware-free credential regression inspects external arguments, checks raw/derived auth and actual revoked-bearer assertions, exercises special-character passwords and compares restored config bytes on success/failure.
make test-suiteruns it unconditionally in addition to the Bash suite and the upstream readiness regression. The Python-free kcov container continues measuring the Bash suite without changing its floor. Documentation describes transport, diagnostics and test prerequisites.Ponytail review: reused the existing curl helper, editor and standard-library HMAC; no dependency or abstraction added. Required tests, documentation, validation and error handling remain.
The prerequisites are merged: PR #567 requires Stratum input, PR #572 isolates its authenticated pool, and PR #574 adds bounded bearer-free listener readiness before separate authenticated/revoked-bearer assertions. The readiness issue was renumbered from #571 to #573 through runner triage and is closed. The owner's resolution identifies harness timing, with no shipped product, release or pin change. This branch incorporates those changes at
115174304518914f1ecb66d277dc96ca4b12add0; merge resolutions preserve both readiness and private transport. The readiness regression now uses the real editor/helper and recognizes bearer data on curl stdin; the credential regression handles bearer-free probes separately from its seven auth assertions.Validation at this merged head:
timeout 60 bash tests/test-contract-credentials.sh— PASS.timeout 60 bash tests/test-access-token-readiness.sh— PASS: all eight phase cases and the deadline race retain their expectations and byte-identical restoration.timeout 60 bash "$TMPDIR/rigforge-559-stratum-check.sh"— PASS: hardware-free driver sources the actual expanded Stratum regression against the real phase/editor/dispatch/EXIT helpers.shellcheck --severity=warning tests/e2e-pithead.sh tests/e2e-pithead-tokens.sh tests/test-contract-credentials.sh tests/test-stratum-auth-gate.sh tests/test-access-token-readiness.sh— PASS.shfmt -i 4 -d tests/e2e-pithead.sh tests/e2e-pithead-tokens.sh tests/test-contract-credentials.sh tests/test-stratum-auth-gate.sh tests/test-access-token-readiness.sh— PASS.FILE_BUDGET_REQUIRE_BASE=1 bash scripts/lint-file-budget.sh,make lint-topology,git diff --cached --check— PASS.GitHub owns the full suite, coverage and container e2e; no local container/full-suite PASS is claimed. All eight current-head GitHub checks pass at
115174304518914f1ecb66d277dc96ca4b12add0, including Test suite, Coverage and Docker e2e.Completed current-head hardware proof:
2160@115174304518914f1ecb66d277dc96ca4b12add0, submitted by managed Devops, executed the ordinary fetch/checkout and both touched phases. I independently read its full status, complete log, artifact inventory and both retained phase artifacts; downloaded sizes matched the inventory. The proof includes named-token raw/derived authentication and apply, separate HTTP 401 revocation checks on both listeners, and Stratum acceptance, wrong-password rejection with no work, and password recovery. The runner verified original configuration/mining restoration, byte-identical temporary stack fixture restoration and healthy baseline/chain sync. Its executing runner is4ec942b35bc9868ccd350bfbe6e409d2d0d8a7e0, the merged classification fix from bench-ci PR #1255.The operational blockers bench-ci#1249 and rigforge#575, moved from bench-ci#677, are closed. No implementation changed during recovery. Existing current-head job 2150 ended with a pre-harness Git permission error, with no assertions or artifacts; its full status/log and empty inventory were read. That separate target's operational recovery remains bench-ci#1271. Job 2160 proves this PR's credential behavior; it is not credited as target-specific repair proof for #1271. No duplicate submission or manual bench action was made by this worker.
The exact file-budget freeze command was rerun successfully against the unchanged tested head before this readiness update. All eight current-head GitHub checks pass and the repeated author-side verifier/security reviews remain clean. The draft is ready for the runner's independent review; this session will not merge it.
Retained earlier jobs: full status, complete logs and both phase artifacts were read. Job 2019 proves access-token assertions but skipped Stratum for missing input; structured omitted-skip reporting remains bench-ci#1107. Jobs 2086 and 2093 failed actual control revocation and Stratum rejection; their diagnostics motivated the now-merged prerequisites. None proves the current combined head. Their generated evidence remains unedited below. Other hardware phases are outside this credential-transport change. The PR remains draft for independent runner review; the current-head implementation and touched-area hardware gates are complete.
bench-ci job 2019@3a73ea59d2d5a7576e1a0602b7d8521e788647b9 · rigforge · tier4-e2e
Generated by
bench-ci evidence 2019@3a73ea59d2d5a7576e1a0602b7d8521e788647b9; re-run it to check.bench-ci job 2086@5705bc8f74c4544a291dceef3813ac91b18bf564 · rigforge · tier4-e2e
Generated by
bench-ci evidence 2086@5705bc8f74c4544a291dceef3813ac91b18bf564; re-run it to check.bench-ci job 2093@05341b4ad9f0b9c0b55f95669d28d01722740730 · rigforge · tier4-e2e
Generated by
bench-ci evidence 2093@05341b4ad9f0b9c0b55f95669d28d01722740730; re-run it to check.bench-ci job 2135@115174304518914f1ecb66d277dc96ca4b12add0 · rigforge · tier4-e2e
Generated by
bench-ci evidence 2135@115174304518914f1ecb66d277dc96ca4b12add0; re-run it to check.bench-ci job 2150@115174304518914f1ecb66d277dc96ca4b12add0 · rigforge · tier4-e2e
Generated by
bench-ci evidence 2150@115174304518914f1ecb66d277dc96ca4b12add0; re-run it to check.bench-ci job 2160@115174304518914f1ecb66d277dc96ca4b12add0 · rigforge · tier4-e2e
Generated by
bench-ci evidence 2160@115174304518914f1ecb66d277dc96ca4b12add0; re-run it to check.