Repository navigation
Reject retired credentials in CLI transports - #397
John-David Dalton (jdalton) wants to merge 1 commit into
Conversation
31ea670 to
db4007e
Compare
Refuse the retired credential before the CLI starts HTTP or reachability work. Increment the package version required by the published-release check. Assisted-by: Codex:gpt-6.1-sol
db4007e to
cfada31
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix is ON, but none of the reported issues met your autofix severity threshold.
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit cfada31. Configure here.
| args.api_token | ||
| ) | ||
| api_token = select_api_token(os.environ, args.api_token) | ||
| reject_retired_api_token(api_token) |
There was a problem hiding this comment.
Retired-token error escapes CLI handler
Medium Severity
reject_retired_api_token raises ValueError from CliConfig.from_args. cli catches that and calls from_args again to read --disable-blocking and --exit-code-on-api-error. The second call raises the same error, so _emit_infrastructure_error never runs and those flags are ignored. Operators get an uncaught traceback instead of the CLI's formatted infrastructure error path.
Reviewed by Cursor Bugbot for commit cfada31. Configure here.


LLM Description written by Codex:GPT-6
Stop the Python CLI from sending the retired shared credential through its API and reachability paths. The error tells users to configure a replacement.
Root Cause
The CLI has independent HTTP and subprocess credential paths, so an SDK guard alone does not cover them.
Fix
Validation
10 focused tests pass, including real constructors and configuration parsing. New helper and test files pass Ruff. Tests use synthetic credentials without API requests.
Public Changelog
Reject a retired shared API credential before API requests or reachability execution.
Note
Medium Risk
Changes authentication validation on every CLI startup and client construction; mis-fingerprinting could block legitimate tokens, though scope is limited to one retired credential fingerprint.
Overview
Release 2.10.12 blocks a known retired Socket API credential before any HTTP or reachability work runs, instead of letting it flow through separate CLI paths.
A new
reject_retired_api_tokenhelper compares the configured token to a SHA-256 fingerprint (constant-time) and raises a clearValueErrorwithout echoing the token. It is wired into CLI config parsing,SocketConfig/CliClientconstruction, andReachabilityAnalyzer(including right before Coana runs).API token resolution is centralized in
select_api_token, keeping the existing precedence across the fourSOCKET_*env vars with--api-tokenas fallback. Unit tests cover rejection messaging, env precedence, and safe construction without network calls.Reviewed by Cursor Bugbot for commit cfada31. Configure here.