As we can only configure permissions on create, this introduces beginnings for project access and permission settings in the create dialog. This also changes the update panel to a view only panel.
* refactor sign-in forms, remove `yup-password`
* add missing disabled state to email field
* Fix zod validations for min length
* minor fix loading state sign up form, and use motion div for success state
* Remove unnecessary useState for isSubmitting
* Nit
* Nit
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Refactor `StorageMenu` modals to replace deprecated patterns
* add test for `DeleteBucketModal` and update test setup
Note: Because this component uses `useParams`, it's necessary to have the dynamic route segment passed to `next-router-mock`'s `createDynamicRouteParser`. In order not to have to manually list all of these as the application grows, I added a glob utility that uses the `pages/` directory to automatically generate an array of dynamic route paths in this case.
* add test for `EmptyBucketModal`
* add test for `EditBucketModal` and add `isNonNullable` utility function
* add test for `CreateBucketModal`
* implement requested changes
* implement visual fixes
* Bump temp API key expiry to an hour just for realtime inspector
* Refresh temp api token whenever starting a refresh listen session in realtime inspector if current token in realtime config is a temp key
* feat: drop file to import data
In the Table Editor for an empty table, make the entire grid area a
dropzone so that files can be dropped onto the grid area for importing.
Dropping a file opens the SpreadsheetImport side panel with the dropped
file already loaded.
* refactor: drag and drop file import
Refactor logic into hooks and utility functions
* refactor: file drop import
Small changes caught in code review
* Opt to pass file through valtio store instead of event listener
* refactor: telemetry properties + cleaning up hook deps
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* rm effect
* diff approach, rm effect for unified logs
* simplify, only redirect to explorer, keep unifiedlog check
* clean up
* dynamic url in the sidebar based on unified logs feature preview
* fix deep link missing ref
* fix: diff all schemas on branch merge
* chore: remove branching limitation on schema and extensions
* chore: remove limitation from blog post
* chore: remove limitation from docs
* feat: use temporary api keys for storage explorer
* Remove service key from storage explorer store + some minor UI nits
* Address TS
* Another TS
* Update
* Use temp API keys in realtime inspector (#37740)
* Use temp API keys in realtime inspector
* Fix
* fix: typo from github web ui…
* fix: opps
* fix: missing import
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Cemal Kılıç <cemalkilic@users.noreply.github.com>
Co-authored-by: Cemal Kilic <cemalkilic96@gmail.com>
* Part 1 of swapping useCheckPermissions with useAsyncCheckProjectPermissions
* Update apps/studio/hooks/misc/useCheckPermissions.ts
Co-authored-by: Drake Costa <drake@saeris.io>
* Address feedback
---------
Co-authored-by: Drake Costa <drake@saeris.io>
* 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
* add missing changes
* Move `EditSecretModal` to be child of `SecretRow`
In the accompanying PR for `DeleteSecretModal`, that one will also be moved over to `SecretRow`
* 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
* add missing changes
* Move `EditSecretModal` to be child of `SecretRow`
In the accompanying PR for `DeleteSecretModal`, that one will also be moved over to `SecretRow`
* fix imports
* Update test, fix rebase errors
* remove unnecessary code
* resolve type errors
* 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
* remove duplicate test
* update testing setup
* implement requested changes
* cleanup unnecessary conditional logic for undefined `secret` prop
* remove unused import
* remove unnecessary code
* cleanup, replace lodash import with JS
* add required router mock
* fix broken lockfile
---------
Co-authored-by: Terry Sutton <saltcod@gmail.com>
* try a really long context window to maximize caching
* update examples
* attempt to update packages and useChat
* update endpoints
* update zod
* zod
* update to v5
* message update
* Revert "zod"
This reverts commit ec39bac6b6.
* revert zod
* zod i
* fix complete endpoints
* remove async
* change to content
* type cleanup
* Revert the package bumps to rebuild them.
* Bump zod to 2.25.76 in all packages.
* Bump openai in all packages.
* Bump ai and ai-related packages.
* Remove unneeded files.
* Fix the rest of the migration stuff.
* Prettier fixes.
* add policy list tool
* refactor
* ai sdk 5 fixes
* refactor complete endpoint
* edge function prompt
* remove example
* slight prompt change
* Minor clean up
* More clean up
---------
Co-authored-by: Jordi Enric <jordi.err@gmail.com>
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* feat(replication): Add new UI for new table state handling
* Fix
* Fix
* Fix
* Fix
* Fix
* Fix
* Fix
* Improve
* Fix
* Fix
* Fix TS
* Some UI tweaks
* Tweaaakk
* Fix semantics
* Small optimization
* Some adjustments
* Bit more fixes
* Small UI tweak to simplify UI
* Fixy fix
* gahhh tiny tiny tiny
* Last bit of cleanup
* I swear one final tweak
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* feat: update dpa retrieval
* add tracking for other legal docs
* ci: Autofix updates from GitHub workflow
* update api types
* update pdf
* Refactor DPA with text confirm modal
* Nit consistency with using a and buttons
* Update TextConfirmModal
---------
Co-authored-by: pamelachia <26612111+pamelachia@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>