Commit Graph
2038 Commits
Author SHA1 Message Date
CharisandJoshen Lim d8f7cc0d57 feat(support form): attach dashboard logs (#39539)
* o11y: mirror and sanitize breadcrumbs

Mirror Sentry breadcrumbs as the basis for our own support logging. Also
adds more sanitization to breadcrumbs.

* feat(support form): toggle for attaching dashboard  logs

Add a toggle to the support form when the category is "Dashboard bug",
to attach recent dashboard logs. Users can preview the attached logs and
opt out.

* feat(support links): dedicated support link component

Add a new component for support links, which:
- Uses the serializer for support link params to ensure
serialization/deserialization pairs correctly
- Snapshots breadcrumbs so the attached log on the support form will be
cut off at the support link click (otherwise we will get support form
actions cluttering up the log)

* tests(support form): extend timeout on flaky test

* Minor clean up

* fix(support form): allow url to specifically indicate no specified project

* minor nits

* Fix tests

* Fix tests

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-22 08:57:49 -04:00
Tyler 036b32c77c guide: Update Postgres full text search docs with more content (#39760)
* update full text search docs with more content

* run formatter
2025-10-22 13:19:14 +02:00
Saxon Fletcher e64fae6513 Fix gap issue (#39754)
fix gap issue
2025-10-22 14:56:19 +08:00
CharisandJoshen Lim 9c4919948a fix(policy editor): reduce number of table role access queries (#39601)
* fix(policy editor): reduce number of table role access queries

On the Policies page, every single PolicyTableRow fires off its own
table roles access query (because each query is keyed to an individual
table). For users with many tables (400+), this causes the API to
rate-limit the dashboard.

Changed so that the table roles access query now fetches information for
the entire schema in one go, then organizes it by table.

* Nit refactors

* refactor: return minimal data from table access query

All we need to know is whether a given table has anon or authenticated
access, so just query for the list of tables that match that criteria
from information_schema.role_table_grants.

* refactor(policies page): more efficient sql query for getting anon/auth access tables

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-22 14:39:42 +08:00
Kanishk Dudeja 094ba8233b fix(billing): make balance optional in subscription endpoint response (#39746) 2025-10-22 10:14:01 +08:00
wong2andAlan Daniel 22a1025f0e docs: fix apple secret generator tool form spacing (#39612)
Co-authored-by: Alan Daniel <stylesshjs@gmail.com>
2025-10-21 12:35:12 -04:00
Stojan Dimitrovski 7646c167d6 feat: bump debug time of auth lock to 10s (#39724) 2025-10-21 15:20:55 +00:00
CharisandJoshen Lim 91645ade09 feat(region selector): get region status by desired size (#39631)
* feat(region selector): get region status by desired size

The available-regions endpoint now takes a desired_instance_size query
parameter to return more accurate status data.

* Align call of useOrganizationAvailableRegionsQuery in [slug] with RegionSelector, and rearrange some consts

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-21 11:08:57 -04:00
Prashant Sridharanandkemal 31368be3c1 Added new case study for Rally (#39721)
* Added new case study for Rally

* ci: Autofix updates from GitHub workflow

* chore: colour correct rally logos

---------

Co-authored-by: kemal <hello@kemal.earth>
2025-10-21 15:28:38 +01:00
Cemal Kılıç 7df7c4eec3 feat(auth): use fetch with timeout for auth calls (#39714) 2025-10-21 15:13:30 +03:00
Stojan Dimitrovski 401d6fe892 feat: add navigator lock debugging to track down some rare issue (#39688)
* feat: add navigator lock debugging to track down some rare issue

* send exception to sentry
2025-10-21 11:40:33 +02:00
Danny WhiteandJoshen Lim c1681cfcc2 chore(studio): add feature preview for auth security template UI (#39661)
* feature preview logic

* sidebar changes based on feature preview

* singular naming

* minor

* Flip isPlatformOnly for new preview

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-21 15:18:56 +11:00
Matt RossmanandGreg Richardson 9f5620c7cd feat: self-hosted MCP debugging tools (#39366)
* feat: stub `getDebuggingOperations`

* fix: logflare variables in `generateLocalEnv.js`

* chore: upgrade `supabase`, `@supabase/mcp-server-supabase`

* feat: shared `retrieveAnalyticsData`, implement `getLogs` for MCP

* feat: shared `getLints`, implement MCP security/performance advisors with filter

* chore: update lockfile

* fix: prefer `??`

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* docs: comment origin of `LINT_SQL`

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>

* chore: bump `supabase` devDependency for latest images

Changes rely on fix from loglare v1.23.0

* fix: edge function logs query

Based on https://github.com/supabase/supabase/pull/39388/files#diff-b4e9726d34a406fa1a6133a18bdb972c90be9df0c89598de0695592514e22941R199-R206

---------

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
2025-10-20 13:11:15 -04:00
Joshen Lim 0ea4f24bb5 Chore/persist auth users search configuration (#39649)
* Perist auth users search configuration

* nit

* Clean up

* Swap more params to use URL state

* Clean up
2025-10-20 12:52:51 +08:00
CharisandJoshen Lim 3eb7da7766 feat(preferences): allow disable hotkeys (#39573)
* feat(preferences): allow disable hotkeys

Add a section in /account/me for disabling hotkeys. Only added one
hotkey for now (Cmd + E for toggling editor side panel) but we can add
more with the same pattern.

* refactor: remove default export on ProjectLayout

* feat(hotkeys): allow toggling of command menu and ai assistant hotkeys

* Nit

* PRettier lint

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-17 08:09:38 -04:00
Ignacio Dobronich d57279dde6 feat: entitlements (#39338)
* feat: entitlements

* Sample usage

* format

* Reworked

* format

* gen

* removed

* removed
2025-10-17 11:51:06 +02:00
Ivan Vasilov 5f7a20e659 feat: Add ReactQuery lint rules (#39517)
* Add tanstack query lint rules.

* Fix the names of the RQ config.
2025-10-16 15:16:15 +00:00
Charis 67c6ef6745 feat(pgmeta): filter by composite values (#39179)
* feat(pgmeta): filter by composite values

Current behavior:

Only single columns can be used as filters: `where version = 2`

New behavior:

Composite values can be used as filters: `where (id, version) = (1, 2)`

Motivation:

In order to correct an existing bug when fetching table rows, we need to
use cursor pagination on the primary key, but in order to handle
composite primary keys, we need to be able to filter by composite
values.

* refactor(pgmeta): allowlist in-tuple operators
2025-10-16 08:28:27 -04:00
kemal.earth 5e850ef333 fix(ui): dialog close clickable area (#39163)
* fix: dialog close clickable area

Small fix for a customer who pointed out the area that looks clickable isnt

* feat: try alans suggestion with pseudo element

* feat: add pseudo area for sheets too
2025-10-16 11:00:30 +01:00
CharisandJoshen Lim 1b8c8b7398 fix(feedback): generate image urls on backend (#39559)
* fix(feedback): generate image urls on backend

* Fix support form skip generate attachment urls if no attachments

* Refactor to use useLocalStorageQuery

* Nit

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-16 12:52:05 +08:00
Danny White 73f8a15203 chore(studio): consistent copy/reveal input behaviour (#39509)
* user newer input in api keys

* user newer input in s3 connection settings

* improve input read-only styles

* make API text selectable

* disable text until reveal button tapped

* fix build

* revert change

* fix other cases

* revert hardcoded example

* nice region field

* documentation

* cleanup

* better docs

* colour tweaks
2025-10-16 13:44:40 +11:00
Ivan Vasilov 56d40fe0b2 chore: Migrate eslint for all apps to use flat config (#39486)
* Use the "eslint" command instead of built-in next lint since it's getting obsolete.

* Bump all deps to support eslint 9+.

* Convert the rules in eslint-config-supabase to be flat-config compatible.

* Migrate all apps to use the new eslint config rules.

* Fix all errors found in the new setup.

* Fix the no default exports ignores.

* Scan all files for linting in studio.

* Fix all lint errors.

* Make the reportUnusedDisableDirectives a warning.
2025-10-15 16:35:24 +02:00
Kevin Grüneberg 2fbd0668f8 perf: remove customer endpoint call to determine missing address (#39549)
Backend now exposes flag (waiting for prod deployment)
2025-10-15 19:16:15 +08:00
issuedat 2b512439b2 chore: add telemetry for users search (#39409) 2025-10-15 11:28:36 +02:00
Sean Oliver e1703d4429 feat: add basic table template infrastructure (1 of 3) (#38933)
* Use useLocalStorage hook for quickstart dismiss state

* Standardize varchar to text and remove local storage keys

* Remove gen_random_uuid() defaults from templates

* feat(studio): flatten table quickstart selector; show for any new table\n\n- Flattened category→template flow into single-step with category chips\n- Removed first-table-only guard so panel appears for all new tables when flag is on

* add comments to clarify diff btwn false and undefined in feature flag response type

* refactor: improve performance and type safety in table quickstart

- Memoize categories and displayed templates to prevent unnecessary re-renders
- Use generic type parameter instead of type assertion for feature flag
- Simplify dismiss handler with inline function
- Add JSDoc comment explaining feature flag return states

* Mark variant param as intentionally unused for future PR

* chore: clean up unused import in TableEditor

Remove unused useTablesQuery import after switching to localStorage-based dismissal.

* add 7 day project creation gate and fixed uuid default

* Improve table template selector UX with success feedback and clearer copy

- Add success toast when template is applied
- Update heading from "Quickstart: choose a template" to "Start faster with a table template"
- Improve subheading to explain time-saving benefit
- Use monospace font for table names to match code convention
- Update template rationales to be more descriptive and specific
- Increase font sizes for better readability
- Remove redundant category display
- Reorder imports alphabetically

* Apply prettier formatting to TableTemplateSelector
2025-10-14 16:12:36 +00:00
Alaister Young c6a09b3fcf chore: hideable legal org documents tab (#39531) 2025-10-14 10:49:51 -04:00
Alaister Young 2d986e5b7f chore: hideable TOS link on sign in/up page (#39530) 2025-10-14 10:48:12 -04:00
Kevin Grüneberg 15c9a6ced3 perf: pass org slug / project ref to resource warnings endpoint (#39471)
Based on https://github.com/supabase/infrastructure/pull/26483 - pass in project ref / org slug to ensure we filter down and not query across all orgs unnecessarily
2025-10-14 18:27:34 +08:00
Stojan DimitrovskiandJoshen Lim 0a3f4184a7 feat: optimized users page (#39349)
* feat: optimized users page

* Update UI

* Reinstate footer with count if mode is freeform

* Simplify disabled sort in performance mode

* Clean

* Small fix

* Final fixes

* Shift users SQL query to packages/pg-meta

* Nit unrelated: Clear query params from useLogsUrlState when going to logs tab of a selected user

* Shift user count SQL and get count estimate SQL into packages/pg-meta

* Fix

* Nit

* Nit

* Minor nits

* Refactor UX for searching

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-14 15:02:00 +08:00
Danny White e406beaccb chore(www): remove Select banner and callout (#39253)
chore: remove Select stuff
2025-10-11 11:31:30 +11:00
Charis 5dbc8d44c0 fix(pgmeta): return pks in order (#39414)
Composite primary keys should be returned in order so we can be sure we
are using the index for efficient querying.
2025-10-10 10:58:52 -04:00
Alaister Young 09d5b8a18f chore: branding customisation (#39425) 2025-10-10 15:25:33 +08:00
Saxon FletcherandJoshen Lim 410d76fff3 Getting started step status (#38910)
* home row size

* use prop instead

* revert previewer

* hook getting started up

* report empty state

* remove images for now

* fix paused state

* remove file

* swithed toggles

* remove any

* Simplify top section

* Nit clean

* Simplify

* Add new snippet button to SnippetDropdown, and hide Row arrow if number of children doesnt exceed number of columns

* Hide arrow in Row component if number of children doesnt exceed number of columns

* Fix snippetdropdown if theres snippet with same name

* update hasFirstUser check to return false if count is estimate

* bucket and functions code actions

* reframe sign ups

* fix

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-10 13:34:04 +10:00
Joshen Lim 085bddafc5 Chore/consolidate copy icons (#39386)
* Replace all clipboard icons with copy icons

* Fix Menu.Item active styling for light mode

* Update

* Use bg side bar accent
2025-10-10 11:06:42 +08:00
Kevin Grüneberg 5a886be0c2 feat: use new org daily stat endpoint (#39357) 2025-10-09 18:59:00 +08:00
Jordi Enric b5a638bfc6 auth report improvements (#39013) 2025-10-09 09:58:32 +02:00
Joshen Lim 10d75def88 Add hide/show anon key button to edge function details page (#39384)
* Add hide/show anon key button to edge function details page, remove react-copy-to-clipboard package

* Clean
2025-10-09 13:46:56 +08:00
Pamela Chia 5b2351da86 Add tracking for API docs usage (#39307) 2025-10-08 08:58:15 -04:00
Alaister Young 0ea541938c chore: disable account security page (#39319) 2025-10-08 18:43:58 +08:00
Danny WhiteandJoshen Lim 5ff03b2971 feat: custom bucket icons (#39280)
* chore: separate interfaces per bucket type

* chore: reuse existing bucket creation modal for files

* chore: allow external trigger for new bucket modal

* chore: minor fixes

* chore: full-size empty state

* chore: files other tabs

* fix: show tab bar when on file subroute

* chore: use existing table component to list buckets

* fix: tests

* fix: build error

* chore: remove future bucket type components from PR

* fix: dependency

* Couple of refactors to simplify implementation

* Fix TS

* chore: move s3 settings out to sidebar

* fix: minor nits

* fix: reuse existing loading spinners from schema visualiser

* fix: loading for files

* fix: prevent loading of table for zero buckets

* chore: improved loading state

* chore: shimmer on table

* chore: copywriting on S3

* chore: improve empty states

* fix: deprecated input instructions

* fix: filter/search bucket table

* chore: tidy

* fix: tests

* first commit

* improve documentation and fix icon build error

* change svg kebab case to camel case for React

* copy nits

* fix svg codeblock color

* add bucket (normal) icon

* add bucket icon to policies

* add bucket icon to other storage bucket surfaces

* fix spacing on empty state

* fix inconsistent icons in home sections

Make 1:1 with what we have in the sidebar with optically-correct strokeWidth.

* fix icons

Like the previous commit, this makes sure we use the same product icons as in the sidebar.

* clearer bucket add icon naming

* remove unused layouts

* fix naming collision

* Tinnnnyyy nit

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-08 13:14:03 +11:00
Kang Mingandgithub-actions[bot] 1f245734ae docs: add smart regions docs (#39313)
* docs: add smart regions list mapping

* docs: add smart region selection docs

* Update apps/docs/content/guides/platform/regions.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update apps/docs/content/guides/platform/regions.mdx

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-07 18:02:28 -07:00
Danny WhiteandJoshen Lim 6f54cf8a57 feat(studio): inline storage buckets (#39154)
* chore: separate interfaces per bucket type

* chore: reuse existing bucket creation modal for files

* chore: allow external trigger for new bucket modal

* chore: minor fixes

* chore: full-size empty state

* chore: files other tabs

* fix: show tab bar when on file subroute

* chore: use existing table component to list buckets

* fix: tests

* fix: build error

* chore: remove future bucket type components from PR

* fix: dependency

* Couple of refactors to simplify implementation

* Fix TS

* chore: move s3 settings out to sidebar

* fix: minor nits

* fix: reuse existing loading spinners from schema visualiser

* fix: loading for files

* fix: prevent loading of table for zero buckets

* chore: improved loading state

* chore: shimmer on table

* chore: copywriting on S3

* chore: improve empty states

* fix: deprecated input instructions

* fix: filter/search bucket table

* chore: tidy

* fix: tests

* Minor refactors

* Rename

* Nit

* Shift V2 re-routing logic to layout level

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-07 10:59:37 +11:00
Matt RossmanandGreg Richardson 5722e8dc79 docs: remote MCP UI paper cut improvements (#39211)
* fix: only show "Authentication" note for hosted platform

* fix: platform/project selector wrapping for small screens

* fix: disable contentEditable on codeblock to hide system spellcheck

* feat: standalone codeblock for mcpUrl

* fix: use <Portal> for client select popover to improve scrollIntoView behavior

* feat: remove "Other" client option

* feat: tooltip specifying MCP transport / auth requirements

* feat: update auth tooltip copy, only show for hosted platform

* docs: remove old local Supabase MCP instructions

* feat: improve description on docs feature group

---------

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
2025-10-06 18:57:41 -04:00
Saxon Fletcher d5bf4ef13b Rate assistant responses (#39224)
* rate assistant responses

* test

* always show
2025-10-06 22:46:30 +00:00
Matt Rossman 31b6368049 feat: read-only mode for self-hosted MCP (#39041)
* feat: add `crypto-js`, `encryptString` with sample key

* feat: include POSTGRES_PASSWORD in generated .env.test

* feat: include POSTGRES_PASSWORD in turbo.json for studio

* feat: read only query support

* feat: configurable `POSTGRES_HOST`, `POSTGRES_DB`, `POSTGRES_PORT`

* chore: rename POSTGRES_USER to clarify write permission

* feat: configurable `PG_META_CRYPTO_KEY`

* chore: add `PG_META_CRYPTO_KEY` to generateLocalEnv

* feat: add 'postgres-meta' to linter dictionary

* feat: restore read-only toggle in local MCP URL builder
2025-10-06 16:14:27 -04:00
Han QiaoandCharis Lam d5d8d954cb feat: use new action status endpoint (#39159)
* feat: use new action status endpoint

* fix: flip incorrect conditionals

* chore: add step name to badge

* refactor(action-runs-query): cleaner types

* style(workflow logs): improve design of action run steps

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-10-07 04:11:28 +08:00
Danny White 7f224757bd chore(www): update Select banner with replay text (#39252)
chore: banner copywriting
2025-10-04 13:02:28 +10:00
Danny White 3e78f1a15f chore(www): update Select banner (#39228)
chore: update select banner
2025-10-03 12:44:41 -04:00
Thomas f1e8174c0e chore(billilng): replace billing partner "aws" with "aws_marketplace" 2025-10-03 10:28:24 +02:00
Sean Oliver e978a084b2 feat: add table activation tracking (#39090)
Add telemetry tracking for activation-related table operations
- Implement SQL event parser to detect table creation, data insertion, and RLS enablement
- Add telemetry tracking for these operations in table editor as well
- Add test coverage for SQL event parser
2025-10-01 14:54:51 -07:00