Skip to content

fix(io): cancellable OAuth callbacks and atomic cache records - #200

Open
wolfv wants to merge 2 commits into
pre1/wire-consistencyfrom
pre1/io-cache
Open

wolfv wants to merge 2 commits into
pre1/wire-consistencyfrom
pre1/io-cache

Conversation

@wolfv

@wolfv wolfv commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

Stack: follows #199.

  • Keep OAuth callback sockets async and bound the total request headers, so the existing deadline cannot be defeated by a partial request.
  • Bound token exchange responses/deadlines and redact bearer tokens from Debug/error output.
  • Check/remove expired memory entries under one lock.
  • Replace filesystem expiration and data together using an existing workspace dependency (tempfile); never unlink a replacement during expiry reads. Reject overflowing TTLs.
  • Default filesystem caches to the production namespace. Legacy two-file records are ignored.

Validation: all-feature tests and strict all-target Clippy for sigstore-cache and sigstore-oidc. Regressions cover partial/oversized callbacks, state mismatch, redaction, expiry and concurrent cache access.

Signed-off-by: Wolf Vollprecht <w.vollprecht@gmail.com>
Signed-off-by: Wolf Vollprecht <w.vollprecht@gmail.com>
@wolfv

wolfv commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator Author

Windows cache tests now pass after handling transient native replacement errors without deleting the old record. The remaining live interoperability failure is Rekor v2 returning HTTP 503 (no healthy upstream); local and other CI checks pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant