docs(auth): design product-branded login themes + native multi-realm direction - #20
Merged
Merged
Conversation
…direction Adds two designed-not-implemented sections to the central-auth design: - §12 Product-branded login pages & themes: server-resolved host-keyed branding, per-category auth hosts, runtime OCI theme bundles (pulled and extracted, never run) with an auth-kernel/CSP contract, theme library with route -> template -> realm -> built-in resolution, and management-API application by product stacks. - §13 Native multi-realm direction: Watchtower grows realms itself; external IdPs become per-realm federation for customers who already run one, not the exit ramp. Records the seams to keep open now (realm-scopable uniqueness, extensible token issuer/claims, per-population settings hung on realm). Rewrites the §2.7 "delegate to Keycloak" exclusion to match the inverted framing and threads pointers through the status line and §2.8 staging.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Design-only change to
docs/central-auth/design.md— no code. Captures the design conversation from 2026-08-10 on product-specific IdP login pages before it evaporates.Hostonly — preserves the existing invariant that nothing derived fromredirect_uriis ever rendered, and avoids the enumeration leak a redirect-uri-keyed lookup would create.StackTemplate→ per-category auth hosts → runtime theme bundles./theme/index.html+theme.jsonwithkernelApiVersion, digest-pinned, hostile-archive extraction) — pulled and extracted by Watchtower, never run. A running theme container is explicitly rejected (login critical path, loss of kernel/CSP injection point).LoginThemelibrary separate from assignment; resolution chain route → template → realm default → built-in, always failing closed to the built-in page.Realm, realm-scoped uniqueness, SSO scope = auth host) and the three seams to keep open now without building realms yet.Why
The product-central-management direction needs products to present their own login experience without users realizing they hit a shared gate. This PR pins down how to do that without weakening the login page's security invariants, and records the strategic inversion on Keycloak before future auth work bakes in single-realm assumptions.
Reviewer notes