diff --git a/apps/docs/content/guides/ai/python-clients.mdx b/apps/docs/content/guides/ai/python-clients.mdx index 08e1646adb2d3..7bbff8aa1a158 100644 --- a/apps/docs/content/guides/ai/python-clients.mdx +++ b/apps/docs/content/guides/ai/python-clients.mdx @@ -11,7 +11,9 @@ For data science or ephemeral workloads, the [Supabase Vecs](https://supabase.gi -You can get your connection string from the [**Database Settings**](https://supabase.com/dashboard/project/_/database/settings) page in your dashboard. Make sure to check **Use connection pooling**, then copy the URI. Also, change the URI scheme from `postgres` to `postgresql`. `vecs` uses SQLAlchemy under the hood, which only supports `postgresql` as a dialect. +Click [**Connect**](https://supabase.com/dashboard/project/_/?showConnect=true) at the top of any project page to get your connection string. + +Copy the URI from the **Shared pooler** option. diff --git a/apps/docs/content/guides/ai/rag-with-permissions.mdx b/apps/docs/content/guides/ai/rag-with-permissions.mdx index a2c86fdc8d9e6..edd7a4503162c 100644 --- a/apps/docs/content/guides/ai/rag-with-permissions.mdx +++ b/apps/docs/content/guides/ai/rag-with-permissions.mdx @@ -189,7 +189,7 @@ Since we're managing users and authentication outside of Supabase, we have two o #### Direct Postgres connection -You can directly connect to your Supabase Postgres DB using the [connection info](/dashboard/project/_/database/settings) on your project's Database Settings page. To use RLS with this method, we use a custom session variable that contains the current user's ID: +You can directly connect to your Supabase Postgres DB using the [connection info](https://supabase.com/dashboard/project/_/?showConnect=true) on a project page. To use RLS with this method, we use a custom session variable that contains the current user's ID: ```sql -- enable row level security diff --git a/apps/docs/content/guides/database/beekeeper-studio.mdx b/apps/docs/content/guides/database/beekeeper-studio.mdx index 30f7413f061e3..c40eec40e7554 100644 --- a/apps/docs/content/guides/database/beekeeper-studio.mdx +++ b/apps/docs/content/guides/database/beekeeper-studio.mdx @@ -28,7 +28,7 @@ hideToc: true - Get your connection credentials from the [`Database Settings`](https://supabase.com/dashboard/project/_/database/settings). You will need: + Get your connection credentials from the [**Connect** panel](https://supabase.com/dashboard/project/_/?showConnect=true). You will need: - host - username - password diff --git a/apps/docs/content/guides/database/connecting-to-postgres/serverless-drivers.mdx b/apps/docs/content/guides/database/connecting-to-postgres/serverless-drivers.mdx index 7c38a6d8c358b..afd8febfd7e9b 100644 --- a/apps/docs/content/guides/database/connecting-to-postgres/serverless-drivers.mdx +++ b/apps/docs/content/guides/database/connecting-to-postgres/serverless-drivers.mdx @@ -64,7 +64,7 @@ Choose one of these Vercel Deploy Templates which use our [Vercel Deploy Integra ### Manual configuration -In your [`Database Settings`](https://supabase.com/dashboard/project/_/database/settings), make sure `Use connection pooler` is checked and `Transaction` mode is selected, then copy the URI and save it as the `POSTGRES_URL` environment variable. Remember to replace the password placeholder with your actual database password and add the following suffix `?workaround=supabase-pooler.vercel`. +In your [`Database Settings`](https://supabase.com/dashboard/project/_?showConnect=true) and copy the URI from the `Transaction pooler` section and save it as the `POSTGRES_URL` environment variable. Remember to replace the password placeholder with your actual database password and add the following suffix `?workaround=supabase-pooler.vercel`. ```txt .env.local POSTGRES_URL="postgres://postgres.cfcxynqnhdybqtbhjemm:[YOUR-PASSWORD]@aws-0-ap-southeast-1.pooler.supabase.com:6543/postgres?workaround=supabase-pooler.vercel" diff --git a/apps/docs/content/guides/database/drizzle.mdx b/apps/docs/content/guides/database/drizzle.mdx index 90008a2bf3f38..04966beaf98df 100644 --- a/apps/docs/content/guides/database/drizzle.mdx +++ b/apps/docs/content/guides/database/drizzle.mdx @@ -66,7 +66,7 @@ If you plan on solely using Drizzle instead of the Supabase Data API (PostgREST) Connect to your database using the Connection Pooler. - In your [`Database Settings`](https://supabase.com/dashboard/project/_/database/settings), make sure `Use connection pooler` is checked, then copy the URI and save it as the `DATABASE_URL` environment variable. Remember to replace the password placeholder with your actual database password. + From the project [**Connect** panel](https://supabase.com/dashboard/project/_?showConnect=true), copy the URI from the "Shared Pooler" option and save it as the `DATABASE_URL` environment variable. Remember to replace the password placeholder with your actual database password. diff --git a/apps/docs/content/guides/database/postgres-js.mdx b/apps/docs/content/guides/database/postgres-js.mdx index a6e1d63f1c95a..f709bde47b111 100644 --- a/apps/docs/content/guides/database/postgres-js.mdx +++ b/apps/docs/content/guides/database/postgres-js.mdx @@ -36,7 +36,7 @@ hideToc: true Create a `db.js` file with the connection details. - To get your connection details, go to your [`Database Settings`](https://supabase.com/dashboard/project/_/database/settings). Make sure `Use connection pooling` is enabled. Choose `Transaction Mode` if you're on a platform with transient connections, such as a serverless function, and `Session Mode` if you have a long-lived connection. Copy the URI and save it as the environment variable `DATABASE_URL`. + To get your connection details, go to the [**Connect** panel](https://supabase.com/dashboard/project/_?showConnect=true). Choose **Transaction pooler** if you're on a platform with transient connections, such as a serverless function, and **Session pooler** if you have a long-lived connection. Copy the URI and save it as the environment variable `DATABASE_URL`. diff --git a/apps/docs/content/guides/database/postgres/setup-replication-external.mdx b/apps/docs/content/guides/database/postgres/setup-replication-external.mdx index 8f310856a68b1..16ad9f11bd9ec 100644 --- a/apps/docs/content/guides/database/postgres/setup-replication-external.mdx +++ b/apps/docs/content/guides/database/postgres/setup-replication-external.mdx @@ -27,7 +27,7 @@ select pg_create_logical_replication_slot('example_slot', 'pgoutput'); -This will need a **direct** connection (not a Connection Pooler) to your database and you can find the connection info in the [Dashboard](https://supabase.com/dashboard/project/_/database/settings). +This will need a **direct** connection (not a Connection Pooler) to your database and you can find the connection info in the [**Connect** panel](https://supabase.com/dashboard/project/_?showConnect=true) in the `Direct connection` section. You will also need to ensure that IPv6 is supported by your replication destination (or you can enable the [IPv4 add-on](/docs/guides/platform/ipv4-address)) diff --git a/apps/docs/content/guides/database/psql.mdx b/apps/docs/content/guides/database/psql.mdx index ba95702475bba..3f8ad183054c2 100644 --- a/apps/docs/content/guides/database/psql.mdx +++ b/apps/docs/content/guides/database/psql.mdx @@ -17,7 +17,7 @@ You can obtain your connection info and Server root certificate from your applic Download your [SSL certificate](#connecting-with-ssl) to `/path/to/prod-supabase.cer`. -Find your connection settings. Go to your [`Database Settings`](https://supabase.com/dashboard/project/_/database/settings) and make sure `Use connection pooling` is checked. Change the connection mode to `Session`, and copy the parameters into the connection string: +Find your connection settings. Go to the project [**Connect** panel](https://supabase.com/dashboard/project/_?showConnect=true) and copy the URL from the `Session pooler` section, and copy the parameters into the connection string: ```shell psql "sslmode=verify-full sslrootcert=/path/to/prod-supabase.cer host=[CLOUD_PROVIDER]-0-[REGION].pooler.supabase.com dbname=postgres user=postgres.[PROJECT_REF]" diff --git a/apps/docs/content/guides/functions/kysely-postgres.mdx b/apps/docs/content/guides/functions/kysely-postgres.mdx index 2e6a1b83939f4..aea900281b082 100644 --- a/apps/docs/content/guides/functions/kysely-postgres.mdx +++ b/apps/docs/content/guides/functions/kysely-postgres.mdx @@ -21,7 +21,7 @@ Combining Kysely with Deno Postgres gives you a convenient developer experience Find the example on [GitHub](https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/kysely-postgres) -Get your database connection credentials from your [Supabase Dashboard](https://supabase.com/dashboard/project/_/database/settings) and store them in an `.env` file: +Get your database connection credentials from the project's [**Connect** panel](https://supabase.com/dashboard/project/_/?showConnect=true) and store them in an `.env` file: ```bash .env DB_HOSTNAME= diff --git a/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx b/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx index e96908862bbbe..e73bae18f2953 100644 --- a/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx +++ b/apps/docs/content/guides/getting-started/quickstarts/redwoodjs.mdx @@ -27,9 +27,7 @@ hideToc: true - Go to the [Database Settings page](https://supabase.com/dashboard/project/_/database/settings). In this quickstart, we are going to connect via the connection pooler. If your network supports IPv6, you can connect to the database directly without using the connection pooler. - - We will use the pooler both in `Transaction` and `Session` mode. `Transaction` mode is used for application queries and `Session` mode is used for running migrations with Prisma. + Open the project [**Connect** panel](https://supabase.com/dashboard/project/_?showConnect=true). This quickstart connects using the **Transaction pooler** and **Session pooler** mode. Transaction mode is used for application queries and Session mode is used for running migrations with Prisma. To do this, set the connection mode to `Transaction` in the [Database Settings page](https://supabase.com/dashboard/project/_/database/settings) and copy the connection string and append `?pgbouncer=true&&connection_limit=1`. `pgbouncer=true` disables Prisma from generating prepared statements. This is required since our connection pooler does not support prepared statements in transaction mode yet. The `connection_limit=1` parameter is only required if you are using Prisma from a serverless environment. This is the Transaction mode connection string. diff --git a/apps/docs/content/guides/platform/read-replicas.mdx b/apps/docs/content/guides/platform/read-replicas.mdx index 0a8fd4761310f..e460d4a6e5372 100644 --- a/apps/docs/content/guides/platform/read-replicas.mdx +++ b/apps/docs/content/guides/platform/read-replicas.mdx @@ -104,7 +104,7 @@ Read Replicas offer the following features: Each Read Replica has its own dedicated database and API endpoints. -- Find the database endpoint on the [Database Settings page](/dashboard/project/_/database/settings) under **Connection Info** +- Find the database endpoint on the projects [**Connect** panel](https://supabase.com/dashboard/project/_?showConnect=true) - Find the API endpoint on the [API Settings page](/dashboard/project/_/settings/api) under **Project URL** Read Replicas only support `GET` requests from the [REST API](/docs/guides/api). If you are calling a read-only Postgres function through the REST API, make sure to set the `get: true` [option](/docs/reference/javascript/rpc?queryGroups=example&example=call-a-read-only-postgres-function). diff --git a/apps/docs/content/troubleshooting/how-to-delete-vercel-linked-projects-9d08aa.mdx b/apps/docs/content/troubleshooting/how-to-delete-vercel-linked-projects-9d08aa.mdx new file mode 100644 index 0000000000000..0d4625be92bbf --- /dev/null +++ b/apps/docs/content/troubleshooting/how-to-delete-vercel-linked-projects-9d08aa.mdx @@ -0,0 +1,171 @@ +--- +title = "How to delete Vercel linked projects" +topics = [ "platform" ] +keywords = [ "vercel", "delete", "marketplace", "projects", "organization" ] +database_id = "9d08aa12-3456-789a-bcde-f012345678ab" + +[api] +--- + +When you create Supabase projects through the Vercel Marketplace, complete deletion requires action on both platforms. + +## Deleting projects + +### Method 1: Delete from Supabase first, then clean up in Vercel + +This method requires two steps - first delete in Supabase, then clean up in Vercel. + +1. **Delete from Supabase Dashboard** + + Go to your [project settings](https://supabase.com/dashboard/project/_/settings/general) and click **"Delete project"**. This permanently removes your database and marks it as "uninstalled" in Vercel. + + Delete project button in Supabase project settings + +2. **Clean up in Vercel** + + After deleting from Supabase, clean up in Vercel: + + - Navigate to your [Vercel dashboard](https://vercel.com/dashboard) + - Go to the **Storage** tab + - Click on the Supabase project (it will show as "uninstalled") + + Uninstalled Supabase project in Vercel Storage + + - Scroll down and find the **Settings** tab in the sidebar + + Vercel project settings navigation + + - Click **Delete Database** to completely remove it + + Delete Database button in Vercel settings{' '} + +### Method 2: Delete directly from Vercel (removes from both platforms) + +This method deletes the project from both Vercel and Supabase in one action. + +1. **Open Vercel dashboard** + + Navigate to your [Vercel dashboard](https://vercel.com/dashboard) and go to the **Storage** tab. + +2. **Select your project** + + Click on your Supabase project to open it. + +3. **Navigate to Settings** + + Find and click the **Settings** tab in the sidebar. + + Vercel project settings navigation + +4. **Delete the project** + + Scroll down and click **Delete Database**. This removes the project from both Vercel and Supabase simultaneously. + + Delete Database button in Vercel settings + +## Transferring projects from Vercel organizations + + + +**Important:** You cannot directly "unlink" a project from a Vercel organization. Instead, you need to transfer the project to another organization. + + + +If you want to move a Vercel-linked project to a different organization: + +1. **Transfer the project** + + Go to your [project settings](https://supabase.com/dashboard/project/_/settings/general) and look for **"Transfer Project"**. Transfer your project to a different organization. + + Transfer project option in Supabase project settings + + Note: The owner must be a member of both the source and target organizations. Transferring a Vercel-managed project will remove its linked Vercel storage from your team. + +2. **Clean up in Vercel** + + After transferring, the project will show as "uninstalled" in Vercel but still appear under Storage. You need to manually delete it: + + - Navigate to your [Vercel dashboard](https://vercel.com/dashboard) + - Go to the **Storage** tab + - Click on the Supabase project (it will show as "uninstalled") + - Go to **Settings** and click **Delete Database** + +3. **Reconnect if needed** + + To reconnect the transferred project after the transfer, use the standard Vercel integration. + +## Deleting the organization + + + +Delete all associated projects before deleting the organization. + + + +1. **Navigate to organization settings and delete** + + Go to your [organization settings](https://supabase.com/dashboard/org/_/general) and click **"Delete organization in Vercel Marketplace"**. This opens the Vercel settings page. + + Delete organization in Vercel Marketplace button + +2. **Uninstall integration** + + Scroll down and click **Uninstall Integration** to fully remove the organization and disconnect it from Vercel. + + Uninstall Integration button in Vercel settings + +## Important notes + +- Projects created through Vercel Marketplace can be deleted from either platform (Supabase or Vercel), with cleanup required on Vercel if deleting from Supabase first. +- Deletion permanently removes all project data. +- After uninstalling the integration, non-Vercel users invited to the organization retain their access. + +## Troubleshooting + +If you encounter issues: + +1. Verify you have necessary permissions in both platforms +2. Refresh your browser and retry +3. Ensure all projects are deleted before deleting the organization +4. [Contact support](https://supabase.com/dashboard/support/new) if problems persist + +## Related resources + +- [Vercel Marketplace integration guide](/docs/guides/integrations/vercel-marketplace) +- [Managing Supabase organizations](/docs/guides/platform/access-control) diff --git a/apps/docs/public/img/troubleshooting/54428354-a1f4-4c44-bd03-d87f4b925d94.png b/apps/docs/public/img/troubleshooting/54428354-a1f4-4c44-bd03-d87f4b925d94.png new file mode 100644 index 0000000000000..ea112beea6168 Binary files /dev/null and b/apps/docs/public/img/troubleshooting/54428354-a1f4-4c44-bd03-d87f4b925d94.png differ diff --git a/apps/docs/public/img/troubleshooting/627c1a3e-153e-40b5-9a91-a4f7bd7673a4.png b/apps/docs/public/img/troubleshooting/627c1a3e-153e-40b5-9a91-a4f7bd7673a4.png new file mode 100644 index 0000000000000..81c666ad57385 Binary files /dev/null and b/apps/docs/public/img/troubleshooting/627c1a3e-153e-40b5-9a91-a4f7bd7673a4.png differ diff --git a/apps/docs/public/img/troubleshooting/9c00830a-8901-abcd-ef12-34567890abcd.png b/apps/docs/public/img/troubleshooting/9c00830a-8901-abcd-ef12-34567890abcd.png new file mode 100644 index 0000000000000..fc4b16a8a6f97 Binary files /dev/null and b/apps/docs/public/img/troubleshooting/9c00830a-8901-abcd-ef12-34567890abcd.png differ diff --git a/apps/docs/public/img/troubleshooting/c4e7b193-4567-8901-abcd-ef1234567890.png b/apps/docs/public/img/troubleshooting/c4e7b193-4567-8901-abcd-ef1234567890.png new file mode 100644 index 0000000000000..10649da3517b5 Binary files /dev/null and b/apps/docs/public/img/troubleshooting/c4e7b193-4567-8901-abcd-ef1234567890.png differ diff --git a/apps/docs/public/img/troubleshooting/cf450bca-aad3-4783-ae3b-5cc83e0afa54.png b/apps/docs/public/img/troubleshooting/cf450bca-aad3-4783-ae3b-5cc83e0afa54.png new file mode 100644 index 0000000000000..19c5a6b1aec2a Binary files /dev/null and b/apps/docs/public/img/troubleshooting/cf450bca-aad3-4783-ae3b-5cc83e0afa54.png differ diff --git a/apps/docs/public/img/troubleshooting/da70bc33-f123-4567-8901-abcdef123456.png b/apps/docs/public/img/troubleshooting/da70bc33-f123-4567-8901-abcdef123456.png new file mode 100644 index 0000000000000..2cea7ebe885bd Binary files /dev/null and b/apps/docs/public/img/troubleshooting/da70bc33-f123-4567-8901-abcdef123456.png differ diff --git a/apps/docs/public/img/troubleshooting/e8f50ef1-2b3c-4d5e-9f8a-1234567890ab.png b/apps/docs/public/img/troubleshooting/e8f50ef1-2b3c-4d5e-9f8a-1234567890ab.png new file mode 100644 index 0000000000000..50b480e0cc899 Binary files /dev/null and b/apps/docs/public/img/troubleshooting/e8f50ef1-2b3c-4d5e-9f8a-1234567890ab.png differ diff --git a/apps/docs/public/img/troubleshooting/f294a4d6-ef12-3456-7890-abcdef123456.png b/apps/docs/public/img/troubleshooting/f294a4d6-ef12-3456-7890-abcdef123456.png new file mode 100644 index 0000000000000..7761da27ba563 Binary files /dev/null and b/apps/docs/public/img/troubleshooting/f294a4d6-ef12-3456-7890-abcdef123456.png differ diff --git a/apps/docs/public/img/troubleshooting/ff01bba8-abcd-ef12-3456-7890abcdef12.png b/apps/docs/public/img/troubleshooting/ff01bba8-abcd-ef12-3456-7890abcdef12.png new file mode 100644 index 0000000000000..c781daef2bfe3 Binary files /dev/null and b/apps/docs/public/img/troubleshooting/ff01bba8-abcd-ef12-3456-7890abcdef12.png differ