Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d640d1e
fix(studio): tighten Version column width in Extensions table FE-3204…
jordienr May 11, 2026
6ac56da
chore: updated the public facing docs to have the supabase.com instea…
ssudaraka May 11, 2026
52fccc7
feat(reports): add network throughput chart to database report (#45747)
jordienr May 11, 2026
ef2d21b
fix: restore rls check (#45723)
7ttp May 11, 2026
ff3f733
fix: foreign key shortcut (#45761)
7ttp May 11, 2026
bbebbe3
[bot] Decrease ESLint ratchet baselines (#45755)
supabase-supabase-autofixer[bot] May 11, 2026
c29ea9a
feat(reports): add swap usage chart to database report (#45746)
jordienr May 11, 2026
f38872c
refactor(reports): use LazyComposedChartHandler for replication lag (…
jordienr May 11, 2026
d676c83
fix(studio): pre-empt React 19 regressions in tests + Support form (#…
alaister May 11, 2026
af42d54
Cleaned up go pages and modified Dash dinner pages (#45733)
CoolAssPuppy May 11, 2026
0057df2
[bot] Sync from supabase/troubleshooting (#45691)
supabase-supabase-autofixer[bot] May 11, 2026
b934e14
fix(reports): replace explicit any with number in tickFormatter callb…
jordienr May 11, 2026
84268aa
docs(cli): document beta channel install and link SASL troubleshootin…
avallete May 11, 2026
f95d978
docs: Fix hono issues (#45798)
ChrisChinchilla May 11, 2026
920571f
feat(studio): rewrite secret key reveal flow without react-query [FE-…
awaseem May 11, 2026
11c4adc
chore(docs): add brentschroeter to humans.txt (#45689)
brentschroeter May 11, 2026
2c48c6a
fix: improve accessibility for icon buttons in LayoutHeader (#45790)
ChloeGarciaMillerand May 11, 2026
27f31ef
feat(billing): prepaid credits in upcoming invoice (#45475)
ignaciodob May 11, 2026
12e08dc
fix(docs): add `RedirectTo` and `Data` variables to email templates (…
cemalkilic May 11, 2026
10ce3b6
docs: Fix missing export in Expo React Native docs (#45800)
ChrisChinchilla May 11, 2026
a4f964e
fix: in-arrears transition in upcoming invoice (#45765)
ignaciodob May 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ These variables are safe to expose in your Expo app since Supabase has
const supabaseUrl = YOUR_REACT_NATIVE_SUPABASE_URL
const supabasePublishableKey = YOUR_REACT_NATIVE_SUPABASE_PUBLISHABLE_KEY

const supabase = createClient(supabaseUrl, supabasePublishableKey, {
export const supabase = createClient(supabaseUrl, supabasePublishableKey, {
auth: {
storage: new LargeSecureStore(),
autoRefreshToken: true,
Expand Down
82 changes: 82 additions & 0 deletions apps/docs/content/guides/local-development/cli/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,64 @@ Global installation using `npm install -g supabase` is not supported. For global
</TabPanel>
</Tabs>

## Beta channel

Pre-release CLI builds ship from the development branch (`X.Y.Z-beta.N` versions). Use the npm `beta` dist-tag, or install `supabase-beta` via Homebrew / Scoop (separate packages from stable).

<Tabs
scrollable
size="small"
type="underlined"
defaultActiveId="npm"
queryGroup="platform"
>
<TabPanel id="macos" label="macOS">

```sh
brew install supabase/tap/supabase-beta
brew link --overwrite supabase-beta
```

</TabPanel>
<TabPanel id="windows" label="Windows">

```powershell
scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase-beta
```

</TabPanel>
<TabPanel id="linux" label="Linux">

#### Homebrew

```sh
brew install supabase/tap/supabase-beta
brew link --overwrite supabase-beta
```

#### Linux packages

Beta builds are attached to [GitHub pre-releases](https://github.com/supabase/cli/releases). Download the `.apk`, `.deb`, or `.rpm` for your platform and install with the same commands as [Linux packages](#linux-packages) above.

</TabPanel>
<TabPanel id="npm" label="nodejs">

Install as a dev dependency:

```sh
npm install supabase@beta --save-dev
```

Or run without installing:

```sh
npx supabase@beta --help
```

</TabPanel>
</Tabs>

## Updating the Supabase CLI

When a new [version](https://github.com/supabase/cli/releases) is released, you can update the CLI using the same methods.
Expand All @@ -114,13 +172,25 @@ When a new [version](https://github.com/supabase/cli/releases) is released, you
brew upgrade supabase
```

Beta channel:

```sh
brew upgrade supabase-beta
```

</TabPanel>
<TabPanel id="windows" label="Windows">

```powershell
scoop update supabase
```

Beta channel:

```powershell
scoop update supabase-beta
```

</TabPanel>
<TabPanel id="linux" label="Linux">

Expand All @@ -130,6 +200,12 @@ scoop update supabase
brew upgrade supabase
```

Beta channel:

```sh
brew upgrade supabase-beta
```

#### Linux package manager

1. Download the latest package from the [Supabase CLI releases page](https://github.com/supabase/cli/releases/latest)
Expand All @@ -147,6 +223,12 @@ If you have installed the CLI as dev dependency via [npm](https://www.npmjs.com/
npm update supabase --save-dev
```

Beta channel (`supabase@beta`):

```sh
npm update supabase@beta --save-dev
```

</TabPanel>
</Tabs>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,28 @@ Contains your application's Site URL. This can be configured in your project's [
<p>Visit <a href="{{ .SiteURL }}">here</a> to log in.</p>
```

### `RedirectTo`

Contains the redirect URL passed as the `redirectTo` option in the auth method call.

**Usage**

```html
<a href="{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email&next={{ .RedirectTo }}">
Confirm your email
</a>
```

### `Data`

Contains metadata from `auth.users.user_metadata`. Use this to personalize the email message.

**Usage**

```html
<p>Hello {{ .Data.first_name }}, please confirm your signup.</p>
```

### `Email`

Contains the user's email address.
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/guides/security/security-testing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Supabase customer support policy for penetration testing

Customers of Supabase are permitted to carry out security assessments or penetration tests of their hosted Supabase project components. This testing may be carried out without prior approval for the customer services listed under [permitted services](#permitted-services). Supabase does not permit hosting security tooling that may be perceived as malicious or part of a campaign against Supabase customers or external services. This section is covered by the [Supabase Acceptable Use Policy](/aup) (AUP).

It is the customer’s responsibility to ensure that testing activities are aligned with this policy. Any testing performed outside of the policy will be seen as testing directly against Supabase and may be flagged as abuse behaviour. If Supabase receives an abuse report for activities related to your security testing, we will forward these to you. If you discover a security issue within any of the Supabase products, contact [Supabase Security](mailto:security@supabase.io) immediately.
It is the customer’s responsibility to ensure that testing activities are aligned with this policy. Any testing performed outside of the policy will be seen as testing directly against Supabase and may be flagged as abuse behaviour. If Supabase receives an abuse report for activities related to your security testing, we will forward these to you. If you discover a security issue within any of the Supabase products, contact [Supabase Security](mailto:security@supabase.com) immediately.

Furthermore, Supabase runs a [Vulnerability Disclosure Program](https://hackerone.com/ca63b563-9661-4ac3-8d23-7581582ef451/embedded_submissions/new) (VDP) with HackerOne, and external security researchers may report any bugs found within the scope of the aforementioned program. Customer penetration testing does not form part of this VDP.

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title = "Edge Function error: 'Rate limit exceeded for trace'"
date_created = "2026-05-07T14:04:17+00:00"
topics = [ "functions" ]
keywords = []
---

If you are observing a `RateLimitError: "Rate limit exceeded for trace ..."` error when invoking Edge Functions, it typically indicates that a single function execution is triggering too many downstream calls simultaneously.

**Why Does This Happen?**

- This often occurs in "fan-out" scenarios, such as a cron-driven function that calls other functions in a loop.
- All downstream `supabase.functions.invoke()` calls initiated from the same parent execution share a single Trace ID. These calls draw from a specific per-trace safety budget rather than the total project-level capacity. If the volume of calls is too high, the budget is exhausted and subsequent calls are throttled.

**How to Resolve This Issue:**

- **Pace Invocations:** Introduce a delay between `invoke()` calls (e.g., hundreds of milliseconds) in the producer function to stay within the trace budget.
- **Batch Payloads:** Restructure the downstream function to accept an array of data, allowing a single invocation to process multiple records instead of triggering individual calls for each.
- **Consolidate Logic:** Refactor the logic into a shared library or move it directly into the calling function to eliminate the need for cross-function network calls.

You can monitor these errors by visiting the [logs explorer](/dashboard/project/_/logs/explorer) to identify which executions are exceeding their trace budget.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ This typically indicates an authentication failure where the database connection
```

3. **Skip the Pooler and connect directly to the database with the Supabase CLI (Requires IPv6):**
- If your network supports IPv6, you can use the beta CLI version with the `--skip-pooler` flag to bypass the connection pooler to avoid this particular issue.
- If your network supports IPv6, you can use the beta CLI version with the `--skip-pooler` flag to bypass the connection pooler to avoid this particular issue. Install options are documented under [Beta channel](/docs/guides/local-development/cli/getting-started#beta-channel) in the CLI getting started guide.

```bash
npx supabase@beta link --skip-pooler
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/public/.well-known/security.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Here is a brief list of some common out of scope vulnerabilities:
- User enumeration

Testing guidelines:
- Do not run automated scanners on other customer projects. Running automated scanners can run up costs for our users. Aggressively configured scanners might inadvertently disrupt services, exploit vulnerabilities, lead to system instability or breaches and violate Terms of Service from our upstream providers. Our own security systems won't be able to distinguish hostile reconnaissance from whitehat research. If you wish to run an automated scanner, notify us at security@supabase.io and only run it on your own Supabase project. Do NOT attack projects of other customers.
- Do not run automated scanners on other customer projects. Running automated scanners can run up costs for our users. Aggressively configured scanners might inadvertently disrupt services, exploit vulnerabilities, lead to system instability or breaches and violate Terms of Service from our upstream providers. Our own security systems won't be able to distinguish hostile reconnaissance from whitehat research. If you wish to run an automated scanner, notify us at security@supabase.com and only run it on your own Supabase project. Do NOT attack projects of other customers.
- Do not take advantage of the vulnerability or problem you have discovered, for example by downloading more data than necessary to demonstrate the vulnerability or deleting or modifying other people's data.

Reporting guidelines:
Expand Down
1 change: 1 addition & 0 deletions apps/docs/public/humans.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Bobbie Soedirgo
Brad Gyger
Brendan Stephens
Brent Newson
Brent Schroeter
Carel de Waal
Cameron Blackwood
Cameron Michie
Expand Down
32 changes: 7 additions & 25 deletions apps/studio/.github/eslint-rule-baselines.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"rules": {
"react-hooks/exhaustive-deps": 179,
"react-hooks/exhaustive-deps": 175,
"import/no-anonymous-default-export": 57,
"@tanstack/query/exhaustive-deps": 12,
"@typescript-eslint/no-explicit-any": 1042,
"@typescript-eslint/no-explicit-any": 1014,
"no-restricted-imports": 0,
"no-restricted-exports": 255,
"no-restricted-exports": 252,
"react/no-unstable-nested-components": 51,
"studio/require-safe-sql-fragment": 158
},
Expand All @@ -25,7 +25,6 @@
"components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx": 1,
"components/interfaces/Auth/Policies/PolicyEditorPanel/PolicyDetailsV2.tsx": 1,
"components/interfaces/Auth/Policies/PolicyEditorPanel/RLSCodeEditor.tsx": 2,
"components/interfaces/Auth/Policies/PolicyEditorPanel/index.tsx": 1,
"components/interfaces/Auth/ProtectionAuthSettingsForm/ProtectionAuthSettingsForm.tsx": 1,
"components/interfaces/Auth/RedirectUrls/AddNewURLModal.tsx": 1,
"components/interfaces/Auth/SessionsAuthSettingsForm/SessionsAuthSettingsForm.tsx": 1,
Expand Down Expand Up @@ -53,7 +52,6 @@
"components/interfaces/Organization/BillingSettings/BillingEmail.tsx": 1,
"components/interfaces/Organization/BillingSettings/CreditTopUp.tsx": 1,
"components/interfaces/Organization/BillingSettings/Subscription/PaymentMethodSelection.tsx": 2,
"components/interfaces/Organization/BillingSettings/Subscription/PlanUpdateSidePanel.tsx": 1,
"components/interfaces/Organization/Usage/Compute.tsx": 1,
"components/interfaces/ProjectAPIDocs/Content/Entity.tsx": 1,
"components/interfaces/ProjectAPIDocs/Content/RPC.tsx": 1,
Expand Down Expand Up @@ -88,7 +86,6 @@
"components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/index.tsx": 2,
"components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.tsx": 1,
"components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/TextEditor.tsx": 2,
"components/interfaces/UnifiedLogs/ServiceFlow/components/ServiceFlowHeader.tsx": 2,
"components/layouts/EdgeFunctionsLayout/EdgeFunctionDetailsLayout.tsx": 1,
"components/layouts/ProjectLayout/ConnectingState.tsx": 1,
"components/layouts/ProjectLayout/PausedState/PauseDisabledState.tsx": 1,
Expand Down Expand Up @@ -229,7 +226,6 @@
"components/grid/types/base.ts": 2,
"components/grid/types/table.ts": 1,
"components/grid/utils/column.ts": 2,
"components/grid/utils/common.ts": 1,
"components/grid/utils/gridColumns.tsx": 10,
"components/interfaces/Account/AccessTokens/Scoped/Form/ResourceAccess/ResourceAccess.types.ts": 2,
"components/interfaces/App/UpdateBillingAddressModal.tsx": 2,
Expand Down Expand Up @@ -317,7 +313,7 @@
"components/interfaces/JwtSecrets/jwt-secret-keys-table/create-key-dialog.tsx": 2,
"components/interfaces/JwtSecrets/jwt-settings.tsx": 1,
"components/interfaces/Linter/LinterDataGrid.tsx": 4,
"components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx": 2,
"components/interfaces/LogDrains/LogDrainDestinationSheetForm.tsx": 3,
"components/interfaces/Observability/ObservabilityOverview.tsx": 1,
"components/interfaces/Observability/ServiceHealthCard.tsx": 1,
"components/interfaces/Organization/BillingSettings/BillingCustomerData/BillingCustomerData.tsx": 3,
Expand All @@ -326,8 +322,6 @@
"components/interfaces/Organization/BillingSettings/CreditTopUp.tsx": 2,
"components/interfaces/Organization/BillingSettings/Subscription/ExitSurveyModal.tsx": 1,
"components/interfaces/Organization/BillingSettings/Subscription/PaymentMethodSelection.tsx": 1,
"components/interfaces/Organization/BillingSettings/Subscription/PlanUpdateSidePanel.tsx": 1,
"components/interfaces/Organization/BillingSettings/Subscription/SubscriptionPlanUpdateDialog.tsx": 6,
"components/interfaces/Organization/BillingSettings/Subscription/UpgradeModal.tsx": 3,
"components/interfaces/Organization/IntegrationSettings/SidePanelVercelProjectLinker.tsx": 1,
"components/interfaces/Organization/InvoicesSettings/InvoicesSettings.tsx": 2,
Expand All @@ -346,14 +340,12 @@
"components/interfaces/ProjectAPIDocs/ResourceContent.tsx": 1,
"components/interfaces/ProjectCreation/PostgresVersionSelector.tsx": 2,
"components/interfaces/QueryInsights/QueryInsights.types.ts": 1,
"components/interfaces/QueryInsights/utils/supamonitor.utils.ts": 1,
"components/interfaces/QueryPerformance/IndexAdvisor/EnableIndexAdvisorButton.tsx": 1,
"components/interfaces/QueryPerformance/IndexAdvisor/IndexAdvisorDisabledState.tsx": 1,
"components/interfaces/QueryPerformance/IndexAdvisor/index-advisor.utils.ts": 2,
"components/interfaces/QueryPerformance/QueryPerformanceChart.tsx": 3,
"components/interfaces/QueryPerformance/QueryPerformanceGrid.tsx": 3,
"components/interfaces/QueryPerformance/WithStatements/WithStatements.tsx": 1,
"components/interfaces/QueryPerformance/WithStatements/WithStatements.utils.ts": 1,
"components/interfaces/Realtime/Inspector/Messages.types.ts": 1,
"components/interfaces/Realtime/Inspector/RealtimeFilterPopover/TableSelector.tsx": 1,
"components/interfaces/Realtime/Inspector/useRealtimeMessages.ts": 10,
Expand All @@ -378,7 +370,7 @@
"components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx": 1,
"components/interfaces/SQLEditor/UtilityPanel/CellDetailPanel.tsx": 1,
"components/interfaces/SQLEditor/UtilityPanel/ChartConfig.tsx": 2,
"components/interfaces/SQLEditor/UtilityPanel/Results.tsx": 7,
"components/interfaces/SQLEditor/UtilityPanel/Results.tsx": 6,
"components/interfaces/SQLEditor/UtilityPanel/UtilityPanel.tsx": 1,
"components/interfaces/SQLEditor/hooks.ts": 1,
"components/interfaces/SQLEditor/useAddDefinitions.ts": 1,
Expand Down Expand Up @@ -451,21 +443,14 @@
"components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ForeignKeysManagement/ForeignKeyRow.tsx": 1,
"components/interfaces/TableGridEditor/TableDefinition.tsx": 3,
"components/interfaces/TableGridEditor/TableEntity.utils.ts": 1,
"components/interfaces/UnifiedLogs/ServiceFlow/components/ServiceFlowHeader.tsx": 1,
"components/interfaces/UnifiedLogs/ServiceFlow/components/blocks/ResponseCompletedBlock.tsx": 2,
"components/interfaces/UnifiedLogs/ServiceFlow/components/shared/Block.tsx": 1,
"components/interfaces/UnifiedLogs/ServiceFlow/components/blocks/PostgresFlowDetail.tsx": 2,
"components/interfaces/UnifiedLogs/ServiceFlow/components/blocks/ResponseCompletedBlock.tsx": 1,
"components/interfaces/UnifiedLogs/ServiceFlow/components/shared/CollapsibleSection.tsx": 4,
"components/interfaces/UnifiedLogs/ServiceFlow/components/shared/FieldWithSeeMore.tsx": 4,
"components/interfaces/UnifiedLogs/ServiceFlow/components/shared/TimelineStep.tsx": 1,
"components/interfaces/UnifiedLogs/ServiceFlow/config/fieldHelpers.ts": 3,
"components/interfaces/UnifiedLogs/ServiceFlow/types.ts": 10,
"components/interfaces/UnifiedLogs/ServiceFlow/utils/storageUtils.ts": 3,
"components/interfaces/UnifiedLogs/UnifiedLogs.queries.ts": 4,
"components/interfaces/UnifiedLogs/UnifiedLogs.tsx": 8,
"components/interfaces/UnifiedLogs/UnifiedLogs.utils.ts": 1,
"components/interfaces/UnifiedLogs/components/DownloadLogsButton.tsx": 1,
"components/interfaces/UnifiedLogs/components/LogsListPanel.tsx": 1,
"components/layouts/AccountLayout/WithSidebar.tsx": 2,
"components/layouts/DocsLayout/DocsLayout.tsx": 2,
"components/layouts/IntegrationsLayout/Integrations.utils.ts": 2,
"components/layouts/Navigation/LayoutHeader/BreadcrumbsView.tsx": 2,
Expand Down Expand Up @@ -799,7 +784,6 @@
"components/interfaces/Settings/General/Infrastructure/RestartServerButton.tsx": 1,
"components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/DropAllReplicasConfirmationModal.tsx": 1,
"components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/MapView.tsx": 1,
"components/interfaces/Settings/Integrations/IntegrationsSettings.tsx": 1,
"components/interfaces/Settings/Integrations/VercelIntegration/VercelIntegrationConnectionForm.tsx": 1,
"components/interfaces/Settings/Logs/LogColumnRenderers/AuthColumnRenderer.tsx": 1,
"components/interfaces/Settings/Logs/LogColumnRenderers/DatabaseApiColumnRender.tsx": 1,
Expand Down Expand Up @@ -859,7 +843,6 @@
"components/layouts/OrganizationLayout.tsx": 1,
"components/layouts/ProjectLayout/BuildingState.tsx": 1,
"components/layouts/ProjectLayout/ConnectingState.tsx": 1,
"components/layouts/ProjectLayout/OrganizationSettingsLayout.tsx": 1,
"components/layouts/ProjectLayout/RestartingState.tsx": 1,
"components/layouts/ProjectSettingsLayout/SettingsLayout.tsx": 1,
"components/layouts/RealtimeLayout/RealtimeLayout.tsx": 1,
Expand All @@ -876,7 +859,6 @@
"components/to-be-cleaned/KeyMap.tsx": 1,
"components/to-be-cleaned/ProductEmptyState.tsx": 1,
"components/to-be-cleaned/Table.tsx": 1,
"components/to-be-cleaned/forms/AutoTextArea.tsx": 1,
"components/ui/AIEditor/ResizableAIWidget.tsx": 1,
"components/ui/AlertError.tsx": 1,
"components/ui/CardButton.tsx": 1,
Expand Down
Loading
Loading