Commit Graph
34843 Commits
Author SHA1 Message Date
Gildas Garcia 33fbdbbe8a Make table editor tests setup faster 2026-03-03 12:01:33 +01:00
Gildas Garcia ec3b6238ba Disable animations for e2e tests 2026-03-03 12:01:33 +01:00
Chris ChinchillaandEmil Wåreus 92d7d20be1 docs: add information about storage in oauth app scope documentation (#43330)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

Recreation of https://github.com/supabase/supabase/pull/39706 as I am
unable to resolve the merge conflict in that PR.

---------

Co-authored-by: Emil Wåreus <emil.wareus47@gmail.com>
2026-03-03 11:32:10 +01:00
Joshen Lim f363d69bc3 Persist dismissal of table filter bar banner if already enabled or enabling feature preview (#43323)
## Context

Persists the dismissal of the table filter banner promo if
- Already enabled
- After enabling feature preview

<img width="588" height="512" alt="image"
src="https://github.com/user-attachments/assets/97433c5a-cb9e-47b1-9971-f368f9c1688d"
/>
2026-03-03 18:14:34 +08:00
Joshen Lim efdf6d188b Fix auth hooks, enabled state in panel doesnt match hook state if disabled (#43326)
## Context

If an auth hook is disabled, clicking "Configure hook" will incorrectly
show the enable toggle as true

<img width="1095" height="265" alt="image"
src="https://github.com/user-attachments/assets/72b4104c-658d-44fd-baca-1102aefc3fb3"
/>

<img width="737" height="216" alt="image"
src="https://github.com/user-attachments/assets/73e4e8cb-7c03-440e-8f36-a7431b0ea051"
/>


Was due to the `enabled` value being default to `true` in the
`useEffect`

## To test
- Just verify that the enable toggle in the panel matches the auth
hook's enabled state
2026-03-03 18:10:01 +08:00
Chris Gwilliamsandgithub-actions[bot] 81415c6053 Blog: Add Timescale to pg_partman migration guide (#40037)
## 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?

Blog post on using pg_partman instead of TimescaleDB to prepare for the
upcoming deprecation

## What is the current behavior?

## What is the new behavior?

Blog post to include migration information for those using Timescale

## Additional context

Not to be merged until pg_partman is released in 15 and 17 images


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Added a comprehensive pg_partman guide covering setup, time- and
integer-based partitioning, maintenance, automation, and resources.
* Added a migration guide for moving from TimescaleDB hypertables to
native PostgreSQL partitioning using pg_partman.
  * Updated TimescaleDB docs with migration notes and support guidance.
* **New Features**
* Listed pg_partman in the public extensions reference and added
navigation entries linking to the pg_partman guide and migration guide.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-03 11:47:50 +02:00
732180608a Fix some typos; update passages to conform to style guide (#43254)
## 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?

N/A

## What is the new behavior?

N/A

## Additional context

N/A

---------

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-03 09:41:18 +00:00
Riccardo BusettiandJoshen Lim 43bccc52a3 feat(etl): Add new flags per org (#43292)
This PR adds new feature flags for controlling etl destinations
visibility based on the org slug.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-03 15:44:57 +08:00
CharisandJoshen Lim 277441334f feat(studio): Display region-specific incidents in RegionSelector (#43308)
## 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?

Feature

## What is the current behavior?

Region-specific incidents are only shown in the global StatusPageBanner,
which doesn't clearly indicate that an incident only affects specific
regions during project creation.

## What is the new behavior?

Region-specific incidents are now displayed inline in the RegionSelector
with smart region matching to show which regions are affected. The
StatusPageBanner logic is updated to avoid duplicate incident notices
for region-specific incidents when creating projects.

## Additional context

<img width="1394" height="650" alt="CleanShot 2026-03-02 at 16 32 34@2x"
src="https://github.com/user-attachments/assets/fd3734dc-8049-4c24-82d8-456bfbdbd4fd"
/>

Resolves FE-2652

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-03 15:22:55 +08:00
Charis 74ef2825b0 feat: filter incidents with impact none out of banner (#43311)
## 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?

Enhancement

## What is the current behavior?

Incidents are displayed regardless of impact.

## What is the new behavior?

Filters out incidents with impact = none

## Additional context

Resolves FE-2649
2026-03-03 14:02:45 +08:00
Joshen Lim 90d3b56db0 Joshen/fe 2621 show custom domain on dashboard and connect modal (#43233)
## Context

Main fix is to adjust the new home page + connect dialog (and connect
sheet) to render the project's custom domain if available

<img width="471" height="255" alt="image"
src="https://github.com/user-attachments/assets/3a208b2e-bdeb-43f5-a2e7-3495881dbaaa"
/>
<img width="1065" height="233" alt="image"
src="https://github.com/user-attachments/assets/2a7b8f81-8c0b-4803-bf0a-fc16a2f1e0e1"
/>

## Changes involved

- Created a `useProjectApiUrl` hook that will return the API URL
depending if custom domains is available, otherwise default to default
project API URL
- Refactored all the other places that were manually deriving the
project's endpoint
  - Storage Explorer -> copy URL
  - Edge Functions
  - Integrations -> Data API + API Docs
  - Auth Providers -> Callback URL
- Also updated the copy CTA for the addons page
  - Instead of just "Change xxx", make it a bit more actionable
  - For add ons with binary states (Custom domains, IPv4)
    - If not enabled yet, "Enable xxx", otherwise "Toggle xxx"
  - For PITR
- If not enabled yet, "Enable PITR", otherwise "Change recovery
duration"
  - Also added "Edit custom domain" CTA if enabled
<img width="1144" height="518" alt="image"
src="https://github.com/user-attachments/assets/4f152ea5-0cc7-412c-95e8-ad5bb37c19c3"
/>


## To test
- [ ] Verify that for a project with custom domain set up, all the
affected UI mentioned in the above section look correct
2026-03-03 11:37:08 +08:00
Matt Rossman 18ce0659c7 feat(assistant): add overflow menu with Copy chat ID action (#43303)
Adds an overflow `…` menu to the AI assistant header with a **Copy chat
ID** action. Clicking it copies the active chat's UUID to the clipboard,
useful for reproduction/debugging.

<img width="810" height="233" alt="CleanShot 2026-03-02 at 14 55 31@2x"
src="https://github.com/user-attachments/assets/f3571978-6ca0-4f99-8b5d-625742f290e6"
/>

This facilitates filtering Logs like so:

<img width="727" height="321" alt="CleanShot 2026-03-02 at 14 57 01@2x"
src="https://github.com/user-attachments/assets/ec259f2d-58f9-4087-beca-351f62ac5059"
/>

Closes AI-441
2026-03-02 22:34:00 -05:00
AnaandAna Mogul 10c6f64471 feat: byoc early access page (#43315)
## 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?

Adds a dedicated landing page for BYOC Early Access

## What is the current behavior?



## What is the new behavior?

Adds /go/byoc-early-access using the _go lead gen page system. The page
includes:
  - Hero section with "Request Early Access" CTA
- Feature grid with the 4 BYOC value props (data residency, custom
infrastructure, cloud cost optimization, managed operations)
- Early access request form with First Name, Last Name, Email, Company
Name, and Supabase Organization Name fields
  - Dual CRM integration: HubSpot and Customer.io

## Additional context

<img width="2477" height="1182" alt="Screenshot 2026-03-02 at 5 00
18 PM"
src="https://github.com/user-attachments/assets/483abc67-465f-49c6-88c1-1f53c3edafef"
/>
<img width="2460" height="1183" alt="Screenshot 2026-03-02 at 5 00
30 PM"
src="https://github.com/user-attachments/assets/de764bcf-2158-44b9-a95a-9d7ace06bf78"
/>

---------

Co-authored-by: Ana Mogul <ana1337x@users.noreply.github.com>
2026-03-02 19:06:55 -05:00
Prashant SridharanandAlan Daniel e8d6824285 Added four new solution pages (#43242)
## 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?

I added four new solution pages for marketing purposes:
- B2B SaaS
- Healthcare
- FinServ
- Agents

I followed the data model and components of all existing solution pages.

I also altered the mega menu to include a new category.

---------

Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
2026-03-02 23:28:29 +00:00
Danny White 706207436f chore(studio): move organization settings nav to sidebar layout (#43228)
## What kind of change does this PR introduce?

UI change

## What is the current behavior?

Organization settings are currently spread across a NavMenu. This is
getting unweildy as the amount of children within Organization settings
grows.

## What is the new behavior?

Organization settings are now on a sidebar, just like Project Settings
and most other surfaces.

| Before | After |
| --- | --- |
| <img width="1024" height="563" alt="Supabase"
src="https://github.com/user-attachments/assets/3889858c-157a-4deb-8714-71fe9cf002e6"
/> | <img width="1024" height="563" alt="General Supabase"
src="https://github.com/user-attachments/assets/1b4eb2c3-a67c-4eda-ab3c-e6610dd5ccf4"
/> |

## Additional context

@fsansalvadore and the design team have have other efforts going on to
reduce interface clutter, e.g. nested sidebars.
2026-03-03 10:15:40 +11:00
Danny White 57dde08672 chore(design-system): better breadcrumbs (#42310)
## What kind of change does this PR introduce?

Minor update

## What is the current behavior?

Our design system’s breadcrumbs:

1. Are not interactive
2. ~~Repeat the page title, which is directly below~~

## What is the new behavior?

These breadcrumbs:

- Are hyperlinked
- Show all parents, if nested
- ~~Don’t repeat the page title~~

| Before | After |
| --- | --- |
| <img width="1024" height="756"
alt="Forms-FBDF180F-F101-407C-A8EB-A06BBDB3509A"
src="https://github.com/user-attachments/assets/f2592b8b-b5d4-415f-af2e-28b99d5de0a0"
/> | <img width="1024" height="794"
alt="Forms-95348190-C8B2-4A3A-AE55-A4A5A16CD4B4"
src="https://github.com/user-attachments/assets/7b296c20-b12a-48ff-9479-6547cda73cd5"
/> |

## Additional context

I wonder if we should either drop the `/docs/` subdirectory or rename
it. The latter would make sense if we split, say, `/product/` from
`/icons/` and/or `/brand`.
[Primer](https://primer.style/octicons/design-guidelines/) does this
well.
2026-03-03 09:40:35 +11:00
Jeremias Menichelli f5667ac450 fix(Docs): Make code tags sync generated (#43282) 2026-03-02 18:37:25 +01:00
supabase-supabase-autofixer[bot]andgithub-actions[bot] 51dba7c6fb [bot] Decrease ESLint ratchet baselines (#43262)
Automated weekly decrease of ESLint ratchet baselines.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 18:35:18 +01:00
Terry Sutton fc06ffc901 Fix contribute table component (#43298)
Updates react-markdown to be compatible with  remark-gfm

Example issue: 
https://supabase.com/contribute/t/860-66969-11493-reddit_post_1rinknm

fixed: 

https://zone-www-dot-com-git-chore-fix-table-component-supabase.vercel.app/contribute/t/860-66969-11493-reddit_post_1rinknm
2026-03-02 13:21:10 -03:30
VaibhavandGildas Garcia b4cb20066f fix(studio): prevent sidebar text overlap on project cards (#42381)
## Problem
When hovering over the sidebar on the projects page, project card text
(names, regions, status) was rendering on top of the expanded sidebar,
making both the sidebar and project information difficult to read.

## Solution
Increased sidebar z-index from `z-10` to `z-50` to ensure the sidebar
renders above all project card content.

<details>
<summary>Before</summary>
<img width="423" height="220" alt="image"
src="https://github.com/user-attachments/assets/bf9eb93d-f043-4fd8-859b-804d06a2b5c9"
/>


</details>

<details>
<summary>After</summary>
<img width="334" height="185" alt="image"
src="https://github.com/user-attachments/assets/2cf43915-d517-4bd0-875b-2962d0ca3ad4"
/>


</details>

## Related
- Closes https://github.com/supabase/supabase/issues/42376

---------

Co-authored-by: Gildas Garcia <1122076+djhi@users.noreply.github.com>
2026-03-02 17:48:29 +01:00
Vaibhav 01fe4e68a0 fix(auth-config) : force refetch lint data after config update (#41960)
## Problem


The Performance Advisor warning "Auth Absolute Connection Management
Strategy" persists after switching from "Absolute" to "Percentage"
allocation strategy, even after project restart.

PR #41652 added cache invalidation but the frontend doesn't immediately
refetch, so stale lint data may be displayed until the next natural
refetch occurs.

## Solution

Force an immediate refetch of lint data after invalidating the cache.
This ensures the backend re-evaluates the `auth_db_connections_absolute`
lint with the updated `DB_MAX_POOL_SIZE_UNIT` configuration value.

## Changes

- Added `refetchQueries` call after cache invalidation in
`useAuthConfigUpdateMutation`
- Uses `type: 'active'` to only refetch active queries (React Query best
practice)

## Related

- Extends: https://github.com/supabase/supabase/pull/41652
- Closes: https://github.com/supabase/supabase/issues/41619


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved data consistency by ensuring validation information is
automatically refreshed following authentication configuration updates.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-02 17:35:10 +01:00
Ivan Vasilov b03866f023 chore: Bump vulnerable dependencies (#43148)
This pull request primarily updates dependencies across the project to
their latest versions, improving compatibility, security, and
performance. It also modifies configuration files to align with the
current package management setup.

Dependency upgrades (core libraries and tools):
Bumps dependencies to solve the following issues:
- https://github.com/supabase/supabase/security/dependabot/2855
- https://github.com/supabase/supabase/security/dependabot/2844
- https://github.com/supabase/supabase/security/dependabot/2860
- https://github.com/supabase/supabase/security/dependabot/2815
- https://github.com/supabase/supabase/security/dependabot/2774
- https://github.com/supabase/supabase/security/dependabot/2836
- https://github.com/supabase/supabase/security/dependabot/2816
- https://github.com/supabase/supabase/security/dependabot/2778
- https://github.com/supabase/supabase/security/dependabot/2790
- https://github.com/supabase/supabase/security/dependabot/2793

Configuration and lock file updates:

* Changed `.prettierignore` to ignore `pnpm-lock.yaml` instead of
`package-lock.json`, reflecting the switch to pnpm as the package
manager.
* Updated dependency overrides in `pnpm-lock.yaml` for `tar` and
`fast-xml-parser` to ensure consistent versions across the workspace.

These updates collectively ensure the project stays current with its
dependencies, reduces potential vulnerabilities, and improves overall
stability and maintainability.
2026-03-02 17:07:55 +01:00
Gildas GarciaandCharis 82c5ffb19f Configure sharding for Studio e2e tests (#43211)
## Problem

The e2e test suite for Studio takes around 20min. Feedback loop is too
long

## Solution

Try enabling [playwright
sharding](https://playwright.dev/docs/test-sharding#merge-reports-cli).
Only 2 shards for now

## Results

Before:
<img width="867" height="113" alt="image"
src="https://github.com/user-attachments/assets/aef01026-0eaf-4bd0-9a56-c0f5123dd2cc"
/>
<img width="845" height="115" alt="image"
src="https://github.com/user-attachments/assets/46fcf523-8128-4cf4-83cb-3f4e414337d8"
/>

After:
<img width="716" height="105" alt="image"
src="https://github.com/user-attachments/assets/ada0ffd7-3a9f-4ca0-9b2e-98b21df3188b"
/>

## Next steps

In future dedicated PRs, improve the tests themselves.

---------

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
2026-03-02 16:43:47 +01:00
Joshen Lim 1b5e472340 Attempt to fix coveralls upload step (#43285) 2026-03-02 15:34:57 +00:00
Jordi Enric 91bb0c9b8d chore(sentry): set tracesSampleRate to 1.0 in studio configs (#43243)
Increase traces sampling rate to 100%
2026-03-02 10:23:46 -05:00
Riccardo Busetti d41ab5b4ff ref(etl): Update configuration and add new parameters (#43126) 2026-03-02 16:01:44 +01:00
a2d0eafcc4 fix(docs): replace deprecated getSession with getClaims in Refine tutorial (#43203)
## What kind of change does this PR introduce?

Documentation update

## What is the current behavior?

The Refine tutorial uses `supabaseClient.auth.getSession()` in the
`authProvider.check` method to verify authentication. `getSession` is
deprecated and not recommended for auth verification.

## What is the new behavior?

Replaced `getSession()` with `getClaims()` which reads claims from the
locally cached JWT. This is the recommended approach as mentioned in the
issue.

## Files changed

- `apps/docs/content/guides/getting-started/tutorials/with-refine.mdx` —
Updated `check` method in the authProvider code example
-
`examples/user-management/refine-user-management/src/providers/auth-provider.ts`
— Updated the corresponding example code to match

Closes #42193

---------

Co-authored-by: gorillaworkout <bayudarmawan215@gmail.com>
Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
2026-03-02 11:14:50 +01:00
Raminder SinghandJoshen Lim ca7ba8f564 feat: improve stripe sync engine page behaviour (#43186)
* Moved sync status admonition to the settings page.
* The **Install integration** and **Uninstall integration** buttons now
show loading states during installation/uninstallation.
* Made the content of the `StripeSyncChangesCard` dynamic based on the
installation status.
* Fixed a bug in which the comment on the stripe schema was not parsed
correctly.

Screenshots for each state:

**Not installed**

<img width="897" height="884" alt="image"
src="https://github.com/user-attachments/assets/be567059-1deb-47d1-86df-af9f1c3b4fde"
/>

**Installing**

<img width="897" height="884" alt="image"
src="https://github.com/user-attachments/assets/664af71e-9407-4236-b4e5-1e7170a2f31f"
/>


**Install Error**

<img width="897" height="933" alt="image"
src="https://github.com/user-attachments/assets/0d6e4fbd-107a-4f95-8a5e-6bd1a1d6a1be"
/>


**Installed**

<img width="897" height="901" alt="image"
src="https://github.com/user-attachments/assets/e686e050-b3d2-42d0-bd3c-11d81540433a"
/>


**Uninstalling**

<img width="897" height="901" alt="image"
src="https://github.com/user-attachments/assets/7cd90d1c-ff83-4e7d-884e-4e340a1dcc75"
/>


**Uninstall Error**

<img width="897" height="938" alt="image"
src="https://github.com/user-attachments/assets/de0c1bc8-11c5-4c3f-a0ca-00b1f9e32ed3"
/>

**Settings Page (Sync Done)**

<img width="897" height="572" alt="image"
src="https://github.com/user-attachments/assets/ec5dd2a3-d183-42e1-8953-13bcf70082f5"
/>

**Settings Page (Sync in Progress)**

<img width="897" height="572" alt="image"
src="https://github.com/user-attachments/assets/7400c479-3e4f-4490-8857-414a93ebdc51"
/>


The idea behind these changes is that in future:

* We allow users to configure sync interval from the settings page.
* The overview page is mainly for the install/uninstall behaviour only,
rest everything goes to the settings page.
* We can show more granular progress during install/uninstall by showing
what is being installed/uninstalled: migrations are running, edge
functions are being deployed and so on.
* We can show more accurate error messages: migrations succeeded but
edge functions could not be deployed. This helps users troubleshoot and
in the worst case recover via manual actions.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-02 17:59:12 +08:00
Joshen Lim b50e0d4bd8 Remove dynamic imports for database settings (#43277)
## Context

Just refactoring - dynamic imports seem unnecessary here
2026-03-02 15:12:15 +08:00
Charis 941de105b8 feat: restore ability to dismiss incident banners (#43249)
## 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?

Feature restoration

## What is the current behavior?

Incident banners cannot be dismissed by users.

## What is the new behavior?

Users can dismiss incident banners again.

## Additional context
2026-03-02 14:59:14 +08:00
Danny White 5644beebf1 chore(studio): responsive AlertError (#43226)
## What kind of change does this PR introduce?

UI update

## What is the current behavior?

AlertError is usually full of prose yet has `horizontal` button
placement. This looks incredibly awkward at smaller breakpoints.

## What is the new behavior?

AlertError swaps the default `layout` to `responsive`, making the
smaller breakpoint composition much nicer.

| Before | After |
| --- | --- |
| <img width="370" height="850" alt="Spinner Toolshed
Supabase-FBF6DD34-258E-4E36-B3DF-533F0EDDC307"
src="https://github.com/user-attachments/assets/cb38c270-bdc1-46b7-8fed-7c6ff9f15ccc"
/> | <img width="370" height="850" alt="Spinner Toolshed
Supabase-37BDDE9A-DF90-4B96-95F4-4AA15A12682A"
src="https://github.com/user-attachments/assets/d8ff89bf-2451-44e0-a048-418272f7514a"
/> |

## Additional context

2+ buttons (`additionalActions`) still forces the `vertical` layout
type.

## To test

The pictured example is not available on this branch. An easy one to
test is
[CreateBranchModal](https://github.com/supabase/supabase/blob/2cc275fd51818752a7ff16eb46c2697e9f1f2c9a/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx#L410):

```diff
- {isErrorConnections && (
+ {true && (
        <AlertError
          error={connectionsError}
          subject="Failed to retrieve GitHub connection information"
        />
      )}
```
2026-03-02 10:52:14 +11:00
Raminder Singh e46d1d559e feat: add a Contact Us page (#43263)
New Contact Us page at `/contact-us`:

<img width="1726" height="1045" alt="image"
src="https://github.com/user-attachments/assets/7dfa9226-7067-4d5f-b7f8-bb45597aad8b"
/>

Link in the Company section (see bottom right):

<img width="1051" height="441" alt="image"
src="https://github.com/user-attachments/assets/873e9884-66b7-48e9-b949-950af1e2dcae"
/>
2026-03-01 19:29:19 +00:00
kemal.earth 3f56b04137 feat(studio): remove delete from projects list items (#43248)
## 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?

Less destructive action on Projects List.
2026-02-27 18:38:47 +00:00
Jordi EnricandClaude Sonnet 4.6 36137c784b chore: sentry noise reduction (#42933)
Sentry was flooded with un-actionable events: browser extension errors,
network blips, React hydration
noise from DOM-manipulating extensions, and CriticalError issues that
were impossible to route because
they grouped by message string rather than type. This made it hard to
spot real regressions.

##  Changes:
- Improved client-side Sentry signal quality in
apps/studio/instrumentation-client.ts by replacing
custom third-party stack filtering with
Sentry.thirdPartyErrorFilterIntegration, plus stricter
    allowUrls filtering for Supabase/app frames.
- Added build-time Sentry bundle annotation in
apps/studio/next.config.js via
unstable_sentryWebpackPluginOptions.applicationKey = 'supabase-studio'
to support reliable third-party
    frame filtering.
- Expanded and reorganized ignoreErrors rules across client/server/edge
Sentry configs to suppress known
non-actionable noise (Next.js navigation internals, network/transient
chunk failures, extension/DOM-
    manipulation noise, hydration-noise patterns).
- Refactored critical error reporting in
apps/studio/lib/error-reporting.ts from captureMessage to
captureException with scoped tags (critical=true, context=<action>) and
synthetic CriticalError
    exceptions for better alerting/grouping.
- Updated tests in apps/studio/lib/error-reporting.test.ts to match the
new Sentry API usage (withScope
    + captureException) and assert on exception objects/tags behavior.
- 100% sampling (codeSampleRate = 1) for normal/useful errors.
- 1% sampling (codeSampleRate = 0.01) only for explicitly noisy classes:
      - Failed to construct 'URL': Invalid URL
      - Session error detected
- chunk-load failures (ChunkLoadError, Loading chunk ... failed, Loading
CSS chunk ... failed)
- Sent events are tagged with codeSampleRate so you can filter/segment
in Sentry dashboards.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 17:26:23 +01:00
Ivan Vasilov 45120155d2 feat: Fetch the google scripts only if consent is accepted (#43221)
This pull request improves how user consent is handled for telemetry and
tracking, ensuring that analytics scripts and cookies are only active
when the user has provided consent. The changes both enforce stricter
checks before enabling Google Tag Manager and ensure that tracking
cookies are cleared when consent is denied.
2026-02-27 17:20:16 +01:00
Charis b8b14f06e0 refactor: move storage utils out of valtio + write tests (#43225)
Refactor

## What is the current behavior?

Many utility functions are in the Valtio object which is overly large
and complex.

## What is the new behavior?

Some utility functions are moved out and tested. No behaviour has been
changed, they've just been moved with any necessary changes to
arguments.
2026-02-27 10:42:07 -05:00
Francesco Sansalvadore affdf865e0 fix: mobile sheet nav close (#43239)
Mobile sheet nav doesn't close on route change and viewport resizing
after #43184.

This PR fixes that and also makes it optional to close on nav and
resizing, because the sidepanels need them _not_ to resize, while mobile
navigation menu does.

Also added some tests. 🪄
2026-02-27 16:14:57 +01:00
Francesco Sansalvadore 9145470ff6 feat(studio): mobile sheet nav (#43184)
- use `MobileSheetNav` for all `LayoutSidebar` panels on mobile viewport
- move `Help` to LayoutSidepanel for a more cohesive experience
- enables opening the help panel using params `?sidebar=help-panel`

https://github.com/user-attachments/assets/a84e56f0-f2e2-4217-89a2-ba895bb7d352
2026-02-27 12:06:27 +00:00
supabase-supabase-autofixer[bot]andsupabase-releaser[bot] 8dd8daeddf feat: update @supabase/*-js libraries to v2.98.0 (#43212)
This PR updates @supabase/*-js libraries to version 2.98.0.

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

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

This PR was created automatically.

Co-authored-by: supabase-releaser[bot] <223506987+supabase-releaser[bot]@users.noreply.github.com>
2026-02-27 11:59:36 +00:00
Etienne StalmansandJoshen Lim 3ab3e999d3 feat: require current password on reset password (#43085)
## 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?

feature

## What is the current behavior?

Change password only requires the new password

## What is the new behavior?

The current password is required and must be valid before the password
can be changed.

Also hides a revealed password if the user clicks out of the input
field.

## Additional context

Needs the backend flag to be changed, but is safe to merge _before_
backend change is made. Is unsafe to merge _after_ backend flag is
changed (there will be a gap where users can't reset password through
the dashboard).

before:
<img width="486" height="364" alt="Screenshot 2026-02-23 at 09 58 04"
src="https://github.com/user-attachments/assets/7d9fcbc0-5ce9-4190-8bee-a325f3d4452e"
/>
after:
<img width="520" height="471" alt="Screenshot 2026-02-23 at 09 58 56"
src="https://github.com/user-attachments/assets/166e7537-5db8-47b7-a39f-ad55521715f5"
/>

before:
<img width="532" height="486" alt="Screenshot 2026-02-23 at 09 59 53"
src="https://github.com/user-attachments/assets/7445f61d-d354-4f3d-a084-fdf0b7b1ccca"
/>

after: 
<img width="524" height="599" alt="Screenshot 2026-02-23 at 10 00 10"
src="https://github.com/user-attachments/assets/573e9620-b663-4bad-8a7a-d315cc521495"
/>

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-02-27 11:55:39 +01:00
Jordi EnricandJoshen Lim b0227cf9dc fix: custom report gets stuck block after deleting sql snippet (#43210)
- Deleted SQL Snippets leave a hanging block that loads forever in
custom reports, and its not possible to delete them.
- Now you can delete blocks if they get stuck loading
- Also shows correct error state when a block couldn't load because the
sql snippet was removed
## before
- stuck forever 
<img width="1296" height="936" alt="CleanShot 2026-02-26 at 13 23 25@2x"
src="https://github.com/user-attachments/assets/bb65cc5f-c2a4-4027-876e-db9682ec6f3c"
/>

## after
- show error state
- allow user to delete snippet
<img width="1388" height="862" alt="CleanShot 2026-02-26 at 13 23 45@2x"
src="https://github.com/user-attachments/assets/c5d6c114-071b-4e4d-a913-25b3c788db95"
/>

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-02-27 11:43:34 +01:00
supabase-supabase-autofixer[bot]andsupabase-releaser[bot] 73b829c2cd docs: update js sdk docs (2.98.0) (#43213)
Updates JS sdk documentation following stable release. 
Ran `make` in apps/docs/spec to regenerate tsdoc files.

**Details:**
- **Version:** `2.98.0`
- **Source:** `supabase-js-stable-release`
- **Changes:** Regenerated tsdoc files from latest spec files

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

Co-authored-by: supabase-releaser[bot] <223506987+supabase-releaser[bot]@users.noreply.github.com>
2026-02-27 11:04:51 +01:00
Jordi EnricandJoshen Lim ea51d278ab feat: add link to log explorer filtered by user id (#43144)
<img width="1370" height="512" alt="CleanShot 2026-02-24 at 16 52 43@2x"
src="https://github.com/user-attachments/assets/25f98ff0-5343-49b3-a931-31e29d816c42"
/>

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-02-27 16:24:15 +08:00
Danny WhiteandJoshen Lim 43f7b95002 fix: theme switcher discoverability (#43165)
## What kind of change does this PR introduce?

Fix

## What is the current behavior?

The theme switcher in `CommandMenu` is not showing up when typing in
“dark mode”, “toggle theme” or similar commands.

## What is the new behavior?

Added hidden root commands: `Toggle theme`, `Use dark theme`, `Use light
theme`, `Use system theme`, plus existing `Switch theme...` with search
aliases.

Also added `value` aliases to the theme items so searches pop up.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-02-27 16:23:23 +11:00
Danny White b09b569a59 chore(design-system): sandwiched admonition (#43120)
## What kind of change does this PR introduce?

- Design system docs addition

## What is the current behavior?

- We used a ’sandwiched’ style Admonition a lot but have no clear
docs/examples for it

## What is the new behavior?

- An example file and documentation around the sandwiched Admonition
- Minor unrelated changes
	- Copywriting docs expansion on capitalization and declarative writing
	- `pnpm format` on charts

## Additional context

| Preview |
| --- |
| <img width="1714" height="612" alt="CleanShot 2026-02-24 at 16 02
21@2x"
src="https://github.com/user-attachments/assets/f547bdea-ca31-4ba7-85eb-bd9bcbf30d35"
/> |
2026-02-27 16:23:08 +11:00
Ivan VasilovandJoshen Lim e8c309c312 fix: resolve undefined project ref in TabsStateContextProvider (#43222)
This pull request refactors how the `TabsStateContextProvider` receives
the project reference and updates related imports for consistency and
maintainability. The main change is to pass `projectRef` explicitly as a
prop instead of fetching it internally, which improves context control
and makes the component easier to test and reuse. Additionally, the PR
updates import paths to use absolute aliases and removes an unused
function.

This fixes an issue which you can replicate by:
1. Go to SQL editor
2. Open any snippet
3. Delete the local storage `supabase_studio_tabs_{project ref}`
4. Refresh the page while still the snippet is open

This will make the snippet to enter in a ghost state where the tab name
is not visible but you see the content.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-02-27 12:32:01 +08:00
Danny White 0a96a5d0ce chore(studio): polish database settings (#42970)
## What kind of change does this PR introduce?

UI update

## What is the current behavior?

- Database settings uses an older, much wider, layout
- This will become problematic later on as more complex elements are
added to the page
- Titles and descriptions are inconsistently formatted

## What is the new behavior?

| Before | After |
| --- | --- |
| <img width="1728" height="994" alt="Oldie 2 Toolshed
Supabase-EE998752-3696-45E4-A842-9666049153D8"
src="https://github.com/user-attachments/assets/8f0004cf-3bb4-4b00-900a-b116b80371a6"
/> | <img width="1728" height="994" alt="Oldie 2 Toolshed
Supabase-7E86FD58-35BB-4912-8B2F-8C7AAA03B462"
src="https://github.com/user-attachments/assets/606b51b4-21a0-4b7b-870b-ac92ed363f3c"
/> |
2026-02-27 11:16:02 +11:00
Dovudkhon/ドフドコン 8d5e366387 Update a typo in the apps/docs/content/guides/storage/buckets by fixi… (#43130)
…ng 'a authorization' to 'an authorization'''

Fixed a minor grammatical error in
`apps/docs/content/guides/storage/buckets` where "a authorization" was
incorrectly used instead of "an authorization".

## 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?

It is a typo fix in the docs

## What is the current behavior?

There are no issues concerning the performance. Just a minor grammar
mistake
## What is the new behavior?

Feel free to include screenshots if it includes visual changes.

<img width="863" height="431" alt="Screenshot 2026-02-24 at 20 42 00"
src="https://github.com/user-attachments/assets/364a405c-ea60-41cf-a6ec-b83f0ed3f6ab"
/>

Add any other context or screenshots.
2026-02-26 15:27:45 +00:00
Andrew Valleteau dcc5703674 feat(branching): add-pg-delta-diff-for-branching (#42952)
Allow to use the `pg-delta` capability for merge requests diffing.
Feature flag it behind an auto opt-in flag.

Must be merged after: https://github.com/supabase/platform/pull/29776
<img width="921" height="623" alt="Screenshot 2026-02-17 at 16 50 38"
src="https://github.com/user-attachments/assets/bfe704e9-4137-45e1-b0b5-1cecce284d6e"
/>


Also updated the loading + final state of the diff view to:

1. Take all the height available

- From: <img width="1894" height="893" alt="Screenshot 2026-02-16 at 20
46 15"
src="https://github.com/user-attachments/assets/22ed8c72-2d9d-4b68-b315-6d40aefc0b3c"
/>


- To: <img width="1629" height="1396" alt="Screenshot 2026-02-16 at 20
57 26"
src="https://github.com/user-attachments/assets/6e83c8e9-607d-4077-977e-046058ce3e44"
/>

2. Show a proper loading state rather than just a plain grey skeleton

- From: <img width="2232" height="1137" alt="Screenshot 2026-02-20 at 15
02 51"
src="https://github.com/user-attachments/assets/0c924b04-d60f-49b5-a5a0-3bf1942bfdef"
/>
- To:
<img width="2231" height="1129" alt="Screenshot 2026-02-20 at 15 05 46"
src="https://github.com/user-attachments/assets/49751001-1818-4842-a0c8-b74683c2e9bc"
/>
2026-02-26 15:28:13 +01:00
Chris PraasandChris Chinchilla e1b51dff81 added CLI example for generating types with self-hosted instance
Docs Update. Added a example for generating types with self-hosted
instance.

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
2026-02-26 12:20:29 +01:00