Repository navigation
Reject retired API credentials before use - #113
Open
John-David Dalton (jdalton) wants to merge 1 commit into
Open
John-David Dalton (jdalton) wants to merge 1 commit into
John-David Dalton (jdalton) wants to merge 1 commit into
Conversation
John-David Dalton (jdalton)
force-pushed
the
jdalton/retired-credential-recovery
branch
2 times, most recently
from
October 13, 2026 12:52
450003c to
a59fb21
Compare
John-David Dalton (jdalton)
force-pushed
the
jdalton/retired-credential-recovery
branch
from
October 13, 2026 12:52
a59fb21 to
ebc9146
Compare
This branch has not been deployed
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.
LLM Description written by Codex:GPT-6
Reject the retired shared credential before the Python SDK stores or encodes it. Valid credentials keep their existing selection order and encoded bytes.
Root Cause
The SDK accepted the retired credential from explicit arguments, environment variables, and direct Basic-auth encoding.
Fix
Validation
12 focused tests pass. New helper and test files pass Ruff. Tests use synthetic values and do not call Socket APIs.
Public Changelog
Reject a retired shared API credential with instructions to configure a replacement.
Note
Medium Risk
Changes credential validation on every client init and
encode_keypath; misconfigured digest or matching logic could block legitimate tokens or miss the retired one.Overview
Blocks a retired shared API credential before the Python SDK stores or Base64-encodes it, with a fixed user-facing error telling customers to create a new token.
Token resolution moves into
select_token, keeping the same behavior: explicittokenwins (including empty string), otherwise the first set of the fourSOCKET_*env vars. After resolution,reject_retired_tokencompares a trimmed SHA-256 digest to a baked-in fingerprint (no raw secret in repo or errors).API.encode_keyalso runsreject_retired_basic_auth_token, checking only the Basic-auth username segment before the first:.Unit tests cover rejection messaging/redaction, env precedence, whitespace trimming, and non-retired tokens without network calls.
Reviewed by Cursor Bugbot for commit 6ebd180. Configure here.