Repository navigation
fix(client): keep authentication credentials out of URLs and diagnostics - #71
Conversation
AlexanderZ-Band
left a comment
There was a problem hiding this comment.
Blocking — would be REQUEST_CHANGES on a PR by someone else. One verified logging-configuration regression; header authentication, wire reconnect/refusal behavior and scoped test coverage otherwise passed this review.
AlexanderZ-Band
left a comment
There was a problem hiding this comment.
Code review with fixes converged after 2 full-PR cycles. One confirmed logger-configuration regression was fixed in ada7555 and its thread resolved; the second independent pass found no further in-scope issues. Simplify required no changes. Verification: 272 tests passed, 98.02% coverage, Ruff/format/type checks passed; all 10 current CI checks succeeded on this exact head. Review covers header authentication and connection/protocol diagnostics; remote deployment verification remains separate.
Resume checkpoint — 2026-10-18Implemented/reviewed/tested; not merged, released or adopted. Owner: Alexander Zaikman. Current-cycle tracking: INT-1838, parent INT-1807. These tickets' current checkpoints supersede the earlier broader attached plans. Head: ada7555. Review converged in two cycles. Fixed native logger disabling/filter handling; 272 tests, 98.02% coverage, lint/format/types and all 10 current CI checks pass. Zero unresolved inline threads. Normal auto-squash merge is enabled; one independent approval is still required. User authorized merging/releasing #71; do not bypass review rules. Continue here
Local checkout: /Users/zaikman/repo/phoenix-main-security-1838. Preserve work; never stash. Prior exact-head local checks: Scope remains header authentication and connection/protocol diagnostics. Infrastructure/platform, incident cleanup, generic application logging and unrelated consumer migrations are excluded. No production operational safety or historical remediation is claimed. |
…-in-phoenix-INT-1838
Why
Supplying an API-key or JWT authentication header still leaves credentials in the WebSocket URL, and transport diagnostics expose credentials and personal data to logging handlers.
What
Select header-only authentication for valid API-key and JWT headers with platform JWT precedence, reject empty or ambiguous headers, and sanitize retained credential-bearing errors. Connection and protocol logs omit dynamic values, frame payloads, identities and raw exception content before handlers receive records while respecting native logger disabling and filters. Cover actual accepted/refused handshakes, reconnects, encoded values, custom handlers, and dynamic log-level changes.
Scope
Mainline security fix for INT-1838. Deliberate standalone query authentication remains available without a header. Application payload redaction, historical logs, publication, and consumer dependency adoption are separate work.