Skip to content

feat: add Redis browser session inventory and revocation - #4

Merged
dbotwinick merged 3 commits into
mainfrom
feat/browser-session-management
Sep 11, 2026
Merged

feat: add Redis browser session inventory and revocation#4
dbotwinick merged 3 commits into
mainfrom
feat/browser-session-management

Conversation

@dbotwinick

@dbotwinick dbotwinick commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Redis/Valkey browser sessions can now be listed by subject and revoked individually or together across auth-proxy replicas. The optional login.SessionManager API returns provider and creation/expiry metadata with management IDs that cannot authenticate as cookies; JWT mode remains stateless.

The store maintains expiring per-user indexes and checks a persistent generation on each request. Lua scripts coordinate session creation with bulk revocation and preserve the original claim JSON. Legacy sessions migrate on use, while revoke-all also invalidates sessions that have not yet migrated. All serving replicas must upgrade together; rollback or stale-state recovery requires a fresh prefix and new sign-ins.

Validation: Go 1.25.14; affected login/authproxy/auth packages pass race tests against real Valkey, including concurrent revocation, legacy sessions, IDNA normalization, expiry, cross-user isolation and claim preservation. go vet ./... and module tidy checks pass. Auth-go integration tests verify signed OAuth sessions fail both public checkz and internal verification after revocation; its private admin API and browser workflow are tested with PostgreSQL and Valkey. The full Aether server short/race suite also passed. CI exposed GO-2026-5970 in the existing x/text dependency; the follow-up dependency update uses x/text v0.39.0 (and x/sync v0.21.0), and local govulncheck now reports no reachable vulnerabilities.

This supports the accompanying Scitrera Auth session-management work. No release version or tag is changed.

@dbotwinick
dbotwinick marked this pull request as ready for review September 11, 2026 23:29
@dbotwinick
dbotwinick merged commit d805055 into main Sep 11, 2026
20 of 21 checks passed
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