Repository navigation
ctx v4.12.0
ctx v4.12.0 — OAuth-Stack komplett: Principal-Identität, OAuth-2.1-Server, externes Login, Web-Sessions
25 Wellen des OAuth-Gold-Plans (plan-oauth-2026-07-09), Migrationen 094–102:
Fundament (01): Principal-Entität mit Green-Field-Backfill (1 Key = 1
Principal), ctx_auth + ctx_auth_by_id als die EINE Scope-Materialisierung
(Key-/Tenant-/Principal-Gates fusioniert), additive Audit-FKs, atomar
principal-mintende Key-Pfade.
OAuth-2.1-Server (02/03): persistenter Code-Store (code_hash, atomarer
Take), Advisory-Kern-Fix GHSA-p3jf-x27v-4jg6 (client_id mandatory +
redirect-Allowlist + Code-Client-Bindung), opake ctxt_/ctxr_-Tokens mit
resolveCredential als EINEM Gate-Ort, Refresh-Rotation mit Reuse-Detection
(Replay → Familien-Revoke ohne Wire-Oracle, 90d-Cap), PKCE-S256-Pflicht,
RFC-8707-resource/-Audience-Check, RFC-8414/9728-Discovery, per-Client-
redirect-Allowlist exklusiv + confidential-Secret constant-time, RFC-7591-
DCR mit Guardrails (Modus-Flag fail-closed off, Cap + per-IP-Limiter).
Externes Login (04): Provider-Allowlist (INV-C, Secrets sealbox-versiegelt),
OIDC-Lib + GitHub-Härtetest, DB-gestützte Single-Use-States (Doppel-UUID),
Flow-Handler mit Mix-up-Defense und ssrfguard-Dialer.
Web-Sessions (05): context_web_sessions-Overlay über dem EINEN Token-Store
(E2: Login-Token ist zugleich MCP-Bearer), Cookie-Auflösung an derselben
AuthResult-Materialisierung (Header schlägt Cookie, kein Shape-Sniffing),
Login/Logout/Refresh mit CSRF-Synchronizer (Cookie-Mutationen 403 ohne
X-CSRF-Token; Header-Pfade unberührt), SPA von sessionStorage-Bearer auf
httpOnly-Cookies (Key berührt keinen Client-Storage mehr), SSO-Onboarding
admin-invite (key-loser Principal = 403, SSO ist Identität, nie
Autorisierung), Multi-Tenant-Key-Selektor mint-fresh (nie in-place).
BREAKING (Ops): /authorize verlangt jetzt client_id — Connectoren ohne
konfigurierte client_id bekommen 400. Vor dem Deploy client_id in den
Connector-Konfigurationen sicherstellen (Registrierung via ctx mcp add).
Alle Wellen negativ-geprobt (Rot-Proben dokumentiert), 13 Integrations-
Suiten + test.sh 18/18 + vitest 86/797 + golangci-lint 0 issues.
Offen: Advisory-Publish (P1, folgt mit patched_versions=4.12.0) und
/revoke (X1, bewusst zurückgestellt).
Co-Authored-By: Claude Fable 5 noreply@anthropic.com
Installation
With Go:
go install github.com/GottZ/ctx/cmd/ctx@v4.12.0Binary download:
Download the binary for your platform, make it executable, move to PATH:
chmod +x ctx-*
sudo mv ctx-* /usr/local/bin/ctx