Commit Graph
17133 Commits
Author SHA1 Message Date
Gildas Garcia c5c643f1b7 Fix prettier 2026-03-09 09:30:43 +01:00
Gildas Garcia 7139f66aa6 Merge branch 'master' into studio-e2e-faster-tests 2026-03-06 17:34:36 +01:00
Gildas Garcia 58b610bd4c Optimize RLS tests 2026-03-06 17:21:49 +01:00
Marouane SoudaandAli Waseem efa40ea0e4 fix(studio): contrast ratio of JSON cell viewer colors in light mode (#40691)
JSON column viewer looks fine on dark mode, but barely visible on light
mode, especially when the value is of string type.

There are no colors that can satisfy the 4.5:1 contrast ratio (minimum
requirement for web and digital accessibility) on both white and black
background, so I had to pick different classes for ight mode (dark mode
is fine, I checked the colors against the dark background and the
contrast is good).

Even though the new colors may not look that contrasting to each other,
I prioritized accessibility, and made sure they all complied with the
4.5:1 contrast ratio.

Before:
<img width="499" height="179" alt="112"
src="https://github.com/user-attachments/assets/7f0821cf-6127-4246-a2c2-a78a5d31083a"
/>

After:
<img width="499" height="211" alt="222"
src="https://github.com/user-attachments/assets/0b5b2c35-9211-4a25-a9f5-eef4e5c8c8f3"
/>

Fixes #40633

---------

Co-authored-by: Ali Waseem <waseema393@gmail.com>
2026-03-06 08:38:49 -07:00
Joshen LimandAli Waseem f0b44ae087 Adjust header + project list for wildcard routes (#43387)
## Context

Small adjustments to wildcard routes

- Header logo to be consistent with other layouts
  - Before:
<img width="463" height="172" alt="image"
src="https://github.com/user-attachments/assets/217bb9d8-d4f9-4482-8c40-5f0c49afeee6"
/>
  - After:
<img width="523" height="229" alt="image"
src="https://github.com/user-attachments/assets/707dd541-f0ab-4023-ba25-e244eb7c3e7a"
/>
- Project wildcard route list view to be consistent with org/[slug] page
- project list shouldn't take full height if there's no need to, scroll
behaviour should be on the page
  - Before:
<img width="1224" height="868" alt="image"
src="https://github.com/user-attachments/assets/6ff9f8a3-9f68-40a0-9a0b-e60fbef603cd"
/>
  - After:
<img width="1230" height="477" alt="image"
src="https://github.com/user-attachments/assets/91d65969-9457-49f9-9ce2-d3befc4576ad"
/>

Co-authored-by: Ali Waseem <waseema393@gmail.com>
2026-03-06 22:39:04 +08:00
Ignacio Dobronich ebec20f542 chore: prevention of used leaked passwords entitlement (#43410)
### Changes
- Replaces the isPaid plan-based check on the "Prevent use of leaked
passwords" (PASSWORD_HIBP_ENABLED) setting with a proper entitlement
check using the `password_hibp` entitlement key
- Adds a new `useHasEntitlementAccess` hook that returns a reusable
checker function for any entitlement key, backed by the same cached
entitlements query


### Testing
- Head to `/project/_/auth/providers?provider=Email` with an Org on the
Free Plan
- Assert that the "Prevent use of leaked passwords" toggle is disabled.
- Head to `/project/_/auth/providers?provider=Email` with an Org on the
Pro Plan
- Assert that the "Prevent use of leaked passwords" toggle is enabled
and can be toggled and saved.

<img width="612" height="496" alt="image"
src="https://github.com/user-attachments/assets/fc1ccc79-016c-4265-96ac-bdb458d2a8de"
/>
2026-03-06 11:17:57 -03:00
hallidayo 98c34582b8 feat: add description to schema visualizer (#43406)
## 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?

Studio > Database > Schema Visualizer

## What is the current behavior?

If a table has a description value then the value does not show on the
visualizer

## What is the new behavior?

<img width="393" height="243" alt="Screenshot 2026-03-04 at 19 09 47"
src="https://github.com/user-attachments/assets/fcd61ecb-c1b8-4408-b753-62cc1d136c69"
/>


## Additional context

Closes #36072
2026-03-06 06:59:07 -07:00
Kanishk Dudeja 95283fafb5 fix(billing): remove duplicate tax ID entry for New Zealand (#43482)
This PR removes a duplicate `nz_gst` entry from the tax ID types list.

**Testing**

<img width="1217" height="614" alt="Screenshot 2026-03-06 at 5 25 38 PM"
src="https://github.com/user-attachments/assets/2895ddbd-d124-4ee3-9135-2c08d6f1b0b3"
/>
2026-03-06 18:54:47 +05:30
Alaister YoungandNick Babadzhanian 5894e37b40 [FE-2158] – feat(studio): Add exposed tables config to Postgrest settings (#43280)
Adds a feature flagged exposed tables config to postgrest settings:
<img width="1158" height="589" alt="Screenshot 2026-03-02 at 17 04 13"
src="https://github.com/user-attachments/assets/8fa8ab81-0bfa-4781-83bc-80ac52e180f8"
/>

To test:
- make sure the existing (feature flag off) settings work as expected
- make sure exposing and removing schemas works in the new mode
- make sure exposing and removing tables works in the new mode
- ideally try with a lot of tables to check search and infinite scroll
work as expected
- try exposing a schema without any tables (like `graphql_public`) and
make sure it doesn't get removed randomly when editing tables
- try with a table with custom permissions (for example `REVOKE SELECT
ON public.posts FROM anon;`) and make sure the user is informed with the
tooltip

---------

Co-authored-by: Nick Babadzhanian <33933459+pgnickb@users.noreply.github.com>
2026-03-06 20:51:37 +08:00
Jordi Enric 4b994fcb54 feat: copy multiple logs (#43218)
Allows users to select logs and copy their contents for debugging, or
pass them on to assistant with one click.

## To test
- go to logs or log explorer
- select some logs
- try copying as json, markdown, or sending it to assistant.
2026-03-06 13:24:37 +01:00
Ignacio Dobronich e29f4ca6f3 chore: add entitlement check to observability log retention (#43469)
### Changes
- Replace plan-based checks (`LOG_RETENTION`, `availableIn`) with
`useCheckEntitlements('log.retention_days')` in the chart interval
dropdown
- `ChartIntervalDropdown` now calls the entitlements hook internally
instead of receiving plan props
- Remove `LOG_RETENTION` constant and `availableIn` from
`CHART_INTERVALS`
- Update consumer components (`ProjectUsage`, `ProjectUsageSection`,
`ObservabilityOverview`) to remove plan prop passing

### Testing
- Head to `/project/_/observability` with a Free plan org.
- Click on the time selector "Last 7 days" is disabled, default is "Last
60 minutes", tooltip shows retention limit and upgrade link

<img width="827" height="151" alt="image"
src="https://github.com/user-attachments/assets/20988398-8f0a-46b6-be3d-af4e9d530f81"
/>

- With a Pro Org and above the "Last 7 days" option should be enabled
2026-03-06 09:05:25 -03:00
Cam MichieandCam Michie 3bd3c3412e Add name Cameron Michie to humans.txt (#43380)
## 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 my name to humans.txt

## What is the current behavior?

n/a
## What is the new behavior?

n/a
## Additional context

n/a

Co-authored-by: Cam Michie <cammichie@Cams-MacBook-Pro-2.local>
2026-03-06 12:21:21 +01:00
Taryn King 173a939cc3 chore(docs): add circuit breaker error reference (#43362)
## 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?

Small docs update to troubleshooting guide. Adds circuit breaker error
to list of related errors that troubleshooting guide addresses.
2026-03-06 12:10:41 +01:00
Jordi Enric 8cb4404065 fix: feature preview showing disabled features (#43339)
fixes feature preview showing disabled features by flag. 

## to test
- go to feature previews
- should not see unified logs
2026-03-06 11:48:52 +01:00
Raúl Barroso 22d706cd17 refactor: partner (#43466) 2026-03-06 09:48:24 +01:00
Alaister Young 56d97ed7fd [FE-2553] chore(studio): only show replication moved CTA if replication is enabled (#43479)
The "Management of read replicas has moved" banner in Settings >
Infrastructure linked to /database/replication, which returns a 404-like
page for users who don't have the database:replication feature enabled.
The notice is now only shown when the feature is enabled.
2026-03-06 07:11:53 +00:00
Danny WhiteandJoshen Lim 8a5ad58f81 chore(studio): replace CloseConfirmationModal with DiscardChangesConfirmationDialog (#43430)
## What kind of change does this PR introduce?

Form handling improvement.

## What is the current behavior?

https://github.com/supabase/supabase/pull/43201/ standardised our
discard changes behaviour with a shared hook and
`DiscardChangesConfirmationDialog` component. But many forms and sheets
still:

1. Don’t have any Discard-confirm close behaviour, making it too easy to
make accidental discards
2. Use a more complicated, manually-created `CloseConfirmationModal`
approach

## What is the new behavior?

- Replaced all instances of `#2` above that had `CloseConfirmationModal`
with `DiscardChangesConfirmationDialog` and its hook
- Improved design system documentation around dirty form dismissal

| Before | After |
| --- | --- |
| <img width="987" height="569" alt="Mercor Apexroles Foo
Supabase-9A40EC7C-F335-4B26-B567-450FC0845463"
src="https://github.com/user-attachments/assets/363bed82-34d2-4cc8-9164-6d18cfdbdbbc"
/> | <img width="987" height="569" alt="Mercor Apexroles Foo
Supabase-F427F1FA-DECC-4194-B663-A9E5A6F285A1"
src="https://github.com/user-attachments/assets/d49fafdc-a5c2-46df-9b67-ec42bacbe716"
/> |

## To test

Try editing values these sheets in staging, then blurring the sheet or
pressing `esc`:

- CreateQueueSheet.tsx
- CronJobsTab.tsx
- CronJobPage.tsx
- EditWrapperSheet.tsx
- OverviewTab.tsx
- WrappersTab.tsx
- CreateFunction/index.tsx
- EditHookPanel.tsx
- TriggerSheet.tsx
- SidePanelEditor.tsx
- EditSecretSheet.tsx
- PolicyEditorModal/index.tsx
- PolicyEditorPanel/index.tsx

## Still to come

- [ ] Incrementally take on `#1`: implement
`DiscardChangesConfirmationDialog` and its hook in sheets or dialog
forms that have no dirty form dismissal handling

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-06 03:17:35 +00:00
Danny White a832d62785 chore(studio): update Claude icon and minify dark icons (#43422)
## What kind of change does this PR introduce?

- UI fixes and cleanup

## What is the current behavior?

- We use the _Anthropic_ logo for _Claude Code_ in the MCP connector
panel
- We have a bunch of redundant dark mode logos (visually the same as
their light mode siblings)

| Before | After |
| --- | --- |
| <img width="987" height="373" alt="Krosno Toolshed
Supabase-03CD5E6F-53E6-4282-9087-ACB9F67B6DDA"
src="https://github.com/user-attachments/assets/ca7b5d9c-2a2b-4520-8bd4-8cf26c759c73"
/> | <img width="987" height="373" alt="Krosno Toolshed
Supabase-53F3849B-2D86-494B-BE25-8D23EA050243"
src="https://github.com/user-attachments/assets/7bd2e9a6-82ae-48a1-9ef1-591b7a33632e"
/> |

## What is the new behavior?

- We use the _Claude_ logo for _Claude Code_
- Removed duplicative logos
- Made note of which MCP servers have a different logo for dark mode
2026-03-06 14:00:04 +11:00
Danny White df55c5c327 feat(studio): platform webhooks scaffolding (#43276)
## What kind of change does this PR introduce?

Impending feature addition. Resolves DEPR-340.

## What is the current behavior?

We don’t have any platform webhook support.

## What is the new behavior?

This puts the scaffolding for platform webhooks **behind a feature
flag**. The content is currently UI-only (with mock data and a
[temporary tracking
file](https://github.com/supabase/supabase/blob/8adadc61f57c70b686a0f5f05e9f7f05837e0466/apps/studio/components/interfaces/Platform/Webhooks/DEPR-340-backend-integration-tracker.md)).

Merging this in lets us work incrementally from here on.
2026-03-06 02:56:54 +00:00
Danny WhiteandJoshen Lim 503c01b5bc chore(studio): refactor oauth apps page and table (#43366)
## What kind of change does this PR introduce?

UI update.

## What is the current behavior?

The org’s /apps page is glaringly out of date compared to similar pages.
It uses old page and layout components.

## What is the new behavior?

- Refactored /apps to use latest
[layout](https://supabase.com/design-system/docs/ui-patterns/layout) and
[table](https://supabase.com/design-system/docs/components/table)
components

Unrelated minor changes snuck in:

- Global `pnpm format` to properly format recurring annoyances elsewhere
- Minor polish on org tiles (pictured)

| Before | After |
| --- | --- |
| <img width="1728" height="997" alt="OAuth Apps
Supabase-30B6CDAE-4954-40F8-886A-939797999AA6"
src="https://github.com/user-attachments/assets/163c2787-f6ab-4a0b-80aa-af81260bdf9f"
/> | <img width="1728" height="997" alt="OAuth Apps
Supabase-7DD241E0-262A-4817-91B2-D2A299F8EB93"
src="https://github.com/user-attachments/assets/29928305-9110-4256-8663-c3821e696587"
/> |
| <img width="1728" height="997" alt="OAuth Apps
Supabase-9870816A-8022-479D-8011-236A813249AB"
src="https://github.com/user-attachments/assets/32e41835-59bc-4d83-92eb-635b98c5f4a5"
/> | <img width="1728" height="997" alt="OAuth Apps
Supabase-21CFBC16-E850-44A6-BEFF-C4FBED8ACB43"
src="https://github.com/user-attachments/assets/6999e2a0-ea17-44cb-99f2-42f985354589"
/> |
| <img width="1152" height="664"
alt="Supabase-9DD87028-2D46-47D0-8546-240184E1711B"
src="https://github.com/user-attachments/assets/2c7d8b2a-280f-48d6-9f78-19c519cf4654"
/> | <img width="1152" height="664"
alt="Supabase-F1C92F66-C602-4DC9-B3B4-AE3FB673276E"
src="https://github.com/user-attachments/assets/0a24a98e-386f-4ada-b282-0a59b159bbab"
/> |

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-06 12:23:33 +11:00
Danny White 406be76af0 chore(docs): LLM icons (#43416)
## What kind of change does this PR introduce?

UI update.

## What is the current behavior?

https://github.com/supabase/supabase/pull/43355 introduced “Copy to
ChatGPT” and “Copy to Claude” buttons with the general `ExternalLink`
Lucide icon each.

## What is the new behavior?

Branded icons for each, so users can quickly skim the sidebar for their
LLM of choice.

| Before | After |
| --- | --- |
| <img width="1152" height="662" alt="Database Supabase
Docs-0BAB1226-CCD6-4022-9383-1C323C83475D"
src="https://github.com/user-attachments/assets/efba85e7-1b82-4faa-a460-fd1d07448064"
/> | <img width="1152" height="662" alt="Database Supabase
Docs-44494743-65AE-40BF-AE19-375A2E5F7665"
src="https://github.com/user-attachments/assets/968180b1-ef31-46d4-84d9-bf2819a24fc4"
/> |
2026-03-06 00:25:55 +00:00
Ignacio Dobronich 9f8536584c chore: remove maybeShowUpgradePrompt for entitlement-based gate (#43457)
### Changes
- Remove maybeShowUpgradePrompt (plan-based) in favor of
maybeShowUpgradePromptIfNotEntitled (entitlement-based)
- Replaced the `maybeShowUpgradePrompt` with a `hasAccessToHelper`
callback to default the date selection to a safe default so pages don't
load with an out-of-range date.

### Testing

- With an Org on the Free Plan, head to
`/project/_/observability/api-overview?its=2026-03-04T15:06:50.704Z&ite=2026-03-20T15:06:50.704Z`.
Notice that the end date in the URL is 16 days after the start date.
- Assert that the actual range defaults to the entitled range of 1 day.

<img width="467" height="483" alt="image"
src="https://github.com/user-attachments/assets/e17c6957-3ece-4956-87aa-30cf62c84acd"
/>
2026-03-05 19:25:47 -03:00
AnaandAna Mogul 8f71a43b86 chore/www log drains blog post (#43454)
## 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 image for thumbnail

## What is the current behavior?

N/A

## What is the new behavior?

imgThumb has been updated to
`https://zhfonblqamxferhoguzj.supabase.co/functions/v1/generate-og?template=ruler&layout=icon-only&copy=Log+Drains+on+Pro&icon=icon-columns.svg`

## Additional context

Add any other context or screenshots.

---------

Co-authored-by: Ana Mogul <ana1337x@users.noreply.github.com>
2026-03-05 14:12:18 -05:00
Matt Linkous 5b2721c0db fix(studio): update log drain empty state to show pro tier upgrade (#43462)
Updates the log drain empty state now that log drains are available to
pro tier
2026-03-05 18:48:25 +00:00
Prashant Sridharan 96b2ba71a6 Fixed typos and changed the prize on an event (#43459) 2026-03-05 18:41:27 +00:00
AnaandAna Mogul 604fc7b4c8 blog: add Supabase Storage performance, security, and reliability updates (#43461)
## 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?

Adding a blog post for the Supabase Storage performance, security, and
reliability updates that has been shipped

## What is the current behavior?

N/A

## What is the new behavior?

Adds the blog post "Supabase Storage: major performance, security, and
reliability updates" covering:

- Path traversal prevention
- Accidental SQL delete protection
- Object listing rewrite (up to 14.8x faster deep pagination on 60M+ row
tables)
- Query cancellation and statement timeouts
- Idempotent migrations
- TUS zombie lock fix
- Orphan object scanner improvements
- OpenTelemetry metrics
- Bug fixes

## Additional context

Related PRs: https://github.com/supabase/storage/pull/818,
https://github.com/supabase/storage/pull/817,
https://github.com/supabase/storage/pull/841,
https://github.com/supabase/storage/pull/805,
https://github.com/supabase/storage/pull/812,
https://github.com/supabase/storage/pull/830,
https://github.com/supabase/storage/pull/819,
https://github.com/supabase/storage/pull/831

---------

Co-authored-by: Ana Mogul <ana1337x@users.noreply.github.com>
2026-03-05 13:22:43 -05:00
Aaron Brooks c4eee6d63e chore: Add "Aaron Brooks" to humans.txt (#43363)
Hey, I can't help that my name is alphabetically the first — in school
this meant I always had to give presentations first. Not fun!

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

On-boarding addition of my name (Aaron Brooks) to humans.txt

## What is the current behavior?

Aaron Brooks is not part of humans.txt

## What is the new behavior?

Aaron Brooks is part of humans.txt
2026-03-05 12:37:40 -05:00
549ca3677e feat: add similar threads on contribute (#42638)
## 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?

This adds a component showing a list of AI curated related threads to
the detail thread view.

## What is the current behavior?

This is not available.

## What is the new behavior?

A new component on the thread view.

## Additional context

Add any other context or screenshots.

---------

Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-03-05 12:06:55 -05:00
Ignacio Dobronich 4f7d4a3b4a chore: dedicated pooler entitlement (#43400)
Adds the new `dedicated_pooler` entitlement and it's respective
entitlement checks in the following components: `ConnectTabContent`,
`ConnectStepsSection`, `LogsSidebarMenuV2` and `ConnectionPooling`

## Testing 

### ConnectTabContent and ConnectStepsSection
- Head to `project/_?showConnect=true` with an Org on the Pro Plan or
above
- Assert that the `Dedicated Pooler` option is available.

<img width="1007" height="641" alt="image"
src="https://github.com/user-attachments/assets/b4891544-b84b-4745-9e25-4cbc7c76686c"
/>

### IPv4SidePanel
- Head to `/project/_/database/settings` with an Org on the Pro Plan and
above and assert that the Dedicated Pooler is available

<img width="889" height="562" alt="image"
src="https://github.com/user-attachments/assets/3150cb3d-18e9-4b34-bc9b-2589d0a33c5f"
/>

### Dedicated Pooler Logs
- Head to `/project/_/logs/dedicated-pooler-logs` with an Org on the Pro
Plan and assert that you are in the `dedicated-poolers-logs` page.
- Head to `/project/_/logs/dedicated-pooler-logs` with an Org on the
Free Plan and assert that you are redirected to `/logs/pooler-logs`


### Logs Sidebar

- Head to `/project/jdvjfujajfyywbaaakje/logs/explorer` with an Org on
the Free Plan
- Assert that only the "Poolers" collection is shown

- Head to `/project/jdvjfujajfyywbaaakje/logs/explorer` with an Org on
the Pro Plan
- Assert that the Dedicated and Shared Poolers collections are shown
<img width="251" height="774" alt="image"
src="https://github.com/user-attachments/assets/747bceee-d5e7-4a8f-911d-6b02cdb115eb"
/>
2026-03-05 13:38:45 -03:00
Ignacio Dobronich 6a873c67fa chore: logs entitlements badges (#43443)
### Changes
- Replace hardcoded plan-to-days mapping (`getAvailableInForDays`) with
entitlement-driven checks.
- Show a lock icon on date picker helpers that exceed the user's
entitled log retention, instead of a plan name badge.
- Remove availableIn from DatetimeHelper type — the entitlement API is
now the single source of truth.

### Testing
- Head to `/project/_/logs` on a free plan project and verify lock icons
appear on helpers beyond 1 day
- Verify clicking a locked helper still triggers the upgrade prompt
<img width="511" height="483" alt="image"
src="https://github.com/user-attachments/assets/41dce8c0-205a-4d82-9c07-12f4bb6b0f4d"
/>
2026-03-05 13:38:07 -03:00
Thomas HammerlandChris Chinchilla dfdfe279df docs: Fix SQL queries in realtime documentation (#41519)
I'm relatively new to supabase, but in my current understanding the SQL
selects are inconsistent with the given example schema as the column is
named `room_topic` there.

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

Updates documentation.


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

## Summary by CodeRabbit

## Release Notes

* **Documentation**
* Corrected authorization policy examples in realtime guides to use
accurate column references for topic-based access control in Broadcast
and Presence features.

<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: Chris Chinchilla <chris.ward@supabase.io>
2026-03-05 17:05:45 +01:00
Jordi Enric e3eb51f428 fix(query-performance): optimize pg_stat_statements query DEBUG-28 (#43383)
- Filter out never-run queries early: previously the queries didn't
check if a statement had ever actually been executed, so PostgreSQL
would process and return those useless rows. Adding WHERE calls > 0
skips
  them upfront.
- Replace window functions with a pre-computed total: two queries were
using a SQL window function to calculate the "% of total time" column,
which forces PostgreSQL to load every single row into memory before
returning results. Replaced with a small CTE that computes the total
once separately, so PostgreSQL can apply the row limit without buffering
everything first. This was the main cause of page crashes on databases
   with a large query history.
 - slowQueriesCount bug fix: added missing as statements alias
- queryMetrics WHERE clause fix: ${where} was producing WHERE ... WHERE
..., now uses .replace(/^WHERE/, 'AND')
2026-03-05 16:33:15 +01:00
AnaandAna Mogul 1fe188fcb7 Add Log Drains now available on Pro blog post (#43433)
## 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?

A new blog post to announce Log Drains being available on Pro

## What is the current behavior?

N/A

## What is the new behavior?

Adds the blog post 2026-03-05-log-drains-now-available-on-pro.mdx
announcing Log Drains availability on the Pro tier. It will be live at
https://supabase.com/blog/log-drains-now-available-on-pro

## Additional context

Related to #43360 (Log Drains feature page update for Pro launch)

Co-authored-by: Ana Mogul <ana1337x@users.noreply.github.com>
2026-03-05 10:08:38 -05:00
AnaandAna Mogul e988996e62 chore(www): update Log Drains feature page for Pro launch (#43360)
## 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 Log Drains feature page

## What is the current behavior?

The Log Drains feature page (`/features/log-drains`) reflects outdated
information:
- Status shows Public Alpha
- Description only mentions Datadog and custom HTTP endpoints
- Docs link points to the original blog post (`/blog/log-drains`)
- No mention of Pro plan availability

## What is the new behavior?

- Status updated to GA
- Description updated to reflect Pro plan availability (previously
Team/Enterprise only)
- All supported destinations listed: Datadog, Grafana Loki, Sentry, AWS
S3, Axiom, and generic HTTP
- Pricing included: $60/drain/project + $0.20/M events + $0.09/GB egress
- Docs link updated to `/docs/guides/telemetry/log-drains`

## Additional context

Add any other context or screenshots.

Co-authored-by: Ana Mogul <ana1337x@users.noreply.github.com>
2026-03-05 10:08:23 -05:00
Gildas Garcia 9cf5800082 fix: order recently impersonated users in descending order on the SQL (#43447)
## Problem

When testing things in SQL Editor, you often have to impersonate the
same user many times. It's cumbersome to look for them. We have a
_Recents_ list but its order is not practical.

## Solution

Invert the order of the _Recents_ list so that the last impersonated
user is the first one

## How to test

- Create multiple users
- Open the SQL Editor
- Impersonate different users
- Check the order of the list
2026-03-05 16:07:19 +01:00
Terry Sutton d027d90b80 Spelling (#43446)
We need to make sure we take spelling into acccount.

![screenshot-2026-03-05-at-10 32
16](https://github.com/user-attachments/assets/e3545f68-1bd3-4433-abd8-a38d488f8b45)
2026-03-05 11:25:01 -03:30
Ali Waseem 6cd3857d70 fix: added support for is and is not null (#43404)
## 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?

- For the new filters experience, we are missing null changes for dates
and also no support for isNull
- Updated E2E tests to account for new null cases
2026-03-05 07:07:54 -07:00
Francesco Sansalvadore 03bd82de81 remove zombie flags (#43341)
removing flags:
- `enableCreateCommands`
- `enableSearchEntitiesCommands`
2026-03-05 14:59:13 +01:00
Monica Khoury a51470ca52 docs(storage): add S3 CLI method for bulk storage operations (#43402)
Added an alternative approach using the Supabase S3-compatible API and
AWS CLI for bulk operations such as downloading, moving, and
reorganizing objects in a bucket.

Linear task:
https://linear.app/supabase/issue/DOCS-725/update-storage-troubleshooting-doc-with-bulk-operation-workaround.
2026-03-05 14:54:22 +01:00
Chris Chinchilla d6006f9d08 docs: Update Remix SSR example code (#43351)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES
2026-03-05 14:20:15 +01:00
Gildas GarciaandJoshen Lim 9ce3bdf552 fix: storage view is not reset when switching buckets (#43370)
## Problem

When navigating between buckets after having selected a folder, the
storage view shows the previous folder content.

## Solution

Set the selected bucket before navigating to it, preventing a race
condition with Valtio updates and the effect that loads the bucket
content.

## How to test

1. Create 2 buckets
2. In one of them, create a folder and upload some files
3. Go back to the bucket list
4. Open the other bucket

Results:
- It should not show the previous bucket content anymore
- It should not show an empty 2nd column either

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-05 12:10:46 +01:00
Ivan Vasilov e0a736181a chore: Bump next in studio to v16.1.6 (#43149)
This pull request upgrades the `next` framework and its related
dependencies from version 16.0.11 to 16.1.6 across the `studio` project.
2026-03-05 11:59:43 +01:00
Ivan Vasilov 6437bd2a38 fix: Change the valid time for temp API keys to 30 seconds. (#43390)
This pull request makes a minor adjustment to the temporary API key
validation logic. The key is now considered invalid if it has less than
30 seconds remaining before expiry, instead of the previous 20 seconds.
This change helps avoid edge cases where a key might expire during use.
2026-03-05 09:56:38 +01:00
Pamela Chia 4a9455cb2f chore(studio): update downgrade survey to use 'what made you' framing (#43435)
## Summary

- Updates exit survey question wording from "why" framing to "what made
you" framing across both downgrade and project deletion flows
- Based on [Jason Cohen's
research](https://www.lennysnewsletter.com/p/why-your-product-stopped-growing)
showing this reframing roughly doubles response rates and improves
response quality by prompting users to recall a specific trigger event

### Changes

| Location | Before | After |
|---|---|---|
| ExitSurveyModal (downgrade) | "Share with us why you're downgrading
your plan." | "What made you decide to downgrade your plan?" |
| DeleteProjectModal (delete) | "Help us improve by sharing why you're
deleting your project." | "What made you decide to delete your project?"
|

### No downstream impact
- `CANCELLATION_REASONS` chip values unchanged
- API payload fields (`reasons`, `additionalFeedback`, `exitAction`)
unaffected
- No PostHog event names or properties tied to question wording

Closes GROWTH-657

## Test plan

- [ ] Trigger downgrade flow (paid plan → Free) and verify new wording
appears
- [ ] Trigger project deletion on a paid plan and verify new wording
appears
- [ ] Confirm survey submission still works end-to-end
2026-03-05 08:35:14 +00:00
TheOtherBrian1 d272224bc3 docs: updating egress troubleshooting guide (#43420)
## 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?

There is a troubleshooting guide on egress

## What is the new behavior?

Just made light modifications to the troubleshooting guide

## Additional context

None really. Just added a few small corrections and rewordings
2026-03-05 09:32:53 +01:00
Prashant Sridharan ef6e44bc24 Fixed a few typos in the text (#43434)
## 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?

Just clarified that the prize is an iPhone 17 Pro Max and the dinner is
on a Wednesday, not a Tuesday.
2026-03-05 08:05:59 +00:00
Danny WhiteandJoshen Lim a052dd7409 chore(studio): clarify dedicated pooler compatibility (#43320)
## What kind of change does this PR introduce?

UI clarification.

## What is the current behavior?

Our messaging around the compatibility of:

- Dedicated pooler
- Shared pooler

...in conjunction with the following connection types:

- IPv4
- IPv6
- Direct connection

...is hard to parse.

## What is the new behavior?

Copywriting clarifications to all of the above. Plus:

- Broader copywriting clarifications to `IPV4SidePanel`
- Replace deprecated `Radio` component with `RadioGroupItem_Shadcn_` as
the former has little-to-no visual difference between unselected and
selected states
- Fixed `SidePanel` header gap and button labelling

## Additional context

| Before | After |
| --- | --- |
| <img width="1024" height="563" alt="AWS Healthy Toolshed
Supabase-4587771A-83A2-40E8-845B-256CE7E1A7DB"
src="https://github.com/user-attachments/assets/09591fa1-48b8-4f3c-aaef-733af8dbdc9a"
/> | <img width="1024" height="563" alt="AWS Healthy Toolshed
Supabase-D56A2209-7421-43C2-A7C1-6C6965B3F008"
src="https://github.com/user-attachments/assets/13a05e51-02a5-486a-9549-4c5fe049c65a"
/> |
| <img width="1024" height="563" alt="Add ons
Supabase-10CC55BC-C3D8-4E40-9F73-31FFE8D7F42A"
src="https://github.com/user-attachments/assets/73e206dc-58a3-4356-8e31-cf2ad74383f8"
/> | <img width="1024" height="563" alt="Add ons
Supabase-6311B7FE-4291-4982-968E-5EDBA76DE519"
src="https://github.com/user-attachments/assets/503667ef-9b36-4d62-9872-53ac6b32f56f"
/> |

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-05 15:41:22 +08:00
Danny WhiteandJoshen Lim aef1d70351 chore(studio): standardise discard changes behaviour (#43201)
## What kind of change does this PR introduce?

UX consistency improvement. Updates DEPR-355.

## What is the current behavior?

Discard-confirm close behavioir is implemented inconsistently across
Studio forms:

- some sheets/dialogs used `useConfirmOnClose`
- some duplicated local `CloseConfirmationModal` components
- some (e.g. `CreateHookSheet`) closed unconditionally and could lose
unsaved changes

## What is the new behavior?

Extracts and validates a reusable discard-close pattern for
dialogs/sheets
- enhances `useConfirmOnClose` with `handleOpenChange(open)` for
`Dialog`/`Sheet` `onOpenChange`
- adds shared `DiscardChangesConfirmationDialog` (`AlertDialog`-based,
override-able copy)
- migrates:
	- `InviteMemberButton`
	- `CreateHookSheet`
	- `EditSecretSheet`

This standardizes close-guard behavior for
backdrop/escape/close-button/cancel-button flows without trying to block
route changes or arbitrary unmounts.

## Additional context

`CreateHookSheet` now also marks the generated secret action as dirty
(`setValue(..., { shouldDirty: true })`) so the discard guard behaves
correctly.

- Added tests for `useConfirmOnClose` covering:
	- clean vs dirty close
	- handleOpenChange(true|false)
	- confirm/cancel behavior
	- latest callback ref behavior

A follow-up PR is needed to migrate remaining duplicated
`CloseConfirmationModal` usages and older `useConfirmOnClose` call sites
to the shared `DiscardChangesConfirmationDialog` + `handleOpenChange`
pattern.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2026-03-05 11:32:39 +11:00
Prashant Sridharan cd0e2c9fa9 Added more landing pages for upcoming events (#43412)
## 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 landing pages for contests and giveaways at upcoming conferences.
Also updated the iPhone 17 Pro Max image with a higher quality one with
proper masking.
2026-03-04 23:07:02 +00:00
Ignacio Dobronich 8efac5cffa chore: auth performance settings entitlement (#43322)
Adds an entitlement check to the Auth Performance Settings page.

### Testing
- Head to `/project/_/auth/performance` with an org on the Free Plan
- Assert that you can't edit any values in the page
- Assert that the upgrade prompt is shown
<img width="1203" height="148" alt="image"
src="https://github.com/user-attachments/assets/9046eb36-75eb-47d9-824a-07c12431d3e5"
/>

- Head to `/project/_/auth/performance` with an org on the Pro Plan or
above
- Assert that the upgrade prompt is not rendered
- Assert that you're able to modify and save values
2026-03-04 19:32:53 -03:00