diff --git a/apps/docs/content/guides/platform/project-transfer.mdx b/apps/docs/content/guides/platform/project-transfer.mdx
index 91fe31b7542bf..856441436fe51 100644
--- a/apps/docs/content/guides/platform/project-transfer.mdx
+++ b/apps/docs/content/guides/platform/project-transfer.mdx
@@ -53,4 +53,4 @@ The target organization will be charged at the end of the billing cycle for usag
## Transfer to a different region
-Note that project transfers are only transferring your projects across an organization and cannot be used to transfer between different regions. To move your project to a different region, see [migrating your project](/docs/guides/platform/migrating-and-upgrading-projects#migrate-your-project).
+Note that project transfers are only transferring your projects across an organization and cannot be used to transfer between different regions. To move your project to a different region, see [migrating your project](/docs/guides/platform/migrating-within-supabase).
diff --git a/apps/docs/content/troubleshooting/pausing-pro-projects-vNL-2a.mdx b/apps/docs/content/troubleshooting/pausing-pro-projects-vNL-2a.mdx
index f451edf32c93a..f783efb49a709 100644
--- a/apps/docs/content/troubleshooting/pausing-pro-projects-vNL-2a.mdx
+++ b/apps/docs/content/troubleshooting/pausing-pro-projects-vNL-2a.mdx
@@ -14,7 +14,7 @@ Pro-Projects at the moment cannot be paused. However, [You are allowed to have t
If a project is under 500MB, you can [transfer it to be under a free organization](/docs/guides/platform/project-transfer). Afterwards, you can initiate a pause.
-Alternatively, you can download a [daily backup](/dashboard/project/_/database/backups/scheduled) of just your database for archiving. You can also manually download a .SQL file of your database and storage buckets by following this [guide](/docs/guides/platform/migrating-and-upgrading-projects#migrate-your-project).
+Alternatively, you can download a [daily backup](/dashboard/project/_/database/backups/scheduled) of just your database for archiving. You can also manually download a .SQL file of your database and storage buckets by following this [guide](/docs/guides/platform/migrating-within-supabase/backup-restore).
You can also download your storage buckets with the [Supabase CLI:](/docs/guides/cli/getting-started?queryGroups=platform&platform=npx)
diff --git a/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStarted.utils.tsx b/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStarted.utils.tsx
index a5eb527201034..be2fe1fbb651e 100644
--- a/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStarted.utils.tsx
+++ b/apps/studio/components/interfaces/HomeNew/GettingStarted/GettingStarted.utils.tsx
@@ -37,7 +37,6 @@ export const getCodeWorkflowSteps = ({
hasCliSetup,
hasSampleData,
hasRlsPolicies,
- hasConfiguredAuth,
hasAppConnected,
hasFirstUser,
hasStorageObjects,
@@ -140,15 +139,6 @@ export const getCodeWorkflowSteps = ({
},
],
},
- {
- key: 'setup-auth',
- status: hasConfiguredAuth ? 'complete' : 'incomplete',
- title: 'Allow user signups',
- icon: ,
- description:
- "It's time to configure your authentication providers and settings for Supabase Auth, so jump into the configuration page and tailor the providers you need.",
- actions: [{ label: 'Configure', href: `/project/${ref}/auth/providers`, variant: 'default' }],
- },
{
key: 'connect-app',
status: hasAppConnected ? 'complete' : 'incomplete',
@@ -246,7 +236,6 @@ export const getNoCodeWorkflowSteps = ({
hasTables,
hasSampleData,
hasRlsPolicies,
- hasConfiguredAuth,
hasAppConnected,
hasFirstUser,
hasStorageObjects,
@@ -323,17 +312,6 @@ export const getNoCodeWorkflowSteps = ({
},
],
},
- {
- key: 'setup-auth',
- status: hasConfiguredAuth ? 'complete' : 'incomplete',
- title: 'Allow user signups',
- icon: ,
- description:
- "It's time to set up authentication so you can start signing up users, configuring providers and settings from the auth dashboard.",
- actions: [
- { label: 'Configure auth', href: `/project/${ref}/auth/providers`, variant: 'default' },
- ],
- },
{
key: 'connect-app',
status: hasAppConnected ? 'complete' : 'incomplete',
diff --git a/apps/studio/components/interfaces/HomeNew/GettingStarted/useGettingStartedProgress.ts b/apps/studio/components/interfaces/HomeNew/GettingStarted/useGettingStartedProgress.ts
index 51bef8978cc63..62c2d7b464b60 100644
--- a/apps/studio/components/interfaces/HomeNew/GettingStarted/useGettingStartedProgress.ts
+++ b/apps/studio/components/interfaces/HomeNew/GettingStarted/useGettingStartedProgress.ts
@@ -18,7 +18,6 @@ type GettingStartedStatuses = {
hasCliSetup: boolean
hasSampleData: boolean
hasRlsPolicies: boolean
- hasConfiguredAuth: boolean
hasAppConnected: boolean
hasFirstUser: boolean
hasStorageObjects: boolean
@@ -94,7 +93,6 @@ export const useGettingStartedProgress = (): GettingStartedStatuses => {
const hasRlsPolicies = (policiesData?.length ?? 0) > 0
const allowSignupsEnabled = authConfig ? !authConfig.DISABLE_SIGNUP : false
const emailProviderEnabled = !!authConfig?.EXTERNAL_EMAIL_ENABLED
- const hasConfiguredAuth = allowSignupsEnabled && emailProviderEnabled
const hasFirstUser = !!usersCountData && !usersCountData.is_estimate && usersCountData.count > 0
const hasStorageObjects = (storageTablesData ?? []).some(
(table) => table.name === 'objects' && Number(table?.live_rows_estimate ?? 0) > 0
@@ -119,7 +117,6 @@ export const useGettingStartedProgress = (): GettingStartedStatuses => {
hasCliSetup,
hasSampleData,
hasRlsPolicies,
- hasConfiguredAuth,
hasAppConnected,
hasFirstUser,
hasStorageObjects,
diff --git a/apps/studio/components/interfaces/SignIn/SignInMfaForm.tsx b/apps/studio/components/interfaces/SignIn/SignInMfaForm.tsx
index c1e09f73f7c54..31e22f38b2597 100644
--- a/apps/studio/components/interfaces/SignIn/SignInMfaForm.tsx
+++ b/apps/studio/components/interfaces/SignIn/SignInMfaForm.tsx
@@ -8,6 +8,7 @@ import { useEffect, useState } from 'react'
import { SubmitHandler, useForm } from 'react-hook-form'
import z from 'zod'
+import { useAuthError } from 'common'
import AlertError from 'components/ui/AlertError'
import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader'
import { useMfaChallengeAndVerifyMutation } from 'data/profile/mfa-challenge-and-verify-mutation'
@@ -86,6 +87,22 @@ export const SignInMfaForm = ({ context = 'sign-in' }: SignInMfaFormProps) => {
}
}, [factors?.totp, isSuccessFactors, router, queryClient])
+ const error = useAuthError()
+
+ if (error) {
+ return (
+
+ Back to sign in
+
+ }
+ />
+ )
+ }
+
return (
<>
{isLoadingFactors && }
diff --git a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HomeIcon.tsx b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HomeIcon.tsx
index aaed9c2cc7935..95e7abe28a98f 100644
--- a/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HomeIcon.tsx
+++ b/apps/studio/components/layouts/ProjectLayout/LayoutHeader/HomeIcon.tsx
@@ -1,4 +1,3 @@
-import Image from 'next/image'
import Link from 'next/link'
import { useRouter } from 'next/router'
@@ -7,11 +6,14 @@ import { useOrganizationsQuery } from 'data/organizations/organizations-query'
import { useLocalStorageQuery } from 'hooks/misc/useLocalStorage'
import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization'
import { IS_PLATFORM } from 'lib/constants'
+import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled'
export const HomeIcon = () => {
const { data: selectedOrganization } = useSelectedOrganizationQuery()
const { data: organizations } = useOrganizationsQuery()
+ const largeLogo = useIsFeatureEnabled('branding:large_logo')
+
const router = useRouter()
const [lastVisitedOrganization] = useLocalStorageQuery(
LOCAL_STORAGE_KEYS.LAST_VISITED_ORGANIZATION,
@@ -29,12 +31,10 @@ export const HomeIcon = () => {
return (
-
)
diff --git a/apps/studio/components/layouts/ProjectLayout/PauseFailedState.tsx b/apps/studio/components/layouts/ProjectLayout/PauseFailedState.tsx
index f0141fa27639b..ca0a7f839c2ae 100644
--- a/apps/studio/components/layouts/ProjectLayout/PauseFailedState.tsx
+++ b/apps/studio/components/layouts/ProjectLayout/PauseFailedState.tsx
@@ -70,7 +70,7 @@ export const PauseFailedState = () => {