Commit Graph
17537 Commits
Author SHA1 Message Date
kemal 28ed367e60 feat: tweak animation again 2026-03-30 17:34:37 +01:00
kemal e03828526b Merge remote-tracking branch 'origin/master' into kemal/depr-406-pro-upgrade-enhancement-better-notification-regarding 2026-03-30 17:07:07 +01:00
supabase-supabase-autofixer[bot]andsupabase-releaser[bot] 76efd06a96 docs: update js sdk docs (2.101.0) (#44348)
Updates JS sdk documentation following stable release.
Ran `make` in apps/docs/spec to regenerate tsdoc files.

**Details:**
- **Version:** `2.101.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-03-30 19:04:40 +03:00
kemal.earth d1439eb114 feat(studio): clarify public bucket access message in dashboard (#44287)
## 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 tooltip and a small modification to the `public` badge on on public
buckets.
2026-03-30 16:45:16 +01:00
Joshen Lim a1abc2d00f Refactor table editor logic for handling null and undefined values (#44331)
## Context

Resolves https://github.com/supabase/supabase/issues/43548

There's currently an issue with the Table Editor where if you have, for
example, a nullable `text` column with a default value, inserting a new
row and selecting "Set to NULL" doesn't do anything, and saving will
insert the row with the default value
<img width="700" height="258" alt="image"
src="https://github.com/user-attachments/assets/6a284ebb-c346-40a6-9a30-793118844084"
/>

This stems from a legacy logic in the Table Editor whereby we treat
`null` values as "no input" - which is incorrect as `null` values are
also valid values. So the PR here changes a few things to resolve this
properly:

## Changes involved
Main fix: 
- `undefined` will be the "no input" value instead, and it'll be the
default value when generating the row object for inserting a new row
- `NULL` or even empty string like `''` will be treated as they are
(valid inputs)

Secondary adjustments:
- (Queue operations) Queueing an insert with no value but default value
is NULL, will show the placeholder as `DEFAULT` instead of `NULL` for
better accuracy in representation
<img width="892" height="96" alt="image"
src="https://github.com/user-attachments/assets/02cf86bf-c17b-4e25-9a8f-17960b1d2575"
/>
- Added a `Set to Default` CTA here, but will only show up if adding a
new row or updating a queued insert row operation, which will set the
value of the input field back to `undefined` for PG to handle it as the
default value
<img width="734" height="208" alt="image"
src="https://github.com/user-attachments/assets/23887c0c-533e-4494-acbe-61309ff5d7c5"
/>


## To test
Verify within the Table Editor (along with queue operation feature
preview)
- For inserting a new row, setting value to NULL and setting value to
Default works
- For updating a row, setting value to NULL works
2026-03-30 23:33:53 +08:00
Charis d817cf9c2a feat: promote new banner endpoint to prod (#44346)
New incident banner workflow should now be the standard in prod as well
as preview.
2026-03-30 11:31:09 -04:00
Vaibhav ead5321c51 fix: browser back navigation on observability page (#43807)
## Problem
The observability pages has a browser navigation issue where pressing
the back button would get stuck in a redirect loop between
`/observability` and `/observability/api-overview`, making it difficult
to navigate away using browser controls

<details>
<summary>vid:</summary>


https://github.com/user-attachments/assets/4b48651b-143d-4857-831b-67d1b98e237d

</details>

## Solution
Changed automatic redirects from `router.push()` to `router.replace()`
in the routing logic.

## Related
Same pattern as
https://github.com/supabase/supabase/commit/f8419ef9ae7c43ea033617e5544c565dfaaf87acc
2026-03-30 11:28:28 -04:00
Gildas Garcia 580a1f972b fix auth providers string fields are all considered sensitive (#44345)
## Problem

All Auth Providers string fields are considered sensitive

## Solution

Restore check of the `sensitive` property that was mistakenly removed in
#44095

## Screenshots

<img width="815" height="949" alt="image"
src="https://github.com/user-attachments/assets/5eab2db9-7023-4351-ab64-f09f5b54d1b8"
/>
2026-03-30 15:08:30 +00:00
supabase-supabase-autofixer[bot]andgithub-actions[bot] fe6fe91a51 [bot] Decrease ESLint ratchet baselines (#44311)
Automated weekly decrease of ESLint ratchet baselines.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-30 10:58:20 -04:00
babed4472d feat: update @supabase/*-js libraries to v2.100.1 (#44235)
This PR updates @supabase/*-js libraries to version 2.100.1.

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

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

This PR was created automatically.

Edit by @mandarini:
Fix type error in `lib/events.ts` caused by `supabase-js` `v2.100.1`
adding strict column name validation to `.eq()`. Updated the `meetups`
table definition in `database.types.ts` to include missing columns
(`is_published`, `country`, `start_at`, `launch_week`).

---------

Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
Co-authored-by: Katerina Skroumpelou <sk.katherine@gmail.com>
2026-03-30 15:50:34 +01:00
Vaibhav 79e72569b1 fix: preview bool (#44339)
## TL;DR

fixes boolean values rendering as blank in the referencing record
preview popover

| Before | After |
| --- | --- |
| <img width="348" height="114" alt="Before"
src="https://github.com/user-attachments/assets/de0b6399-996c-416c-921a-f251239435aa"
/> | <img width="385" height="137" alt="After"
src="https://github.com/user-attachments/assets/c0a14b8f-19ca-4052-baac-e7a2a1fa8246"
/> |

## Related

- closes https://github.com/supabase/supabase/issues/44333
- ig was introduced in https://github.com/supabase/supabase/pull/44144
2026-03-30 07:32:45 -06:00
Katerina Skroumpelou 41f9ddd70c docs: update setAll callbacks to accept cache headers second argument (#44240)
## What

Updates all `setAll` cookie handler implementations across docs and
examples to accept the new `headers` second argument introduced in
`@supabase/ssr` v0.10.0
([supabase/ssr#176](https://github.com/supabase/ssr/pull/176)).

## Why

`@supabase/ssr` v0.10.0 introduced a breaking change: `setAll` now
receives a required second argument `headers: Record<string, string>`
alongside the cookies array. When a token refresh occurs, the library
passes cache headers (`Cache-Control`, `Expires`, `Pragma`) that must be
applied to the HTTP response to prevent CDN caching of auth responses.

Because TypeScript allows functions with fewer parameters to satisfy a
type expecting more, existing `setAll` implementations do not produce a
type error when the second argument is omitted. Users who copy an
outdated snippet will silently miss the CDN protection.

Root cause and context:
[supabase/supabase-js#1682](https://github.com/supabase/supabase-js/issues/1682)

## Changes

**Proxy/middleware contexts** (where token refreshes happen) now apply
the cache headers to their response:
- Next.js proxy files: `supabaseResponse.headers.set(key, value)`
- SvelteKit hooks: `event.setHeaders(headers)`
- Hono middleware: `c.header(key, value)`
- Pages Router (Express-style): `ctx.res.setHeader(key, value)`
- Remix/React Router loaders and actions: applied to response headers
(outer `headers` variable renamed to `responseHeaders` to avoid naming
conflict with the new param)

**Server Component and API route contexts** (no response object
available) accept `_headers` without applying them.

## Files updated

- `apps/docs/content/guides/auth/server-side/creating-a-client.mdx`
(inline Astro, Remix, React Router, Express snippets)
- `apps/docs/content/_partials/oauth_pkce_flow.mdx`
- `apps/docs/content/guides/auth/oauth-server/getting-started.mdx`
- `apps/docs/content/guides/auth/passwords.mdx`
-
`apps/docs/content/troubleshooting/how-to-migrate-from-supabase-auth-helpers-to-ssr-package-5NRunM.mdx`
- `examples/auth/nextjs/`, `examples/auth/nextjs-full/` (proxy + server)
- `examples/auth/sveltekit/`, `examples/auth/sveltekit-full/`
- `examples/auth/hono/`, `examples/auth/hono-full/`
- `examples/user-management/nextjs-user-management/` (proxy + server)
- `examples/user-management/sveltekit-user-management/`
- `examples/realtime/nextjs-authorization-demo/` (proxy + server)
- `examples/realtime/nextjs-auth-presence/` (pages router)
- `examples/prompts/nextjs-supabase-auth.md`
2026-03-30 16:08:29 +03:00
Pamela ChiaandAlaister Young edacf2413d chore(studio): ship connect section, remove getting started and experiment plumbing (#44329)
## Summary

The `connectSection` A/B experiment concluded as a true null (no effect
on activation or any downstream metric after 13 days at 50/50, ~153K
mature orgs). Saxon decided to ship the Connect section as the permanent
experience. This PR removes the Getting Started control variant, the old
Connect modal, all experiment flag gating, and related telemetry types.

## Changes

- Delete `GettingStarted/` directory (5 files: section component, types,
utils, progress hook)
- Delete old `Connect.tsx` dialog modal (replaced by ConnectSheet)
- Remove `connectSection` PostHog flag reads from `Home.tsx` and
`LayoutHeader.tsx`
- Remove `getSectionVisibility()` experiment logic and
`ConnectSectionVariant` type
- Remove `getting-started` from `DEFAULT_SECTION_ORDER`
- Always render `<ConnectSheet />` in header (no more conditional with
old `<Connect />` modal)
- Remove `variant` prop from `ConnectSection` component
- Remove 4 getting-started telemetry event interfaces from
`telemetry-constants.ts`
- Update `mergeSectionOrder` tests to reflect new section order

## Testing

Tested on Vercel preview:
- [x] Project homepage shows Connect section for new projects (< 10 days
old)
- [x] Connect section hidden for mature projects (> 10 days old)
- [x] Header Connect button opens ConnectSheet (not old modal)
- [x] Connect tiles open ConnectSheet with correct tab
- [x] Section drag-and-drop still works without getting-started in the
order
- [x] Existing users with `getting-started` in localStorage order don't
break (mergeSectionOrder strips it)

## Linear

- fixes GROWTH-730

---------

Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
2026-03-30 20:51:09 +08:00
Ivan VasilovandJoshen Lim 7bbd7060d3 fix: Set the default branch if it's not already set on Github integration (#44332)
Previously, the POST to `/v1/projects/{ref}/branches` didn't work on
free projects, which left some Supabase projects setup without a default
branch. Easy fix for those projects would be to disable/enable the whole
integration.

This PR fixes that so that when the user wants to setup a production
sync, the code checks if there's branches already setup and if not, sets
the selected branch as default.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-30 14:46:32 +02:00
Joshen Lim 514b097021 Migrate Database Webhook integrations to new integration sUI (#44277)
## Context

Related to marketplace integrations

Shifts Database Webhooks integration to the new Integrations UI. This
one's a bit different from the previous PRs as this involves a full SQL
installation query instead of only just a database extension. So am
tweaking `Integrations.constants` a little.

For context eventually all the integrations will be pulled remotely from
a database, so am still trying to figure out an optimal data structure,
but requirements will be clearer as we build out the UI

RE installing integrations:
- For now, if the integration has a provided SQL installation command,
that'll take precedence
- Else, if the integration has a provided SQL installation query, we'll
use that on the /query endpoint
- Otherwise, if the integration only requires database extensions,
dashboard will generate the queries to install the extensions
- In the case of the former tho, we won't allow users to choose which
schema to install the extension in too

Just ping me if any clarification's required!

## To test
- [ ] Verify that you can install the database webhooks with the new
integration UI
- [ ] Verify that behaviour is status quo without the new integration UI
2026-03-30 19:39:49 +08:00
kemal e4e5f61b86 fix: merge conflict 2026-03-30 11:51:11 +01:00
Danny White cca4e52dd0 refactor(ui-patterns): Standardise TanStack sort headers (#44212)
## What kind of change does this PR introduce?

Component update.

## What is the current behaviour?

TanStack tables in the repo are split between the shared `TableHeadSort`
primitive and the older Studio-local `DataTableColumnHeader` helper,
which makes the sorting UI and integration path inconsistent.

If you were to just use `DataTableColumnHeader` in `ui-patterns/Table`,
you’d get a very different visual result to the `TableHeadSort` UI you
see in most other tables.

## What is the new behaviour?

Adds a shared `TanStackTableHeadSort` adapter in `ui-patterns/Table`,
backed by the existing `TableHeadSort` primitive, and switches the
webhook table plus the design-system TanStack demo to that canonical
path. `DataTableColumnHeader` stays as a deprecated wrapper for now,
Studio gets a lint guard to block new imports of it, and the table docs
now point TanStack tables at the shared adapter explicitly.

## To test

Check out column sorting on the Platform Webhook endpoint deliveries
table.
2026-03-30 21:48:52 +11:00
Ivan Vasilov ee8eae7309 chore: Clean the ui package from next imports (#44278)
This PR moves several components which rely on `next` out of the `ui`
package to the `ui-patterns` package.

`ui-patterns` package is intented to be imported with specific imports
so it's ok if there are components reliant on `next` in there.

The `SonnerToaster` component has removed its dependency by requiring a
prop for `theme`.
2026-03-30 10:58:37 +02:00
Pamela Chia e01fa312fb feat(studio): add connection_string_copied tracking to ConnectSheet (#44327) 2026-03-30 16:32:18 +08:00
Joshen Lim ef6c47616f Bring Vault, Cron, Data API and GraphiQL integrations to the new UI (#44271)
## Context

Just brings more integrations over to the new UI bit by bit
- Vault
- Cron
- Data API
- GraphiQL

Will be tackling webhooks next which is a bit different as its not just
a database extension
2026-03-30 15:44:01 +08:00
Joshen Lim 4fdeed448b Joshen/fe 2854 migrate queues integration to new UI (#44270)
## Context

Related to marketplace related work, just moves the Queues integration
to the new UI (Changes are feature flagged)
<img width="1145" height="584" alt="image"
src="https://github.com/user-attachments/assets/d3245889-597d-44e2-9850-f20907e42056"
/>

Installation is now in a side panel with the intention that it'll just
be a single click to install integrations that involve multiple parts
<img width="400" height="955" alt="image"
src="https://github.com/user-attachments/assets/71903b61-6bd2-486c-903e-b48ae2133887"
/>


## To test
- Verify that you can install the integration and everything else should
be status quo
- Verify that everything should be status quo if the flag is off
2026-03-30 14:23:21 +08:00
Danny WhiteandAli Waseem 12a43e5aba chore(studio): storage file explorer breadcrumbs (#43844)
## What kind of change does this PR introduce?

UI update that resolves DEPR-114. Also resolves DEPR-113.

## What is the current behavior?

- The breadcrumbs on the file explorer have some rough edges in column
view
  - Fancy hide/show behavior
  - Hidden tap targets
- `FileExplorerHeader` actions can overflow on the x-axis
- The Navigate button is only shown on hover
- The inline Navigate flow does not work well on smaller screens

## What is the new behavior?

- Column view now shows the same in-explorer breadcrumb trail as list
view
- The active breadcrumb is visually emphasized, while inactive
breadcrumbs remain clickable
- The back affordance now uses a clearer arrow treatment with a stronger
separator from the breadcrumb trail
- The Navigate button is permanently visible and moved to the right-side
action group before Reload
- Navigate now opens a dialog on both desktop and mobile
- Added typed telemetry so we can measure `Navigate` usage before
deciding whether to keep or remove it
- Fixed header overflow by letting the full header contents scroll
horizontally together instead of visibly spilling out

| Before | After |
| --- | --- |
| <img width="947" height="997" alt="Buckets Storage AWS Healthy
Toolshed Supabase"
src="https://github.com/user-attachments/assets/fa53fdd4-954c-4832-bf9b-210b63ae020b"
/> | <img width="947" height="997" alt="Buckets Storage AWS Healthy
Toolshed Supabase"
src="https://github.com/user-attachments/assets/3689a0e5-97d1-4b36-a2dd-7adce23add5d"
/> |
| <img width="864" height="997" alt="Buckets Storage AWS Healthy
Toolshed Supabase"
src="https://github.com/user-attachments/assets/ad559118-205f-40e2-b3c5-97cef462d5f5"
/> | <img width="864" height="997" alt="Buckets Storage AWS Healthy
Toolshed Supabase"
src="https://github.com/user-attachments/assets/9c569b29-7c58-4a33-b809-34d6ed919008"
/> |

## Additional context

Also added a link to the `Buckets` portion of the `PageHeader`
breadcrumb:

```text
Files > Buckets > MyBucketName
```

It goes to the same place as Files because the root Files page lists
buckets, but having both links there feels more ergonomic in practice.

---------

Co-authored-by: Ali Waseem <waseema393@gmail.com>
2026-03-30 13:14:27 +11:00
Gildas Garcia 7d7de475ec chore: use react-hook-form in logs query modals (#44243)
## Problem

- Logs query modals still use `formik` and we want to remove it in
favour of `react-hook-form` to keep only one form library

## Solution

- Migrate to `react-hook-form`

## Screenshots

New query:
<img width="566" height="387" alt="image"
src="https://github.com/user-attachments/assets/f300a292-88f6-454e-8f86-84a27a8c4892"
/>

Existing query:
<img width="554" height="378" alt="image"
src="https://github.com/user-attachments/assets/2333f041-7185-47f6-8fb0-5176b5a0c77b"
/>
2026-03-27 17:32:15 +01:00
kemal fc5dce7a68 chore: remove console log 2026-03-27 16:18:20 +00:00
kemal b7b8f13b38 Merge remote-tracking branch 'origin/master' into kemal/depr-406-pro-upgrade-enhancement-better-notification-regarding 2026-03-27 15:58:16 +00:00
Gildas Garcia 753638caf4 fix: storage explorer column infinite loading loads the wrong column (#44275)
## Problem

When scrolling down in a column that has more than 200 items to trigger
its lazy loading, while other columns are displayed and the targeted
column isn't the last one, it doesn't load its items.

Fixes #43799

## Solution

- Don't rely on the storage state for opened folders for the lazy
loading
- Add the item path information to the column and use it to define the
API request path

## How to test

- create a bucket
- create a folder and upload more than 200 items in it
- in this folder, create a sub folder and upload more than 200 items in
it (make sure its name position it _before_ the files)
- refresh the page
- without scrolling the first column, select the subfolder
- now scroll down on the first column past the last of its items and
verify it loads more items
- do the same on the sub folder column

To easily create many files to upload, use the following commands:

For root folder:
```sh
for i in {0..300}
do
    echo hello >"root_$(printf "%03d" "$i").txt"
done
```

For sub folder:
```sh
for i in {0..300}
do
    echo hello >"sub_$(printf "%03d" "$i").txt"
done
```
2026-03-27 16:55:15 +01:00
Jeremias Menichelli 3ec3f3c57d chore(Docs): Bump radix dependency to avoid ref error (#44276) 2026-03-27 16:17:25 +01:00
kemal b268eaec9d fix: merge conflict 2026-03-27 12:49:07 +00:00
Mert YEREKAPAN f8815aff9b refactor(pricing): remove A/B experiment logic and consolidate pricing components (#44205)
## 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?

Removes the control variant and replaces it with the test variant as
winner.

## What is the current behavior?

-

## What is the new behavior?

-
## Additional context

Add any other context or screenshots.
2026-03-27 11:31:47 +00:00
Gildas Garcia 63c63d57e3 chore: use react-hook-form in Storage custom expiry modal (#44245)
## Problem

- Storage custom expiry modal still uses `formik` and we want to remove
it in favour of `react-hook-form` to keep only one form library

## Solution

- Migrate to `react-hook-form`

## Screenshots

Before:
<img width="443" height="235" alt="image"
src="https://github.com/user-attachments/assets/c9e10fa5-a618-4287-bc13-ca40ce41af10"
/>
<img width="438" height="335" alt="image"
src="https://github.com/user-attachments/assets/bf903eaf-0c31-4150-a17d-32a616dde7cc"
/>

After:
<img width="417" height="290" alt="image"
src="https://github.com/user-attachments/assets/be12f39e-0f1f-46cb-a442-82553b0a77e6"
/>
<img width="443" height="342" alt="image"
src="https://github.com/user-attachments/assets/4f537259-d3f6-4664-a1a1-f4a921c6a26c"
/>
2026-03-27 12:31:33 +01:00
Jeremias Menichelli 5e6e2ec0c1 fix(Docs): Migrate the rest of the raw.githubcontent calls to new util (#44274) 2026-03-27 11:55:36 +01:00
Inder Singh 2fd49395b8 docs(self-hosted): session token usage with s3 client (#43394) 2026-03-27 11:48:16 +01:00
supabase-supabase-autofixer[bot]andsupabase-releaser[bot] d58cc5b157 docs: update js sdk docs (2.100.1) (#44236)
Updates JS sdk documentation following stable release.
Ran `make` in apps/docs/spec to regenerate tsdoc files.

**Details:**
- **Version:** `2.100.1`
- **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-03-27 11:39:52 +01:00
Sreyas Udayavarman c5518d437a Update standard-uploads.mdx (#44225)
Updated standard uploads documentation to include curl examples
2026-03-27 10:17:49 +05:30
2ab9915d8c Connect iteration (#43949)
<img width="1670" height="1030" alt="image"
src="https://github.com/user-attachments/assets/fa2e4f9a-2287-402c-89cc-7f05d04f57e5"
/>


- Connect button becomes primary on new projects
- Switch from HoverCard to a "Copy" button on project url
- Adds "API Keys" item to the "Get Connected" section on project home

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: SaxonF <1072756+SaxonF@users.noreply.github.com>
2026-03-27 09:14:04 +10:00
Danny White 6b6598994f chore(studio): add pagination to webhook deliveries table (#43847)
## What kind of change does this PR introduce?

UI update.

## What is the current behavior?

The webhook endpoint details view showed all mock deliveries in a single
table with a Studio-specific sortable header treatment, no pagination,
and uneven row heights when the retry action was absent.

## What is the new behavior?

Moves the deliveries table onto TanStack table state, adopts the shared
`TableHeadSort` header UI, keeps the existing delivery search, and adds
simple previous/next pagination controls at the bottom. The mock
deliveries are expanded so pagination and sorting can be exercised in
both organisation and project flows, and the actions column now reserves
a consistent button footprint so every row keeps the same minimum
height.

| Before | After |
| --- | --- |
| <img width="1728" height="997" alt="Webhooks Settings Chisel Toolshed
Supabase-A4712323-6FD9-471B-B1F4-234B20686018"
src="https://github.com/user-attachments/assets/2745e5fd-1ef7-4f3a-872c-1fd8d10dce41"
/> | <img width="1728" height="997" alt="Webhooks Settings Chisel
Toolshed Supabase-D482241B-F324-4EA2-9B89-133AD5E10F17"
src="https://github.com/user-attachments/assets/5bfcefd8-cb58-46c0-a863-dcf80e4da4a3"
/> |

## Additional context

This keeps the view on the Data Table path now, while aligning the
sortable headers with the design-system table pattern instead of the
older Studio-local `DataTableColumnHeader` helper.
2026-03-27 10:03:56 +11:00
joannamich ac3a0f45d8 Update humans.txt (#44230)
Adding myself to the Supabase team version 2 (alphabetical order)

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

Update - Adding myself to the Supabase team version 2 (alphabetical
order)

## What is the current behavior?


## What is the new behavior?


## Additional context
2026-03-26 20:35:23 +01:00
Prashant SridharanandAna f3481f6f42 Added Stripe Projects go page (#43968)
## 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?

Added a new landing page to support the Stripe Projects launch.

---------

Co-authored-by: Ana <ana1337x@users.noreply.github.com>
2026-03-26 12:36:16 -04:00
Charis 634bd2760f fix: suppress misleading toast when navigating away from a deleted project (#44032)
Bug fix

## What is the current behavior?

When a user deletes a project, the `useProjectDetailQuery` in
`RouteValidationWrapper` returns an error (HTTP 404) because the project
no longer exists. This triggers the `isErrorProject` effect, which shows
a "You do not have access to this project" toast and redirects to the
home page — even though the user intentionally deleted the project.

## What is the new behavior?

The error's HTTP status code is checked before showing the toast. A 404
response (project not found / deleted) silently redirects without
showing the misleading access-denied toast. The toast is still shown for
other error codes (e.g. 403 Forbidden), where the "no access" message is
accurate.

## Additional context

Resolves FE-2831
2026-03-26 12:24:56 -04:00
David Alvarez 8b92bbac3e chore(docs): add David Alvarez to list of contributors (#44209)
## 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 add David Alvarez to humans.txt

## What is the current behavior?

David Alvarez is not currently in the humans.txt file

## What is the new behavior?

David Alvarez is now in the humans.txt file!
2026-03-26 09:20:24 -07:00
Ana 415f56bf27 Revert "Revert "blog: Supabase joins the Stripe Projects developer preview"" (#44115)
Reverts supabase/supabase#44109

## 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.
2026-03-26 12:13:58 -04:00
Greg Richardson 6fe6d9ea46 feat(docs): docs archive (#44206)
Adds a `https://supabase.com/docs/docs.tar.gz` which bundles the
generated markdown files and is served from `./public`. This archive is
needed by the supabase-ssh project.

## Preview

> Note: clicking this will download the archive (~936KB)

https://docs-git-feat-docs-archive-supabase.vercel.app/docs/docs.tar.gz
2026-03-26 09:47:11 -06:00
Gildas Garcia 5c98bb6c0f chore: react-hook-form best practices (#44221)
## Problem

The design system documentation and examples promote an invalid usage of
react-hook-form state.

## Solution

- Fix the documentation and examples
- Update Claude skills for future components

## Out of scope

- Fix current code across the repository
2026-03-26 16:24:08 +01:00
Gildas Garcia fba5a8a001 chore: use react-hook-form in network restrictions modal (#44238)
## Problem

- Network restrictions modal still uses `formik` and we want to remove
it in favour of `react-hook-form` to keep only one form library

## Solution

- Migrate to `react-hook-form`

## Screenshots

<img width="546" height="478" alt="image"
src="https://github.com/user-attachments/assets/457e59c0-e4cf-4bcb-b941-68cdb8876b45"
/>

<img width="568" height="511" alt="image"
src="https://github.com/user-attachments/assets/b118468a-bbe0-4c59-a63c-4bb33fe548eb"
/>
2026-03-26 16:23:48 +01:00
Gildas Garcia 91ee6e64f3 chore: use react-hook-form in SQL snippets modals (#44232)
## Problem

- SQL snippets modals still uses `formik` and we want to remove it in
favour of `react-hook-form` to keep only one form library

## Solution

- Migrate to `react-hook-form`
2026-03-26 15:47:15 +01:00
Gildas GarciaandCopilot e590acc04b chore: use react-hook-form in disk size configuration modal (#44233)
## Problem

- Disk size configuration modal still uses `formik` and we want to
remove it in favour of `react-hook-form` to keep only one form library

## Solution

- Migrate to `react-hook-form`

## How to test

Haven't found a way to test locally except by temporarily inverting
conditions in `apps/studio/pages/project/[ref]/database/settings.tsx` at
L57 and checking the API request payload in the network tab.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-26 15:46:28 +01:00
Ivan Vasilov bed5a96349 chore: Bump Typescript to v6 (#44204) 2026-03-26 15:27:35 +01:00
kemal 270a267769 Merge remote-tracking branch 'origin/master' into kemal/depr-406-pro-upgrade-enhancement-better-notification-regarding 2026-03-26 14:19:17 +00:00
kemal 4b1fa2fa04 feat: add click event for ph 2026-03-26 14:19:05 +00:00
Vaibhav aded2cade0 fix: hooks form (#44231)
## TL;DR

fixes the scroll behavior for the schema and function dropdowns in the
auth Hooks form for sms & email

## Before:


https://github.com/user-attachments/assets/dd930a4d-da48-4b75-94ba-22f37973fa0e

## After:


https://github.com/user-attachments/assets/c08d4aff-d17d-4a8d-8a90-c6c111f28695



## Related 
- closes https://github.com/supabase/supabase/issues/44222
- Same pattern as https://github.com/supabase/supabase/pull/44181
2026-03-26 07:02:43 -06:00