feat(auth): SSO-only ("enforced") login UI + break-glass fallback (ADR-0024 D5.2)#2012
Merged
Conversation
…R-0024 D5.2) Consumes the framework's new `/auth/config` `features.ssoEnforced` signal (objectstack-ai/objectstack#2349). When the server locks the team login to the IdP, LoginForm now: - hides the local email/password form + the sign-up link, - shows the federated button(s) only (SocialSignInButtons — e.g. "Continue with ObjectStack" for cloud-as-IdP, or an external OIDC/SAML provider), - offers an understated **break-glass** "Use a password instead" link that reveals the password form for the env owner / local admin (e.g. during an IdP outage), with a "Back to single sign-on" toggle. `emailPassword.enabled === false` is honored as a belt-and-suspenders enforced signal for older servers. Default-off: a failed `/auth/config` fetch never hides the form. New i18n labels (usePasswordText / backToSsoText / ssoOnlyDescription). 4 new LoginForm tests; full auth suite green (115). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
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.
Consumes the framework's new
/auth/configfeatures.ssoEnforcedsignal (framework#2349). When the server locks the team login to the IdP, LoginForm now:SocialSignInButtons— e.g. "Continue with ObjectStack" for cloud-as-IdP, or an external OIDC/SAML provider),emailPassword.enabled === falseis honored as a belt-and-suspenders enforced signal for older servers. Default-off: a failed/auth/configfetch never hides the form (an enhancement, not a gate).Open-core
The mechanism is framework-driven (the cloud sets
ssoOnlyModeper-env / self-host viaOS_AUTH_SSO_ONLY). This PR is the console UI that reacts to the signal.Verify
tscclean;@object-ui/authsuite green — 115 tests incl. 4 new enforced-mode cases (hide form/signup, break-glass reveals form + "back to SSO", non-enforced unchanged,emailPassword.enabled===falsehonored). Browser E2E lands with the cloud wiring.🤖 Generated with Claude Code