Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.
Your team can use Lovable from Claude without a separate Lovable sign-in. An administrator enables this through your existing Okta single sign-on (SSO) provider. Lovable calls this enterprise-managed authentication.Claude calls the Lovable MCP server on behalf of each member, with their existing Lovable permissions and workspace access controls.
Enterprise-managed authentication is available on Lovable Business and Enterprise plans. Claude requires a Team or Enterprise plan. “Enterprise-managed” means that your IT administrators manage the connection centrally through SSO, instead of each member connecting on their own. The feature is not limited to the Lovable Enterprise plan.This setting controls access to Lovable itself. For SSO for the users of an app you build, see Add SAML single sign-on to your app.
Use enterprise-managed authentication when your team already uses SSO and you want administrators to control access to Lovable from Claude. Members can work on apps without a separate connector sign-in flow.To connect your own account, or connect from an app other than Claude, follow the MCP connection instructions.
IT and workspace administrators configure access for members who already use Claude through Okta. You can start with a pilot group before expanding access. Members can then use the Lovable MCP tools to work on projects they have permission to access.
Admin access to configure Claude’s organization connectors and Okta applications.
A Lovable SSO app in Okta that supports Cross App Access (XAA). XAA lets Claude ask Okta for proof of a member’s identity to access Lovable. Your Okta administrator enables it for Claude and Lovable. See Okta’s resource app requirements.
If your SSO provider belongs to an organization, an org admin enables enterprise-managed authentication from the organization’s Identity page.Choose a test member who:
Signs in to Claude through Okta.
Has a Lovable account linked to this SSO provider.
Belongs to the workspace being tested.
Has no existing personal Lovable connector connection in Claude.
Enterprise-managed authentication does not create Lovable accounts, link existing accounts by email, or add workspace members. Members must first sign in to Lovable through SSO or link SSO to their existing account.
Working SSO does not establish XAA support. If your installed Okta app has no XAA controls, contact Lovable support to confirm an upgrade path. Do not delete or replace a working SSO app to expose these controls. That can disrupt sign-ins and provisioning.
Claude is the only supported application for enterprise-managed authentication. Claude supports this flow with Okta only. See Configure Claude with Okta.For a direct Claude Code connection, use the MCP setup.
Building through the MCP server uses Lovable credits, the same as building in Lovable. See Does using the MCP server consume credits?.Claude and Okta manage their own subscriptions and usage charges separately from your Lovable subscription.
Enterprise-managed authentication connects three systems:
System
Responsibility
Okta
Authenticates members and checks whether Claude can request access on their behalf.
Claude
Requests proof of the member’s identity and uses it to connect to Lovable.
Lovable
Verifies that proof, identifies the linked Lovable account, and checks permissions when tools access resources.
After an administrator completes setup:
A member signs in to Claude through Okta.
Claude requests an identity assertion from Okta, subject to Okta’s access policies. This signed proof of identity is also called an ID-JAG.
Lovable checks the identity assertion against the configured SSO provider and the member’s linked account. It then issues a short-lived access token.
Claude uses that token to call Lovable tools with the member’s permissions. The member does not need to approve a separate Lovable connection.
Lovable’s access tokens expire within 15 minutes. Claude requests new tokens automatically while Okta authorizes access. Members do not need a separate Lovable sign-in for each token. See SSO session duration for how this differs from a browser sign-in session.
Enable enterprise-managed authentication in Lovable
Configure access on the SSO provider your members already use to sign in to Lovable.
1
Open enterprise-managed authentication setup
Open Identity (Workspace settings → Access → Identity). In Enterprise-managed authentication, click Set up.
2
Choose your identity provider
On Choose your identity provider, select the existing SSO provider your members use for Lovable, then click Continue.If you see Connect SSO first, configure Okta as your SSO provider before returning to enable access.
3
Review the provider and issuer
On Configure EMA, confirm that Provider and Protocol identify the SSO provider your members use.
OIDC
SAML
Review the read-only Assertion issuer value. Lovable uses the issuer already configured for your OIDC provider. You do not enter a separate value.
Enter the Assertion issuer supplied by Okta for identity assertions, for example https://example.okta.com.This URL can differ from the SAML entity ID. Use the issuer for the same identity provider and SAML application you configured in Lovable, not the SAML metadata URL or sign-in URL.
Lovable uses the assertion issuer to find Okta’s public signing keys and verify identity assertions.Under Values for your identity provider, copy Audience and MCP resource for the application and identity provider configuration.
4
Check advanced settings if needed
Leave Advanced settings → IdP tenant empty for the Okta setup in this guide.
5
Review team access
Click Review setup. On Review team access, check Provider, Protocol, Supported app, and Assertion issuer. Click Back if you need to change anything.
6
Enable team access
Click Enable team access. Lovable checks the issuer and saves the settings. The screen shows Lovable configuration saved. Click Close.Setup in Okta and Claude may still be incomplete. Continue with Configure your application and identity provider before testing access.
To update an enabled configuration later, reopen Enterprise-managed authentication, click Manage, select the provider, and click Continue. Edit the settings on Configure EMA and click Save changes.You can also use the provider’s Enterprise-managed authentication tab. When you enable access from that tab, the completion button is Back to settings.
Okta resource app Issuer URL, shown as Audience in Lovable
https://lovable.dev/oauth
Okta resource connection Resource identifier, shown as MCP resource in Lovable
https://mcp.lovable.dev
Okta resource connection Claude client ID registered in Lovable
https://claude.ai/oauth/mcp-oauth-client-metadata
Okta resource app Audience/tenant ID
Leave empty for this setup
Permissions needed to list workspaces and projects
workspaces:read and projects:read
The Issuer URL above identifies Lovable’s authorization server. Your Assertion issuer in Lovable identifies Okta. Okta’s separate Audience/tenant ID field is not where you paste Lovable’s Audience URL.Follow the Claude and Okta guides below. Okta calls the permissions you grant Scopes. Listing workspaces and projects requires the two read permissions above. Building and editing require additional permissions in both Okta and Claude.
Use the connection values above with the providers’ setup guides:
In Okta, enable Cross App Access for the existing Lovable SSO app and connect Claude’s agent to it. Follow Okta’s Cross App Access setup guide.
In Claude, open the Lovable connector’s Configuration tab and set up Managed authorization. Choose who gets access, select permissions, and use Run test to check the connection. Follow Claude’s organization authorization guide.
Keep Claude’s Connect step open while following the identity provider setup guide it provides. Use that guide for agent registration and the connection details exchanged between Claude and Okta.Lovable accepts Claude’s published client identity. You do not create a workspace API key or register a new Lovable OAuth client.
Use a test member without an existing personal Lovable connection in Claude. Confirm that their Claude role receives Managed authorization. Sign in to Claude through Okta and ask it to use Lovable:
Use Lovable to list the projects in our [workspace name] workspace.
Claude should return the expected projects without asking the member to sign in to Lovable. If it asks for individual sign-in, see Troubleshooting before accepting that prompt.This prompt checks a real tool call. A successful call through a previously authorized personal connection does not verify managed authentication.Lovable’s completion screen reports Enabled in Lovable · Access has not been tested because saving settings does not test access. It does not update automatically after your Claude test.
Review these access boundaries before enabling managed authentication for your team.
Existing permissions apply. Managed authentication does not grant additional Lovable roles, project access, or workspace membership.
Access is not restricted to the provider’s workspace. Claude can act across workspaces the member can access, subject to its granted permissions and each workspace’s policies.
MCP access is checked per workspace.Third-party MCP clients must be enabled in each workspace a member wants to use. Access can work in one workspace and be blocked in another.
The Lovable setting applies to the SSO provider. Enable access on the provider in Lovable. Choose which members can connect and what they can do in Claude and Okta.
One active configuration per assertion issuer and IdP tenant. If another SSO provider already uses that combination, Lovable rejects the new configuration. If several workspaces share it, ask the administrator of the existing configuration to manage the shared provider. See Resolve an active connection conflict.
Lovable checks the sign-in time in the identity assertion when the identity provider supplies it. Okta’s identity assertions in this setup do not include that time, so Lovable uses their issue time instead.
With this Okta setup, each new identity assertion starts a new SSO session window. Claude can remain connected beyond the workspace’s Session duration without the member signing in again. This continues while Okta authorizes access and issues new identity assertions. The setting does not impose a maximum connection duration for this flow.Control continued access through Okta’s authentication and access policies, Claude’s managed authorization settings, and Lovable’s permissions. Browser SSO session rules remain unchanged.
In Enterprise-managed authentication, click Manage.
Select the provider and click Continue.
On Configure EMA, click Disable.
In Disable enterprise-managed authentication?, click Disable to confirm.
Your SSO provider stays connected. Lovable retains the settings so you can enable managed authentication again later.Lovable also disables managed authentication when you delete its SSO provider. For a workspace-owned provider, this also happens when you delete the workspace or change to a plan without SSO. Restoring the workspace or its SSO eligibility does not re-enable managed authentication. An administrator must enable it again.
Disabling managed authentication stops Lovable from issuing new access tokens through that provider. Existing access may continue for up to 15 minutes while issued access tokens expire. It does not revoke connections that members authorized themselves.
Does an XAA-enabled Okta catalog app complete setup for me?
No. It supplies Lovable’s resource configuration and the XAA controls. You still enable XAA, connect Claude’s agent to Lovable, configure managed authorization in Claude, and enable access in Lovable.
Does enabling this give everyone the administrator's access?
No. Claude acts as the individual member. That member’s Lovable permissions, the permissions granted to Claude, and workspace policies determine what it can do.
Do members need to provide a Lovable API key or client secret?
No. Members do not share API keys or client secrets for this flow. An administrator configures access in Lovable, Claude, and Okta.
I cannot find the enterprise-managed authentication settings
Check that your workspace is on Business or Enterprise and that you have permission to manage the provider.
assertion issuer must match the enabled SSO provider
The OIDC assertion issuer must match the enabled SSO provider. Reload the configuration and confirm the provider is still active. This value is read-only in Lovable’s setup.
issuer has no usable public signing keys
Lovable needs to discover the issuer’s public signing keys. Ask your Okta administrator to verify that the issuer and its discovery configuration are reachable from the internet. For SAML, use the Okta assertion issuer associated with your SAML app, not the SAML metadata or sign-in URL.
The connection is enabled, but a member cannot use Lovable tools
Check that the member:
Has a Lovable account linked to this SSO provider.
Belongs to the intended workspace.
Can use the Lovable connector under Claude’s and Okta’s access policies.
A matching email address is not enough.Also check that Third-party MCP clients is enabled in the target workspace.
Claude still asks members to sign in individually
Check the member’s assigned role and run Claude’s connection test. When both Browser sign-in and Managed authorization are enabled, Claude can fall back to individual sign-in if managed authorization fails. See Claude’s authorization guide.
The identity assertion is invalid or cannot be used
Check that the Okta connection points to the Lovable SSO app linked to the member’s account. Confirm that its resource and client ID match the Lovable connection values.Ask your Okta administrator to review any mismatches using Okta’s connection guide. Also check the member’s linked account and Assertion issuer in Lovable.
The connection test returns invalid_scope
Compare the permissions requested by Claude with Scopes on the Okta connection. The Lovable app in Okta must support every permission Claude requests. Read-only permissions do not allow building or editing.
this issuer and IdP tenant already have an active connection
Another SSO provider already uses this combination. Manage the existing shared configuration with its administrator instead of creating another. Do not enter a made-up IdP tenant to bypass the conflict: it must match the identity assertion.
The configuration needs review or an update fails
If Lovable shows Access needs your review, the provider or its administering account changed. Review the settings and enable access again when the issue is resolved.In the Could not update enterprise-managed authentication error message, click Reload configuration to check the saved state before retrying. If you have unsaved edits, confirm Discard and reload to replace them with the latest saved settings.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Lovable Documentation","description":"Lovable Documentation — Build full-stack websites with AI using natural language. Explore Lovable features, integrations, tutorials, and best practices.","colors":{"primary":"#0095FF","light":"#1AA3FF","dark":"#0084E6"},"logo":{"light":"https://mintcdn.com/lovable-f9060f1e/lZT1ihBcprll2Agr/assets/logo/logoblack.svg?fit=max\u0026auto=format\u0026n=lZT1ihBcprll2Agr\u0026q=85\u0026s=8d9eafaf19f94e27f0d13ac160d54f54","dark":"https://mintcdn.com/lovable-f9060f1e/lZT1ihBcprll2Agr/assets/logo/logowhite.svg?fit=max\u0026auto=format\u0026n=lZT1ihBcprll2Agr\u0026q=85\u0026s=fed1a7a9be6502f49d06a55cec77288c","href":"https://lovable.dev/"},"favicon":"https://mintcdn.com/lovable-f9060f1e/b_1_IEcMDh-0NUDG/assets/logo/favicon.svg?fit=max\u0026auto=format\u0026n=b_1_IEcMDh-0NUDG\u0026q=85\u0026s=a439abba3defb47beabd3f6e7d318cb5","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl"],"prefill":true,"autogenerate":true},"url":"full"},"navbar":{"links":[{"icon":"message","href":"https://lovable.dev/support","label":"Support"},{"icon":"blog","href":"https://lovable.dev/blog","label":"Blog"}],"primary":{"type":"button","label":"Start building for free","href":"https://lovable.dev/signup?utm_source=lovable_docs\u0026utm_medium=navigation"}},"footer":{"socials":{"x":"https://x.com/Lovable","github":"https://github.com/lovablelabs","linkedin":"https://linkedin.com/company/lovable-dev","youtube":"https://youtube.com/@lovable","discord":"https://discord.gg/lovable-dev","reddit":"https://www.reddit.com/r/lovable"}},"seo":{"metatags":{"og:image":"/assets/logo/opengraph-image.png","canonical":"https://docs.lovable.dev"},"indexing":"all"},"contextual":{"options":["copy","assistant","download-pdf","download-spec"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lovable-f9060f1e","hasAudioNarration":false,"actualSubdomain":"lovable-f9060f1e","customDomains":["docs.lovable.dev"],"gitSource":{"type":"github","owner":"lovablelabs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae8b2a4883d97e41aaf7a72","collectionId":"358449c3-e0ef-42ac-9d54-b726dbb7961a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8b2a4883d97e41aaf7a72"},"feedback":{"thumbs":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae8b2a4883d97e41aaf7a72","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Documentation","count":273},{"language":"default","tag":"Connect","count":125},{"language":"default","tag":"Connector catalog","count":113},{"language":"default","tag":"Build","count":69},{"language":"default","tag":"API Reference","count":33},{"language":"default","tag":"Workspace \u0026 account","count":29},{"language":"default","tag":"Lovable API","count":27},{"language":"default","tag":"Endpoints","count":25},{"language":"default","tag":"Data \u0026 databases","count":21},{"language":"default","tag":"Backend","count":19}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"type":"link","email":"support@lovable.dev","url":"https://lovable.dev/support"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instinct-self-updating-docs","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"assets/css/styles.css","content":".supabase{color:#59cf8c}"}],"page":{"pagePath":"features/enterprise-managed-auth","slug":"/features/enterprise-managed-auth","pageMetadata":{"title":"Set up enterprise-managed authentication","sidebarTitle":"Enterprise-managed authentication","description":"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.","keywords":["enterprise-managed authorization","ID-JAG","Cross App Access","managed authorization"],"href":"/features/enterprise-managed-auth"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Note,Step,Steps,Tab,Table,Tabs,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Your team can use Lovable from Claude without a separate Lovable sign-in. An administrator enables this through your existing Okta single sign-on (SSO) provider. Lovable calls this `,_jsx(_components.strong,{children:`enterprise-managed authentication`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Claude calls the `,_jsx(_components.a,{href:`/integrations/lovable-mcp-server`,children:`Lovable MCP server`}),` on behalf of each member, with their existing Lovable permissions and workspace access controls.`]}),`\n`,_jsxs(Note,{children:[_jsxs(_components.p,{children:[`Enterprise-managed authentication is available on Lovable `,_jsx(_components.strong,{children:`Business and Enterprise`}),` plans. Claude requires a `,_jsx(_components.strong,{children:`Team or Enterprise`}),` plan. “Enterprise-managed” means that your IT administrators manage the connection centrally through SSO, instead of each member connecting on their own. The feature is not limited to the Lovable Enterprise plan.`]}),_jsxs(_components.p,{children:[`This setting controls access to Lovable itself. For SSO for the users of an app you build, see `,_jsx(_components.a,{href:`/features/saml-sso`,children:`Add SAML single sign-on to your app`}),`.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`why-use-enterprise-managed-authentication`,children:`Why use enterprise-managed authentication`}),`\n`,_jsx(_components.p,{children:`Use enterprise-managed authentication when your team already uses SSO and you want administrators to control access to Lovable from Claude. Members can work on apps without a separate connector sign-in flow.`}),`\n`,_jsxs(_components.p,{children:[`To connect your own account, or connect from an app other than Claude, follow the `,_jsx(_components.a,{href:`/integrations/lovable-mcp-server#how-to-connect`,children:`MCP connection instructions`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`who-sets-it-up`,children:`Who sets it up`}),`\n`,_jsxs(_components.p,{children:[`IT and workspace administrators configure access for members who already use Claude through Okta. You can start with a pilot group before expanding access. Members can then use the `,_jsx(_components.a,{href:`/integrations/lovable-mcp-server#available-tools`,children:`Lovable MCP tools`}),` to work on projects they have permission to access.`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before you start, make sure you have:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A Lovable `,_jsx(_components.strong,{children:`Business or Enterprise`}),` workspace.`]}),`\n`,_jsxs(_components.li,{children:[`A workspace `,_jsx(_components.strong,{children:`owner or admin`}),` who can manage its SSO provider.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Okta`}),` configured as an active OIDC or SAML SSO provider in Lovable. See `,_jsx(_components.a,{href:`/features/business/sso#configure-okta-as-your-sso-provider`,children:`Configure Okta as your SSO provider`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/features/privacy-and-security-settings#third-party-mcp-clients`,children:`Third-party MCP client access`}),` enabled for the workspace.`]}),`\n`,_jsx(_components.li,{children:`Admin access to configure Claude’s organization connectors and Okta applications.`}),`\n`,_jsxs(_components.li,{children:[`A Lovable SSO app in Okta that supports `,_jsx(_components.strong,{children:`Cross App Access (XAA)`}),`. XAA lets Claude ask Okta for proof of a member’s identity to access Lovable. Your Okta administrator enables it for Claude and Lovable. See `,_jsx(_components.a,{href:`https://developer.okta.com/docs/guides/xaa-agent-to-app/main/#supported-resource-apps`,children:`Okta’s resource app requirements`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If your SSO provider belongs to an `,_jsx(_components.a,{href:`/features/organizations`,children:`organization`}),`, an org admin enables enterprise-managed authentication from the organization’s `,_jsx(_components.a,{href:`/features/organization-identity#set-up-sso-for-the-organization`,children:`Identity page`}),`.`]}),`\n`,_jsx(_components.p,{children:`Choose a test member who:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Signs in to Claude through Okta.`}),`\n`,_jsx(_components.li,{children:`Has a Lovable account linked to this SSO provider.`}),`\n`,_jsx(_components.li,{children:`Belongs to the workspace being tested.`}),`\n`,_jsx(_components.li,{children:`Has no existing personal Lovable connector connection in Claude.`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Enterprise-managed authentication does not create Lovable accounts, link existing accounts by email, or add workspace members. Members must first sign in to Lovable through SSO or `,_jsx(_components.a,{href:`/features/business/sso#faq`,children:`link SSO to their existing account`}),`.`]})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Working SSO does not establish XAA support. If your installed Okta app has no XAA controls, contact Lovable support to confirm an upgrade path. Do not delete or replace a working SSO app to expose these controls. That can disrupt sign-ins and provisioning.`})}),`\n`,_jsx(Heading,{level:`3`,id:`supported-applications`,children:`Supported applications`}),`\n`,_jsxs(_components.p,{children:[`Claude is the only supported application for enterprise-managed authentication. Claude supports this flow with `,_jsx(_components.strong,{children:`Okta only`}),`. See `,_jsx(_components.a,{href:`#claude-with-okta`,children:`Configure Claude with Okta`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For a direct Claude Code connection, use the `,_jsx(_components.a,{href:`/integrations/lovable-mcp-server#how-to-connect`,children:`MCP setup`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`billing-and-usage`,children:`Billing and usage`}),`\n`,_jsxs(_components.p,{children:[`Building through the MCP server uses `,_jsx(_components.strong,{children:`Lovable credits`}),`, the same as building in Lovable. See `,_jsx(_components.a,{href:`/integrations/lovable-mcp-server#faq`,children:`Does using the MCP server consume credits?`}),`.`]}),`\n`,_jsx(_components.p,{children:`Claude and Okta manage their own subscriptions and usage charges separately from your Lovable subscription.`}),`\n`,_jsx(Heading,{level:`2`,id:`how-authentication-works`,children:`How authentication works`}),`\n`,_jsx(_components.p,{children:`Enterprise-managed authentication connects three systems:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`System`}),_jsx(_components.th,{children:`Responsibility`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Okta`}),_jsx(_components.td,{children:`Authenticates members and checks whether Claude can request access on their behalf.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Claude`}),_jsx(_components.td,{children:`Requests proof of the member’s identity and uses it to connect to Lovable.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Lovable`}),_jsx(_components.td,{children:`Verifies that proof, identifies the linked Lovable account, and checks permissions when tools access resources.`})]})]})]}),`\n`,_jsx(_components.p,{children:`After an administrator completes setup:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`A member signs in to Claude through Okta.`}),`\n`,_jsxs(_components.li,{children:[`Claude requests an `,_jsx(_components.strong,{children:`identity assertion`}),` from Okta, subject to Okta’s access policies. This signed proof of identity is also called an `,_jsx(_components.strong,{children:`ID-JAG`}),`.`]}),`\n`,_jsx(_components.li,{children:`Lovable checks the identity assertion against the configured SSO provider and the member’s linked account. It then issues a short-lived access token.`}),`\n`,_jsx(_components.li,{children:`Claude uses that token to call Lovable tools with the member’s permissions. The member does not need to approve a separate Lovable connection.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Lovable’s access tokens expire within `,_jsx(_components.strong,{children:`15 minutes`}),`. Claude requests new tokens automatically while Okta authorizes access. Members do not need a separate Lovable sign-in for each token. See `,_jsx(_components.a,{href:`#sso-session-duration`,children:`SSO session duration`}),` for how this differs from a browser sign-in session.`]}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-enterprise-managed-authentication`,children:`Set up enterprise-managed authentication`}),`\n`,_jsx(_components.p,{children:`Complete the configuration in all three systems: Lovable, Okta, and Claude. Saving the Lovable settings completes only the Lovable part.`}),`\n`,_jsx(Heading,{level:`3`,id:`enable-enterprise-managed-authentication-in-lovable`,children:`Enable enterprise-managed authentication in Lovable`}),`\n`,_jsx(_components.p,{children:`Configure access on the SSO provider your members already use to sign in to Lovable.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open enterprise-managed authentication setup`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.a,{href:`https://lovable.dev/settings/identity`,children:`Identity`}),` (`,_jsx(_components.strong,{children:`Workspace settings → Access → Identity`}),`). In `,_jsx(_components.strong,{children:`Enterprise-managed authentication`}),`, click `,_jsx(_components.strong,{children:`Set up`}),`.`]})}),_jsxs(Step,{title:`Choose your identity provider`,children:[_jsxs(_components.p,{children:[`On `,_jsx(_components.strong,{children:`Choose your identity provider`}),`, select the existing SSO provider your members use for Lovable, then click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),_jsxs(_components.p,{children:[`If you see `,_jsx(_components.strong,{children:`Connect SSO first`}),`, `,_jsx(_components.a,{href:`/features/business/sso#configure-okta-as-your-sso-provider`,children:`configure Okta as your SSO provider`}),` before returning to enable access.`]})]}),_jsxs(Step,{title:`Review the provider and issuer`,children:[_jsxs(_components.p,{children:[`On `,_jsx(_components.strong,{children:`Configure EMA`}),`, confirm that `,_jsx(_components.strong,{children:`Provider`}),` and `,_jsx(_components.strong,{children:`Protocol`}),` identify the SSO provider your members use.`]}),_jsxs(Tabs,{children:[_jsx(Tab,{title:`OIDC`,id:`oidc`,children:_jsxs(_components.p,{children:[`Review the read-only `,_jsx(_components.strong,{children:`Assertion issuer`}),` value. Lovable uses the issuer already configured for your OIDC provider. You do not enter a separate value.`]})}),_jsxs(Tab,{title:`SAML`,id:`saml`,children:[_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.strong,{children:`Assertion issuer`}),` supplied by Okta for identity assertions, for example `,_jsx(_components.code,{children:`https://example.okta.com`}),`.`]}),_jsxs(_components.p,{children:[`This URL can differ from the `,_jsx(_components.strong,{children:`SAML entity ID`}),`. Use the issuer for the same identity provider and SAML application you configured in Lovable, not the SAML metadata URL or sign-in URL.`]})]})]}),_jsx(_components.p,{children:`Lovable uses the assertion issuer to find Okta’s public signing keys and verify identity assertions.`}),_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Values for your identity provider`}),`, copy `,_jsx(_components.strong,{children:`Audience`}),` and `,_jsx(_components.strong,{children:`MCP resource`}),` for the `,_jsx(_components.a,{href:`#configure-your-application-and-identity-provider`,children:`application and identity provider configuration`}),`.`]})]}),_jsx(Step,{title:`Check advanced settings if needed`,children:_jsxs(_components.p,{children:[`Leave `,_jsx(_components.strong,{children:`Advanced settings → IdP tenant`}),` empty for the Okta setup in this guide.`]})}),_jsx(Step,{title:`Review team access`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Review setup`}),`. On `,_jsx(_components.strong,{children:`Review team access`}),`, check `,_jsx(_components.strong,{children:`Provider`}),`, `,_jsx(_components.strong,{children:`Protocol`}),`, `,_jsx(_components.strong,{children:`Supported app`}),`, and `,_jsx(_components.strong,{children:`Assertion issuer`}),`. Click `,_jsx(_components.strong,{children:`Back`}),` if you need to change anything.`]})}),_jsxs(Step,{title:`Enable team access`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Enable team access`}),`. Lovable checks the issuer and saves the settings. The screen shows `,_jsx(_components.strong,{children:`Lovable configuration saved`}),`. Click `,_jsx(_components.strong,{children:`Close`}),`.`]}),_jsxs(_components.p,{children:[`Setup in Okta and Claude may still be incomplete. Continue with `,_jsx(_components.a,{href:`#configure-your-application-and-identity-provider`,children:`Configure your application and identity provider`}),` before testing access.`]})]})]}),`\n`,_jsxs(_components.p,{children:[`To update an enabled configuration later, reopen `,_jsx(_components.strong,{children:`Enterprise-managed authentication`}),`, click `,_jsx(_components.strong,{children:`Manage`}),`, select the provider, and click `,_jsx(_components.strong,{children:`Continue`}),`. Edit the settings on `,_jsx(_components.strong,{children:`Configure EMA`}),` and click `,_jsx(_components.strong,{children:`Save changes`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`You can also use the provider’s `,_jsx(_components.strong,{children:`Enterprise-managed authentication`}),` tab. When you enable access from that tab, the completion button is `,_jsx(_components.strong,{children:`Back to settings`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`configure-your-application-and-identity-provider`,children:`Configure your application and identity provider`}),`\n`,_jsx(_components.p,{children:`The Lovable connection uses these values:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Where to use it`}),_jsx(_components.th,{children:`Value`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Okta resource app `,_jsx(_components.strong,{children:`Issuer URL`}),`, shown as `,_jsx(_components.strong,{children:`Audience`}),` in Lovable`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://lovable.dev/oauth`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Okta resource connection `,_jsx(_components.strong,{children:`Resource identifier`}),`, shown as `,_jsx(_components.strong,{children:`MCP resource`}),` in Lovable`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://mcp.lovable.dev`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Okta resource connection `,_jsx(_components.strong,{children:`Claude client ID registered in Lovable`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://claude.ai/oauth/mcp-oauth-client-metadata`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Okta resource app `,_jsx(_components.strong,{children:`Audience/tenant ID`})]}),_jsx(_components.td,{children:`Leave empty for this setup`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Permissions needed to list workspaces and projects`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`workspaces:read`}),` and `,_jsx(_components.code,{children:`projects:read`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Issuer URL`}),` above identifies Lovable’s authorization server. Your `,_jsx(_components.strong,{children:`Assertion issuer`}),` in Lovable identifies Okta. Okta’s separate `,_jsx(_components.strong,{children:`Audience/tenant ID`}),` field is not where you paste Lovable’s `,_jsx(_components.strong,{children:`Audience`}),` URL.`]}),`\n`,_jsxs(_components.p,{children:[`Follow the Claude and Okta guides below. Okta calls the permissions you grant `,_jsx(_components.strong,{children:`Scopes`}),`. Listing workspaces and projects requires the two read permissions above. Building and editing require additional permissions in both Okta and Claude.`]}),`\n`,_jsx(Heading,{level:`4`,id:`claude-with-okta`,children:`Claude with Okta`}),`\n`,_jsx(_components.p,{children:`Use the connection values above with the providers’ setup guides:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`In Okta`}),`, enable Cross App Access for the existing Lovable SSO app and connect Claude’s agent to it. Follow `,_jsx(_components.a,{href:`https://developer.okta.com/docs/guides/xaa-agent-to-app/main/`,children:`Okta’s Cross App Access setup guide`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`In Claude`}),`, open the Lovable connector’s `,_jsx(_components.strong,{children:`Configuration`}),` tab and set up `,_jsx(_components.strong,{children:`Managed authorization`}),`. Choose who gets access, select permissions, and use `,_jsx(_components.strong,{children:`Run test`}),` to check the connection. Follow `,_jsx(_components.a,{href:`https://support.claude.com/en/articles/15537633-authorize-mcp-connectors-for-your-entire-organization`,children:`Claude’s organization authorization guide`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Keep Claude’s `,_jsx(_components.strong,{children:`Connect`}),` step open while following the identity provider setup guide it provides. Use that guide for agent registration and the connection details exchanged between Claude and Okta.`]}),`\n`,_jsx(_components.p,{children:`Lovable accepts Claude’s published client identity. You do not create a workspace API key or register a new Lovable OAuth client.`}),`\n`,_jsx(Heading,{level:`3`,id:`verify-access-as-a-member`,children:`Verify access as a member`}),`\n`,_jsxs(_components.p,{children:[`Use a test member without an existing personal Lovable connection in Claude. Confirm that their Claude role receives `,_jsx(_components.strong,{children:`Managed authorization`}),`. Sign in to Claude through Okta and ask it to use Lovable:`]}),`\n`,_jsx(CodeBlock,{filename:``,wrap:`true`,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Use Lovable to list the projects in our [workspace name] workspace.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Claude should return the expected projects without asking the member to sign in to Lovable. If it asks for individual sign-in, see `,_jsx(_components.a,{href:`#troubleshooting`,children:`Troubleshooting`}),` before accepting that prompt.`]}),`\n`,_jsx(_components.p,{children:`This prompt checks a real tool call. A successful call through a previously authorized personal connection does not verify managed authentication.`}),`\n`,_jsxs(_components.p,{children:[`Lovable’s completion screen reports `,_jsx(_components.strong,{children:`Enabled in Lovable · Access has not been tested`}),` because saving settings does not test access. It does not update automatically after your Claude test.`]}),`\n`,_jsx(Heading,{level:`2`,id:`limitations-and-access-controls`,children:`Limitations and access controls`}),`\n`,_jsx(_components.p,{children:`Review these access boundaries before enabling managed authentication for your team.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Existing permissions apply.`}),` Managed authentication does not grant additional Lovable roles, project access, or workspace membership.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Access is not restricted to the provider’s workspace.`}),` Claude can act across workspaces the member can access, subject to its granted permissions and each workspace’s policies.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`MCP access is checked per workspace.`}),` `,_jsx(_components.a,{href:`/features/privacy-and-security-settings#third-party-mcp-clients`,children:`Third-party MCP clients`}),` must be enabled in each workspace a member wants to use. Access can work in one workspace and be blocked in another.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`The Lovable setting applies to the SSO provider.`}),` Enable access on the provider in Lovable. Choose which members can connect and what they can do in Claude and Okta.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`One active configuration per assertion issuer and IdP tenant.`}),` If another SSO provider already uses that combination, Lovable rejects the new configuration. If several workspaces share it, ask the administrator of the existing configuration to manage the shared provider. See `,_jsx(_components.a,{href:`#this-issuer-and-idp-tenant-already-have-an-active-connection`,children:`Resolve an active connection conflict`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`sso-session-duration`,children:`SSO session duration`}),`\n`,_jsx(_components.p,{children:`Lovable checks the sign-in time in the identity assertion when the identity provider supplies it. Okta’s identity assertions in this setup do not include that time, so Lovable uses their issue time instead.`}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`With this Okta setup, each new identity assertion starts a new SSO session window. Claude can remain connected beyond the workspace’s `,_jsx(_components.strong,{children:`Session duration`}),` without the member signing in again. This continues while Okta authorizes access and issues new identity assertions. The setting does not impose a maximum connection duration for this flow.`]}),_jsx(_components.p,{children:`Control continued access through Okta’s authentication and access policies, Claude’s managed authorization settings, and Lovable’s permissions. Browser SSO session rules remain unchanged.`})]}),`\n`,_jsx(Heading,{level:`3`,id:`disable-enterprise-managed-authentication`,children:`Disable enterprise-managed authentication`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In `,_jsx(_components.strong,{children:`Enterprise-managed authentication`}),`, click `,_jsx(_components.strong,{children:`Manage`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select the provider and click `,_jsx(_components.strong,{children:`Continue`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`On `,_jsx(_components.strong,{children:`Configure EMA`}),`, click `,_jsx(_components.strong,{children:`Disable`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`In `,_jsx(_components.strong,{children:`Disable enterprise-managed authentication?`}),`, click `,_jsx(_components.strong,{children:`Disable`}),` to confirm.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Your SSO provider stays connected. Lovable retains the settings so you can enable managed authentication again later.`}),`\n`,_jsx(_components.p,{children:`Lovable also disables managed authentication when you delete its SSO provider. For a workspace-owned provider, this also happens when you delete the workspace or change to a plan without SSO. Restoring the workspace or its SSO eligibility does not re-enable managed authentication. An administrator must enable it again.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Disabling managed authentication stops Lovable from issuing new access tokens through that provider. Existing access may continue for up to `,_jsx(_components.strong,{children:`15 minutes`}),` while issued access tokens expire. It does not revoke connections that members authorized themselves.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Does an XAA-enabled Okta catalog app complete setup for me?`,id:`does-an-xaa-enabled-okta-catalog-app-complete-setup-for-me`,children:_jsx(_components.p,{children:`No. It supplies Lovable’s resource configuration and the XAA controls. You still enable XAA, connect Claude’s agent to Lovable, configure managed authorization in Claude, and enable access in Lovable.`})}),_jsx(Accordion,{title:`Does enabling this give everyone the administrator's access?`,id:`does-enabling-this-give-everyone-the-administrators-access`,children:_jsx(_components.p,{children:`No. Claude acts as the individual member. That member’s Lovable permissions, the permissions granted to Claude, and workspace policies determine what it can do.`})}),_jsx(Accordion,{title:`Do members need to provide a Lovable API key or client secret?`,id:`do-members-need-to-provide-a-lovable-api-key-or-client-secret`,children:_jsx(_components.p,{children:`No. Members do not share API keys or client secrets for this flow. An administrator configures access in Lovable, Claude, and Okta.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`I cannot find the enterprise-managed authentication settings`,id:`i-cannot-find-the-enterprise-managed-authentication-settings`,children:_jsx(_components.p,{children:`Check that your workspace is on Business or Enterprise and that you have permission to manage the provider.`})}),_jsx(Accordion,{title:`assertion issuer must match the enabled SSO provider`,id:`assertion-issuer-must-match-the-enabled-sso-provider`,children:_jsx(_components.p,{children:`The OIDC assertion issuer must match the enabled SSO provider. Reload the configuration and confirm the provider is still active. This value is read-only in Lovable’s setup.`})}),_jsx(Accordion,{title:`issuer has no usable public signing keys`,id:`issuer-has-no-usable-public-signing-keys`,children:_jsx(_components.p,{children:`Lovable needs to discover the issuer’s public signing keys. Ask your Okta administrator to verify that the issuer and its discovery configuration are reachable from the internet. For SAML, use the Okta assertion issuer associated with your SAML app, not the SAML metadata or sign-in URL.`})}),_jsxs(Accordion,{title:`The connection is enabled, but a member cannot use Lovable tools`,id:`the-connection-is-enabled-but-a-member-cannot-use-lovable-tools`,children:[_jsx(_components.p,{children:`Check that the member:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Has a Lovable account linked to this SSO provider.`}),`\n`,_jsx(_components.li,{children:`Belongs to the intended workspace.`}),`\n`,_jsx(_components.li,{children:`Can use the Lovable connector under Claude’s and Okta’s access policies.`}),`\n`]}),_jsx(_components.p,{children:`A matching email address is not enough.`}),_jsxs(_components.p,{children:[`Also check that `,_jsx(_components.strong,{children:`Third-party MCP clients`}),` is enabled in the target workspace.`]})]}),_jsx(Accordion,{title:`Claude still asks members to sign in individually`,id:`claude-still-asks-members-to-sign-in-individually`,children:_jsxs(_components.p,{children:[`Check the member’s assigned role and run Claude’s connection test. When both `,_jsx(_components.strong,{children:`Browser sign-in`}),` and `,_jsx(_components.strong,{children:`Managed authorization`}),` are enabled, Claude can fall back to individual sign-in if managed authorization fails. See `,_jsx(_components.a,{href:`https://support.claude.com/en/articles/15537633-authorize-mcp-connectors-for-your-entire-organization`,children:`Claude’s authorization guide`}),`.`]})}),_jsxs(Accordion,{title:`The identity assertion is invalid or cannot be used`,id:`the-identity-assertion-is-invalid-or-cannot-be-used`,children:[_jsxs(_components.p,{children:[`Check that the Okta connection points to the Lovable SSO app linked to the member’s account. Confirm that its resource and client ID match the `,_jsx(_components.a,{href:`#configure-your-application-and-identity-provider`,children:`Lovable connection values`}),`.`]}),_jsxs(_components.p,{children:[`Ask your Okta administrator to review any mismatches using `,_jsx(_components.a,{href:`https://developer.okta.com/docs/guides/xaa-agent-to-app/main/#configure-the-xaa-connection`,children:`Okta’s connection guide`}),`. Also check the member’s linked account and `,_jsx(_components.strong,{children:`Assertion issuer`}),` in Lovable.`]})]}),_jsx(Accordion,{title:`The connection test returns invalid_scope`,id:`the-connection-test-returns-invalid-scope`,children:_jsxs(_components.p,{children:[`Compare the permissions requested by Claude with `,_jsx(_components.strong,{children:`Scopes`}),` on the Okta connection. The Lovable app in Okta must support every permission Claude requests. Read-only permissions do not allow building or editing.`]})}),_jsx(Accordion,{title:`this issuer and IdP tenant already have an active connection`,id:`this-issuer-and-idp-tenant-already-have-an-active-connection`,children:_jsxs(_components.p,{children:[`Another SSO provider already uses this combination. Manage the existing shared configuration with its administrator instead of creating another. Do not enter a made-up `,_jsx(_components.strong,{children:`IdP tenant`}),` to bypass the conflict: it must match the identity assertion.`]})}),_jsxs(Accordion,{title:`The configuration needs review or an update fails`,id:`the-configuration-needs-review-or-an-update-fails`,children:[_jsxs(_components.p,{children:[`If Lovable shows `,_jsx(_components.strong,{children:`Access needs your review`}),`, the provider or its administering account changed. Review the settings and enable access again when the issue is resolved.`]}),_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Could not update enterprise-managed authentication`}),` error message, click `,_jsx(_components.strong,{children:`Reload configuration`}),` to check the saved state before retrying. If you have unsaved edits, confirm `,_jsx(_components.strong,{children:`Discard and reload`}),` to replace them with the latest saved settings.`]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Set up enterprise-managed authentication","sidebarTitle":"Enterprise-managed authentication","description":"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.","keywords":["enterprise-managed authorization","ID-JAG","Cross App Access","managed authorization"],"href":"/features/enterprise-managed-auth"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why use enterprise-managed authentication","slug":"why-use-enterprise-managed-authentication","depth":2,"children":[]},{"title":"Who sets it up","slug":"who-sets-it-up","depth":2,"children":[]},{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[{"title":"Supported applications","slug":"supported-applications","depth":3,"children":[]},{"title":"Billing and usage","slug":"billing-and-usage","depth":3,"children":[]}]},{"title":"How authentication works","slug":"how-authentication-works","depth":2,"children":[]},{"title":"Set up enterprise-managed authentication","slug":"set-up-enterprise-managed-authentication","depth":2,"children":[{"title":"Enable enterprise-managed authentication in Lovable","slug":"enable-enterprise-managed-authentication-in-lovable","depth":3,"children":[]},{"title":"Configure your application and identity provider","slug":"configure-your-application-and-identity-provider","depth":3,"children":[]},{"title":"Claude with Okta","slug":"claude-with-okta","depth":4,"children":[]},{"title":"Verify access as a member","slug":"verify-access-as-a-member","depth":3,"children":[]}]},{"title":"Limitations and access controls","slug":"limitations-and-access-controls","depth":2,"children":[{"title":"SSO session duration","slug":"sso-session-duration","depth":3,"children":[]},{"title":"Disable enterprise-managed authentication","slug":"disable-enterprise-managed-authentication","depth":3,"children":[]}]},{"title":"FAQ","slug":"faq","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/lovable-f9060f1e/84f62c0d01f1469d/sign-in-with-lovable-demo.js"],"subdomain":"lovable-f9060f1e","siteName":"Lovable Documentation","title":"Set up enterprise-managed authentication - Lovable Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"contextualStarterQuestions":[{"_id":"6ad7625f04ebfe1c7dd019c0","deploymentId":"672cd6fd3133ca8082eceab1","questionText":"Who can enable this feature?","status":"active","generatedBy":"contextual","path":"features/enterprise-managed-auth","createdAt":"2026-10-20T12:45:19.655Z","updatedAt":"2026-10-20T12:45:19.655Z","__v":0},{"_id":"6ad7625f04ebfe1c7dd019c1","deploymentId":"672cd6fd3133ca8082eceab1","questionText":"How do team members access Lovable?","status":"active","generatedBy":"contextual","path":"features/enterprise-managed-auth","createdAt":"2026-10-20T12:45:19.655Z","updatedAt":"2026-10-20T12:45:19.655Z","__v":0},{"_id":"6ad7625f04ebfe1c7dd019bf","deploymentId":"672cd6fd3133ca8082eceab1","questionText":"How do I set up Okta SSO?","status":"active","generatedBy":"contextual","path":"features/enterprise-managed-auth","createdAt":"2026-10-20T12:45:19.655Z","updatedAt":"2026-10-20T12:45:19.655Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T12:45:13.814Z","originalFileLocation":"features/enterprise-managed-auth.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lovable Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Set up enterprise-managed authentication - Lovable Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lovable Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lovable.dev/features/enterprise-managed-auth\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lovable-f9060f1e.mintlify.app/assets/logo/opengraph-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Set up enterprise-managed authentication - Lovable Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lovable-f9060f1e.mintlify.app/assets/logo/opengraph-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lovable-f9060f1e/AU_uVgnksniw8mje/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lovable Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0095FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lovable.dev/features/enterprise-managed-auth\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/enterprise-managed-auth.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lovable.dev/#organization\",\"name\":\"Lovable Documentation\",\"url\":\"https://docs.lovable.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lovable-f9060f1e/lZT1ihBcprll2Agr/assets/logo/logoblack.svg?fit=max\u0026auto=format\u0026n=lZT1ihBcprll2Agr\u0026q=85\u0026s=8d9eafaf19f94e27f0d13ac160d54f54\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lovable.dev#website\",\"name\":\"Lovable Documentation\",\"url\":\"https://docs.lovable.dev\",\"publisher\":{\"@id\":\"https://docs.lovable.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lovable.dev/features/enterprise-managed-auth#webpage\",\"url\":\"https://docs.lovable.dev/features/enterprise-managed-auth\",\"name\":\"Set up enterprise-managed authentication\",\"description\":\"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.\",\"dateModified\":\"2026-10-20T12:45:13.814Z\",\"isPartOf\":{\"@id\":\"https://docs.lovable.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lovable.dev/features/enterprise-managed-auth#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lovable.dev/features/enterprise-managed-auth#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Workspace \u0026 account\",\"item\":\"https://docs.lovable.dev/features/workspace-admin-settings\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access\",\"item\":\"https://docs.lovable.dev/features/people\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Identity\",\"item\":\"https://docs.lovable.dev/features/workspace-identity\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Set up enterprise-managed authentication\",\"item\":\"https://docs.lovable.dev/features/enterprise-managed-auth\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.lovable.dev/features/enterprise-managed-auth#article\",\"headline\":\"Set up enterprise-managed authentication\",\"name\":\"Set up enterprise-managed authentication\",\"description\":\"Let your team use Lovable from Claude through Okta single sign-on, without a separate Lovable sign-in. Configure access, test it, and disable it.\",\"url\":\"https://docs.lovable.dev/features/enterprise-managed-auth\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lovable.dev/features/enterprise-managed-auth#webpage\"},\"image\":\"https://docs.lovable.dev/assets/logo/opengraph-image.png\",\"dateModified\":\"2026-10-20T12:45:13.814Z\",\"keywords\":\"enterprise-managed authorization, ID-JAG, Cross App Access, managed authorization\",\"publisher\":{\"@id\":\"https://docs.lovable.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lovable.dev#website\"}}]}\u003c/script>","siteName":"Lovable Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Getting started","icon":"rocket","pages":[{"title":"Welcome to Lovable","href":"/introduction/welcome"},{"title":"Create an account","href":"/introduction/create-an-account"},{"title":"Quick start","href":"/introduction/getting-started"},{"title":"Dashboard overview","href":"/introduction/dashboard-overview"},{"title":"Lovable for Enterprise","sidebarTitle":"Enterprise","href":"/introduction/lovable-for-enterprise"},{"group":"Lovable platforms","pages":[{"title":"Lovable desktop app","sidebarTitle":"Lovable desktop app","href":"/integrations/desktop-app"},{"title":"Lovable mobile app","sidebarTitle":"Lovable mobile app","href":"/integrations/lovable-mobile-app"}]},{"group":"Use Lovable from other tools","pages":[{"title":"Lovable API","sidebarTitle":"Lovable API","href":"/integrations/lovable-api"},{"title":"Lovable MCP server","sidebarTitle":"Lovable MCP server","href":"/integrations/lovable-mcp-server"},{"title":"Lovable ChatGPT app","sidebarTitle":"Lovable ChatGPT app","href":"/tips-tricks/chatgpt-app"},{"title":"Chat with Lovable in Slack","sidebarTitle":"Lovable in Slack","href":"/integrations/lovable-for-slack"},{"title":"Chat with Lovable in Telegram","sidebarTitle":"Lovable in Telegram","href":"/tips-tricks/lovable-telegram-bot"},{"title":"Build with URL","href":"/integrations/build-with-url"},{"title":"Sign in with Lovable","sidebarTitle":"Sign in with Lovable","href":"/integrations/sign-in-with-lovable"}]}]},{"group":"Build","icon":"hammer","pages":[{"group":"Projects","root":{"title":"Projects in Lovable","sidebarTitle":"Overview","href":"/features/projects/overview"},"pages":[{"title":"Find your way around the Lovable editor","sidebarTitle":"Editor","href":"/features/projects/editor"},{"title":"Work with Lovable in the project chat","sidebarTitle":"Project chat","href":"/features/projects/chat"},{"title":"Preview and test your app in Lovable","sidebarTitle":"Preview","href":"/features/projects/preview"},{"title":"Explore changes with drafts","sidebarTitle":"Drafts","href":"/features/drafts"},{"title":"View and edit your project's code","sidebarTitle":"Code editor","href":"/features/code-mode"},{"title":"Revert and restore your project with version history","sidebarTitle":"Version history","href":"/features/projects/history"},{"title":"Project settings","sidebarTitle":"Settings","href":"/features/projects/settings"},{"title":"Delete a project","href":"/features/projects/delete-project"},{"title":"Remix a project","sidebarTitle":"Remix","href":"/features/projects/remix"},{"title":"Import a project from Replit, Bolt, v0, or another tool","sidebarTitle":"Import a project","href":"/features/projects/import-project"},{"title":"Import a website into Lovable from its URL","sidebarTitle":"Import a website","href":"/features/projects/import-website"},{"title":"Upgrade a project to TanStack Start","sidebarTitle":"Upgrade to TanStack Start","href":"/features/upgrade-to-tanstack-start"},{"title":"Find and search projects","sidebarTitle":"Find a project","href":"/introduction/project-search-and-find"},{"title":"Organize projects in folders","sidebarTitle":"Folders","href":"/introduction/project-folders"}]},{"title":"Chat with Lovable across your workspace","sidebarTitle":"Chats","href":"/features/chats"},{"group":"The agent","pages":[{"title":"Discuss your app in Chat mode","sidebarTitle":"Chat mode","href":"/features/chat-mode"},{"title":"Plan a change in Plan mode","sidebarTitle":"Plan mode","href":"/features/plan-mode"},{"title":"Implement changes in Build mode","sidebarTitle":"Build mode","href":"/features/agent-mode"},{"title":"Set a goal for Lovable","sidebarTitle":"Goals","href":"/features/goal-runs"},{"title":"Subagents","sidebarTitle":"Subagents","href":"/features/subagents"}]},{"group":"Context \u0026 instructions","pages":[{"title":"Instructions","sidebarTitle":"Instructions","href":"/features/knowledge"},{"title":"Memory: what Lovable remembers as you build","sidebarTitle":"Memory","href":"/features/memory"},{"title":"Define reusable instructions with skills","sidebarTitle":"Skills","href":"/features/skills"},{"title":"Cross-project referencing","href":"/features/cross-project-referencing"}]},{"title":"Generate files and analyze data","sidebarTitle":"File generation","href":"/features/generate-files"},{"group":"Design","pages":[{"title":"Edit from the preview","sidebarTitle":"Preview toolbar","href":"/features/preview-toolbar"},{"title":"Design guidance","href":"/features/design-guidance"},{"title":"Design templates","href":"/features/business/design-templates"},{"title":"Design systems","href":"/features/design-systems"},{"title":"Use custom fonts","sidebarTitle":"Custom fonts","href":"/tips-tricks/custom-fonts"},{"title":"Use 21st.dev components in Lovable","sidebarTitle":"21st.dev","href":"/tips-tricks/21stdev"},{"title":"Bring Figma designs into Lovable","sidebarTitle":"Figma","href":"/integrations/figma"}]},{"group":"Backend","root":{"title":"Built-in backend","sidebarTitle":"Overview","href":"/features/cloud"},"pages":[{"group":"Database","root":{"title":"Database","href":"/features/database"},"pages":[{"title":"Control who can access your app's data","sidebarTitle":"Access and security","href":"/features/database-access"},{"title":"Fix a slow database and choose the right capacity","sidebarTitle":"Performance and capacity","href":"/features/database-performance"},{"title":"Back up, restore, and export your project's database","sidebarTitle":"Backups and export","href":"/features/database-backups"},{"title":"Pause, resume, or remove your project's database","sidebarTitle":"Pause, resume, and remove","href":"/features/database-pause-remove"}]},{"group":"Users \u0026 authentication","root":{"title":"Users and authentication","sidebarTitle":"Users \u0026 authentication","href":"/features/authentication"},"pages":[{"title":"Email authentication for your app","sidebarTitle":"Email auth","href":"/features/email-auth"},{"title":"Phone authentication for your app","sidebarTitle":"Phone auth","href":"/features/phone-auth"},{"title":"Add Google authentication to your app","sidebarTitle":"Google auth","href":"/features/google-auth"},{"title":"Add Apple authentication to your app","sidebarTitle":"Apple auth","href":"/features/apple-auth"},{"title":"Add Microsoft authentication to your app","sidebarTitle":"Microsoft auth","href":"/features/microsoft-auth"},{"title":"Add Sign in with Lovable to your app","sidebarTitle":"Lovable auth","href":"/features/lovable-auth"},{"title":"Add SAML single sign-on to your app","sidebarTitle":"SAML SSO (apps)","href":"/features/saml-sso"},{"title":"Add OpenID Connect (OIDC) sign-in to your app","sidebarTitle":"OIDC sign-in (apps)","href":"/features/oidc-auth"},{"title":"Reuse Lovable workspace identity in your app","sidebarTitle":"Workspace identity (apps)","href":"/features/lovable-workspace-identity-reuse"}]},{"title":"Storage","href":"/features/storage"},{"title":"Secrets","href":"/features/secrets"},{"title":"Jobs","href":"/features/jobs"},{"title":"Edge functions","href":"/features/edge-functions"},{"title":"Logs","href":"/features/logs"},{"title":"Project usage and costs","sidebarTitle":"Usage","href":"/features/project-usage"}]},{"group":"AI for your app","root":{"title":"AI features for your app","sidebarTitle":"AI for your app","href":"/features/ai"},"pages":[{"title":"Add chatbots and text generation to your app","sidebarTitle":"Chat and text","href":"/features/ai-chat"},{"title":"Let users generate and edit images in your app","sidebarTitle":"Images","href":"/features/ai-images"},{"title":"Let users generate and edit videos in your app","sidebarTitle":"Video","href":"/features/ai-video"},{"title":"Let users create music in your app","sidebarTitle":"Music","href":"/features/ai-music"},{"title":"Help users find relevant content in your app","sidebarTitle":"Search by meaning","href":"/features/ai-search"},{"title":"Automate classification, routing, and scoring in your app","sidebarTitle":"Classify and score","href":"/features/ai-decisions"},{"title":"Let users listen to your app's content","sidebarTitle":"Text to speech","href":"/features/ai-text-to-speech"},{"title":"Add transcription and voice input to your app","sidebarTitle":"Speech to text","href":"/features/ai-speech-to-text"},{"title":"Build voice assistants your users can talk to","sidebarTitle":"Live voice","href":"/features/ai-live-voice"},{"title":"Replace deprecated AI models in your app","sidebarTitle":"Deprecated models","href":"/features/ai-deprecated-models"}]},{"group":"Test your app","pages":[{"title":"Test and verify your app","sidebarTitle":"Testing tools","href":"/features/testing"},{"title":"Test your app in a browser","sidebarTitle":"Browser testing","href":"/features/browser-testing"}]},{"group":"Secure your app","root":{"title":"Security overview","href":"/features/security"},"pages":[{"title":"Project security view","sidebarTitle":"Project security view","href":"/features/security-view"},{"title":"Trust center","href":"/features/trust-center"},{"title":"Security best practices for Lovable apps","sidebarTitle":"Security best practices","href":"/tips-tricks/security-best-practices"}]},{"title":"Using npm packages","sidebarTitle":"npm packages","href":"/tips-tricks/npm-packages"},{"title":"Build secrets","tag":"ENT","href":"/features/build-secrets"},{"title":"Managed registry","tag":"ENT","href":"/features/managed-registry"}]},{"group":"Connect","icon":"plug","pages":[{"group":"Connectors","root":{"title":"Lovable connectors: Connect tools, services, and APIs","sidebarTitle":"Overview","href":"/integrations/introduction"},"pages":[{"title":"App + chat connectors: Add capabilities to your published app and your chat","sidebarTitle":"App + chat connectors","href":"/integrations/app-connectors"},{"title":"App user connectors: let your users connect their own accounts","sidebarTitle":"App user connectors","href":"/integrations/app-user-connectors"},{"title":"Create a custom connector","sidebarTitle":"Custom connectors","href":"/integrations/create-connector"},{"title":"Chat connectors: Connect your tools to Lovable using MCP servers","sidebarTitle":"Chat connectors","href":"/integrations/chat-connectors"},{"title":"Connect a custom MCP server as a chat connector","sidebarTitle":"Custom MCP servers","href":"/integrations/custom-mcp"},{"title":"MCP registries","href":"/integrations/mcp-registries"},{"title":"Manage connectors in your workspace","sidebarTitle":"Admin controls","href":"/integrations/admin-controls"},{"title":"Integration security","href":"/integrations/security"}]},{"group":"Connector catalog","pages":[{"group":"AI \u0026 search","pages":[{"title":"Connect your app to Algolia","sidebarTitle":"Algolia","href":"/integrations/algolia"},{"title":"Connect your app to Apify","sidebarTitle":"Apify","href":"/integrations/apify"},{"title":"Connect ElevenLabs to enable voice AI in your app","sidebarTitle":"ElevenLabs","href":"/integrations/eleven-labs"},{"title":"Connect Firecrawl to scrape web data for your app","sidebarTitle":"Firecrawl","href":"/integrations/firecrawl"},{"title":"Connect your app to Fireworks AI","sidebarTitle":"Fireworks AI","href":"/integrations/fireworks"},{"title":"Connect your app to Gemini Enterprise","sidebarTitle":"Gemini Enterprise","href":"/integrations/gemini-enterprise"},{"title":"Connect your app to LlamaParse Platform","sidebarTitle":"LlamaParse Platform","href":"/integrations/llamaparse"},{"title":"Connect your app to Parallel","sidebarTitle":"Parallel","href":"/integrations/parallel"},{"title":"Connect your app to Perplexity","sidebarTitle":"Perplexity","href":"/integrations/perplexity"},{"title":"Connect your app to Replicate","sidebarTitle":"Replicate","href":"/integrations/replicate"}]},{"group":"Data \u0026 databases","pages":[{"title":"Connect to Supabase","sidebarTitle":"Supabase","href":"/integrations/supabase"},{"title":"Connect your app to Amazon Redshift","sidebarTitle":"Amazon Redshift","href":"/integrations/amazon-redshift"},{"title":"Connect your app to AWS Athena","sidebarTitle":"AWS Athena","href":"/integrations/aws-athena"},{"title":"Connect your app to AWS S3","sidebarTitle":"AWS S3","href":"/integrations/aws-s3"},{"title":"Connect your app to BigQuery","sidebarTitle":"BigQuery","href":"/integrations/bigquery"},{"title":"Connect your app to ClickHouse","sidebarTitle":"ClickHouse","href":"/integrations/clickhouse"},{"title":"Connect your app to Cube","sidebarTitle":"Cube","href":"/integrations/cube"},{"title":"Connect your app to Databricks","sidebarTitle":"Databricks","href":"/integrations/databricks"},{"title":"Connect your app to the dbt Semantic Layer","sidebarTitle":"dbt Semantic Layer","href":"/integrations/dbt-semantic-layer"},{"title":"Connect your app to GoodData","sidebarTitle":"GoodData","href":"/integrations/gooddata"},{"title":"Connect your app to IBM Db2","sidebarTitle":"IBM Db2","href":"/integrations/ibm-db2"},{"title":"Connect your app to Looker","sidebarTitle":"Looker","href":"/integrations/looker"},{"title":"Connect your app to Metabase","sidebarTitle":"Metabase","href":"/integrations/metabase"},{"title":"Connect your app to Microsoft Fabric","sidebarTitle":"Microsoft Fabric","href":"/integrations/microsoft-fabric"},{"title":"Connect your app to MotherDuck","sidebarTitle":"MotherDuck","href":"/integrations/motherduck"},{"title":"Connect your app to Neon","sidebarTitle":"Neon","href":"/integrations/neon"},{"title":"Connect your app to Omni","sidebarTitle":"Omni","href":"/integrations/omni"},{"title":"Connect your app to Oracle Autonomous AI Database","sidebarTitle":"Oracle Autonomous AI Database","href":"/integrations/oracle-autonomous"},{"title":"Connect your app to Power BI","sidebarTitle":"Power BI","href":"/integrations/power-bi"},{"title":"Connect your app to Qlik Cloud","sidebarTitle":"Qlik Cloud","href":"/integrations/qlik-cloud"},{"title":"Connect your app to Snowflake","sidebarTitle":"Snowflake","href":"/integrations/snowflake"}]},{"group":"Communication \u0026 messaging","pages":[{"title":"Connect your app to Brevo","sidebarTitle":"Brevo","href":"/integrations/brevo"},{"title":"Connect your app to Discord","sidebarTitle":"Discord","href":"/integrations/discord"},{"title":"Connect your app to Firebase Cloud Messaging","sidebarTitle":"Firebase Cloud Messaging","href":"/integrations/firebase-cloud-messaging"},{"title":"Connect your app to GatewayAPI","sidebarTitle":"GatewayAPI","href":"/integrations/gatewayapi"},{"title":"Connect your app to Mailgun","sidebarTitle":"Mailgun","href":"/integrations/mailgun"},{"title":"Connect your app to Resend","sidebarTitle":"Resend","href":"/integrations/resend"},{"title":"Connect your app to Slack","sidebarTitle":"Slack","href":"/integrations/slack"},{"title":"Connect your app to Telegram","sidebarTitle":"Telegram","href":"/integrations/telegram"},{"title":"Connect your app to Twilio","sidebarTitle":"Twilio","href":"/integrations/twilio"},{"title":"Connect your app to WhatsApp Business","sidebarTitle":"WhatsApp Business","href":"/integrations/whatsapp"}]},{"group":"CRM \u0026 sales","pages":[{"title":"Connect your app to Apollo.io","sidebarTitle":"Apollo.io","href":"/integrations/apollo"},{"title":"Connect your app to Attention","sidebarTitle":"Attention","href":"/integrations/attention"},{"title":"Connect your app to Clay","sidebarTitle":"Clay","href":"/integrations/clay"},{"title":"Connect your app to Gong","sidebarTitle":"Gong","href":"/integrations/gong"},{"title":"Connect your app to HubSpot","sidebarTitle":"HubSpot","href":"/integrations/hubspot"},{"title":"Connect your app to KLIPY","sidebarTitle":"KLIPY","href":"/integrations/klipy"},{"title":"Connect your app to Pipedrive","sidebarTitle":"Pipedrive","href":"/integrations/pipedrive"},{"title":"Connect your app to Salesforce","sidebarTitle":"Salesforce","href":"/integrations/salesforce"},{"title":"Connect your app to Zendesk","sidebarTitle":"Zendesk","href":"/integrations/zendesk"},{"title":"Connect your app to Zoho CRM","sidebarTitle":"Zoho CRM","href":"/integrations/zoho-crm"}]},{"group":"Developer tools","pages":[{"title":"Connect your app to AWS API","sidebarTitle":"AWS API","href":"/integrations/aws"},{"title":"Connect your app to Azure Cloud API","sidebarTitle":"Azure Cloud API","href":"/integrations/azure"},{"title":"Connect your app to Azure Graph \u0026 Entra API","sidebarTitle":"Azure Graph \u0026 Entra API","href":"/integrations/azure-graph"},{"title":"Connect your app to Cloudflare API","sidebarTitle":"Cloudflare API","href":"/integrations/cloudflare-api"},{"title":"Connect your app to GitHub API","sidebarTitle":"GitHub API","href":"/integrations/github-api"},{"title":"Connect your app to GitLab API","sidebarTitle":"GitLab API","href":"/integrations/gitlab-api"},{"title":"Connect your app to Google Cloud API","sidebarTitle":"Google Cloud API","href":"/integrations/gcp"},{"title":"Connect your app to Inngest","sidebarTitle":"Inngest","href":"/integrations/inngest"},{"title":"Connect your app to Linear","sidebarTitle":"Linear","href":"/integrations/linear"},{"title":"Connect your app to Logo.dev","sidebarTitle":"Logo.dev","href":"/integrations/logo-dev"},{"title":"Connect your app to the Lovable API","sidebarTitle":"Lovable API connector","href":"/integrations/lovable-api-connector"},{"title":"Connect your app to n8n","sidebarTitle":"n8n","href":"/integrations/n8n"}]},{"group":"E-commerce","pages":[{"title":"Connect your app to Lightspeed","sidebarTitle":"Lightspeed","href":"/integrations/lightspeed"},{"title":"Connect your app to PrestaShop","sidebarTitle":"PrestaShop","href":"/integrations/prestashop"},{"title":"Build a Shopify store with AI","sidebarTitle":"Shopify","href":"/integrations/shopify"},{"title":"Connect your app to WooCommerce","sidebarTitle":"WooCommerce","href":"/integrations/woocommerce"}]},{"group":"Finance \u0026 accounting","pages":[{"title":"Connect your app to Lexware","sidebarTitle":"Lexware","href":"/integrations/lexware"},{"title":"Connect your app to Sevdesk","sidebarTitle":"Sevdesk","href":"/integrations/sevdesk"},{"title":"Connect your app to Wave","sidebarTitle":"Wave","href":"/integrations/wave"},{"title":"Connect your app to Xero","sidebarTitle":"Xero","href":"/integrations/xero"},{"title":"Connect your app to Zoho Books","sidebarTitle":"Zoho Books","href":"/integrations/zoho-books"}]},{"group":"Maps \u0026 location","pages":[{"title":"Connect your app to Google Maps Platform","sidebarTitle":"Google Maps Platform","href":"/integrations/google-maps"},{"title":"Connect your app to Mapbox","sidebarTitle":"Mapbox","href":"/integrations/mapbox"}]},{"group":"Marketing \u0026 social","pages":[{"title":"Connect your app to beehiiv","sidebarTitle":"beehiiv","href":"/integrations/beehiiv"},{"title":"Connect your app to Bing Webmaster Tools","sidebarTitle":"Bing Webmaster Tools","href":"/integrations/bing-webmaster-tools"},{"title":"Connect your app to Google Analytics","sidebarTitle":"Google Analytics","href":"/integrations/google-analytics"},{"title":"Connect Google Business Profile to Lovable","sidebarTitle":"Google Business Profile","href":"/integrations/google-business-profile"},{"title":"Connect your app to Google Search Console (GSC)","sidebarTitle":"Google Search Console","href":"/integrations/google-search-console"},{"title":"Connect your app to Klaviyo","sidebarTitle":"Klaviyo","href":"/integrations/klaviyo"},{"title":"Connect your app to LinkedIn","sidebarTitle":"LinkedIn","href":"/integrations/linkedin"},{"title":"Connect your app to Loops","sidebarTitle":"Loops","href":"/integrations/loops"},{"title":"Connect your app to PostHog","sidebarTitle":"PostHog","href":"/integrations/posthog"},{"title":"Connect your app to Semrush","sidebarTitle":"Semrush","href":"/integrations/semrush"},{"title":"Connect your app to TikTok","sidebarTitle":"TikTok","href":"/integrations/tiktok"},{"title":"Connect your app to Twitch","sidebarTitle":"Twitch","href":"/integrations/twitch"},{"title":"Connect your app to X (Twitter)","sidebarTitle":"X (Twitter)","href":"/integrations/x"}]},{"group":"Payments \u0026 billing","pages":[{"title":"Connect your app to Chargebee","sidebarTitle":"Chargebee","href":"/integrations/chargebee"},{"title":"Connect your app to Pledge","sidebarTitle":"Pledge","href":"/integrations/pledge"},{"title":"Connect your app to Ramp","sidebarTitle":"Ramp","href":"/integrations/ramp"},{"title":"Connect your own Stripe account","sidebarTitle":"Stripe","href":"/integrations/stripe"}]},{"group":"Productivity","pages":[{"title":"Connect your app to Airtable","sidebarTitle":"Airtable","href":"/integrations/airtable"},{"title":"Connect your app to Asana","sidebarTitle":"Asana","href":"/integrations/asana"},{"title":"Connect your app to Ashby","sidebarTitle":"Ashby","href":"/integrations/ashby"},{"title":"Connect your app to Calendly","sidebarTitle":"Calendly","href":"/integrations/calendly"},{"title":"Connect your app to Fireflies","sidebarTitle":"Fireflies","href":"/integrations/fireflies"},{"title":"Connect your app to Google Workspace","sidebarTitle":"Google Workspace","href":"/integrations/google-workspace"},{"title":"Connect your app to Granola","sidebarTitle":"Granola","href":"/integrations/granola"},{"title":"Connect your app to incident.io","sidebarTitle":"incident.io","href":"/integrations/incidentio"},{"title":"Connect your app to Microsoft 365","sidebarTitle":"Microsoft","href":"/integrations/microsoft"},{"title":"Build and publish apps to Microsoft Copilot Managed Runtime","sidebarTitle":"Copilot Managed Runtime","href":"/integrations/microsoft-copilot-managed-runtime"},{"title":"Set up your Microsoft tenant for Copilot Managed Runtime","sidebarTitle":"Copilot Managed Runtime tenant setup","href":"/integrations/microsoft-copilot-managed-runtime-tenant-setup"},{"title":"Connect your app to Notion","sidebarTitle":"Notion","href":"/integrations/notion"},{"title":"Connect your app to Scrive for e-signatures and eID","sidebarTitle":"Scrive","href":"/integrations/scrive"},{"title":"Connect your app to Tally","sidebarTitle":"Tally","href":"/integrations/tally"},{"title":"Connect your app to Workday","sidebarTitle":"Workday","href":"/integrations/workday"}]},{"group":"Security \u0026 compliance","pages":[{"title":"Run AI-powered penetration tests with Aikido","sidebarTitle":"Aikido","href":"/integrations/aikido"},{"title":"Scan your projects for vulnerabilities with Wiz","sidebarTitle":"Wiz","href":"/integrations/wiz"}]},{"group":"Websites \u0026 CMS","pages":[{"title":"Connect your app to Contentful","sidebarTitle":"Contentful","href":"/integrations/contentful"},{"title":"Connect your app to Storyblok","sidebarTitle":"Storyblok","href":"/integrations/storyblok"},{"title":"Connect your app to Wix","sidebarTitle":"Wix","href":"/integrations/wix"},{"title":"Connect your app to WordPress (self-hosted)","sidebarTitle":"WordPress (self-hosted)","href":"/integrations/wordpress"},{"title":"Connect your app to WordPress.com","sidebarTitle":"WordPress.com","href":"/integrations/wordpress-com"}]}]},{"title":"Integrate any API with Lovable","sidebarTitle":"Connect any API","href":"/integrations/any-api"},{"group":"Git sync","root":{"title":"Sync your Lovable project code with GitHub, GitLab, or Bitbucket","sidebarTitle":"Git sync overview","href":"/integrations/git-sync-overview"},"pages":[{"title":"Sync your Lovable project with GitHub","sidebarTitle":"GitHub","href":"/integrations/github"},{"title":"Sync your Lovable project with GitLab","sidebarTitle":"GitLab","href":"/integrations/gitlab"},{"title":"Sync your Lovable project with Bitbucket","sidebarTitle":"Bitbucket","href":"/integrations/bitbucket"}]}]},{"group":"Collaborate","icon":"users","pages":[{"title":"Collaboration","href":"/features/collaboration"},{"title":"Share a project with internal or external collaborators","sidebarTitle":"Share a project","href":"/features/share-project"},{"title":"Project comments","sidebarTitle":"Project comments","href":"/features/project-comments"},{"title":"Control project access","sidebarTitle":"Project access","href":"/features/project-visibility"}]},{"group":"Deploy \u0026 host","icon":"globe","pages":[{"title":"How Lovable hosts your app","sidebarTitle":"Hosting","href":"/features/hosting"},{"title":"Publish your Lovable project","sidebarTitle":"Publish","href":"/features/publish"},{"title":"Set up a custom domain","sidebarTitle":"Custom domains","href":"/features/custom-domain"},{"title":"Transfer a domain to Lovable","sidebarTitle":"Transfer a domain","href":"/features/transfer-domain"},{"title":"Publish every app in your workspace under your own domain","sidebarTitle":"Publishing domain","tag":"ENT","href":"/features/publishing-domain"},{"title":"Publish apps with branded URLs","sidebarTitle":"Branded app URLs","href":"/features/branded-workspace-urls"},{"group":"Ownership \u0026 portability","root":{"title":"Deployment, hosting, and ownership options with Lovable","sidebarTitle":"Ownership \u0026 portability","href":"/tips-tricks/deployment-hosting-ownership"},"pages":[{"title":"Deploying and hosting outside Lovable","sidebarTitle":"Host outside Lovable","href":"/tips-tricks/external-deployment-hosting"}]}]},{"group":"Grow \u0026 optimize","icon":"chart-line","pages":[{"title":"Growth tools","sidebarTitle":"Growth tools","href":"/features/growth-tools"},{"title":"Optimize your app for SEO and AI search","sidebarTitle":"SEO and AEO","href":"/features/seo-aeo"},{"title":"Analytics","sidebarTitle":"Analytics","href":"/features/analytics"},{"title":"Advertise your app","sidebarTitle":"Ads","href":"/features/ads"},{"title":"Add payments to your app","sidebarTitle":"Payments","href":"/features/payments"},{"title":"Send branded emails from your own domain","sidebarTitle":"Emails","href":"/features/custom-emails"},{"title":"Publish your app as an MCP server","sidebarTitle":"Agent integrations","href":"/features/agent-integrations"},{"title":"Project monitoring","href":"/features/project-monitoring"}]},{"group":"Workspace \u0026 account","icon":"gear","pages":[{"group":"Workspace","root":{"title":"Lovable workspace","sidebarTitle":"Workspace","href":"/features/workspace"},"pages":[{"title":"Workspace admin settings","sidebarTitle":"Admin settings","href":"/features/workspace-admin-settings"},{"title":"Show an announcement banner to your workspace","sidebarTitle":"Announcements","href":"/features/workspace-announcements"},{"title":"Insights","sidebarTitle":"Insights","href":"/features/insights"},{"title":"Delete a workspace","href":"/introduction/delete-workspace"}]},{"group":"Organizations","root":{"title":"Organizations: run several workspaces as one company","sidebarTitle":"Organizations","tag":"ENT","href":"/features/organizations"},"pages":[{"title":"Set up organization identity: domains, SSO, and SCIM","sidebarTitle":"Organization identity","tag":"ENT","href":"/features/organization-identity"},{"title":"Manage people across the workspaces in your organization","sidebarTitle":"Organization people","tag":"ENT","href":"/features/organization-people"}]},{"group":"Access","pages":[{"title":"Manage workspace members from the People tab","sidebarTitle":"People","href":"/features/people"},{"title":"Groups","href":"/features/groups"},{"group":"Identity","root":{"title":"Manage workspace identity and user provisioning","sidebarTitle":"Workspace identity","href":"/features/workspace-identity"},"pages":[{"title":"Verify a domain for your workspace","sidebarTitle":"Verified domains","href":"/features/verified-domains"},{"title":"Set up workspace single sign-on (SSO)","sidebarTitle":"Workspace SSO","description":"Connect Okta, Auth0, Microsoft Entra ID, or any OIDC/SAML 2.0 provider to enable secure, centralized authentication for your workspace.","href":"/features/business/sso"},{"title":"Set up enterprise-managed authentication","sidebarTitle":"Enterprise-managed authentication","href":"/features/enterprise-managed-auth"},{"title":"Set up SCIM user provisioning","sidebarTitle":"SCIM provisioning","description":"Configure SCIM provisioning to automatically create, update, and remove users in Lovable using your identity provider. Manage user access, roles, and lifecycle centrally with Okta, Microsoft Entra ID, and other SCIM 2.0 providers.","tag":"ENT","href":"/features/business/scim"}]},{"title":"Create and manage API keys","sidebarTitle":"API keys","href":"/features/api-keys"},{"title":"Connect apps to Lovable with OAuth","sidebarTitle":"OAuth clients","href":"/features/oauth-clients"}]},{"group":"Security","pages":[{"title":"Privacy \u0026 security settings","sidebarTitle":"Privacy \u0026 security","href":"/features/privacy-and-security-settings"},{"title":"Workspace policies","href":"/features/workspace-policies"},{"title":"Action center","href":"/features/action-center"},{"title":"EU inference","sidebarTitle":"EU inference","tag":"ENT","href":"/features/eu-inference"},{"group":"Security center","root":{"title":"Workspace security center","sidebarTitle":"Workspace security center","href":"/features/security-center"},"pages":[{"title":"Security insights","sidebarTitle":"Security insights","href":"/features/security-insights"}]},{"title":"Audit logs","tag":"ENT","href":"/features/audit-logs"},{"group":"Data exports","root":{"title":"Export audit logs to your SIEM or cloud storage","sidebarTitle":"Data exports","tag":"ENT","href":"/features/data-exports"},"pages":[{"title":"Export Lovable logs to Amazon S3","sidebarTitle":"Amazon S3","tag":"ENT","href":"/features/data-exports-amazon-s3"},{"title":"Export Lovable logs to Azure Blob Storage","sidebarTitle":"Azure Blob Storage","tag":"ENT","href":"/features/data-exports-azure-blob-storage"},{"title":"Export Lovable logs to Azure Log Analytics","sidebarTitle":"Azure Log Analytics","tag":"ENT","href":"/features/data-exports-azure-log-analytics"},{"title":"Export Lovable logs to Google Cloud Storage","sidebarTitle":"Google Cloud Storage","tag":"ENT","href":"/features/data-exports-google-cloud-storage"},{"title":"Export Lovable logs to Splunk","sidebarTitle":"Splunk","tag":"ENT","href":"/features/data-exports-splunk"}]},{"title":"Sensitive data scanning","tag":"ENT","href":"/features/sensitive-data-scanning"},{"title":"Manage training data and privacy","sidebarTitle":"Training data and privacy","href":"/features/business/data-opt-out"}]},{"group":"Your account","root":{"title":"Account settings","href":"/introduction/lovable-account-settings"},"pages":[{"title":"Two-factor authentication (2FA)","href":"/introduction/two-factor-authentication-2-fa"},{"title":"Delete account","href":"/introduction/delete-account"}]}]},{"group":"Plans \u0026 billing","icon":"credit-card","pages":[{"title":"Subscription plans","href":"/introduction/subscription-plans"},{"title":"Change or cancel your subscription","href":"/introduction/manage-subscription"},{"title":"Invoices, payments, and billing details","sidebarTitle":"Invoices and billing","href":"/introduction/invoices-and-billing"},{"title":"Credits and usage","href":"/introduction/credits-and-usage"},{"title":"Credit top-ups","href":"/introduction/credit-top-ups"},{"title":"Usage limits and alerts","sidebarTitle":"Usage limits \u0026 alerts","href":"/features/usage-limits-and-alerts"},{"title":"Low credit balance and out-of-credits recovery","sidebarTitle":"Low balance and recovery","href":"/introduction/out-of-credits"}]},{"group":"Guides \u0026 reference","icon":"life-ring","pages":[{"group":"Guides","pages":[{"title":"How to build a real product with Lovable","sidebarTitle":"Idea to product","href":"/tips-tricks/from-idea-to-app"},{"title":"Launch your site on a custom domain","sidebarTitle":"Launch on a custom domain","href":"/tips-tricks/launch-on-a-custom-domain"},{"title":"Prompting best practices","href":"/prompting/prompting-one"},{"title":"Prompt library","href":"/prompting/prompting-library"},{"title":"Debug and improve your app","sidebarTitle":"Debug \u0026 improve","href":"/prompting/prompting-debugging"},{"title":"Edit Google Docs, Sheets, and Slides in Lovable","sidebarTitle":"Edit Google files","href":"/tips-tricks/google-workspace-editing"}]},{"title":"FAQ","href":"/introduction/faq"},{"title":"Glossary","href":"/glossary"},{"title":"Video tutorials and courses","sidebarTitle":"Videos and courses","href":"/introduction/video-tutorials"},{"title":"Support policy","href":"/introduction/support-policy"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Set up enterprise-managed authentication - Lovable Documentation","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}