Commit Graph

17 Commits

Author SHA1 Message Date
giles
daea61a481 Replace widget registry with fragment fetches (Phase 5)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 42s
Account nav and page panels now fetched from events/cart fragments
instead of using shared widget registry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:58:10 +00:00
giles
072de719df Add auth-menu fragment handler to account app
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 42s
Phase 2 of fragment composition: account exposes auth-menu fragment
(sign-in button or user email for desktop + mobile) via
/internal/fragments/ endpoint. Updates shared submodule.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 09:11:52 +00:00
giles
77576d2ad4 Add fragment blueprint + sync shared: micro-frontend infrastructure
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 45s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:27:54 +00:00
giles
3e0669a335 Exempt oauth/token from CSRF — server-to-server API endpoint
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 48s
External clients like artdag POST to this endpoint from their
backend, so there's no browser session with a CSRF token.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 01:06:19 +00:00
giles
38072c2133 Emit rose:DeviceAuth activities on login and logout
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 54s
Signals external services (artdag) about device auth state changes
via the AP internal bus, replacing shared-Redis coupling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 00:22:02 +00:00
giles
f5153b711c Add artdag to OAuth clients + POST /auth/oauth/token endpoint
Standard HTTP token exchange for clients that don't share the coop DB.
Returns user_id, username, display_name, grant_token in exchange for
a valid authorization code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 23:26:10 +00:00
giles
69dab023de Account authorize passes account_did, login/logout signal via Redis
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 48s
- OAuth authorize: pass account_did (g.device_id) in both success
  and error redirects so client apps can track the device
- Magic link login: set did_auth:{device_id} in Redis so client
  apps detect login even when their prompt=none cache says "no"
- Logout + SSO-logout: clear did_auth:{device_id} from Redis

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:57:53 +00:00
giles
186c0d581b Add prompt=none to OAuth authorize, remove propagation chain
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 53s
Account's authorize endpoint now supports prompt=none: returns
error=login_required redirect when user isn't logged in instead of
bouncing to interactive login. Removed /propagate endpoint since
client apps now detect auth state via prompt=none handshake.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:41:01 +00:00
giles
17581a7b75 Re-add propagation chain for initial login
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 49s
Device cookies handle subsequent auth changes (logout/re-login),
but the initial login needs the chain to create grants on each app
and link them to device cookies. Dead apps skipped via health check.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:28:03 +00:00
giles
b847e10949 Device cookie auth + check-device endpoint, remove propagation chain
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 43s
OAuth authorize stores device_id on grants. New /internal/check-device
endpoint lets client apps detect login/logout by checking device's
grant state + user.last_login_at. Propagation chain removed — each
app detects auth changes independently via its device cookie.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:57:44 +00:00
giles
1cd11b9a2d Skip dead apps in login propagation chain
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 46s
Health-check each app via internal URL before redirecting.
Dead apps are silently skipped so the chain doesn't break.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:41:15 +00:00
giles
6275049025 Propagate login to all client apps via OAuth chain
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 53s
After magic link login, account bounces through each client app's
/auth/login to establish local sessions via OAuth. Each app does its
OAuth flow (instant since account is logged in) then redirects back
to /auth/propagate for the next app in the chain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:40:08 +00:00
giles
e0a2a47ba2 Grant-based session revocation, remove iframe logout
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 43s
Account creates OAuthGrant per authorization, revokes on logout.
Client apps verify grants via /auth/internal/verify-grant endpoint.
Removes iframe-based logout page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:30:53 +00:00
giles
4e8e6bab61 Iframe-based SSO logout (tolerates dead apps)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 48s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:21:54 +00:00
giles
80c4400ae2 Remove sso_hint, add sso-clear logout chain through all apps
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:18:04 +00:00
giles
2178607484 Move auth server from federation to account
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 42s
Account is now the OAuth authorization server with magic link login,
OAuth2 authorize endpoint, SSO logout, and session management.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:00:20 +00:00
giles
b3ce28b1d3 Initial account microservice
Account dashboard, newsletters, widget pages (tickets, bookings).
OAuth SSO client via shared blueprint — per-app first-party cookies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 09:59:24 +00:00