Commit Graph
2036 Commits
Author SHA1 Message Date
Ivan VasilovandJoshen Lim 375866e700 Add a warning if no policies on realtime.messages when turning on private mode (#37512)
* Add a warning if no policies on realtime.messages when turning on private mode.

* Minor copy fixes.

* Update warning copy

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-29 12:23:38 +02:00
Ivan VasilovandClaude 6b5abce83b feat: Display OAuth client secret last used time (#37510)
Add display of last_used_at timestamp for OAuth client secrets in Studio.
Shows relative time (e.g., "Last used 2 hours ago") when available,
or "Never used" for unused secrets.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-29 17:53:01 +08:00
Joshen Lim 1d85aa632b Consolidate oauth apps perms descriptions, and make project perms clearer (#37525) 2025-07-29 17:27:07 +08:00
Joshen Lim 5da5ad06c0 Shift pipeline status page to its own route (#37431)
* Shift pipeline status page to its own route

* Fix back link
2025-07-29 16:33:14 +08:00
Alexandre 8333b73218 fix(usage): fix typo and add spacing in attribute chart names (#35356)
- Update usage description, remove unnecessary quotes and dollar sign
- Add space between chart prefix and attribute name in AttributeUsage and InfrastructureActivity components.
2025-07-28 20:53:38 +00:00
Jordi Enric e4837267f6 Warehouse Clean Up (#37507) 2025-07-28 17:14:57 +02:00
Ignacio Dobronich 61e83e2909 feat: increase max credit top-up (#37441)
feat/increase-credit-top-ups
2025-07-28 13:56:12 +00:00
Ignacio Dobronich d2cf1dad46 chore: redirect after reset password (#37410) 2025-07-28 13:43:26 +00:00
Saxon FletcherandJoshen Lim 4bfdbe32ac add with data field to branch (#37451)
* add with data field to branch

* Fix types

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-28 18:14:55 +08:00
Joshen Lim d6fdb20a2a Fix visibility of edge fn charts for enterprise (#37401) 2025-07-28 18:01:54 +08:00
Chris StocktonandChris Stockton 2962a110f6 fix: use gotrue_id for member search and partition (#37418)
It is possible to have multiple emails from different providers, a
common example being SSO users. The user flow being:

1) Sign up with email using name@company.local
2) Upgrade to teams or enterprise
3) Enable SSO for the Org using domain company.local
4) Sign in with name@company.local
5) The SSO provider now handles the login, assigning new gotrue_id
   but uses the same primary_email
6) View the teams members and one will be omitted

This change fixes the case above so that both users are displayed. It also
uses the gotrue_id to ensure that the "You" badge displays the correct user.

Co-authored-by: Chris Stockton <chris.stockton@supabase.io>
2025-07-25 08:32:17 -07:00
Ivan VasilovandJoshen Lim 32c3eeb389 feat: Create new schema when creating a FDW with the schema option (#37205)
* Change the import foreign schema to always create a schema.

* Fix the Iceberg wrapper.

* Refactor the create wrapper to always create a new schema.

* Remove unneeded props.

* Smol fixes

* Prevent double error toasts

* Smol fix

* Fix the wrapper creation to include the correct api key.

* Fix a bug with the new api keys.

* Handle both types of keys when fetching the iceberg namespaces.

* Add a field to all wrappers to hold the schema name which can import foreign schema.

* sq

* When importing a foreign schema, save the schema in a special field.

* Fix a type error.

* Fix importing foreign schema overriding wrapper server options with unencrypted values

* Add comment

* Handle duplicate and empty schemas when importing a foreign schema.

* Update the copy in the foreign schema wrappers.

* Remove unnecessary code.

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-25 10:54:17 +02:00
Ivan Vasilov 29f5fde08c chore: Fix the loading state when updating roles twice in a row (#37438)
Fix the loading state when updating roles twice in a row.
2025-07-25 02:05:48 +08:00
Han Qiao 0620e2df8f fix: never create a default branch from modal (#37430) 2025-07-24 20:32:48 +08:00
Riccardo Busetti 0ecddf1901 feat(replication): Implement UI to render pipeline replication status (#37376) 2025-07-24 13:04:07 +02:00
Joshen Lim cfb22045d0 Add docs button to org teams page (#37425) 2025-07-24 18:16:33 +08:00
Paul Cioancaandivasilov e931323b41 chore: reduce list of visible release channels (#37414)
* chore: enrich list of visible release channels

* ci: Autofix updates from GitHub workflow

---------

Co-authored-by: ivasilov <568291+ivasilov@users.noreply.github.com>
2025-07-23 20:21:39 +03:00
Kevin GrünebergandJoshen Lim eaa2f2e68b feat: allow 500 GB uploads (#37120)
* feat: allow 500 GB uploads

* upsell

* docs + pricing page

* Update StorageSettings.tsx

* Small alignment fix

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-23 12:43:53 -04:00
Kevin Grüneberg 740eeb8504 feat: mandatory address input for paying customers (#37337)
- Mandatory address input when adding a new payment method
- Removed the global HCaptcha store that wasn't used consistently and would sometimes block payment method changes
- Remove the custom billing address data & tax id form on org creation and plan upgrades in favour of Stripe's `AddressElement`
- Unify usage of the Stripe payment elements into a single component
- Customers can mark "Purchasing as a business" and will then be able to put down a tax id
- Adjusted billing address form to have better labels + tax id is filtered down to selected country
- Adjusted Stripe Elements styling to use floating labels (otherwise very hard to use with address element) + additional styling changes
- New flag to filter out payment methods that do not have an address for org upgrades and credit top ups, this will be enforced a few days after rolling this out
- Added Google Maps Places API integration for address auto-completion via Stripe AddressElement
- Upgraded Stripe dependencies
- Slight adjustments to styling of plan upgrade modal
2025-07-23 18:16:10 +08:00
Drake CostaandJoshen Lim af5e591b84 Refactor NewAccessTokenButton to use shadcn components (#36972)
* chore: Refactor `NewAccessTokenButton` to use shadcn components

This brings `NewAccessTokenButton` into conformance with the latest UI patterns of using shadcn based components, zod schemas, and react-hook-form for form submission.

I based this refactor on the implementation of `CreateSecretAPIKeyDialog`, which already made use of the above.

* add success and failure toasts

* add smoke test for `NewAccessTokenButton`, fix vitest config

This adds a minimal test for `NewAccessTokenButton` but more importantly fixes a critical bug in the vitest configuration for `studio`.

Because `restoreMocks: true` was set in the config, this meant that the mock implementation for `window.matchMedia` defined in the `tests/vitestSetup.ts` file was being **reset** to an empty function before each test suite was run. While this didn't appear to be a problem before, that appears to be because none of the existing tests had `motion.div` in their component trees. Since `motion.div` calls `addListener` on a media query as part of it's lifecycle, that meant that any test which included it would fail as `addListener` would be undefined in this situation. Removing `restoreMocks: true` from the config results in the desired mocking behavior.

This change is necessary in order to test any component that has the `FormItemLayout` component, as it uses `framer-motion` to animate in error messages for input elements.

* add warning comment in case of future config regression

* update test cases, reset form on dialog close, testing setup fixes

This fixes an issue with the polyfills for the testing environment, where a call to `useMutation` would fail as a result of `TransformStream` being set to `null`.

Basic tests for access token creation and form resetting added. Adds `@faker-js/faker` to the studio app devDependencies to generate mock data for `msw` endpoint response.

Adds `shx` to the docs app devDependencies to ensure that the `codegen:examples` script runs cross-platform.

* ensure mocked date is a string

* update testing setup, pollyfills and add rich type support to addAPIMock

* Update studio testing setup files

Improves API mocking type safety and polyfills browser APIs necessary to run tests with framer-motion components

* chore: Refactor `NewAccessTokenButton` to use shadcn components

This brings `NewAccessTokenButton` into conformance with the latest UI patterns of using shadcn based components, zod schemas, and react-hook-form for form submission.

I based this refactor on the implementation of `CreateSecretAPIKeyDialog`, which already made use of the above.

* add success and failure toasts

* add smoke test for `NewAccessTokenButton`, fix vitest config

This adds a minimal test for `NewAccessTokenButton` but more importantly fixes a critical bug in the vitest configuration for `studio`.

Because `restoreMocks: true` was set in the config, this meant that the mock implementation for `window.matchMedia` defined in the `tests/vitestSetup.ts` file was being **reset** to an empty function before each test suite was run. While this didn't appear to be a problem before, that appears to be because none of the existing tests had `motion.div` in their component trees. Since `motion.div` calls `addListener` on a media query as part of it's lifecycle, that meant that any test which included it would fail as `addListener` would be undefined in this situation. Removing `restoreMocks: true` from the config results in the desired mocking behavior.

This change is necessary in order to test any component that has the `FormItemLayout` component, as it uses `framer-motion` to animate in error messages for input elements.

* update test cases, reset form on dialog close, testing setup fixes

This fixes an issue with the polyfills for the testing environment, where a call to `useMutation` would fail as a result of `TransformStream` being set to `null`.

Basic tests for access token creation and form resetting added. Adds `@faker-js/faker` to the studio app devDependencies to generate mock data for `msw` endpoint response.

Adds `shx` to the docs app devDependencies to ensure that the `codegen:examples` script runs cross-platform.

* ensure mocked date is a string

* update testing setup, pollyfills and add rich type support to addAPIMock

* fix imports

* fix missing listen call for msw, resolve test type error

* fix imports

* Update studio testing setup files

Improves API mocking type safety and polyfills browser APIs necessary to run tests with framer-motion components

* fix missing listen call for msw, resolve test type error

* fix imports

* Shift test file

* Smol fix

* Nit

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-23 16:54:31 +08:00
Ivan VasilovandJoshen Lim 2bec311971 fix: Make the database.new redirect work (#37370)
* Add a special case for /new/last-visited-org

* Handle the case where last visited org is null. Don't show an admonition if the org slug is _.

* Smol fix to disable oauth apps request if slug is _, and also dont prematurely show no perms UI state

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-23 15:06:53 +08:00
Drake CostaandJoshen Lim 57cd26ac77 Move non-layout Storage components to components/interfaces (#37381)
* Update studio testing setup files

Improves API mocking type safety and polyfills browser APIs necessary to run tests with framer-motion components

* fix missing listen call for msw, resolve test type error

* fix imports

* Update studio testing setup files

Improves API mocking type safety and polyfills browser APIs necessary to run tests with framer-motion components

* fix missing listen call for msw, resolve test type error

* fix imports

* Move non-layout Storage related components to `components/interfaces`

* Fix paths

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-22 23:48:20 +08:00
Pamela Chia f9e330f3ca Chore/track branching 2 (#37350)
* add review branch w ai

* track create branch

* track update push branch event

* track create merge request

* track create and close merge request

* track merge attempts and results

* add delete branch event

* combine handle update

* fix lint
2025-07-22 20:51:08 +08:00
Joshen Lim 008cca006d Refactor custom domain verification (#37349)
* Refactor custom domain verification

* Add success toast when cancelling custom domain

* Update toast success for other delete custom domain calls

* Revert unnecessary change

* Update copy

* Update copy
2025-07-22 19:47:07 +08:00
Ignacio Dobronich 16bb5187c9 docs: credit top ups pay outstanding invoices (#37255) 2025-07-22 11:25:36 +00:00
Joshen LimandIvan Vasilov 31b8fbe487 Deprecate getAPIKeys from project settings v2, use new api keys endpoint instead (#37300)
* Deprecate getAPIKeys from project settings v2, use new api keys endpoint instead

* use getPreferredKeys where appropriate

* Prevent usage of secret key for storage and realtime inspector

* Add dashboard API api-keys endpoint

* Simplify

* Disable edge functions test if legacy api keys are disabled

* Revert

* Fix graphiql

* Remove all usage of api keys from project settings, except DisplayApiSettings

* Update

* Fix

* Small fix for an undefined upload url.

* Fix the storage state initialization when the resumable url changes.

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-07-22 16:22:03 +08:00
Joshen LimandAlaister Young e70242f822 Chore/clean up assistant mcp feature flags (#36772)
* Clean up usage of newOrgAiOptIn and useBedrockAssistant feature flags

* Remove all OpenAI endpoints

* Fix for self-hosted

* Default isLimited to false

* Update PG meta tests

* Fix unit tests for model

* Revert pg meta tests

* Fix test

---------

Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
2025-07-22 16:05:16 +08:00
Joshen Lim 9523272dbf Chore/add instructions for psql export table editor (#37249)
* Midway

* midway

* update warning

* Nit

* Nittt

* Add comment
2025-07-22 15:37:48 +08:00
Pamela Chia e23607b099 chore: add bucket creation tracking (#37213) 2025-07-21 11:28:46 -07:00
Ignacio Dobronich 745bebb067 chore: support redirect query params on signup (#37272) 2025-07-21 11:28:54 -03:00
Bobbie Soedirgoanddivit 78419c7047 chore: clean up removed field handling (#36954)
Co-authored-by: divit <27228526+delgado3d@users.noreply.github.com>
2025-07-21 13:58:44 +08:00
Joshen LimandAlaister Young b9a0908331 Refactor post calls from lib/common/fetch in auth pages to data/fetchers (#36506)
* Deprecate use of getWithTimeout, refactor BuildingState and RestoringState to use RQ

* Refactor profile-create-mutation to use data/fetchers, and edge-function-status-query to use fetch

* Shift post from lib/common/fetch, refactor bucket-object-download-mutation

* Address feedback

* Minor fix

* Refactor post calls from lib/common/fetch in auth pages to data/fetchers

* Add missing POST users endpoint + small fix when deleting user via context menu

* simplify handleFetchError

* allow handleFetchError to accept unknown

* non-breaking change

---------

Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-07-21 12:45:53 +08:00
Joshen Lim 88dca021d6 Webhooks automatically append authorization header if edge function with verify JWT enabled is selected (#36759)
* Webhooks automatically append authorization header if edge function with verify JWT enabled is selected

* Fix when selecting http request to remove auth header as well

* fixy fix
2025-07-21 12:16:06 +08:00
Kevin Grüneberg 78c4b8f238 feat: support new tax ids (#37284)
- Bahrain
- Ecuador
- Egypt
- Kazakhstan
- Nigeria
- New Zealand
- Oman
2025-07-18 11:32:46 +08:00
Jonathan Summers-Muir cb294fd6ad fix: enrichment logs queries (#37247)
Update JWT payload extraction in service flow queries

Replaces hardcoded nulls with actual JWT payload fields for expires_at, signature_prefix, subject, and other attributes. Removes unused invalid key check and standardizes variable naming for JWT apikey joins. Improves accuracy and consistency of extracted JWT data in service flow queries.
2025-07-18 05:30:00 +08:00
Jonathan Summers-MuirandJoshen Lim e1cab2669d fix: remove async filter search (#37263)
* Update UnifiedLogs.fields.tsx

* Fix prematurely redirecting back to logs/explorer while on new logs interface due to newly added organization check

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-17 18:36:36 +00:00
Jonathan Summers-Muir bf394583cc Refactor unified logs count query logic (#37262)
* Refactor unified logs count query logic

Introduces getUnifiedLogsCountCTE to provide detailed unified logs CTE for count queries, replacing the previous getUnifiedLogsCTE usage in getLogsCountQuery. Removes host and auth_user facet counts from the query and updates the unified logs CTE to include more explicit log type handling and metadata extraction.

* Update unified logs CTE to include all log sources

Refactored getUnifiedLogsCTE to aggregate logs from PostgREST, Postgres, Edge Functions, Auth, and Supabase Storage sources. Also removed trailing comma from facet count CTEs for improved SQL syntax.

* Remove unused 'host' field from log queries

Eliminated the 'host' field from multiple log query functions and the final SELECT statement in UnifiedLogs.queries.ts, as it is no longer required for log processing or display.

* Remove unused api_role and auth_user fields from log queries

Eliminated references to api_role and auth_user fields, along with related joins, from multiple log query functions. This streamlines the queries and removes unnecessary data extraction for these fields.

* Update UnifiedLogs.fields.tsx
2025-07-18 02:30:50 +08:00
Joshen Lim ba2c83decc Gate unified logs to team and above (#37260) 2025-07-18 01:08:13 +08:00
Jordi Enric dfacfd5137 Reports clean ups (#37248)
* use similar ui styles for different charts

* fix naming

* use similar styles, fix height

* rm year from tooltip timestamp

* remove unnecessary code in useChartData
2025-07-17 16:08:22 +02:00
Jonathan Summers-Muir 7d5dd5b6be Chore/logs reloading state (#37252)
* Add loading opacity and keep previous data for logs

Wrapped TimelineChart and DataTableInfinite in divs with opacity transition during data fetching for improved UX. Added keepPreviousData: true to unified logs chart, count, and infinite queries to retain previous data while fetching new results.

* Remove keepPreviousData from logs count query

The keepPreviousData option was removed from the useUnifiedLogsCountQuery hook to rely on default query behavior or custom options. This may affect how data is retained between queries.

* Update UnifiedLogs.tsx

* Refactor TimelineChart opacity handling

Moved opacity and transition classes from a wrapping div directly to the TimelineChart component for cleaner structure and improved conditional styling.
2025-07-17 13:49:04 +00:00
Jonathan Summers-Muir eb0106179e Add dynamic column generation for UnifiedLogs table (#37239)
* Remove 'host' field from UnifiedLogs interface

Eliminated the 'host' field from filter fields, schema definitions, and column configuration in UnifiedLogs. This streamlines the logs interface and removes unused or unnecessary data.

* Add dynamic column generation for UnifiedLogs table

Replaces static column definitions with a dynamic generator that hides columns when all their values are empty. The UnifiedLogs table now adapts its columns based on the current data, improving readability and relevance.

* Update Columns.tsx

* Update Columns.tsx

* Add column width classes to UnifiedLogs columns

Added explicit cell and header class names for column widths in the UnifiedLogs table to ensure consistent sizing and improve layout control.

* Update Columns.tsx

* Refactor dynamic columns to include visibility state

The dynamic columns generator now returns both columns and their visibility state, allowing UnifiedLogs to merge dynamic visibility with existing column visibility. This improves control over which columns are shown based on the data.
2025-07-17 21:02:31 +08:00
Jonathan Summers-Muir a797ae2674 Remove 'host' field from UnifiedLogs interface (#37232)
Eliminated the 'host' field from filter fields, schema definitions, and column configuration in UnifiedLogs. This streamlines the logs interface and removes unused or unnecessary data.
2025-07-17 12:36:43 +00:00
Joshen Lim b0c3af5e0b Small adjustment to branch paddings (#37238)
* Small adjustment to branch paddings

* For merge request too

* DRY
2025-07-17 20:08:55 +08:00
Jonathan Summers-Muir ef2fbb88c4 Feat/logs date refactor (#37243)
* Integrate LogsDatePicker into DataTable timerange filter

Replaces DatePickerWithRange with LogsDatePicker in DataTableFilterTimerange, enabling use of helper presets and improved date range selection. Adds support for passing button props and synchronizes filter value logic with the new date picker component.

* Add upgrade prompt for log date range limit

Introduces an upgrade prompt when users select a log date range that exceeds their current plan's retention limits. Uses `maybeShowUpgradePrompt` and `useCurrentOrgPlan` to determine when to show the prompt, improving user awareness of plan restrictions.
2025-07-17 20:07:00 +08:00
Joshen Lim 22f937c954 Chore/async filters for unified logs (#37200)
* Refactor retrieval of log counts

* Async filters

* Clean up

* Clean up

* Fix
2025-07-17 17:33:17 +08:00
Kevin Grüneberg 009dabaf2b fix: plan redirect from pricing page (#37231) 2025-07-17 16:57:48 +08:00
Jonathan Summers-MuirandJoshen Lim 41a5c39305 Feat/logs preview (#37230)
* Add unified logs feature preview and toggle controls

Introduces a unified logs feature preview, allowing users to enable or disable a new logs interface with enhanced filtering and real-time updates. Adds context hooks, UI components (UnifiedLogsPreview, LogsSwitchBox), and conditional logic to display the new interface or revert to the old one. Updates routing and feature preview modal to support the unified logs preview, and extends local storage keys for feature flag management.

* Refactor log UI components and remove LogsSwitchBox

Replaced custom SVG icons with Lucide React icons in LogsSidebarMenuV2 and FilterSideBar for consistency and maintainability. Removed the unused LogsSwitchBox component and cleaned up related imports in FeaturePreviewModal.

* Refactor sidebar panels to use FeaturePreviewSidebarPanel

Introduces a reusable FeaturePreviewSidebarPanel component and replaces InnerSideBarEmptyPanel usages in LogsSidebarMenuV2 and FilterSideBar. Removes unified logs feature flag logic from Sidebar and NavigationBar.utils, simplifying route generation and UI logic.

* Refine sidebar panel styles and remove unused icon

Removed the unused Sparkles icon import from LogsSidebarMenuV2. Updated FeaturePreviewSidebarPanel to use 'bg-muted/10' for background, simplified class names for text alignment, and cleaned up redundant text-left classes for improved styling consistency.

* Update FeaturePreviewModal.tsx

* Update FeaturePreview.constants.tsx

* Clean up

* Final clean up

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-17 16:14:04 +08:00
Jordi Enric 1a36794c59 Add postgREST Report + Filters (#37178)
* add postgrest report

* fix type

* fix layout border top

* fix refreshes

* fix up loading state, title, telemetry src

* add shared api report filters, make headers look the same

* fix auth

* consolidate shared api hooks

* fix name
2025-07-16 17:45:57 +02:00
Joshen Lim bcf943ee88 Advisor rules update for LW15 (#37202)
* Advisor rules update for LW15

* Simplify UX to confirmation modal

* Rename section to settings

* fix

* patchy

* further simplify

* Smol styling fix

* Create + Delete lint rules to also invalidate lints
2025-07-16 22:20:08 +08:00
Stojan DimitrovskiandIvan Vasilov 944aba84ae feat: use code instead of reset password link (#37171)
* feat: use code instead of reset password link

* Migrate forgot-password and reset-password to use RHF.

* Rename the file.

* Forgot to change the import.

* Add a small timeout to solve a race condition.

* handle mfa case

* fix typecheck

* use separate forgot-password-mfa page

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-07-16 15:01:38 +02:00