You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace the bespoke Go authentication runtime with Keycloak in one hard cutover. Keycloak owns identity, credentials, sessions, MFA/passkeys, recovery, authorization policy, and protocol behavior.
Xore/auth-backend retains only a supported custom Keycloak theme (themes/apiary), based on the vendored xore/theme system, reproducing the current auth-backend look and feel. Updated 2026-08-09: Keycloak deployment/realm configuration and validation ended up owned by Xore/APIARY instead, not here -- see "Cross-repository dependency" below for the reconciled split.
Fixed decisions
This is a greenfield identity launch. All administrators and users are created fresh in Keycloak.
Do not import, preserve, synchronize, export, or restore legacy users, passwords, MFA seeds, recovery codes, passkeys, roles, or sessions.
Do not keep the Go service as a forward-auth adapter or fallback.
Do not create a parallel custom CSS layer. Shared tokens, components, and assets live in xore/theme.
Cutover is one-way. Recovery procedures restore the new Keycloak system, not the old authentication runtime.
The new system must work in every supported functional path before production cutover.
The current visual experience must remain recognizable and materially equivalent across all enabled Keycloak flows.
Screenshot and interaction evidence confirms all enabled Keycloak pages match the current auth-backend look and feel using xore/theme.
APIARY dashboard and every protected hostname pass functional and authorization validation.
Bespoke Go auth runtime, Redis coupling, old routes, old secrets, and legacy identity paths are absent from the active auth-backend/main tree after cutover.
Outcome
Replace the bespoke Go authentication runtime with Keycloak in one hard cutover. Keycloak owns identity, credentials, sessions, MFA/passkeys, recovery, authorization policy, and protocol behavior.
Xore/auth-backendretains only a supported custom Keycloak theme (themes/apiary), based on the vendoredxore/themesystem, reproducing the current auth-backend look and feel. Updated 2026-08-09: Keycloak deployment/realm configuration and validation ended up owned byXore/APIARYinstead, not here -- see "Cross-repository dependency" below for the reconciled split.Fixed decisions
xore/theme.Workstreams
xore/theme-based custom Keycloak theme with visual parity (still open, in progress)Cross-repository dependency
Xore/auth-backendto retain "declarative Keycloak deployment/realm configuration, validation tests, and a supported custom Keycloak theme." That's not what happened.Xore/APIARYowns Keycloak deployment end to end -- the realm template, the Dockge stack compose file, VPS Traefik/gateway routing, install/deploy automation, and the operator runbook, all live there (docs/KEYCLOAK-OPERATIONS.mdis the canonical reference).Xore/auth-backendowns exactly one thing going forward: the presentation-onlythemes/apiaryKeycloak theme, checked out read-only into the APIARY deployment at build/install time (.github/workflows/deploy.yml's dedicated checkout step, andscripts/install-homeserver.sh's equivalent for a from-scratch install). Workstreams Phase 1: build the production Keycloak and PostgreSQL deployment baseline #89/Phase 2: manage the Keycloak realm, clients, roles, groups, and authentication policies as code #90/Phase 4: configure Keycloak security hardening, audit, observability, backup, and upgrade operations #93/Phase 5 TESTING: implement automated Keycloak realm, theme, user-provisioning, and security validation #94 above should be read with that narrower scope in mind, or migrated to APIARY's own workstream tracking if their remaining work is APIARY-side.Verified completed work (audited 2026-08-09)
main.keycloak.v2and consumes a pinned vendoredxore/themestylesheet.Epic completion gates
xore/theme.auth-backend/maintree after cutover.Milestone: https://github.com/Xore/auth-backend/milestone/1