diff --git a/.github/workflows/docs-lint-v2-scheduled.yml b/.github/workflows/docs-lint-v2-scheduled.yml
index f476dfcf920..1eeeb3315dc 100644
--- a/.github/workflows/docs-lint-v2-scheduled.yml
+++ b/.github/workflows/docs-lint-v2-scheduled.yml
@@ -31,10 +31,10 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
- key: b848086c298be920a40aa9b26c65c7575ae8deca
+ key: 3186b58a532c98d7f470f2b887c2b74a086d5f2e
- name: install linter
if: steps.cache-cargo.outputs.cache-hit != 'true'
- run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev b848086c298be920a40aa9b26c65c7575ae8deca
+ run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev 3186b58a532c98d7f470f2b887c2b74a086d5f2e
- name: run linter
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/docs-lint-v2.yml b/.github/workflows/docs-lint-v2.yml
index 4ceb1f82102..ac6f230e817 100644
--- a/.github/workflows/docs-lint-v2.yml
+++ b/.github/workflows/docs-lint-v2.yml
@@ -53,10 +53,10 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
- key: b848086c298be920a40aa9b26c65c7575ae8deca
+ key: 3186b58a532c98d7f470f2b887c2b74a086d5f2e
- name: install linter
if: steps.filter.outputs.docs == 'true' && steps.cache-cargo.outputs.cache-hit != 'true'
- run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev b848086c298be920a40aa9b26c65c7575ae8deca
+ run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev 3186b58a532c98d7f470f2b887c2b74a086d5f2e
- name: install reviewdog
if: steps.filter.outputs.docs == 'true'
uses: reviewdog/action-setup@3f401fe1d58fe77e10d665ab713057375e39b887 # v1.3.0
diff --git a/apps/docs/content/guides/auth/auth-helpers.mdx b/apps/docs/content/guides/auth/auth-helpers.mdx
index 909e15797ab..52fd9f29bfe 100644
--- a/apps/docs/content/guides/auth/auth-helpers.mdx
+++ b/apps/docs/content/guides/auth/auth-helpers.mdx
@@ -6,6 +6,7 @@ sidebar_label: 'Overview'
---
+
The Auth helpers package is deprecated. Use the new `@supabase/ssr` package for Server Side Authentication. `@supabase/ssr` takes the core concepts of the Auth Helpers package and makes them available to any server framework. Check out the [migration doc](/docs/guides/auth/server-side/migrating-to-ssr-from-auth-helpers) to learn more.
diff --git a/apps/docs/content/guides/auth/social-login/auth-apple.mdx b/apps/docs/content/guides/auth/social-login/auth-apple.mdx
index b2fd02f6eec..a40f572ef8b 100644
--- a/apps/docs/content/guides/auth/social-login/auth-apple.mdx
+++ b/apps/docs/content/guides/auth/social-login/auth-apple.mdx
@@ -136,7 +136,9 @@ curl -X PATCH "https://api.supabase.com/v1/projects/$PROJECT_REF/config/auth" \
4. Register the Services ID you created to your project's [Apple provider configuration in the Supabase dashboard](https://supabase.com/dashboard/project/_/auth/providers) under _Client IDs_.
+
If you're using Sign in with Apple JS you do not need to configure the OAuth settings.
+
diff --git a/apps/docs/content/guides/database/dbeaver.mdx b/apps/docs/content/guides/database/dbeaver.mdx
index 09c3ca2b925..0f650c9303a 100644
--- a/apps/docs/content/guides/database/dbeaver.mdx
+++ b/apps/docs/content/guides/database/dbeaver.mdx
@@ -38,7 +38,9 @@ If you do not have DBeaver, you can download it from its [website](https://dbeav
You will also need your database's password. If you forgot it, you can generate a new one in the settings.
+
If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
diff --git a/apps/docs/content/guides/database/extensions/wrappers/overview.mdx b/apps/docs/content/guides/database/extensions/wrappers/overview.mdx
index 9a4b558224a..210d86d9bce 100644
--- a/apps/docs/content/guides/database/extensions/wrappers/overview.mdx
+++ b/apps/docs/content/guides/database/extensions/wrappers/overview.mdx
@@ -191,9 +191,11 @@ As an example, go to [SQL Editor](https://supabase.com/dashboard/project/_/sql/n
3. Restrict the function execution to a specific role only, for example, the authenticated users:
- By default, the function created can be executed by any roles like `anon`, that means the
- foreign table is public accessible. Always limit the function execution permission to
- appropriate roles.
+
+ By default, the function created can be executed by any roles like `anon`, that means the
+ foreign table is public accessible. Always limit the function execution permission to
+ appropriate roles.
+
```sql
diff --git a/apps/docs/content/guides/database/import-data.mdx b/apps/docs/content/guides/database/import-data.mdx
index dd8ae4c2b44..dd1f5dd2562 100644
--- a/apps/docs/content/guides/database/import-data.mdx
+++ b/apps/docs/content/guides/database/import-data.mdx
@@ -75,6 +75,7 @@ Read more about [Bulk data loading.](/docs/guides/database/tables#bulk-data-load
The Supabase API allows you to programmatically import data into your tables. You can use various client libraries to interact with the API and perform data import operations. This approach is useful when you need to automate data imports, and it gives you fine-grained control over the process. Refer to our [API guide](/docs/guides/api) for more details.
+
When importing data via the Supabase API, it's advisable to refrain from bulk imports. This helps ensure a smooth data transfer process and prevents any potential disruptions.
Read more about [Rate Limiting, Resource Allocation, & Abuse Prevention.](/docs/guides/platform/going-into-prod#rate-limiting-resource-allocation--abuse-prevention)
diff --git a/apps/docs/content/guides/database/postgres/timeouts.mdx b/apps/docs/content/guides/database/postgres/timeouts.mdx
index 21cfa0c9c23..50d0bb9485d 100644
--- a/apps/docs/content/guides/database/postgres/timeouts.mdx
+++ b/apps/docs/content/guides/database/postgres/timeouts.mdx
@@ -71,7 +71,8 @@ alter role example_role set statement_timeout = '10min'; -- could also use secon
```
- If you are changing the timeout for the Supabase Client API calls, you will need to reload PostgREST to reflect the timeout changes by running the following script:
+
+If you are changing the timeout for the Supabase Client API calls, you will need to reload PostgREST to reflect the timeout changes by running the following script:
```sql
NOTIFY pgrst, 'reload config';
diff --git a/apps/docs/content/guides/database/prisma.mdx b/apps/docs/content/guides/database/prisma.mdx
index 300afb10b84..682f598eef8 100644
--- a/apps/docs/content/guides/database/prisma.mdx
+++ b/apps/docs/content/guides/database/prisma.mdx
@@ -125,7 +125,9 @@ If you plan to solely use Prisma instead of the Supabase Data API (PostgREST), t
- On your project dashboard, click [Connect](https://supabase.com/dashboard/project/_?showConnect=true)
- Find your Supavisor Session pooler string. It should end with 5432. It will be used in your `.env` file.
+
If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
- If you plan on deploying Prisma to a serverless or auto-scaling environment, you'll also need your Supavisor transaction mode string.
@@ -282,7 +284,9 @@ If you plan to solely use Prisma instead of the Supabase Data API (PostgREST), t
--script > prisma/migrations/0_init_supabase/migration.sql
```
+
If there are any conflicts, reference [Prisma's official doc](https://www.prisma.io/docs/orm/prisma-migrate/getting-started#work-around-features-not-supported-by-prisma-schema-language) or the [trouble shooting guide](/docs/guides/database/prisma/prisma-troubleshooting) for more details
+
```bash
@@ -308,7 +312,9 @@ If you plan to solely use Prisma instead of the Supabase Data API (PostgREST), t
--script > prisma/migrations/0_init_supabase/migration.sql
```
+
If there are any conflicts, reference [Prisma's official doc](https://www.prisma.io/docs/orm/prisma-migrate/getting-started#work-around-features-not-supported-by-prisma-schema-language) or the [trouble shooting guide](/docs/guides/database/prisma/prisma-troubleshooting) for more details
+
```bash
@@ -334,7 +340,9 @@ If you plan to solely use Prisma instead of the Supabase Data API (PostgREST), t
--script > prisma/migrations/0_init_supabase/migration.sql
```
+
If there are any conflicts, reference [Prisma's official doc](https://www.prisma.io/docs/orm/prisma-migrate/getting-started#work-around-features-not-supported-by-prisma-schema-language) or the [trouble shooting guide](/docs/guides/database/prisma/prisma-troubleshooting) for more details
+
```bash
@@ -360,7 +368,9 @@ If you plan to solely use Prisma instead of the Supabase Data API (PostgREST), t
--script > prisma/migrations/0_init_supabase/migration.sql
```
+
If there are any conflicts, reference [Prisma's official doc](https://www.prisma.io/docs/orm/prisma-migrate/getting-started#work-around-features-not-supported-by-prisma-schema-language) or the [trouble shooting guide](/docs/guides/database/prisma-troubleshooting) for more details
+
```bash
diff --git a/apps/docs/content/guides/database/replication/setting-up-replication.mdx b/apps/docs/content/guides/database/replication/setting-up-replication.mdx
index 665356ed99f..5258bc2d18e 100644
--- a/apps/docs/content/guides/database/replication/setting-up-replication.mdx
+++ b/apps/docs/content/guides/database/replication/setting-up-replication.mdx
@@ -15,9 +15,9 @@ To set up replication, the following is recommended:
To create a replication slot, you will need to use the `postgres` user and follow the instructions in our [guide](/docs/guides/database/postgres/setup-replication-external).
- If you are running Postgres 17 or higher, you can create a new user and grant them replication
- permissions with the `postgres` user. For versions below 17, you will need to use the `postgres`
- user.
+
+If you are running Postgres 17 or higher, you can create a new user and grant them replication permissions with the `postgres` user. For versions below 17, you will need to use the `postgres` user.
+
If you are replicating to an external system and using any of the tools below, check their documentation first and we have added additional information where the setup with Supabase can vary.
diff --git a/apps/docs/content/guides/deployment/branching.mdx b/apps/docs/content/guides/deployment/branching.mdx
index 7fe2fc29772..bd714019414 100644
--- a/apps/docs/content/guides/deployment/branching.mdx
+++ b/apps/docs/content/guides/deployment/branching.mdx
@@ -115,7 +115,9 @@ You can use the [Supabase CLI](/docs/guides/cli) to manage changes inside a loca
# postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:6543/postgres
```
+
If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
@@ -593,8 +595,9 @@ password = "env(SMTP_PASSWORD)"
```
- Secrets set for one branch are not automatically available in other branches. You'll need to set
- them separately for each branch that needs them.
+
+Secrets set for one branch are not automatically available in other branches. You'll need to set them separately for each branch that needs them.
+
#### Using dotenvx for git-based workflow
@@ -649,10 +652,9 @@ secret = "env(SUPABASE_AUTH_EXTERNAL_GITHUB_SECRET)"
```
- The `encrypted:` syntax only works for designated "secret" fields in the configuration (like
- `secret` in auth providers). Using encrypted values in other fields will not be automatically
- decrypted and may cause issues. For non-secret fields, use environment variables with the `env()`
- syntax instead.
+
+The `encrypted:` syntax only works for designated "secret" fields in the configuration (like `secret` in auth providers). Using encrypted values in other fields will not be automatically decrypted and may cause issues. For non-secret fields, use environment variables with the `env()` syntax instead.
+
##### Using with preview branches
diff --git a/apps/docs/content/guides/functions/dependencies.mdx b/apps/docs/content/guides/functions/dependencies.mdx
index d13bd7fa187..837307d4d36 100644
--- a/apps/docs/content/guides/functions/dependencies.mdx
+++ b/apps/docs/content/guides/functions/dependencies.mdx
@@ -90,9 +90,9 @@ The recommended file structure for deployment:
```
- While it's possible to use a global `deno.json` in the `/supabase/functions` directory for local
- development, this approach is not recommended for deployment. Each function should maintain its
- own configuration to ensure proper isolation and dependency management.
+
+While it's possible to use a global `deno.json` in the `/supabase/functions` directory for local development, this approach is not recommended for deployment. Each function should maintain its own configuration to ensure proper isolation and dependency management.
+
### Using import maps (legacy)
@@ -124,9 +124,11 @@ The recommended file structure:
```
- While it's possible to use a global `import_map.json` in the `/supabase/functions` directory for
- local development, this approach is not recommended for deployment. Each function should maintain
- its own import map to ensure proper isolation.
+
+While it's possible to use a global `import_map.json` in the `/supabase/functions` directory for
+local development, this approach is not recommended for deployment. Each function should maintain
+its own import map to ensure proper isolation.
+
If using import maps with VSCode, update your `.vscode/settings.json` to point to your function-specific import map:
@@ -173,9 +175,9 @@ Add your registry details in the `.npmrc` file. Follow [this guide](https://docs
```
- While it's possible to use a global `.npmrc` in the `/supabase/functions` directory for local
- development, we recommend using function-specific `.npmrc` files for deployment to maintain proper
- isolation.
+
+While it's possible to use a global `.npmrc` in the `/supabase/functions` directory for local development, we recommend using function-specific `.npmrc` files for deployment to maintain proper isolation.
+
After configuring your `.npmrc`, you can import the private package in your function code:
diff --git a/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx b/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx
index b54da3e98ce..833bdef47d8 100644
--- a/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx
+++ b/apps/docs/content/guides/functions/examples/elevenlabs-generate-speech-stream.mdx
@@ -9,8 +9,9 @@ tocVideo: '4Roog4PAmZ8'
In this tutorial you will learn how to build an edge API to generate, stream, store, and cache speech using Supabase Edge Functions, Supabase Storage, and [ElevenLabs text to speech API](https://elevenlabs.io/text-to-speech).
- Find the [example project on
- GitHub](https://github.com/elevenlabs/elevenlabs-examples/tree/main/examples/text-to-speech/supabase/stream-and-cache-storage).
+
+Find the [example project on GitHub](https://github.com/elevenlabs/elevenlabs-examples/tree/main/examples/text-to-speech/supabase/stream-and-cache-storage).
+
## Requirements
@@ -43,9 +44,9 @@ objects_path = "./audio"
```
- Upon running `supabase start` this will create a new storage bucket in your local Supabase
- project. Should you want to push this to your hosted Supabase project, you can run `supabase seed
- buckets --linked`.
+
+Upon running `supabase start` this will create a new storage bucket in your local Supabase project. Should you want to push this to your hosted Supabase project, you can run `supabase seed buckets --linked`.
+
### Configure background tasks for Supabase Edge Functions
@@ -58,8 +59,9 @@ policy = "per_worker"
```
- When running with `per_worker` policy, Function won't auto-reload on edits. You will need to
- manually restart it by running `supabase functions serve`.
+
+When running with `per_worker` policy, Function won't auto-reload on edits. You will need to manually restart it by running `supabase functions serve`.
+
### Create a Supabase Edge Function for speech generation
diff --git a/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx b/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx
index 32ee3cf091c..535efc970ab 100644
--- a/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx
+++ b/apps/docs/content/guides/functions/examples/elevenlabs-transcribe-speech.mdx
@@ -11,8 +11,9 @@ In this tutorial you will learn how to build a Telegram bot that transcribes aud
To check out what the end result will look like, you can test out the [t.me/ElevenLabsScribeBot](https://t.me/ElevenLabsScribeBot)
- Find the [example project on
- GitHub](https://github.com/elevenlabs/elevenlabs-examples/tree/main/examples/speech-to-text/telegram-transcription-bot).
+
+Find the [example project on GitHub](https://github.com/elevenlabs/elevenlabs-examples/tree/main/examples/speech-to-text/telegram-transcription-bot).
+
## Requirements
diff --git a/apps/docs/content/guides/functions/logging.mdx b/apps/docs/content/guides/functions/logging.mdx
index 980ad500f11..d0a66d1972c 100644
--- a/apps/docs/content/guides/functions/logging.mdx
+++ b/apps/docs/content/guides/functions/logging.mdx
@@ -29,8 +29,9 @@ When [developing locally](/docs/guides/functions/local-development) you will see
- **Boot and Shutdown Logs**: The Logs tool extends its coverage to include logs for the boot and shutdown of functions.
- A custom log message can contain up to 10,000 characters. A function can log up to 100 events
- within a 10 second period.
+
+A custom log message can contain up to 10,000 characters. A function can log up to 100 events within a 10 second period.
+
Here is an example of how to use custom logs events in your function:
diff --git a/apps/docs/content/guides/functions/troubleshooting.mdx b/apps/docs/content/guides/functions/troubleshooting.mdx
index 74a28ac557e..1c3861cb2f9 100644
--- a/apps/docs/content/guides/functions/troubleshooting.mdx
+++ b/apps/docs/content/guides/functions/troubleshooting.mdx
@@ -59,9 +59,9 @@ To determine how much memory and CPU your Edge Function consumes, follow these s
- View the resource usage **Metrics** on the charts provided.
- Edge Functions have limited resources (CPU, memory, and execution time) compared to traditional
- servers. Make sure your functions are optimized for performance and don't exceed the allocated
- resources.
+
+Edge Functions have limited resources (CPU, memory, and execution time) compared to traditional servers. Make sure your functions are optimized for performance and don't exceed the allocated resources.
+
### Understanding CPU soft and hard limits
diff --git a/apps/docs/content/guides/functions/wasm.mdx b/apps/docs/content/guides/functions/wasm.mdx
index 024d585b210..2a8e46dc052 100644
--- a/apps/docs/content/guides/functions/wasm.mdx
+++ b/apps/docs/content/guides/functions/wasm.mdx
@@ -63,8 +63,9 @@ meta="index.ts"
/>
- Supabase Edge Functions currently use Deno 1.46. From [Deno 2.1, importing Wasm
- modules](https://deno.com/blog/v2.1) will require even less boilerplate code.
+
+Supabase Edge Functions currently use Deno 1.46. From [Deno 2.1, importing Wasm modules](https://deno.com/blog/v2.1) will require even less boilerplate code.
+
### Bundle and deploy the Edge Function
@@ -72,7 +73,9 @@ meta="index.ts"
Before deploying the Edge Function, we need to ensure it bundles the Wasm module with it. We can do this by defining it in the `static_files` for the function in `superbase/config.toml`.
- You will need update Supabase CLI to 2.7.0 or higher for the `static_files` support.
+
+You will need update Supabase CLI to 2.7.0 or higher for the `static_files` support.
+
```toml
diff --git a/apps/docs/content/guides/getting-started/quickstarts/laravel.mdx b/apps/docs/content/guides/getting-started/quickstarts/laravel.mdx
index 134f593cf46..c6887ac5593 100644
--- a/apps/docs/content/guides/getting-started/quickstarts/laravel.mdx
+++ b/apps/docs/content/guides/getting-started/quickstarts/laravel.mdx
@@ -54,7 +54,9 @@ hideToc: true
Look for the Session Pooler connection string and copy the string. You will need to replace the Password with your saved database password. You can reset your database password in your [database settings](https://supabase.com/dashboard/project/_/settings/database) if you do not have it.
+
If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
diff --git a/apps/docs/content/guides/getting-started/quickstarts/ruby-on-rails.mdx b/apps/docs/content/guides/getting-started/quickstarts/ruby-on-rails.mdx
index 482a1ddcd49..506a54ecebd 100644
--- a/apps/docs/content/guides/getting-started/quickstarts/ruby-on-rails.mdx
+++ b/apps/docs/content/guides/getting-started/quickstarts/ruby-on-rails.mdx
@@ -36,7 +36,9 @@ hideToc: true
Look for the Session Pooler connection string and copy the string. You will need to replace the Password with your saved database password. You can reset your database password in your [database settings](https://supabase.com/dashboard/project/_/settings/database) if you do not have it.
+
If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
diff --git a/apps/docs/content/guides/platform/cost-control.mdx b/apps/docs/content/guides/platform/cost-control.mdx
index 52f10d07913..1ecbaee2955 100644
--- a/apps/docs/content/guides/platform/cost-control.mdx
+++ b/apps/docs/content/guides/platform/cost-control.mdx
@@ -14,7 +14,9 @@ This feature is available only with the Pro Plan. However, you will not be charg
After exceeding the quota for a usage item, further usage of that item is disallowed until the next billing cycle. You don't get charged for over-usage but your services will be restricted according to our [Fair Use Policy](/docs/guides/platform/billing-faq#fair-use-policy) if you consistently exceed the quota.
- Note that only certain usage items are covered by the Spend Cap.
+
+Note that only certain usage items are covered by the Spend Cap.
+
### What happens when the Spend Cap is off?
@@ -22,8 +24,9 @@ After exceeding the quota for a usage item, further usage of that item is disall
Your projects will continue to operate after exceeding the quota for a usage item. Any additional usage will be charged based on the item's cost per unit, as outlined on the [pricing page](https://supabase.com/pricing).
- When the Spend Cap is off, we recommend monitoring your usage and costs on the [organization's
- usage page](https://supabase.com/dashboard/org/_/usage).
+
+When the Spend Cap is off, we recommend monitoring your usage and costs on the [organization's usage page](https://supabase.com/dashboard/org/_/usage).
+
### Usage items covered by the Spend Cap
diff --git a/apps/docs/content/guides/platform/ipv4-address.mdx b/apps/docs/content/guides/platform/ipv4-address.mdx
index 790ea522196..13c0b01abe7 100644
--- a/apps/docs/content/guides/platform/ipv4-address.mdx
+++ b/apps/docs/content/guides/platform/ipv4-address.mdx
@@ -53,8 +53,9 @@ curl -X DELETE "https://api.supabase.com/v1/projects/$PROJECT_REF/billing/addons
```
- Note that direct database connections can experience a short amount of downtime when toggling the
- add-on due to DNS reconfiguration and propagation. Generally, this should be less than a minute.
+
+Note that direct database connections can experience a short amount of downtime when toggling the add-on due to DNS reconfiguration and propagation. Generally, this should be less than a minute.
+
## Read replicas and IPv4 add-on
diff --git a/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx b/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx
index 540d18d7ecb..20ed939ed52 100644
--- a/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx
+++ b/apps/docs/content/guides/platform/migrating-to-supabase/postgres.mdx
@@ -29,8 +29,9 @@ Example:
1. Under Session pooler, Copy the connection string and replace the password placeholder with your database password.
- If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have
- the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
+ If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+

diff --git a/apps/docs/content/guides/platform/migrating-to-supabase/render.mdx b/apps/docs/content/guides/platform/migrating-to-supabase/render.mdx
index d45299a4f68..5234d6a5774 100644
--- a/apps/docs/content/guides/platform/migrating-to-supabase/render.mdx
+++ b/apps/docs/content/guides/platform/migrating-to-supabase/render.mdx
@@ -33,8 +33,9 @@ Example:
1. Under Session pooler, Copy the connection string and replace the password placeholder with your database password.
- If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have
- the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
+ If you're in an [IPv6 environment](https://github.com/orgs/supabase/discussions/27034) or have the IPv4 Add-On, you can use the direct connection string instead of Supavisor in Session mode.
+
## Migrate the database
diff --git a/apps/docs/content/guides/platform/migrating-within-supabase/backup-restore.mdx b/apps/docs/content/guides/platform/migrating-within-supabase/backup-restore.mdx
index 7adf88e612c..fd3644ed209 100644
--- a/apps/docs/content/guides/platform/migrating-within-supabase/backup-restore.mdx
+++ b/apps/docs/content/guides/platform/migrating-within-supabase/backup-restore.mdx
@@ -24,7 +24,9 @@ breadcrumb: 'Migrations'
On your project dashboard, click [Connect](https://supabase.com/dashboard/project/_?showConnect=true).
+
Use the Session pooler connection string by default. If your ISP supports IPv6 or you have the IPv4 add-on enabled, use the direct connection string.
+
Session pooler connection string:
@@ -112,7 +114,9 @@ breadcrumb: 'Migrations'
Go to the [project page](/dashboard/project/_/) and click the "**Connect**" button at the top of the page for the connection string.
+
Use the Session pooler connection string by default. If your ISP supports IPv6, use the direct connection string.
+
Session pooler connection string:
diff --git a/apps/docs/content/guides/platform/migrating-within-supabase/dashboard-restore.mdx b/apps/docs/content/guides/platform/migrating-within-supabase/dashboard-restore.mdx
index 9e367c14ff2..b859a1aabf5 100644
--- a/apps/docs/content/guides/platform/migrating-within-supabase/dashboard-restore.mdx
+++ b/apps/docs/content/guides/platform/migrating-within-supabase/dashboard-restore.mdx
@@ -67,7 +67,9 @@ Here are some things that are not stored directly in your database and will requ
On your project dashboard, click [Connect](https://supabase.com/dashboard/project/_?showConnect=true).
+
Use the Session pooler connection string by default. If your ISP supports IPv6 or you have the IPv4 add-on enabled, use the direct connection string.
+
Session pooler connection string:
@@ -85,7 +87,9 @@ Here are some things that are not stored directly in your database and will requ
+
It can take a few minutes for the database password reset to take effect. Especially if multiple password resets are done.
+
Reset the password in the [Database Settings](https://supabase.com/dashboard/project/_/settings/database).
diff --git a/apps/docs/content/guides/platform/read-replicas.mdx b/apps/docs/content/guides/platform/read-replicas.mdx
index 4d6b836fbf2..ca41806c276 100644
--- a/apps/docs/content/guides/platform/read-replicas.mdx
+++ b/apps/docs/content/guides/platform/read-replicas.mdx
@@ -136,6 +136,7 @@ To call a read-only Postgres function on Read Replicas through the REST API, use
If you remove all Read Replicas from your project, the load balancer and its endpoint are removed as well. Make sure to redirect requests back to your Primary database before removal.
+
Starting on April 4th, 2025, we will be changing the routing behavior for eligible Data API requests:
- Old behavior: Round-Robin distribution among all databases (all read replicas + primary) of your project, regardless of location
diff --git a/apps/docs/content/guides/platform/upgrading.mdx b/apps/docs/content/guides/platform/upgrading.mdx
index 2f70f5cdb9a..0460df6c339 100644
--- a/apps/docs/content/guides/platform/upgrading.mdx
+++ b/apps/docs/content/guides/platform/upgrading.mdx
@@ -23,8 +23,9 @@ The Migrating and Upgrading guide has been divided into two sections. To migrate
## In-place upgrades
- For security purposes, passwords for custom roles are not backed up and, following a restore, they
- would need to be reset. See [here](/docs/guides/platform/backups#daily-backups) for more details
+
+For security purposes, passwords for custom roles are not backed up and, following a restore, they would need to be reset. See [here](/docs/guides/platform/backups#daily-backups) for more details
+
In-place upgrades uses `pg_upgrade`. For projects larger than 1GB, this method is generally faster than a pause and restore cycle, and the speed advantage grows with the size of the database.
diff --git a/apps/docs/content/guides/storage/debugging/error-codes.mdx b/apps/docs/content/guides/storage/debugging/error-codes.mdx
index 6e7296ea6a0..15bd0bbdcc9 100644
--- a/apps/docs/content/guides/storage/debugging/error-codes.mdx
+++ b/apps/docs/content/guides/storage/debugging/error-codes.mdx
@@ -9,8 +9,9 @@ sidebar_label: 'Debugging'
## Storage error codes
- We are transitioning to a new error code system. For backwards compatibility you'll still be able
- to see the old error codes
+
+We are transitioning to a new error code system. For backwards compatibility you'll still be able to see the old error codes
+
Error codes in Storage are returned as part of the response body. They are useful for debugging and understanding what went wrong with your request.
diff --git a/apps/docs/content/guides/storage/schema/design.mdx b/apps/docs/content/guides/storage/schema/design.mdx
index 2a55a2a2445..f2d380a8dd4 100644
--- a/apps/docs/content/guides/storage/schema/design.mdx
+++ b/apps/docs/content/guides/storage/schema/design.mdx
@@ -9,6 +9,7 @@ sidebar_label: 'Schema'
Storage uses Postgres to store metadata regarding your buckets and objects. Users can use RLS (Row-Level Security) policies for access control. This data is stored in a dedicated schema within your project called `storage`.
+
When working with SQL, it's crucial to consider all records in Storage tables as read-only. All operations, including uploading, copying, moving, and deleting, should **exclusively go through the API**.
This is important because the storage schema only stores the metadata and the actual objects are stored in a provider like S3. Deleting the metadata doesn't remove the object in the underlying storage provider. This results in your object being inaccessible, but you'll still be billed for it.
diff --git a/apps/docs/content/guides/telemetry/log-drains.mdx b/apps/docs/content/guides/telemetry/log-drains.mdx
index 14c2d2d8282..7b1920a1955 100644
--- a/apps/docs/content/guides/telemetry/log-drains.mdx
+++ b/apps/docs/content/guides/telemetry/log-drains.mdx
@@ -28,7 +28,9 @@ Custom headers can optionally be configured for all requests.
Note that requests are **unsigned**.
- Unsigned requests to HTTP endpoints are temporary and all requests will signed in the near future.
+
+Unsigned requests to HTTP endpoints are temporary and all requests will signed in the near future.
+
- Grafana Cloud has an unofficial integration for scraping Supabase metrics. See their
- [docs](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/integrations/integration-reference/integration-supabase/)
- for instructions on how to configure it but note that it is not full-featured nor is it supported
- by Supabase.
+
+Grafana Cloud has an unofficial integration for scraping Supabase metrics. See their [docs](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/integrations/integration-reference/integration-supabase/) for instructions on how to configure it but note that it is not full-featured nor is it supported
+by Supabase.
+
diff --git a/apps/docs/package.json b/apps/docs/package.json
index bfb0967f5e0..ffdb824768a 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -124,7 +124,7 @@
"@graphql-codegen/cli": "5.0.5",
"@graphql-codegen/typescript": "4.1.6",
"@graphql-codegen/typescript-resolvers": "4.5.0",
- "@supabase/supa-mdx-lint": "0.2.9-alpha",
+ "@supabase/supa-mdx-lint": "0.3.0-alpha",
"@types/common-tags": "^1.8.4",
"@types/estree": "1.0.5",
"@types/graphql-validation-complexity": "^0.4.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f57023ab284..dfdb2263705 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -544,8 +544,8 @@ importers:
specifier: 4.5.0
version: 4.5.0(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.10.0))(graphql@16.10.0)
'@supabase/supa-mdx-lint':
- specifier: 0.2.9-alpha
- version: 0.2.9-alpha
+ specifier: 0.3.0-alpha
+ version: 0.3.0-alpha
'@types/common-tags':
specifier: ^1.8.4
version: 1.8.4
@@ -7914,8 +7914,8 @@ packages:
engines: {node: '>=10'}
os: [darwin]
- '@supabase/supa-mdx-lint-darwin@0.2.9-alpha':
- resolution: {integrity: sha512-o2Yy7VdfGvzgy9jwDUt90u0ZWms9OECyC/BG+elZN3ShSsIUrK/Z/OMZVYrGnbGLfoFmYPcAuawIsqGvhc/iCg==}
+ '@supabase/supa-mdx-lint-darwin@0.3.0-alpha':
+ resolution: {integrity: sha512-gz8qGrigRIoU3JAAygmxUxTm+0RoNy3fbIW7jo5eLxY9V3aMmLqwAUMsV8afNJjtjP7MpnpN8poIFsSSAi9A7w==}
engines: {node: '>=10'}
os: [darwin]
@@ -7925,8 +7925,8 @@ packages:
cpu: [arm64]
os: [linux, freebsd]
- '@supabase/supa-mdx-lint-linux-arm64@0.2.9-alpha':
- resolution: {integrity: sha512-62spvawezXAr3u0tTVi+NfQEMXL6WG3+fZHh5y6ftIRb74m3AIBfnstltf4zf3PQ2U4mxIBbFK6FV5hXF8pRcA==}
+ '@supabase/supa-mdx-lint-linux-arm64@0.3.0-alpha':
+ resolution: {integrity: sha512-zr3wBIsKltCFpb4yJ9vmCehFcMTihSdGwfFi9p1cZEUs0n+Kug6MncFpk5PsSsahNHk76IvdxnyLxkD0NV+YZA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux, freebsd]
@@ -7937,8 +7937,8 @@ packages:
cpu: [arm]
os: [linux, freebsd]
- '@supabase/supa-mdx-lint-linux-arm@0.2.9-alpha':
- resolution: {integrity: sha512-AhrT5bYc/N46Dmn/4pgTYAQE2aPhVA5+XKAWYVFAxPjEw9x64Cf9Y4oGwt9i4gFrhxEBckNVuH7a8UWfg6legw==}
+ '@supabase/supa-mdx-lint-linux-arm@0.3.0-alpha':
+ resolution: {integrity: sha512-azoxkiqEv4AJfjaWxp0qoL/KFuKXSG2Ex8DgwVwkpbB3oWXhVuuTxMSyJYB2l49seRXBprIrDlXDpzC6BH4leQ==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux, freebsd]
@@ -7949,8 +7949,8 @@ packages:
cpu: [x86, ia32]
os: [linux, freebsd]
- '@supabase/supa-mdx-lint-linux-i686@0.2.9-alpha':
- resolution: {integrity: sha512-WGZksF2EFZqK5EJBQj7myvlZvKuw56DVxg+TWe8dvgPJFsy60NooUJJX/0Gij8i10bSGnP9hcrIUUinSBFrnKA==}
+ '@supabase/supa-mdx-lint-linux-i686@0.3.0-alpha':
+ resolution: {integrity: sha512-QjIL+qwfCO+pbQR+VnLpPryp/Hm8FoPufWl31/v8Yo2GGJdwYYgt8NU/iDzDjbzLCXdnfRLO68BPh5g5DmG7wQ==}
engines: {node: '>=10'}
cpu: [x86, ia32]
os: [linux, freebsd]
@@ -7961,8 +7961,8 @@ packages:
cpu: [x64]
os: [linux, freebsd]
- '@supabase/supa-mdx-lint-linux-x64@0.2.9-alpha':
- resolution: {integrity: sha512-jN8G4D7T5zxq8/5sfriMO6PSxXmXTZxQKwUS2cX/+PV24Biln3STzdszxwA4ix6D3rrSaYc+AZ/rVkmZGLL9qg==}
+ '@supabase/supa-mdx-lint-linux-x64@0.3.0-alpha':
+ resolution: {integrity: sha512-7v+vWGHhamTJJuMXzS9VZ6XvIgMMLFQxd8df4P/RppdEFTSWDZO/MWMhfhjz3opRrkYA+hGCTgUk+CWN8ggbig==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux, freebsd]
@@ -7973,8 +7973,8 @@ packages:
cpu: [x86, ia32]
os: [win32]
- '@supabase/supa-mdx-lint-win32-i686@0.2.9-alpha':
- resolution: {integrity: sha512-uZ7orThD7stUGuenpNGCMUuIpmpJ6p7+D99aCWBqF9YfJX3jFX212Jaj3k0qxDaUFmMzX6MEbjHT+57ix1/0YA==}
+ '@supabase/supa-mdx-lint-win32-i686@0.3.0-alpha':
+ resolution: {integrity: sha512-KX/tVNJSYyCUb9VSxDqbpsMZUjvH4NOMTy5f/+fHXOzD4XxdzH+mImUBVpcrwyQrbV4YtwL4kQBUj9pVETuKSQ==}
engines: {node: '>=10'}
cpu: [x86, ia32]
os: [win32]
@@ -7985,8 +7985,8 @@ packages:
cpu: [x64]
os: [win32]
- '@supabase/supa-mdx-lint-win32-x64@0.2.9-alpha':
- resolution: {integrity: sha512-RWaywt2IzYUDXbAvqhwxN8Q7sAQMKCpZY8wVd5mBpmMBDtPp7FTYIjZV0erSYB+huUp9rc/hmN7HgI6GEZdviw==}
+ '@supabase/supa-mdx-lint-win32-x64@0.3.0-alpha':
+ resolution: {integrity: sha512-SFRAOaG/3fK4dFODuqI6XgAV+MBx/vjP6N6mt6eDvlUKMT54iuKUQSfDf52Q3nyDKRkaasxl51CQDO5gPMXItQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
@@ -7995,8 +7995,8 @@ packages:
resolution: {integrity: sha512-rfp+xsnTaQ/UB5LNNZEh6w00JxxkZMoZnjjIgb/TBvqr/E1DbWyLHSyWwMD8sBoC+LX8q20ym75GRAXhvxIONA==}
hasBin: true
- '@supabase/supa-mdx-lint@0.2.9-alpha':
- resolution: {integrity: sha512-+zQQkqjau6Mw1pRrqma5amniRNjp54oNq1S+8A/UcvwEuq2xBZk44qD8VYG79GaM6sX1LE1kTmeelC2MK5hMNA==}
+ '@supabase/supa-mdx-lint@0.3.0-alpha':
+ resolution: {integrity: sha512-7ndeL31NIiMcS+0Unv99GN9n1NG4ZwZuE6o0LbpFZzXatxn6noYiAwWtwgzipxjDGI7CGYxRPQQN048Wn9oJ4Q==}
hasBin: true
'@supabase/supabase-js@2.49.3':
@@ -26674,43 +26674,43 @@ snapshots:
'@supabase/supa-mdx-lint-darwin@0.2.6-alpha':
optional: true
- '@supabase/supa-mdx-lint-darwin@0.2.9-alpha':
+ '@supabase/supa-mdx-lint-darwin@0.3.0-alpha':
optional: true
'@supabase/supa-mdx-lint-linux-arm64@0.2.6-alpha':
optional: true
- '@supabase/supa-mdx-lint-linux-arm64@0.2.9-alpha':
+ '@supabase/supa-mdx-lint-linux-arm64@0.3.0-alpha':
optional: true
'@supabase/supa-mdx-lint-linux-arm@0.2.6-alpha':
optional: true
- '@supabase/supa-mdx-lint-linux-arm@0.2.9-alpha':
+ '@supabase/supa-mdx-lint-linux-arm@0.3.0-alpha':
optional: true
'@supabase/supa-mdx-lint-linux-i686@0.2.6-alpha':
optional: true
- '@supabase/supa-mdx-lint-linux-i686@0.2.9-alpha':
+ '@supabase/supa-mdx-lint-linux-i686@0.3.0-alpha':
optional: true
'@supabase/supa-mdx-lint-linux-x64@0.2.6-alpha':
optional: true
- '@supabase/supa-mdx-lint-linux-x64@0.2.9-alpha':
+ '@supabase/supa-mdx-lint-linux-x64@0.3.0-alpha':
optional: true
'@supabase/supa-mdx-lint-win32-i686@0.2.6-alpha':
optional: true
- '@supabase/supa-mdx-lint-win32-i686@0.2.9-alpha':
+ '@supabase/supa-mdx-lint-win32-i686@0.3.0-alpha':
optional: true
'@supabase/supa-mdx-lint-win32-x64@0.2.6-alpha':
optional: true
- '@supabase/supa-mdx-lint-win32-x64@0.2.9-alpha':
+ '@supabase/supa-mdx-lint-win32-x64@0.3.0-alpha':
optional: true
'@supabase/supa-mdx-lint@0.2.6-alpha':
@@ -26724,15 +26724,15 @@ snapshots:
'@supabase/supa-mdx-lint-win32-x64': 0.2.6-alpha
node-pty: 1.0.0
- '@supabase/supa-mdx-lint@0.2.9-alpha':
+ '@supabase/supa-mdx-lint@0.3.0-alpha':
optionalDependencies:
- '@supabase/supa-mdx-lint-darwin': 0.2.9-alpha
- '@supabase/supa-mdx-lint-linux-arm': 0.2.9-alpha
- '@supabase/supa-mdx-lint-linux-arm64': 0.2.9-alpha
- '@supabase/supa-mdx-lint-linux-i686': 0.2.9-alpha
- '@supabase/supa-mdx-lint-linux-x64': 0.2.9-alpha
- '@supabase/supa-mdx-lint-win32-i686': 0.2.9-alpha
- '@supabase/supa-mdx-lint-win32-x64': 0.2.9-alpha
+ '@supabase/supa-mdx-lint-darwin': 0.3.0-alpha
+ '@supabase/supa-mdx-lint-linux-arm': 0.3.0-alpha
+ '@supabase/supa-mdx-lint-linux-arm64': 0.3.0-alpha
+ '@supabase/supa-mdx-lint-linux-i686': 0.3.0-alpha
+ '@supabase/supa-mdx-lint-linux-x64': 0.3.0-alpha
+ '@supabase/supa-mdx-lint-win32-i686': 0.3.0-alpha
+ '@supabase/supa-mdx-lint-win32-x64': 0.3.0-alpha
node-pty: 1.0.0
'@supabase/supabase-js@2.49.3':