Commit Graph
2708 Commits
Author SHA1 Message Date
Ivan Vasilov 37c4726145 chore: Bump vulnerable deps (#37244)
* Bump brace-expansion.

* Bump next to non-vuln version.

* Remove old version of @vercel/flags.

* Try to bump prismjs again.

* Bump fastify.

* Dedupe graphql.

* Bump form-data.
2025-07-25 09:11:26 +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
Kamil Ogórek c66c4d1812 feat: Allow for preselecting organization when authorizing oauth app (#37403) 2025-07-24 17:49:12 +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
Joshen Lim 7505c2923e Update AI model check (#37395)
* Update AI model chekc

* Add comment

* Fix test
2025-07-23 17:40:19 +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
Joshen Lim 478ca3cb8e Fix storage store init when switching projects (#37384) 2025-07-23 00:23:43 +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
Joshen LimandAlaister Young dbb413beeb Chore/deprecate lib common fetch 03 (#36529)
* 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

* Remove all use of any imports from lib/common/fetch

* Clean up remaining usage of lib/common/fetch

* Fix fetchHeadWithTimeout

* simplify handleFetchError

* allow handleFetchError to accept unknown

* non-breaking change

* small fixes

* fix query path

---------

Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-07-21 16:59:17 +08:00
Andrew Valleteau 4bd28eecb8 fix(api): set x-pg-application-name for dashboard (#37048)
chore(api): set x-pg-application-name for dashboard
2025-07-21 10:39:46 +02: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
Alaister Young 4ae0b3dcfb [FE-1722] fix: race condition in permissions hooks (#37288)
fix: race condition in permissions hooks
2025-07-18 17:05:49 +08:00
Kevin Grüneberg de509e2cf7 chore: bump hcaptcha (#37285)
1.12.0 solves an issue with the hcaptcha build and reduces bundle size from 35kb to 6kb
2025-07-18 15:53:21 +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
Saxon Fletcher 8375880f9d remove dynamic chat name from prompt for caching (#37281) 2025-07-18 00:43:25 +00: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
Greg Richardson 2afd0c92ab fix(ai): temporarily remove log tools (#37274)
* fix(ai): temporarily remove log tools

* fix: temp remove log tools from tool filter logic

* fix: temp remove log tools from tests

* fix: remove references to get_logs in system prompt
2025-07-17 21:27:54 +00:00
Jonathan Summers-Muir 3feb843574 fix: restrict log inspection panel tab focus refetch (#37265)
* Update unified-log-inspection-query.ts

* Update unified-log-inspection-query.ts
2025-07-17 19:13:52 +00: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
Francesco Sansalvadore fb6f625707 chore: add docs for new db reports charts (#36703)
* chore: add docs for new db reports charts

* chore: fix linting issues

* move db reports docs to telemetry section

* add more info to reports docs

* fix lint suggestions

* update reports

* update latest links and chart screenshots

* advanced telemetry

* update db section
2025-07-17 12:40:12 +00: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