Commit Graph
3261 Commits
Author SHA1 Message Date
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
Joshen Lim ec6564b782 Fix unified logs stuff on self-hosted (#37394) 2025-07-23 18:43:13 +08: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
Joshen Lim a26f96570e Fix missing x axis labels in reports (#37378)
* Fix missing x axis labels in reports

* Improve guard
2025-07-22 16:51:28 +02:00
Joshen Lim ef4e6f8e4d Add guard in storage explorer to not render store if api key is undefined (#37379)
* add guard

* Fix Storage Explorer empty view if no perms to read API keys
2025-07-22 22:43:00 +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
406b243c3b Chore/coming soon notice (#37276)
* Add 'New logs' feature preview panel to sidebar

Introduces a FeaturePreviewSidebarPanel for the upcoming 'New logs' feature in the LogsSidebarMenuV2 component, providing users with a visual indicator and description about the rollout.

* Update LogsSidebarMenuV2.tsx

* Update apps/studio/components/layouts/LogsLayout/LogsSidebarMenuV2.tsx

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

---------

Co-authored-by: Greg Richardson <greg.nmr@gmail.com>
Co-authored-by: Wen Bo Xie <wenbox323@gmail.com>
2025-07-17 21:52:40 +00: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-Muir 8d6e668b36 fix: Prevent arrow key propagation in filter command (#37250)
Prevent arrow key propagation in filter command

Adds an onKeyDown handler to stop ArrowUp and ArrowDown key events from propagating to parent components in DataTableFilterCommand. This prevents unintended navigation behavior when using the filter input.
2025-07-18 03:02:26 +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
Cemal KılıçandJordi Enric 09fc7776b5 feat: update auth sign in report query (#37240)
* feat: update auth sign in report query

* fix chart config

* fix type error for custom properties in chart attributes

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2025-07-17 15:45:44 +02: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
Jordi Enric d8acd6752c fix timestamp missing (#37242)
fix
2025-07-17 12:33:33 +02: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 2d0effe637 Fix bucket row actions (#37209) 2025-07-16 23:24:39 +08:00
Etienne Stalmans 9f29d5c8df chore: new security page without flag (#36855)
* chore: new security page without flag

Remove feature flag for new security page

* chore: add additional docs

* chore: prettier

* chore: move mfa enforcement page

* fix: link fixes
2025-07-16 16:24:11 +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
Francesco Sansalvadore 097ded6906 standardize db report (#37198)
* init standardization

* same charts

* clean up charts

* cleanup

* restore condition

* remove comment

* show availableIn placeholder
2025-07-16 12:29:01 +02:00
Saxon Fletcher 6a1115ebaf Refine review branch prompt (#37196) 2025-07-16 19:55:50 +10:00
Alaister Young dac0ee6575 chore: deep link feature preview modal (#37191)
* chore: deep link feature preview modal

* handle invalid keys gracefully

* default to first feature preview in query

* use nuqs
2025-07-16 14:38:33 +08:00
Greg Richardson 1a064fef70 feat: middle click closes tab (#37187) 2025-07-16 14:20:39 +08:00
Saxon FletcherandAlaister Young 625af107bd Branch refinements (#37192)
* branch refinements

* branch price copy

* change alignment of badges

* remove console.log

---------

Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-07-16 16:06:54 +10:00
Saxon FletcherandJoshen Lim c9458e33a3 add merge request button to header (#37188)
* add merge request button to header

* hide merge button behind branching 2 enabled flag

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-07-16 14:00:50 +08:00