diff --git a/apps/docs/components/FooterHelpCallout.tsx b/apps/docs/components/FooterHelpCallout.tsx index 89f3265ec16..429ed15d4e6 100644 --- a/apps/docs/components/FooterHelpCallout.tsx +++ b/apps/docs/components/FooterHelpCallout.tsx @@ -5,7 +5,7 @@ export type FooterHelpCalloutType = 'default' | 'postgres' const content = { default: { title: 'Need some help?', - description: `Not to worry, our specialist engineers are here to help. Submit a support ticket through the [Dashboard](https://app.supabase.com/support/new).`, + description: `Not to worry, our specialist engineers are here to help. Submit a support ticket through the [Dashboard](https://supabase.com/dashboard/support/new).`, }, postgres: { title: 'Looking for Serverless Postgres?', diff --git a/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx b/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx index 15dd0f831d1..ad1a765a81d 100644 --- a/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx +++ b/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx @@ -129,7 +129,7 @@ const TopNavBar: FC = () => { type="outline" as="a" // @ts-ignore - href="https://app.supabase.com" + href="https://supabase.com/dashboard" className="text-scale-1100 text-sm" target="_blank" rel="noreferrer noopener" diff --git a/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx b/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx index 826dda8003d..954a21e8712 100644 --- a/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx +++ b/apps/docs/components/Navigation/NavigationMenu/TopNavBarRef.tsx @@ -119,7 +119,7 @@ const TopNavBarRef: FC = () => { type="text" as="a" // @ts-ignore - href="https://app.supabase.com" + href="https://supabase.com/dashboard" target="_blank" rel="noreferrer noopener" > diff --git a/apps/www/components/CTABanner/index.tsx b/apps/www/components/CTABanner/index.tsx index d1313ad6e12..fb08eb5630e 100644 --- a/apps/www/components/CTABanner/index.tsx +++ b/apps/www/components/CTABanner/index.tsx @@ -16,7 +16,7 @@ const CTABanner = (props: any) => {
- + diff --git a/apps/www/components/Hero.tsx b/apps/www/components/Hero.tsx index d2decb0ab08..b8bec315b95 100644 --- a/apps/www/components/Hero.tsx +++ b/apps/www/components/Hero.tsx @@ -48,7 +48,11 @@ const Hero = () => {
- + sendTelemetryEvent(gaEvents['www_hp_hero_startProject'])}> - + @@ -396,7 +396,7 @@ const Nav = () => { {/*
*/}
- + Sign in diff --git a/apps/www/components/Sections/ProductHeader.tsx b/apps/www/components/Sections/ProductHeader.tsx index 345b2b70b75..c8cafc83795 100644 --- a/apps/www/components/Sections/ProductHeader.tsx +++ b/apps/www/components/Sections/ProductHeader.tsx @@ -43,7 +43,7 @@ const ProductHeader = (props: Types) => ( })}
- +

{description}

- +
diff --git a/examples/auth/nextjs/.env.local.example b/examples/auth/nextjs/.env.local.example index 09419ca438b..d762c758fbb 100644 --- a/examples/auth/nextjs/.env.local.example +++ b/examples/auth/nextjs/.env.local.example @@ -1,4 +1,4 @@ -# Get these from your API settings: https://app.supabase.com/project/_/settings/api +# Get these from your API settings: https://supabase.com/dashboard/project/_/settings/api NEXT_PUBLIC_SUPABASE_URL=your-supabase-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key diff --git a/examples/caching/with-nextjs-13-server-components/.env.local.example b/examples/caching/with-nextjs-13-server-components/.env.local.example index 86322ad66bb..ebd83d9fe35 100644 --- a/examples/caching/with-nextjs-13-server-components/.env.local.example +++ b/examples/caching/with-nextjs-13-server-components/.env.local.example @@ -1,5 +1,5 @@ # these values can be found in your project's API settings -# https://app.supabase.com/project/_/settings/api +# https://supabase.com/dashboard/project/_/settings/api NEXT_PUBLIC_SUPABASE_URL=your-supabase-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key diff --git a/examples/caching/with-nextjs-13-server-components/app/realtime/realtime-posts.tsx b/examples/caching/with-nextjs-13-server-components/app/realtime/realtime-posts.tsx index 551c57dcea1..d02d5a36613 100644 --- a/examples/caching/with-nextjs-13-server-components/app/realtime/realtime-posts.tsx +++ b/examples/caching/with-nextjs-13-server-components/app/realtime/realtime-posts.tsx @@ -17,7 +17,7 @@ export default function RealtimePosts({ serverPosts }: { serverPosts: any }) { useEffect(() => { // ensure you have enabled replication on the `posts` table - // https://app.supabase.com/project/_/database/replication + // https://supabase.com/dashboard/project/_/database/replication const channel = supabase .channel('*') .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'posts' }, (payload) => diff --git a/examples/edge-functions/app/.env.example b/examples/edge-functions/app/.env.example index 5278aee35d5..a0fb63f466b 100644 --- a/examples/edge-functions/app/.env.example +++ b/examples/edge-functions/app/.env.example @@ -1,3 +1,3 @@ -# Get these from your Dashboard: https://app.supabase.com/project/_/settings/api +# Get these from your Dashboard: https://supabase.com/dashboard/project/_/settings/api REACT_APP_SUPABASE_URL= REACT_APP_SUPABASE_ANON_KEY= \ No newline at end of file diff --git a/examples/edge-functions/supabase/.env.local.example b/examples/edge-functions/supabase/.env.local.example index de3b9e65137..6e5ce0b236a 100644 --- a/examples/edge-functions/supabase/.env.local.example +++ b/examples/edge-functions/supabase/.env.local.example @@ -15,7 +15,7 @@ DB_HOSTNAME= DB_PASSWORD= DB_SSL_CERT="-----BEGIN CERTIFICATE----- GET YOUR CERT FROM YOUR PROJECT DASHBOARD -https://app.supabase.com/project/_/settings/database +https://supabase.com/dashboard/project/_/settings/database -----END CERTIFICATE-----" # puppeteer diff --git a/packages/ui/src/components/Command/CommandMenu.tsx b/packages/ui/src/components/Command/CommandMenu.tsx index bb6b7656e57..c76fb086872 100644 --- a/packages/ui/src/components/Command/CommandMenu.tsx +++ b/packages/ui/src/components/Command/CommandMenu.tsx @@ -207,7 +207,7 @@ const CommandMenu = ({ projectRef }: CommandMenuProps) => { {sharedItems.tools.map((item) => { const itemUrl = ( projectRef ? item.url.replace('_', projectRef) : item.url - ).split('https://app.supabase.com')[1] + ).split('https://supabase.com/dashboard')[1] return ( Settings on [app.supabase.com](https://app.supabase.com) + - By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://supabase.com/dashboard) - If "Email Confirmations" is turned on, a user is returned but session will be null - If "Email Confirmations" is turned off, both a `user` and a `session` will be returned - - When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) + - When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://supabase.com/dashboard) examples: - id: sign-up name: Sign up. @@ -106,7 +106,7 @@ functions: notes: | - A user can sign up via email, phone number. - If you provide `email` without a `password`, the user will be sent a magic link. - - The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) + - The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://supabase.com/dashboard) - Similarly, if you provide `phone` without a `password`, the user will be sent a one time password. - If you are looking to sign users in with OAuth in Flutter apps, go to [`signInWithProvider()`](/docs/reference/dart/v0/auth-signinwithprovider). examples: @@ -1073,7 +1073,7 @@ functions: Retrieve URLs for assets in public buckets title: 'from.getPublicUrl()' notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" + - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://supabase.com/dashboard), clicking the overflow menu on a bucket and choosing "Make public" - Policy permissions required: - `buckets` permissions: none - `objects` permissions: none diff --git a/spec/supabase_dart_v1.yml b/spec/supabase_dart_v1.yml index 755d88492cc..1f2489ba4be 100644 --- a/spec/supabase_dart_v1.yml +++ b/spec/supabase_dart_v1.yml @@ -56,13 +56,13 @@ functions: description: | Creates a new user. notes: | - - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://app.supabase.com/project/_/auth/providers). + - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://supabase.com/dashboard/project/_/auth/providers). - **Confirm email** determines if users need to confirm their email address after signing up. - If **Confirm email** is enabled, a `user` is returned but `session` is null. - If **Confirm email** is disabled, both a `user` and a `session` are returned. - - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://app.supabase.com/project/_/auth/url-configuration). + - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://supabase.com/dashboard/project/_/auth/url-configuration). - If signUp() is called for an existing confirmed user: - - If **Confirm email** is enabled in [your project](https://app.supabase.com/project/_/auth/providers), an obfuscated/fake user object is returned. + - If **Confirm email** is enabled in [your project](https://supabase.com/dashboard/project/_/auth/providers), an obfuscated/fake user object is returned. - If **Confirm email** is disabled, the error message, `User already registered` is returned. examples: - id: sign-up @@ -141,7 +141,7 @@ functions: - This method is used for passwordless sign-ins where a OTP is sent to the user's email or phone number. - If you're using an email, you can configure whether you want the user to receive a magiclink or a OTP. - If you're using phone, you can configure whether you want the user to receive a OTP. - - The magic link's destination URL is determined by the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url). You can modify the `SITE_URL` or add additional redirect urls in [your project](https://app.supabase.com/project/_/auth/url-configuration). + - The magic link's destination URL is determined by the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url). You can modify the `SITE_URL` or add additional redirect urls in [your project](https://supabase.com/dashboard/project/_/auth/url-configuration). examples: - id: sign-in-with-email name: Sign in with email. @@ -301,7 +301,7 @@ functions: notes: | - In order to use the `updateUser()` method, the user needs to be signed in first. - By Default, email updates sends a confirmation link to both the user's current and new email. - To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://app.supabase.com/project/_/auth/providers). + To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://supabase.com/dashboard/project/_/auth/providers). examples: - id: update-the-email-for-an-authenticated-user name: Update the email for an authenticated user @@ -1213,7 +1213,7 @@ functions: Retrieve URLs for assets in public buckets title: 'from.getPublicUrl()' notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" + - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://supabase.com/dashboard), clicking the overflow menu on a bucket and choosing "Make public" - Policy permissions required: - `buckets` permissions: none - `objects` permissions: none diff --git a/spec/supabase_js_v1.yml b/spec/supabase_js_v1.yml index c1e212226b9..702c9661638 100644 --- a/spec/supabase_js_v1.yml +++ b/spec/supabase_js_v1.yml @@ -82,10 +82,10 @@ functions: title: 'signUp()' $ref: '@supabase/gotrue-js.GoTrueClient.signUp' notes: | - - By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) + - By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://supabase.com/dashboard) - If "Email Confirmations" is turned on, a `user` is returned but `session` will be null - If "Email Confirmations" is turned off, both a `user` and a `session` will be returned - - When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) + - When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://supabase.com/dashboard) - If signUp() is called for an existing confirmed user: - If "Enable email confirmations" is enabled on the "Authentication" -> "Settings" page, an obfuscated / fake user object will be returned. - If "Enable email confirmations" is disabled, an error with a message "User already registered" will be returned. @@ -147,7 +147,7 @@ functions: notes: | - A user can sign up either via email or OAuth. - If you provide `email` without a `password`, the user will be sent a magic link. - - The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) + - The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://supabase.com/dashboard) - Specifying a `provider` will open the browser to the relevant login page. examples: - id: sign-in-with-email-and-password @@ -196,7 +196,7 @@ functions: the Auth server. If you are using email/phone logins you should set up your own redirects (within the email/sms template). Sometimes you want to control where the user is redirected to after they are logged in. Supabase supports this for - any URL path on your website (the URL must either be on the same domain as your [Site URL](https://app.supabase.com/project/_/auth/url-configuration) or match one of the Redirect URLs). + any URL path on your website (the URL must either be on the same domain as your [Site URL](https://supabase.com/dashboard/project/_/auth/url-configuration) or match one of the Redirect URLs). See [redirect URLs and wildcards](/docs/guides/auth/overview#redirect-urls-and-wildcards) to add additional redirect URLs to your project. code: | @@ -285,7 +285,7 @@ functions: $ref: '@supabase/gotrue-js.GoTrueClient.update' notes: | User email: By Default, email updates sends a confirmation link to both the user's current and new email. - To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://app.supabase.com/project/_/auth/providers). + To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://supabase.com/dashboard/project/_/auth/providers). User metadata: It's generally better to store user data in a table within your public schema (i.e., `public.users`). Use the `update()` method if you have data which rarely changes or is specific only to the logged in user. @@ -1521,7 +1521,7 @@ functions: title: 'from.getPublicUrl()' $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.getPublicUrl' notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" + - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://supabase.com/dashboard), clicking the overflow menu on a bucket and choosing "Make public" - Policy permissions required: - `buckets` permissions: none - `objects` permissions: none diff --git a/spec/supabase_js_v2.yml b/spec/supabase_js_v2.yml index 2b06ecc41f8..c7d7bc7947f 100644 --- a/spec/supabase_js_v2.yml +++ b/spec/supabase_js_v2.yml @@ -68,7 +68,7 @@ functions: ``` description: | By default the API server points to the `public` schema. You can enable other database schemas within the Dashboard. - Go to [Settings > API > Exposed schemas](https://app.supabase.com/project/_/settings/api) and add the schema which you want to expose to the API. + Go to [Settings > API > Exposed schemas](https://supabase.com/dashboard/project/_/settings/api) and add the schema which you want to expose to the API. Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema. - id: custom-fetch-implementation @@ -136,13 +136,13 @@ functions: title: 'signUp()' $ref: '@supabase/gotrue-js.GoTrueClient.signUp' notes: | - - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://app.supabase.com/project/_/auth/providers). + - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://supabase.com/dashboard/project/_/auth/providers). - **Confirm email** determines if users need to confirm their email address after signing up. - If **Confirm email** is enabled, a `user` is returned but `session` is null. - If **Confirm email** is disabled, both a `user` and a `session` are returned. - - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://app.supabase.com/project/_/auth/url-configuration). + - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://supabase.com/dashboard/project/_/auth/url-configuration). - If signUp() is called for an existing confirmed user: - - If **Confirm email** is enabled in [your project](https://app.supabase.com/project/_/auth/providers), an obfuscated/fake user object is returned. + - If **Confirm email** is enabled in [your project](https://supabase.com/dashboard/project/_/auth/providers), an obfuscated/fake user object is returned. - If **Confirm email** is disabled, the error message, `User already registered` is returned. - To fetch the currently logged-in user, refer to [`getUser()`](/docs/reference/javascript/auth-getuser). examples: @@ -233,7 +233,7 @@ functions: - If you're using phone, you can configure whether you want the user to receive a OTP. - The magic link's destination URL is determined by the [`SITE_URL`](/docs/reference/auth/config#site_url). - See [redirect URLs and wildcards](/docs/guides/auth#redirect-urls-and-wildcards) to add additional redirect URLs to your project. - - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://app.supabase.com/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. + - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://supabase.com/dashboard/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. - See our [Twilio Phone Auth Guide](/docs/guides/auth/phone-login/twilio) for details about configuring WhatsApp sign in. examples: - id: sign-in-with-email @@ -439,7 +439,7 @@ functions: notes: | - In order to use the `updateUser()` method, the user needs to be signed in first. - By Default, email updates sends a confirmation link to both the user's current and new email. - To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://app.supabase.com/project/_/auth/providers). + To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://supabase.com/dashboard/project/_/auth/providers). examples: - id: update-the-email-for-an-authenticated-user name: Update the email for an authenticated user @@ -1033,7 +1033,7 @@ functions: title: 'Fetch data: select()' $ref: '@supabase/postgrest-js.PostgrestQueryBuilder.select' notes: | - - By default, Supabase projects return a maximum of 1,000 rows. This setting can be changed in your project's [API settings](https://app.supabase.com/project/_/settings/api). It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. + - By default, Supabase projects return a maximum of 1,000 rows. This setting can be changed in your project's [API settings](https://supabase.com/dashboard/project/_/settings/api). It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. - `select()` can be combined with [Filters](/docs/reference/javascript/using-filters) - `select()` can be combined with [Modifiers](/docs/reference/javascript/using-modifiers) - `apikey` is a reserved keyword if you're using the [Supabase Platform](/docs/guides/platform) and [should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). @@ -4801,7 +4801,7 @@ functions: title: from.getPublicUrl() $ref: '@supabase/storage-js.packages/StorageFileApi.default.getPublicUrl' notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" + - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://supabase.com/dashboard), clicking the overflow menu on a bucket and choosing "Make public" - RLS policy permissions required: - `buckets` table permissions: none - `objects` table permissions: none diff --git a/spec/supabase_kt_v0.yml b/spec/supabase_kt_v0.yml index 43b79a6458b..d20332c6c99 100644 --- a/spec/supabase_kt_v0.yml +++ b/spec/supabase_kt_v0.yml @@ -19,9 +19,9 @@ functions: title: 'Initializing' description: | Independently of which Supabase module you are using, you will need to initialize the main client first and install the module. - + To create a new client, you can use the `createSupabaseClient` function. - + When installing a module, you can pass a block to configure it. examples: @@ -55,43 +55,43 @@ functions: ``` description: | **Common:** - + `alwaysAutoRefresh` - whether the GoTrue plugin should always auto refresh expired sessions automatically. Default: `true` - + `autoLoadFromStorage` - whether the GoTrue plugin should automatically load the session from the session manager. Default: `true` - + `flowType` - Which authentication flow to use. Currently available: FlowType.PKCE and FlowType.IMPLICIT. Default: `FlowType.IMPLICIT` - + `codeVerifierCache` - Interface for saving and loading codes for the PKCE authentication flow. Default: `SettingsCodeVerifierCache` - + `customUrl` - Custom url for the GoTrue API. Can be safely ignored when using Supabase. Default: `null` - + `jwtToken` - Plugin specific JWT Token. Can be ignored when using the GoTrue plugin. Default: `null` - + `retryDelay` - Duration after which the GoTrue plugin should retry a failed session refresh. Default: `10.seconds` - + `sessionManager` - Interface for saving and loading the user session. Default: `SettingsSessionManager` - + **Android & IOS:** - + `scheme` - The scheme for the redirect url, when using deep linking. Default: `supabase` - + `host` - The host for the redirect url, when using deep linking. Default: `login` - + **Android:** - + `enableLifecycleCallbacks` - Whether to stop auto-refresh on focus loss, and resume it on focus again. Default: `true` - + **Desktop:** - + `httpPort`: The port the web server is running on, when logging in with OAuth. Default: `0` (random port). - + `timeout`: The timeout for the web server, when logging in with OAuth. Default: `1.minutes`. - + `htmlTitle`: The title of the redirect page, when logging in with OAuth. Default: `"Supabase Auth"`. - + `htmlText`: The text of the redirect page, when logging in with OAuth. Default: `"Logged in. You may continue in your app."`. - + `htmlIconUrl`: The icon of the redirect page, when logging in with OAuth. Default: `"https://supabase.com/brand-assets/supabase-logo-icon.png"`. - id: configure-postgrest name: Configure PostgREST module @@ -109,11 +109,11 @@ functions: ``` description: | `propertyConversionMethod` - The method to use to convert the property names to the column names when applying filters & using the update method. Default: `PropertyConversionMethod.CAMEL_CASE_TO_SNAKE_CASE` - + `defaultSchema` - The default schema to use for database requests. Default: `public` - + `customUrl` - Custom url for the PostgREST API. Can be safely ignored when using Supabase. Default: `null` - + `jwtToken` - Plugin specific JWT Token. Can be ignored when using the GoTrue plugin. Default: `null` - id: configure-storage name: Configure Storage module @@ -130,17 +130,17 @@ functions: ``` description: | `transferTimeout` - the timeout for uploading and downloading files. Default: `120.seconds` - + `resumable.cache` - Interface for storing resumable upload urls. Default: `ResumableCache.Disk` - + `resumable.defaultChunkSize` - The default chunk size for resumable uploads. Supabase currently only supports a chunk size of 6MB, so be careful when changing this value. Default: `6MB` - + `resumable.retryTimeout` - the timeout for retrying resumable uploads when uploading a chunk fails. Default: `5.seconds` - + `resumable.onlyUpdateStateAfterChunk` - whether the upload state should only be updated after a chunk was uploaded successfully or also when the chunk is currently being uploaded. Default: `false` - + `customUrl` - Custom url for the Storage API. Can be safely ignored when using Supabase. Default: `null` - + `jwtToken` - Plugin specific JWT Token. Can be ignored when using the GoTrue plugin. Default: `null` - id: configure-realtime name: Configure Realtime module @@ -157,17 +157,17 @@ functions: ``` description: | `reconnectDelay` - The delay between reconnect attempts. Default: `7.seconds` - + `heartbeatInterval` - The interval between heartbeat messages. Default: `15.seconds` - + `disconnectOnSessionLoss` - Whether to disconnect from the websocket when the session is lost. Default: `true` - + `secure` - Whether to use wss or ws. Defaults to [SupabaseClient.useHTTPS] when null - + `websocketConfig` - Custom Ktor websocket config - + `customUrl` - Custom url for the Realtime websocket. Can be safely ignored when using Supabase. Default: `null` - + `jwtToken` - Plugin specific JWT Token. Can be ignored when using the GoTrue plugin. Default: `null` - id: configure-functions name: Configure Functions plugin @@ -184,8 +184,8 @@ functions: ``` description: | `customUrl` - Custom url for the Functions API. Can be safely ignored when using Supabase. Default: `null` - - `jwtToken` - Plugin specific JWT Token. Can be ignored when using the GoTrue plugin. Default: `null` + + `jwtToken` - Plugin specific JWT Token. Can be ignored when using the GoTrue plugin. Default: `null` - id: configure-graphql name: Configure GraphQL plugin code: | @@ -203,11 +203,11 @@ functions: ``` description: | `apolloConfiguration` - Custom configuration for the ApolloClient - + `customUrl` - Custom url for the GraphQL API. Can be safely ignored when using Supabase. Default: `null` - + `jwtToken` - Plugin specific JWT Token. Can be ignored when using the GoTrue plugin. Default: `null` - + **You can access the created ApolloClient via `client.graphql.apolloClient`, which automatically adds the required headers depending on your session.** - id: select @@ -347,7 +347,7 @@ functions: title: 'Modify data: update()' notes: | - `update()` should always be combined with a [filter](/docs/reference/kotlin/using-filters) block to avoid updating all records. - - When calling `insert` or `update`, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. + - When calling `insert` or `update`, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. examples: - id: updating-your-data name: Updating your data @@ -435,7 +435,7 @@ functions: - Primary keys should be included in the data payload in order for an update to work correctly. - Primary keys must be natural, not surrogate. There are however, [workarounds](https://github.com/PostgREST/postgrest/issues/1118) for surrogate primary keys. - If you need to insert new data and update existing data at the same time, use [Postgres triggers](https://github.com/supabase/postgrest-js/issues/173#issuecomment-825124550). - - When calling `insert` or `update`, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. + - When calling `insert` or `update`, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. examples: - id: upsert-your-data name: Upsert your data @@ -505,8 +505,8 @@ functions: That's a fancy way of saying that you can put some logic into your database then call it from anywhere. It's especially useful when the logic rarely changes - like password resets and updates. - - - When calling `rpc` with parameters, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. + + - When calling `rpc` with parameters, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. examples: - id: call-a-stored-procedure name: Call a stored procedure @@ -529,7 +529,7 @@ functions: Filters allow you to only return rows that match certain conditions. Filters can be used on `select()`, `update()`, and `delete()` queries. - + You can use two different types for applying filters: ```kotlin eq("country_id", 1) @@ -538,10 +538,10 @@ functions: ```kotlin City::countryId eq 1 ``` - + As you can see on the property syntax: the name of the `countryId` gets converted to `country_id`. - + By default, this is done by converting camel case to snake case, but you can customize this by changing the `PropertyConversionMethod` in the Postgrest Config If a database function returns a table response, you can also apply filters. @@ -2040,11 +2040,11 @@ functions: $ref: '@supabase/gotrue-js.GoTrueClient.signUp' notes: | Creates a new user. - - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://app.supabase.com/project/_/auth/providers). + - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://supabase.com/dashboard/project/_/auth/providers). - **Confirm email** determines if users need to confirm their email address after signing up. - If **Confirm email** is enabled, the return value is null and you will be logged in instead. - If **Confirm email** is disabled, the return value is the user and you won't be logged in automatically. - - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://app.supabase.com/project/_/auth/url-configuration). + - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://supabase.com/dashboard/project/_/auth/url-configuration). - [supabase-kt](https://github.com/supabase-community/supabase-kt/) has default platform implementations: - On JVM, you can currently only verify a sign up through the token. To send the token, rather than a redirect url, you have to change `{{ .ConfirmationURL }}` in your sign up email to `{{ .Token }}` - [deep links](https://developer.android.com/training/app-links/deep-linking) (Android), @@ -2052,7 +2052,7 @@ functions: - To enable deeplinking/url scheme support on Android/IOS set the `host` and the `scheme` in the GoTrue Config and call `client.handleDeeplinks(intent)` (Android) and `client.handleDeeplinks(url)` (IOS) on startup - the website origin (JS) - If signUpWith() is called for an existing confirmed user: - - If **Confirm email** is enabled in [your project](https://app.supabase.com/project/_/auth/providers), an obfuscated/fake user object is returned. + - If **Confirm email** is enabled in [your project](https://supabase.com/dashboard/project/_/auth/providers), an obfuscated/fake user object is returned. - If **Confirm email** is disabled, the error message, `User already registered` is returned. examples: - id: sign-up-phone @@ -2074,7 +2074,7 @@ functions: phoneNumber = "+4912345679" password = "example-password" } - ``` + ``` - id: sign-up-with-additional-user-metadata name: Sign up with additional user metadata isSpotlight: false @@ -2126,7 +2126,7 @@ functions: phoneNumber = "+4912345679" password = "example-password" } - ``` + ``` - id: sign-in-with-id-token name: Sign in with id token isSpotlight: false @@ -2142,7 +2142,7 @@ functions: //... } } - ``` + ``` - id: sign-in-with-otp title: 'sendOtpTo()' $ref: '@supabase/gotrue-js.GoTrueClient.signInWithOtp' @@ -2161,7 +2161,7 @@ functions: - [url schemes](https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app) (IOS) - To enable deeplinking/url scheme support on Android/IOS set the `host` and the `scheme` in the GoTrue Config and call `client.handleDeeplinks(intent)` (Android) and `client.handleDeeplinks(url)` (IOS) on startup - the website origin (JS) - - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://app.supabase.com/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. + - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://supabase.com/dashboard/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. examples: - id: sign-in-with-email name: Sign in with email @@ -2172,7 +2172,7 @@ functions: client.gotrue.sendOtpTo(Email) { email = "example@email.com" } - ``` + ``` - id: sign-in-with-sms-otp name: Sign in with SMS OTP isSpotlight: false @@ -2278,7 +2278,7 @@ functions: client.gotrue.loginWith(SSO.withProvider("21648a9d-8d5a-4555-a9d1-d6375dc14e92")) //the url was opened automatically, if you don't want that, provide a custom redirect url - ``` + ``` - id: sign-out title: 'logout()' $ref: '@supabase/gotrue-js.GoTrueClient.signOut' @@ -2360,7 +2360,7 @@ functions: code: | ```kotlin val user = client.gotrue.retrieveUser("JWT") - ``` + ``` - id: update-user title: 'modifyUser()' $ref: '@supabase/gotrue-js.GoTrueClient.updateUser' @@ -2368,7 +2368,7 @@ functions: Modifies the user data. - In order to use the `modifyUser()` method, the user needs to be signed in first. - By default, email updates sends a confirmation link to both the user's current and new email. - To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://app.supabase.com/project/_/auth/providers). + To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://supabase.com/dashboard/project/_/auth/providers). examples: - id: update-the-email-for-an-authenticated-user name: Update the email for an authenticated user @@ -2420,7 +2420,7 @@ functions: $ref: '@supabase/gotrue-js.GoTrueClient.refreshSession' notes: | This method will refresh the session whether the current one is expired or not. - + - This is done automatically, but can be disabled in the GoTrue config. examples: - id: refresh-current-session @@ -2516,14 +2516,14 @@ functions: code: | ```kotlin val verifiedFactors = client.gotrue.mfa.verifiedFactors - ``` + ``` - id: retrieve-verified-factors name: Retrieve verified factors isSpotlight: true code: | ```kotlin val verifiedFactors = client.gotrue.mfa.retrieveFactorsForCurrentUser() - ``` + ``` - id: mfa-challenge title: 'mfa.challenge()' $ref: '@supabase/gotrue-js.GoTrueMFAApi.challenge' @@ -2604,7 +2604,7 @@ functions: code: | ```kotlin val (current, next) = client.gotrue.mfa.getAuthenticatorAssuranceLevel() - ``` + ``` - id: aal-enabled name: Check whether the user has atleast one verified factor isSpotlight: true @@ -2613,7 +2613,7 @@ functions: val enabled = client.gotrue.mfa.isMfaEnabled //flow variant, automatically emitting new values on session changes val enabledFlow = client.gotrue.mfa.isMfaEnabledFlow - ``` + ``` - id: aal-enabled-for-current-session name: Check whether the user is logged in using AAL2 isSpotlight: true @@ -2622,7 +2622,7 @@ functions: val loggedInUsingMfa = client.gotrue.mfa.loggedInUsingMfa //flow variant, automatically emitting new values on session changes val loggedInUsingMfaFlow = client.gotrue.mfa.loggedInUsingMfaFlow - ``` + ``` - id: admin-api title: 'Overview' notes: | @@ -2719,7 +2719,7 @@ functions: put("name", "John") } } - ``` + ``` - id: auto-confirm-the-users-email name: Auto-confirm the user's email code: | @@ -2926,12 +2926,12 @@ functions: code: | ```kotlin client.gotrue.admin.deleteFactor(uid = "id", factorId = "factor_id") - ``` + ``` - id: invoke title: 'invoke()' description: | Invokes a Supabase Function. See the [guide](/docs/guides/functions) for details on writing Functions. - - When invoking a function with parameters, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. + - When invoking a function with parameters, you have to provide a [serializable value](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) in the function parameter. notes: | - Requires an Authorization header. examples: @@ -2956,7 +2956,7 @@ functions: append(HttpHeaders.ContentType, "application/json") } ) - ``` + ``` - id: reuse-function name: Reuse function by saving it to a variable isSpotlight: true @@ -2978,7 +2978,7 @@ functions: function(body) { set("Header", "Value") } - ``` + ``` - id: subscribe description: | Subscribe to realtime changes in your database. @@ -2989,7 +2989,7 @@ functions: - When using a method with a generic type like `track`, `broadcast` or `broadcastFlow`, you have to provide a [serializable class](/docs/reference/kotlin/installing#add-kotlinx-serialization-required-for-postgrest-and-realtime-serialization) as the type parameter. examples: - id: connect-to-realtime-client - name: Connect to Realtime + name: Connect to Realtime isSpotlight: true code: | ```kotlin @@ -3001,45 +3001,45 @@ functions: ```kotlin @Serializable data class Message(val content: String, val sender: String) - + val channel = client.realtime.createChannel("channelId") { //optional config } - + val broadcastFlow = channel.broadcastFlow(event = "message") - + //in a new coroutine (or use Flow.onEach().launchIn(scope)): broadcastFlow.collect { //it: Message println(it) } - + channel.join(blockUntilJoined = true) - + channel.broadcast(event = "message", Message("I joined!", "John")) - ``` + ``` - id: listen-to-presence-updates name: Listen to presence updates - code: | + code: | ```kotlin @Serializable data class PresenceState(val username: String) - + val connectedUsers = mutableSetOf() val channel = client.realtime.createChannel("channelId") { //optional config } - + val presenceChangeFlow = channel.presenceChangeFlow() - + //in a new coroutine (or use Flow.onEach().launchIn(scope)): presenceChangeFlow.collect { connectedUsers += it.decodeJoinsAs() connectedUsers -= it.decodeLeavesAs() } - + channel.join(blockUntilJoined = true) //send own state - channel.track(PresenceState(username = "John")) + channel.track(PresenceState(username = "John")) - id: listen-to-all-database-changes name: Listen to all database changes code: | @@ -3048,7 +3048,7 @@ functions: //optional config } val changeFlow = channel.postgresChangeFlow(schema = "public") - + //in a new coroutine (or use Flow.onEach().launchIn(scope)): changeFlow.collect { when(it) { @@ -3058,7 +3058,7 @@ functions: is PostgresAction.Update -> println("Updated: ${it.oldRecord} with ${it.record}") } } - + channel.join() ``` - id: listen-to-a-specific-table @@ -3071,7 +3071,7 @@ functions: val changeFlow = channel.postgresChangeFlow(schema = "public") { table = "users" } - + //in a new coroutine (or use Flow.onEach().launchIn(scope)): changeFlow.collect { when(it) { @@ -3081,7 +3081,7 @@ functions: is PostgresAction.Update -> println("Updated: ${it.oldRecord} with ${it.record}") } } - + channel.join() ``` - id: listen-to-inserts @@ -3094,12 +3094,12 @@ functions: val changeFlow = channel.postgresChangeFlow(schema = "public") { table = "users" } - + //in a new coroutine (or use Flow.onEach().launchIn(scope)): changeFlow.collect { println(it.record) } - + channel.join() ``` - id: listen-to-updates @@ -3119,13 +3119,13 @@ functions: val changeFlow = channel.postgresChangeFlow(schema = "public") { table = "users" } - + //in a new coroutine (or use Flow.onEach().launchIn(scope)): changeFlow.collect { println(it.record) println(it.oldRecord) } - + channel.join() ``` - id: listen-to-deletes @@ -3145,12 +3145,12 @@ functions: val changeFlow = channel.postgresChangeFlow(schema = "public") { table = "users" } - + //in a new coroutine (or use Flow.onEach().launchIn(scope)): changeFlow.collect { println(it.oldRecord) } - + channel.join() ``` - id: listening-to-row-level-changes @@ -3165,12 +3165,12 @@ functions: table = "users" filter = "id.eq.1" } - + //in a new coroutine: changeFlow.collect { println(it.oldRecord) } - + channel.join() ``` @@ -3323,7 +3323,7 @@ functions: is UploadStatus.Success -> println("Success") } } - ``` + ``` - id: create-resumable-upload name: Create resumable upload isSpotlight: true @@ -3340,10 +3340,10 @@ functions: size = dataSize, path = "icon.png" ) - ``` + ``` - id: start-resumable-upload name: Start and resumable upload - isSpotlight: true + isSpotlight: true code: | ```kotlin upload.startOrResumeUploading() @@ -3359,7 +3359,7 @@ functions: code: | ```kotlin upload.cancel() - ``` + ``` description: | This will also remove the upload url from the cache - id: listen-to-upload-state @@ -3371,21 +3371,21 @@ functions: println("Paused: ${it.paused}") println("Is done: ${it.isDone}") } - ``` + ``` - id: continue-previous-upload name: Continue previous uploads isSpotlight: true code: | ```kotlin val bucket = client.storage["avatars"] - + //only on JVM/Android: bucket.resumable.continuePreviousFileUploads() .map { it.await() } //await all uploads. This just makes sure the uploads have an update-to-date url. You can also do this in parallel .forEach { upload -> upload.startOrResumeUploading() } - + //on other platforms you may have to continue uploads from the source (Probably better to write an extension function): bucket.resumable.continuePreviousUploads { source, offset -> //create ByteReadChannel from source and seek to offset @@ -3394,7 +3394,7 @@ functions: .forEach { upload -> upload.startOrResumeUploading() } - ``` + ``` - id: from-update title: from.update() @@ -3490,7 +3490,7 @@ functions: val bytes = bucket.downloadPublic("test.png") //or on JVM: bucket.downloadPublicTo("test.png", File("test.png")) - ``` + ``` - id: download-with-transformation name: Download file with transformation code: | @@ -3507,9 +3507,9 @@ functions: fill() quality = 100 } - ``` + ``` - id: download-with-progress - name: Download file with progress + name: Download file with progress code: | ```kotlin val bucket = client.storage["avatars"] @@ -3528,7 +3528,7 @@ functions: else -> {} //The ByteData status will never occur as we are writing directly to a file } } - ``` + ``` - id: from-remove title: from.remove() $ref: '@supabase/storage-js.packages/StorageFileApi.default.remove' diff --git a/spec/supabase_py_v2.yml b/spec/supabase_py_v2.yml index 997dd443a53..b2905a29b8f 100644 --- a/spec/supabase_py_v2.yml +++ b/spec/supabase_py_v2.yml @@ -50,13 +50,13 @@ functions: - id: sign-up title: 'sign_up()' notes: | - - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://app.supabase.com/project/_/auth/providers). + - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://supabase.com/dashboard/project/_/auth/providers). - **Confirm email** determines if users need to confirm their email address after signing up. - If **Confirm email** is enabled, a `user` is returned but `session` is null. - If **Confirm email** is disabled, both a `user` and a `session` are returned. - - By default, when the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url). You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://app.supabase.com/project/_/auth/url-configuration). + - By default, when the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url). You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://supabase.com/dashboard/project/_/auth/url-configuration). - If sign_up() is called for an existing confirmed user: - - If **Confirm email** is enabled in [your project](https://app.supabase.com/project/_/auth/providers), an obfuscated/fake user object is returned. + - If **Confirm email** is enabled in [your project](https://supabase.com/dashboard/project/_/auth/providers), an obfuscated/fake user object is returned. - If **Confirm email** is disabled, the error message, `User already registered` is returned. - To fetch the currently logged-in user, refer to [`getUser()`](/docs/reference/javascript/auth-getuser). examples: @@ -118,7 +118,7 @@ functions: - If you're using phone, you can configure whether you want the user to receive a OTP. - The magic link's destination URL is determined by the [`SITE_URL`](/docs/reference/auth/config#site_url). - See [redirect URLs and wildcards](/docs/guides/auth/overview#redirect-urls-and-wildcards) to add additional redirect URLs to your project. - - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://app.supabase.com/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. + - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://supabase.com/dashboard/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. examples: - id: sign-in-with-email name: Sign in with email @@ -274,7 +274,7 @@ functions: - id: select title: 'Fetch data: select()' notes: | - - By default, Supabase projects return a maximum of 1,000 rows. This setting can be changed in your project's [API settings](https://app.supabase.com/project/_/settings/api). It's recommended that you keep it low to limit the payload size of accidental or malicious requests. + - By default, Supabase projects return a maximum of 1,000 rows. This setting can be changed in your project's [API settings](https://supabase.com/dashboard/project/_/settings/api). It's recommended that you keep it low to limit the payload size of accidental or malicious requests. - `apikey` is a reserved keyword if you're using the [Supabase Platform](/docs/guides/platform) and [should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). examples: - id: getting-your-data @@ -782,7 +782,7 @@ functions: - id: from-get-public-url title: 'from_.get_public_url()' notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" + - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://supabase.com/dashboard), clicking the overflow menu on a bucket and choosing "Make public" - RLS policy permissions required: - `buckets` table permissions: none - `objects` table permissions: none diff --git a/spec/supabase_swift_v0.yml b/spec/supabase_swift_v0.yml index 7928bcc95bd..880cfd4c958 100644 --- a/spec/supabase_swift_v0.yml +++ b/spec/supabase_swift_v0.yml @@ -1985,13 +1985,13 @@ functions: title: 'signUp()' $ref: '@supabase/gotrue-js.GoTrueClient.signUp' notes: | - - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://app.supabase.com/project/_/auth/providers). + - By default, the user needs to verify their email address before logging in. To turn this off, disable **Confirm email** in [your project](https://supabase.com/dashboard/project/_/auth/providers). - **Confirm email** determines if users need to confirm their email address after signing up. - If **Confirm email** is enabled, a `user` is returned but `session` is null. - If **Confirm email** is disabled, both a `user` and a `session` are returned. - - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://app.supabase.com/project/_/auth/url-configuration). + - When the user confirms their email address, they are redirected to the [`SITE_URL`](https://supabase.com/docs/reference/auth/config#site_url) by default. You can modify your `SITE_URL` or add additional redirect URLs in [your project](https://supabase.com/dashboard/project/_/auth/url-configuration). - If signUp() is called for an existing confirmed user: - - If **Confirm email** is enabled in [your project](https://app.supabase.com/project/_/auth/providers), an obfuscated/fake user object is returned. + - If **Confirm email** is enabled in [your project](https://supabase.com/dashboard/project/_/auth/providers), an obfuscated/fake user object is returned. - If **Confirm email** is disabled, the error message, `User already registered` is returned. - To fetch the currently logged-in user, refer to [`getUser()`](/docs/reference/javascript/auth-getuser). examples: @@ -2065,7 +2065,7 @@ functions: - If you're using phone, you can configure whether you want the user to receive a OTP. - The magic link's destination URL is determined by the [`SITE_URL`](/docs/reference/auth/config#site_url). - See [redirect URLs and wildcards](/docs/guides/auth/overview#redirect-urls-and-wildcards) to add additional redirect URLs to your project. - - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://app.supabase.com/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. + - Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, [modify the magic link email template](https://supabase.com/dashboard/project/_/auth/templates) to include `{{ .Token }}` instead of `{{ .ConfirmationURL }}`. examples: - id: sign-in-with-email name: Sign in with email @@ -2209,7 +2209,7 @@ functions: notes: | - In order to use the `updateUser()` method, the user needs to be signed in first. - By default, email updates sends a confirmation link to both the user's current and new email. - To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://app.supabase.com/project/_/auth/providers). + To only send a confirmation link to the user's new email, disable **Secure email change** in your project's [email auth provider settings](https://supabase.com/dashboard/project/_/auth/providers). examples: - id: update-the-email-for-an-authenticated-user name: Update the email for an authenticated user diff --git a/studio/lib/helpers.ts b/studio/lib/helpers.ts index 759643225f0..66d97b5b366 100644 --- a/studio/lib/helpers.ts +++ b/studio/lib/helpers.ts @@ -49,7 +49,7 @@ export const getURL = () => { ? process.env.NEXT_PUBLIC_SITE_URL : process?.env?.VERCEL_URL && process.env.VERCEL_URL !== '' ? process.env.VERCEL_URL - : 'https://app.supabase.com' + : 'https://supabase.com/dashboard' return url.includes('http') ? url : `https://${url}` } diff --git a/studio/pages/vercel/integrate.tsx b/studio/pages/vercel/integrate.tsx index f986fdd8174..c197d84c49f 100644 --- a/studio/pages/vercel/integrate.tsx +++ b/studio/pages/vercel/integrate.tsx @@ -218,7 +218,7 @@ const ProjectLinksEmptyState = () => ( You haven't created a Supabase project yet. Get started by creating a new Supabase project, then close this window and retry adding integration.

- +
Start a new Supabase project diff --git a/studio/tests/components/Auth/Auth.constants.test.js b/studio/tests/components/Auth/Auth.constants.test.js index ab7504014dc..88c02873eb0 100644 --- a/studio/tests/components/Auth/Auth.constants.test.js +++ b/studio/tests/components/Auth/Auth.constants.test.js @@ -28,7 +28,7 @@ describe('Auth.constants: domainRegex', () => { expect(output2).toBe(true) }) test('should validate subdomains', () => { - const mockInput1 = 'https://app.supabase.com' + const mockInput1 = 'https://supabase.com/dashboard' const output1 = urlRegex.test(mockInput1) expect(output1).toBe(true) })