Commit Graph
35236 Commits
Author SHA1 Message Date
Jordi EnricandClaude Opus 4.6 dc862370f6 feat: improve readability of CPU chart O11Y-1290 (#43822)
## Problem
The CPU usage chart in the Observability dashboard could show values
exceeding 100%, differing from the internal Grafana panel that support
uses for debugging.

## Solution
Add a stackedPercent prop to the chart system that locks the Y-axis to
[0, 100]. When enabled, the chart never visually overflows 100% while
tooltip values remain completely untouched. We fill the rest of the
unused with an "Idle" prop.

# Before
<img width="1240" height="684" alt="CleanShot 2026-03-18 at 16 04 26@2x"
src="https://github.com/user-attachments/assets/c1b1a5ac-86e0-4d6b-9bc4-c7837f30c28c"
/>

## After
<img width="1240" height="684" alt="CleanShot 2026-03-18 at 16 03 13@2x"
src="https://github.com/user-attachments/assets/419eea55-176d-46c4-8780-b8c372428047"
/>
<img width="934" height="700" alt="CleanShot 2026-03-18 at 16 03 41@2x"
src="https://github.com/user-attachments/assets/9b5ef61d-21f4-40e4-ab0c-1a11caadb1f8"
/>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 15:28:16 +01:00
supabase-supabase-autofixer[bot]andgithub-actions[bot] 6118eb823e [bot] Decrease ESLint ratchet baselines (#44047)
Automated weekly decrease of ESLint ratchet baselines.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-23 08:28:05 -06:00
Jordi EnricandClaude Sonnet 4.6 2e1795dfa0 feat(studio): add pagination to query performance page FE-2774 (#43697)
## Problem

The Query Performance page loaded all results in a single query with a
fixed limit of 20 rows, giving users no way to browse beyond the first
page. There was also no way to control how many rows were shown at once.

## Fix

adds pagination 

## How to test

- Navigate to `/observability/query-performance` in Studio
- scroll to bottom
- should automatically load more results

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 15:27:43 +01:00
supabase-supabase-autofixer[bot]andmandarini f04bcf07d5 docs: update js sdk docs (2.100.0) (#44078)
Updates JS sdk documentation following stable release.
Ran `make` in apps/docs/spec to regenerate tsdoc files.

**Details:**
- **Version:** `2.100.0`
- **Source:** `manual`
- **Changes:** Regenerated tsdoc files from latest spec files

🤖 Auto-generated from @supabase/supabase-js stable release.

Co-authored-by: mandarini <6603745+mandarini@users.noreply.github.com>
2026-03-23 15:52:48 +02:00
Katerina Skroumpelou 49df02ce91 docs: move postgrest-js and realtime-js docs to tsdoc (#43908)
* Move postgrest-js docs to tsdoc
(https://github.com/supabase/supabase-js/pull/2177)
* Move realtime-js docs to tsdoc
(https://github.com/supabase/supabase-js/pull/2164)
* Remove entries from yml
2026-03-23 14:35:40 +02:00
supabase-supabase-autofixer[bot]andsupabase-workflow-trigger[bot] efc71514d0 feat: update @supabase/*-js libraries to v2.100.0 (#44075)
This PR updates @supabase/*-js libraries to version 2.100.0.

**Source**: supabase-js-stable-release

**Changes**:
- Updated @supabase/supabase-js to 2.100.0
- Updated @supabase/auth-js to 2.100.0
- Updated @supabase/realtime-js to 2.100.0
- Updated @supabase/postgest-js to 2.100.0
- Refreshed pnpm-lock.yaml

This PR was created automatically.

Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
2026-03-23 14:23:45 +02:00
Colum Ferry 160c1decd6 chore(docs): add Colum Ferry to humans.txt (#43962)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Docs update to `humans.txt` to add `Colum Ferry`
 
## What is the current behavior?

`Colum Ferry` does not exist in `humans.txt`

## What is the new behavior?

`Colum Ferry` exists in `humans.txt`
2026-03-23 12:15:55 +00:00
Cemal Kılıç 656178301a feat: add docs button for custom auth providers (#44066)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Add docs button for custom auth providers

## What is the current behavior?

no docs button

## What is the new behavior?

add docs button

<img width="1836" height="148" alt="image-VZhcSrrE@2x"
src="https://github.com/user-attachments/assets/1e37d848-1195-4464-a542-e90d02ec08fc"
/>
2026-03-23 14:31:33 +03:00
石川 壱朗andChris Chinchilla 895ecb8c53 docs: replace deprecated "Linking.useURL" with "useLinkingURL" (#43966)
"Linking.useURL()" has been deprecated in Expo. This updates the example
to use the recommended "useLinkingURL()" hook, which provides the same
functionality for handling initial and subsequent deep links.

## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

docs update

## What is the current behavior?

The Expo example code uses "Linking.useURL()", which is now marked as
deprecated in Expo SDK 50+ and produces a TypeScript warning.

## What is the new behavior?

The example now uses the recommended "useLinkingURL()" hook from
"expo-linking". This prevents deprecation warnings for developers
adopting this example. The functionality (handling initial and
subsequent deep links) remains exactly the same.

## Additional context

Expo Linking documentation:
https://docs.expo.dev/versions/latest/sdk/linking/

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
2026-03-23 10:57:39 +00:00
VaibhavandChris Chinchilla b97a1db19b fix: 404 pricing (#44068)
Before:
<img width="889" height="295" alt="image"
src="https://github.com/user-attachments/assets/4bd213ce-545c-4292-8f64-359d9a445583"
/>

After:
<img width="1759" height="761" alt="image"
src="https://github.com/user-attachments/assets/fd8ef8c3-7398-40fa-a0f0-e812ccfbd40a"
/>

---------

Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
2026-03-23 10:49:50 +00:00
Cemal KılıçandChris Chinchilla 87b68a5cb4 feat(docs): add custom oauth/oidc providers (#43337)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Add docs for the custom OAuth & OIDC providers

## Notes

- Pricing to be clarified. Until now, we allow 3 providers per project.
- Dashboard instructions will be updated after dashboard is finalized.

---------

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
2026-03-23 11:48:00 +03:00
Joshen Lim fd14df7077 Use TimestampInfo in edge functions created at column + use relative label (#44064)
## Context

Very tiny one - just uses TimestampInfo here
<img width="520" height="528" alt="image"
src="https://github.com/user-attachments/assets/1336cbc1-1c9e-424d-9674-178196c9ca10"
/>
2026-03-23 15:06:03 +08:00
Danny White 64ba75d88b chore(studio): polish privacy policy notice (#43889)
## What kind of change does this PR introduce?

Minor polish

## What is the current behavior?

We have a privacy policy notice that uses `Alert_Shadcn_` with bespoke
links and badge.

## What is the new behavior?

- Reuse `Admonition` and `InlineLink` components
- Use sentence case as per our copywriting guidelines
- Tighten copywriting

| Before | After |
| --- | --- |
| <img width="1024" height="563" alt="Projects Boring Org Supabase"
src="https://github.com/user-attachments/assets/43fd9d4f-21e2-461b-92e3-d75578ae2ddd"
/> | <img width="1024" height="563" alt="Projects Boring Org
Supabase-27BBA2B8-4F90-4FB5-852D-B92B38AF5055"
src="https://github.com/user-attachments/assets/c0c09aae-c110-46cb-86ad-f6df557e1a4f"
/> |

## Additional context

Legal should sign off on this too.
2026-03-23 13:29:32 +08:00
Joshen Lim bf54231c82 Reinstate source param in new connect sheet to select read replicas (#44018)
## Context

Adds a "source" param in the new Connect sheet to allow selecting read
replicas - this was present in the old Connect dialog

<img width="962" height="713" alt="image"
src="https://github.com/user-attachments/assets/3c805e41-e8df-431b-83d0-e5f227d68475"
/>

Selecting sources will update the connect steps at the bottom -
connection string, host etc
2026-03-23 13:22:34 +08:00
Saxon Fletcher b7847b74db adds env step to shadcn (#43941)
<img width="877" height="997" alt="image"
src="https://github.com/user-attachments/assets/31ca8667-3cfc-4543-b722-fbdf9939c288"
/>

Adds a new step for shadcn/ui enabled flows that requires the user to
add environment variables
2026-03-23 13:23:33 +10:00
73112440c3 Moves from four to three columns on home (#43804)
<img width="1796" height="963" alt="image"
src="https://github.com/user-attachments/assets/828f417a-d30e-4897-b188-f9591cff5bfe"
/>

Switches from four to three columns in home. As part of this work
refactors Row component slightly to use min width and max columns props
instead of breakpoint columns.

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: SaxonF <1072756+SaxonF@users.noreply.github.com>
2026-03-23 13:23:10 +10:00
Ali Waseem 2ae4942cbb fix: remove client router filter (#44028)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

We have users reporting random four oh fours in the dashboard. We can't
reproduce locally, but this is pointing to an next js issue.

The reason is the users were getting appended a double /dashboard route.
it all points to 80852 in next js, double base path. We added app dir
recently as well

https://github.com/vercel/next.js/issues/80852
2026-03-20 11:51:44 -06:00
kemal.earth 4d6341b283 feat(studio): make filter bar ui its own row (#44022)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

To reduce cramping on all viewports, we're giving the filter bar ui a
full width row to breathe. It still wraps round if you have a lot of
items in one field. This originates from
[this](https://github.com/orgs/supabase/discussions/42461#discussioncomment-16207141)
user discussion.

| Before | After |
|--------|--------|
| <img width="1085" height="181" alt="Screenshot 2026-03-20 at 14 46 27"
src="https://github.com/user-attachments/assets/745f89dc-44c8-4387-8ab8-88a36f727b0d"
/> | <img width="1076" height="194" alt="Screenshot 2026-03-20 at 14 46
42"
src="https://github.com/user-attachments/assets/9675a072-0ea9-4fdb-96b7-0a0b0e60a17f"
/> |
2026-03-20 11:50:57 -06:00
Matt Rossman ccb12de25b feat(assistant): track chat IDs in PostHog events (#43983)
Adds `chatId` (the chat UUID) to the three assistant PostHog events so
we can count distinct chat sessions in PostHog. This naming is
consistent with how we name the field in Braintrust logs.

Also migrates from the deprecated `useSendEventMutation` hook to
`useTrack` — groups (project/org) are still sent automatically by
`useTrack`.

Closes AI-519
2026-03-20 12:27:17 -04:00
Kanishk DudejaandIgnacio Dobronich 5d942e2a46 refactor(billing): allow GB VAT tax IDs for Isle of Man customers (#43640)
### Summary

This PR adds support for Isle of Man customers to use GB VAT tax IDs.
Isle of Man uses the UK VAT system, so Orb requires country: 'GB' for
validation - but the billing address country is IM.

- Adds an IM VAT entry to `TAX_IDS` with a new `taxCountryIso2` override
field, so the UI shows "IM VAT" while sending country: 'GB' to Orb
- Introduces `getEffectiveTaxCountry()` to resolve the correct country
code for Orb
- Introduces `resolveStoredTaxId()` to map stored Orb data back to the
correct UI entry, using billing address country to disambiguate IM vs GB
- Updates all three billing forms to use these utilities: Billing
Settings page, Add Payment Method modal and Update Billing Address modal

### Testing

#### Automated tests

I've added unit tests in this PR

#### Manual tests

You can use the following country/city/postal code combinations to test:

- Isle of Man, Douglas, IM1 2LE
- United Kingdom, Crumlin, BT29 4AA

**Billing Settings page**

- Select Isle of Man as billing country → tax ID dropdown shows "Isle of
Man - IM VAT"
- Select United Kingdom as billing country → tax ID dropdown shows
"United Kingdom - UK VAT" / "United Kingdom - GB VAT" (not "IM VAT")
- Select IM VAT, enter a valid GB VAT number, save → check network tab,
Orb receives country: 'GB'
- Reload page for an IM customer with existing tax ID → "IM VAT" is
pre-selected (not "UK VAT")
- Reload page for a GB customer with existing tax ID → "UK VAT" is
pre-selected (no regression)
- Change country from IM to GB → available tax IDs update, IM VAT no
longer shown

**Add Payment Method modal**

- Open modal for an IM customer with existing tax ID → "IM VAT" is
pre-selected
- Check "I'm purchasing as a business", select Isle of Man in Stripe
address → tax ID dropdown shows "IM VAT"
- Check "I'm purchasing as a business", select United Kingdom in Stripe
address → tax ID dropdown shows "UK VAT" / "GB VAT"
- Submit with IM VAT → check network tab, tax ID is saved with country:
'GB'
- Open modal for a GB customer → no regression, "UK VAT" shown as before

**Update Billing Address modal** 

Appears for paid orgs missing a billing address

- Open modal for an IM customer with existing tax ID → "IM VAT" is
pre-selected
- Open modal for a GB customer with existing tax ID → "UK VAT" is
pre-selected
- Fill in IM address + IM VAT and save → saves correctly, modal closes

---------

Co-authored-by: Ignacio Dobronich <ignacio@dobronich.com>
2026-03-20 21:48:56 +05:30
Gildas Garcia b168ec364a Chore improve e2e tests (#43987)
## Problem

Some tests rely on hard coded timeouts. That makes them
- brittle if the timeout is not long enough
- take longer than necessary if the timeout is too long

## Solution

- Rely on playwright `expect` retries when possible
- Rely on UI updates when possible
2026-03-20 16:45:49 +01:00
Ali Waseem 522fbeac70 chore: remove filter feature flag (#44001)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

chore: remove feature flag and make default opt in true
2026-03-20 09:18:10 -06:00
Cemal Kılıç d566a2a0a6 feat: button to enable custom providers (#43985)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?
show the "enable" button if the `GET /auth/v1/admin/custom-providers`
returns 404 (without a json body). this is temporary as I want to enable
the rollout of this feature now, and there could be projects which
didn't get the latest auth server release(should be completed by next
week).

## What is the current behavior?

We only show a generic error message.

## What is the new behavior?

Show custom provider specific message and add CTA to enable the custom
providers (simply trigger a PATCH config request to trigger auth config
updates)

## Additional context

<img width="1454" height="390" alt="image-IPleA6ze@2x"
src="https://github.com/user-attachments/assets/b0cb4df8-2499-4749-900c-b78543a72800"
/>

This error is shown after 2 retries of the `GET
/auth/v1/admin/custom-providers`, would be nice to have if we show this
error message without retries.
2026-03-20 14:35:34 +03:00
Joshen Lim 77e053870c Use new sheet component + small nudges to UI (#43979)
## Context
Resolves FE-2826
Resolves FE-2825
Small refactors + UI nudges to the queue operations side panel

## Before

<img width="400" height="958" alt="image"
src="https://github.com/user-attachments/assets/b91e5d75-3b34-4da0-932b-d9d6096d326c"
/>


## After

<img width="400" height="960" alt="image"
src="https://github.com/user-attachments/assets/61261dbe-0df1-422d-8022-fa52ff8996ea"
/>
2026-03-20 19:32:38 +08:00
AnaandAna 8d0c129dd8 blog: Supabase joins the Stripe Projects developer preview (#43982)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?
New blog post for Stripe Projects

## What is the current behavior?
N/A

## What is the new behavior?
Adds a new blog post: "Supabase joins the Stripe Projects Developer
Preview" and adds Gregor Vand and Ana Mogul to authors.json.

---------

Co-authored-by: Ana <ana1337x@users.noreply.github.com>
2026-03-20 12:19:21 +01:00
Vaibhav 83864997bd docs: add cli global install note and correct user.new_email (#43151)
## Problem

1. Users attempting to install the Supabase CLI globally via `npm
install -g supabase`
2. The Send Email Hook documentation incorrectly references
`user.email_new` instead of the correct field name `user.new_email`

## Solution

1. Added a clear note in the CLI getting started guide warning users
that npm global installation is not supported, directing them to use the
recommended installation methods instead
2. Corrected all three instances of `user.email_new` to `user.new_email`
in the Send Email Hook documentation to match the actual User interface
definition from `@supabase/auth-js`
 

## Related 
- closes #43157
- closes https://github.com/supabase/cli/issues/4496
2026-03-20 11:59:04 +01:00
Joshen Lim 423e125627 Add copy button to function header in function details page (#44017)
## Context

Just adds a copy button to copy the function URL
<img width="636" height="193" alt="image"
src="https://github.com/user-attachments/assets/0487007d-4435-4b0e-be4c-23a7e9f0811d"
/>
2026-03-20 17:33:40 +08:00
Joshen Lim 4d23ea7b82 Hide is unique option for column that's a primary key (#43974)
## Context

Table Editor - hide "Is unique" configuration for a column that's a
primary key - unnecessary to configure a column as unique if it's
already a primary key (redundant index is created)

## Changes involved

- TableEditor side panel: No longer shows is unique option under
configuration popover if column is a PK
- ColumnEditor side panel: Disable is unique + is nullable option if
column is a PK (Added tooltip)
<img width="810" height="151" alt="image"
src="https://github.com/user-attachments/assets/0f877706-1a56-44b7-864e-ba30efbb67f7"
/>


Also chucked in some minor refactors:
- Refactored some `any` types
- Refactored Column to use the latest Checkbox component
2026-03-20 17:12:53 +08:00
Jordi EnricandClaude Sonnet 4.6 e9d951a65c feat(logs): show edge function name in logs FE-2798 (#43967)
## Problem

The edge function logs table at
`/observability/logs/edge-functions-logs` did not show which edge
function was called. Users had to open individual log entries to find
the function name, even though the information is available in the log
data.

## Fix

- Added `request.pathname` to the SQL SELECT query for
`function_edge_logs` so the pathname is returned with each row.
- Added `extractEdgeFunctionName` utility that parses the last path
segment from the pathname (e.g. `/functions/v1/hello-world-1` becomes
`hello-world-1`).
- Updated `FunctionsEdgeColumnRender` to display the function name
between the HTTP method and the log ID columns.
- Added unit tests for `extractEdgeFunctionName` covering normal paths,
null/undefined, non-string values, and pathnames without slashes.

<img width="1472" height="776" alt="CleanShot 2026-03-19 at 13 18 47@2x"
src="https://github.com/user-attachments/assets/e437f7df-7aab-4ea5-b421-95bab3923605"
/>


## How to test

- Navigate to Logs and Analytics, then Edge Functions logs.
- Confirm each row now shows the function name (e.g. `hello-world-1`)
between the HTTP method and the log ID.
- Confirm rows without a pathname (e.g. non-platform or self-hosted)
still render without errors.
- Confirm clicking a row still opens the log detail panel correctly.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 09:39:22 +01:00
Gildas Garcia d571c7404a chore: refactor <PreventNavigationOnUnsavedChanges> by extracting a usePreventNavigationOnUnsavedChanges hook (#43900)
## Problem

We want `ui-patterns` to contain only visual components but
https://github.com/supabase/supabase/pull/43577 introduced a component
with logic about navigation

## Solution

Extract the logic part into a hook and use it in the component.
Next step will be to remove this component and use
`<DiscardChangesConfirmationDialog>` directly along the hook where
needed

## How to test

Check that the fixes from #43577 still work:

On staging, for each case:
- Authentication email templates
- Observability reports
- Edge functions creation
- Edge functions edition

Test:
- Modify the template/report/function
- Navigate away using either the sidebar link, the browser back button
or closing the tab
- Cancel navigation in the confirmation dialog
- Navigation should be prevented and you should not loose your changes

Test:
- Modify the template/report/function
- Navigate away using either the sidebar link, the browser back button
or closing the tab
- Confirm navigation in the confirmation dialog
- Navigation should not be prevented and you should have lost your
changes
2026-03-20 09:27:20 +01:00
Jordi EnricandClaude Sonnet 4.6 4336c8cf5a fix(observability): use 30m step for 7-day dashboard to preserve spikes FE-2813 (#43998)
## Problem

The database observability dashboard flattens critical spikes when
viewing the 7-day window. A spike clearly visible at the 3-hour view
(2-minute resolution) disappears completely at the 7-day view because
the Prometheus query step was 1 hour, averaging each spike into a
60-minute bucket and reducing its apparent magnitude to near zero.

## Fix

Increase the granularity in the 7 day window to prevent spikes from
being flattened.
Data point counts: 7-day view goes from ~168 to ~336 points per series,
more consistent with the existing 12-hour view (~360 points).

## How to test

- Open the observability database dashboard for a project that has had a
recent CPU, RAM, or connection spike
- Select the "Last 3 hours" time window and confirm the spike is visible
- Switch to "Last 7 days" and confirm the same spike is now visible
(previously it would disappear)
- Confirm all other time windows (10m, 30m, 1h, 24h) still load and
display correctly

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 09:04:28 +01:00
Prashant Sridharan 1e12f93fde Updated webinar pages with YouTube recording links (#44003)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Updated webinar landing pages with recording of the event on YouTube
2026-03-19 22:35:09 +00:00
Ali Waseem 3b94d12a2d fix: updated to show functions count (#43988)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

chore: add functions count for easier use

## Demo
<img width="668" height="85" alt="image"
src="https://github.com/user-attachments/assets/99a498ff-74d1-476e-b6e9-2dbc7cfecede"
/>
2026-03-19 15:12:51 -04:00
Ali WaseemandCopilot Autofix powered by AI b14ef270b2 feat: add shortcuts for copy markdown, json or download CSV (#43929)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

- Add copy markdown as a keyboard extension
- Add copy json as keyboard extension
- Add download CSV as keyboard extension

All extensions can be toggled off 

## Demo

https://github.com/user-attachments/assets/c3390b0a-8350-4708-9aeb-7b73aa3b423c

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-19 13:07:05 -06:00
Jeremias Menichelli 04d08fbba7 fix(Docs): Add cache-control and default to HTML content (#43989) 2026-03-19 19:45:15 +01:00
Jeremias Menichelli 1cde4de0dc fix(Docs): Expose errors on dynamically fetch content under database … (#43976) 2026-03-19 19:44:31 +01:00
Illia BasalaievandIllia Basalaiev 9b1377c2ba chore: improve storage migration script (#33927)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.
YES

## What kind of change does this PR introduce?
docs update

## What is the current behavior?
Issues described in this [Slack
thread](https://supabase.slack.com/archives/C02BJ2239GA/p1740408115511769)

## What is the new behavior?
- Full Storage Migration: Transfers all buckets and their contents.
- Bucket Configuration & Metadata Retention: Maintains settings like
public access, file size limits, MIME types, and file metadata.
- Conflict Resolution Options: Skip, merge (overwrite), or rename
buckets in the target project.
- Safety Measures: Requires user confirmation before destructive
actions.
- Efficient Processing: Batches files (10 per batch) and supports nested
directories.
- Progress & Reporting: Real-time updates, detailed migration summaries,
and error tracking for failed files.

---------

Co-authored-by: Illia Basalaiev <illiab@IMB3.local>
2026-03-19 17:46:21 +00:00
Chris ChinchillaandCopilot Autofix powered by AI 8c6dbf6433 docs: Overhaul going into prod page (#43916)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-19 17:42:57 +00:00
Charis 0533904957 Revert "fix: Disable/incident-banner query" (#43933)
Reverts supabase/supabase#43783
2026-03-19 12:32:48 -04:00
Ali Waseem b13ee5424c chore: add test for undo feature for queue operations (#43984)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

chore: add test for undo feature for queue operations
2026-03-19 15:59:17 +00:00
Ali WaseemandCopilot Autofix powered by AI be7079a19c fix: sentry should report full page crashes in third party libraries (#43927)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

When a full page crash occurs due to a third party library erroring out,
we should report that error rather than hiding it

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-19 09:49:07 -06:00
Joshen Lim 4b5038ef9e Refactor queue operations to not mutate the query client to simplify implementation (#43964)
## Context

If you've got a queued operation on a table, then switch tables, the
dashboard stalls for a few seconds before finally rendering the selected
table.

This was caused by an infinite loop in a useEffect calling
`reapplyOptimisticUpdates` due to `dataUpdatedAt` being in the
dependency array (which comes from react query)

Removing `dataUpdatedAt` would resolve the issue, but then it won't
solve the following comment in the code:
`// This ensures pending changes remain visible when switching tabs or
after data refresh`

## Changes involved

Opting to refactor the logic for rendering data in the Grid instead
- Avoid manipulating the data directly from the query client
  - Manual changes to the query client are hard to track when debugging
- Ideally the data in the query client are exactly what is coming from
the API
- Instead just compute the row data if there's operations applied, and
render that in the grid
  ```
  const baseRows = data?.rows ?? EMPTY_ARR
const rows = formatGridDataWithOperationValues({ operations, rows:
baseRows })
  ```
- Simplifies operations logic + data in react query remains as the
source of truth
- This also improves perceived performance, as previously we'd need to
invalidate the query client if we're removing any operation.
- A lot more apparent with the undo operation introduced
[here](https://github.com/supabase/supabase/pull/43957)
- Whereas now, we'll just revert back to whatever's in the query client
(and still do the invalidation behind the scenes) so things feel faster
2026-03-19 23:05:38 +08:00
Alaister YoungandAlaister Young e2a73aa461 chore(studio): temporarily disable default secure sql (#43973)
To test:
- make sure project creation works as expected

Co-authored-by: Alaister Young <10985857+alaister@users.noreply.github.com>
2026-03-19 22:08:38 +08:00
Joshen Lim 32da7388be Add support for cmd z undo in table editor for queue operations (#43957)
## Context

Add support for undo-ing an operation via keyboard shortcut in Table
Editor for the queue operations feature preview
2026-03-19 21:37:09 +08:00
Matt Rossman d29fbf6eb7 feat(assistant): upgrade AI SDK v5 → v6 (#43931)
Upgrades `ai` from v5 to v6 and all related packages.

**Package bumps:**
- `ai`: `5.0.52` → `^6.0.116`
- `@ai-sdk/openai`: `2.0.32` → `^3.0.41`
- `@ai-sdk/react`: `2.0.52` → `^3.0.118`
- `@ai-sdk/provider`: `^2.0.0` → `^3.0.8`
- `@ai-sdk/provider-utils`: `^3.0.0` → `^4.0.19`
- `@ai-sdk/amazon-bedrock`: `^3.0.0` → `^4.0.81`
- `@ai-sdk/mcp`: N/A → `^1.0.25`
- `openai`: bumped to `^4.104.0`
- `braintrust`: `3.0.x` → `^3.4.0`

**Breaking change migrations:**
- `generateObject` removed in v6 — migrated 5 API routes to
`generateText` with `Output.object({ schema })`, returning
`result.output`
- `convertToModelMessages` is now async — added `await`
- MCP import path changed: `experimental_createMCPClient` from `ai` →
`createMCPClient` from `@ai-sdk/mcp`
- `openai()` defaults to Responses API — added `store: false` to
provider options for ZDR org compatibility

**Streaming fix:**
Added `Content-Encoding: none` header to `pipeUIMessageStreamToResponse`
calls. Without it, proxy middleware buffers the entire SSE response
before flushing, causing the full reply to appear at once.

**Zero Data Retention fix:**
In recent AI SDK versions, `openai()` default to Responses API instead
of the legacy chat completions API. This produces a 404 from OpenAI with
message `"Items are not persisted for Zero Data Retention organizations.
Remove this item from your input and try again."` The Responses API is
OpenAI's [recommended
endpoint](https://developers.openai.com/api/docs/guides/migrate-to-responses).

This PR adds `store: false` as mentioned in
https://github.com/vercel/ai/issues/10060 to avoid incompatible
persistence attempts.

**References:**
- https://ai-sdk.dev/docs/migration-guides/migration-guide-6-0
-
https://ai-sdk.dev/docs/troubleshooting/streaming-not-working-when-proxied
- https://github.com/vercel/ai/issues/10060

Closes AI-514
Related AI-509
2026-03-19 09:07:33 -04:00
Jeremias Menichelli 8cc77fc91d fix(Docs): Broken graphql page and missing navigation (#43965) 2026-03-19 12:14:08 +01:00
Joshen Lim be26feb9ba Chore/shift manual queries into pg meta 03 (#43951)
## Context

Shifting more dashboard queries into pg-meta so that we centralize all
manually written queries in one place
Having them in packages/pg-meta also allows us to write tests for them

## To test

Just needs a smoke test on
- Table Editor
  - Fetching entities
  - Viewing definition 
- SQL Editor
  - View ongoing queries
  - Abort queries
- Integrations
  - Queues
- Database
  - Migrations
  -Triggers (Updating)
2026-03-19 18:31:46 +08:00
Joshen Lim 3ae9f2d663 Simplify SaveQueueActionBar positioning logic to just CSS (#43958)
## Context

Noticed that the position of the Save queue action bar shifts off screen
after switching tables
<img width="1450" height="962" alt="image"
src="https://github.com/user-attachments/assets/604ca8e4-ac34-410f-9e16-a641472a34ac"
/>

Changes here just simplifies the positioning logic to be purely css
2026-03-19 18:31:13 +08:00
Jeremias Menichelli b881a71ce7 fix(Docs): Improve await error handling on external content sources. (#43960) 2026-03-19 11:12:26 +01:00
Charis fe0da16820 refactor: move /incident-banner to app router (#43930)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Refactor

## What is the current behavior?

The `/incident-banner` endpoint is implemented using the Pages Router.

## What is the new behavior?

The `/incident-banner` endpoint is moved to the App Router, enabling
caching of the upstream fetch. This does not turn on the querying from
the frontend yet, making that a separate PR so we can revert easily if
needed.

## Additional context
2026-03-19 09:26:21 +01:00