* Midway implementation notifications v2
* Some updates to Tab component
* Midway implementation notifications v2 again
* implement infinite scrolling and loading for notification sv2
* Add button actions
* Implement archive notifications
* Add filter dropdown for notifications
* Update date format
* Small style fix
* Update
* Update API codegen
* Add empt state
* Add empty state for archived notifications
* Fix type
* Final changes to notifications v2
* Small style fix
* Small fix
* Only mark notifications that come into view as read
* Update package lock
* Move listEncryptedColumns method to a function.
* Remove encryptColumn method since it's unused.
* Add CRUD RQ queries/mutations for vault secrets.
* Use the new queries/mutations.
* Add RQ for secret/decrypted values of secrets.
* Add RQ queries/mutations for pg-sodium keys.
* Use the new hook for decrypted value.
* Use the new hooks for pg sodium keys.
* Remove unneeded code from the vault store.
* Delete VaultStore and all usages of it.
* Small style fix
* Fix invalidation for create, update, delete secrets
* Small UI fixes to EditSecretModal
* Fix invalidation for pg-sodium-keys rq
* Add default error handler for pg sodium keys rq
* Undo
* Add default error handler for vault secrets RQ
* Remove observer on vault pages
* Fix database wrappers with vault
* Add loading state for vault keys
* fix pg sodium keys invalidation
* Opt for immutable const declaration in SecretsManagement
* remove keyId and keyName context from ColumnEditor, no longer supports TLE
* Address PR comments
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Move useEncryptedColumns hook and use it in the TableGridEditor.
* Convert the viewsQuery to use data/fetchers. It also handles invalidation of schemas.
* Invalidate the view when deleting a column or a table.
* Use the new query function in VaultStore.
* Remove the viewStore.
* Fix two more edge cases. Add comments for it.
* Sort by name
* Not name
* Fix
* Migrate the table query to use the new fetchers.
* Cleanup
* Cleanup
---------
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
* Only show RR UI if project is enabled
* Only show RR UI if project has read replicas enabled, shift DatabaseSelector state to valtio, add Database Selector to API URl
* Update usage of Project interface from types to Project from project-details-query
* Fix ts errors
* Another one
* Another one...
* God one more
* Fingers crossed
* jesus
* Add deprecate mark on ProjectBase
* Resolve conflicts
* Rename ProjectState from valtio to DatabaseSelectorState
* Rename file
* fix imports
* tiny code changes
* Fixes
---------
Co-authored-by: Alaister Young <a@alaisteryoung.com>
* Init RQ for database roles
* Shift all use of roles from pg meta mobx store to RQ
* Deprecate and remove roles pg meta mobx store
* Fix import
* Fix
* Address comments
* remove function child
---------
Co-authored-by: Alaister Young <a@alaisteryoung.com>
* Add database policies RQ and shift all usage of policies from pg meta mobx to RQ
* Deprecate and remove policies store from pg meta mobx store
* Fix policies not showing by table and schema
* Update create policy mutation body
* Fix the position of the error in the profile information form.
* Update the query and the mutation for the connection pooling to use data/fetchers methods.
* Refactor the connection pooling form to use react-hook-form.
* Handle null values also.
* Make the headers same case everywhere.
* Set the data after updating.
* Shift all usage of database functions from pg meta store to RQ
* Remove functions store from pg meta mobx store
* fix
* Fix
* Fixes
* fix
* Address comments
* Replace all usage of meta.triggers with react query
* Deprecate and remove ttriggers mobx store
* Fix
* Update apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx
Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
---------
Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
* Hide RLS assistant features for orgs with HIPAA
* Replace all usage of meta.publications with react query
* Deprecate publications store from meta store mobx, shift updateTableRealtime logic to SidePanelEditor
* Address comments
* fix: Unable to export data from the table to CSV
* Update apps/studio/components/layouts/TableEditorLayout/EntityListItem.tsx
* Prettier
---------
Co-authored-by: Terry Sutton <saltcod@gmail.com>
* Implement read, create, delete replicas
* Long poll replica statuses if any one of them is coming up
* Support querying replicas in SQL editor
* Add optimistic rendering for setting up and removing replicas
* Small style fix for database selector in SQL editor
* Small fix
* Add Alerts around PITR and PG upgrades RE read replicas
* Small fixes after testing flag off
* Add UI guards to check that project has PITR before deploying replica
* Fix
* Address feedback
* Fix
* Update replicas RQ to enable based on flag
- Added a quick indicator about over-usage on non-usage-based plans (free or pro with spend cap) at the top of the subscription page
- Removed the usage summary from upcoming invoice (replacement on the usage page)
- Added a new usage summary on the organization usage page
- Per-project breakdown for usage
- Displays costs for over-usage on usage-based plans
- Improved scrolling behaviour for anchors on usage page
- Metrics with higher usage/costs will be sorted to the top
- Insights into compute usage in summary
- Removed duplicate typing and rely on API types for usage DTO
- Usage can now be retrieved for a custom period and not just the current billing cycle
- Usage can be filtered by project
* Add vercel/ai. Commit additional next types.
* Add a API route in /app for streaming responses.
* Make the components work with streaming response.
* Add a dummy page to /app folder to fix a linking bug.
* Fix the dummy page.
* Fix the dummy page again.
* Add an empty layout to the app folder.
* Make the code snippets in the chat read-only.
* Remove queries and mutations for suggest.
* Reset the chat when closing the panel.
* Make the AI instructions a bit better.
* Don't render empty code blocks.
* Try to use remark for rendering the code. Style fixes for CodeBlock in AI assistant panel.
* Fix the styling of the definitions when sending them to OpenAI.
* Fix the css styling of the messages and code blocks.
* Move the suggest API route from app to pages folder.
* Revert the change for app API routes.
* Make the API route look like the rest of the API routes.
* Use Pre instead of Code because the <code> tags aren't working if between spans.
* Minor leftovers.
* Revert to using app route handlers.
* Change the wording on the diff header.
* Add nextjs types.
* Fix a missing import.
* Move AssistantChatForm back to db-new.
* Fix a build error.
* Rename the suggest route to assistant.
* Fix Joshen's comments.
* Send policy definition to AI when editing a policy
* Only send entity definitions if opted into AI for RLS ai assistant
* Scaffold collapsible policy details
* Update comment
* Update
* Update height
* fix messages sorting
* feat: add password strength configs
* Revert the changes to RadioGroup since they may cause issues in other usecases. Add a string to represent the empty string state for PASSWORD_REQUIRED_CHARACTERS property.
---------
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
* feat: user impersonation
* refactor
* add anon impersonation
* add user impersonation to graphiql
* thanks Ivan for this one
* add radio buttons
* progress
* working user selector
* adds loading and error states to user selector
* nicer popover button
* default graphiql to use service role key
* styling updates
* fix padding in graphiql
* add service role warning to graphiql
* add user impersonation to realtime inspector
* add feature flag
* use Alert_Shadcn_ instead of old Alert
* Update apps/studio/lib/role-impersonation.ts
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* update title
* Update apps/studio/components/interfaces/RoleImpersonationSelector/UserImpersonationSelector.tsx
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Update apps/studio/components/interfaces/RoleImpersonationSelector/Icons.tsx
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Update apps/studio/components/interfaces/RoleImpersonationSelector/Icons.tsx
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Update apps/studio/components/interfaces/RoleImpersonationSelector/Icons.tsx
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Update apps/studio/components/interfaces/RoleImpersonationSelector/Icons.tsx
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Update apps/studio/components/interfaces/RoleImpersonationSelector/Icons.tsx
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Update apps/studio/components/interfaces/RoleImpersonationSelector/UserImpersonationSelector.tsx
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* add constant padding at the bottom of user selector
* update graphiql buttons font size
* make rls warning dismissable
* use text-foreground on rls warning title
* fix no results while impersonating a role
* fix error line number when impersonating a role
---------
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Add two more sizes to the Panel component.
* Add alias for the older openai-api library. The new one is added under the openai name.
* Add API routes
* Add components for the new AI RLS panel.
* Bunch of changes to the AI Policy Editor.
* Add a button for opening the new Policy Editor.
* Add a feature flag for the new editor.
* Add a confirmation modal when closing the panel.
* Fix leftover data when closing the panel.
* Make the copy button work.
* Add the next/swc packages to package-lock.json.
* Merge master
* Scaffold debug sql in rls editor
* Small improvements to policy chat
* Hook up debug to ai assistant panel
* Improve debug UX
* Add debug request badge
* Some styling fix
* Small styling fix
* Another small styling fix
* Shift create new policy ai button + fix error stylign with code editor height
* Add tooltips to apply changes and copy code from assistant message
* Hide assistant button is not platform
* Small lint
* Add default error handlers to all AI RQ mutations
* Small fix
* Remove IS PLATFORM check for rls assistant
* Add placeholder to RLS code editor
* Fix diff + rls code editor
* Add placeholder message after sending prompt
* Small style
* RLSCodeEditor hit tab if empty to populate placeholder text
* Light mode nudeges
* Update logic for when confirmation close modal should show
* Set render overview ruler as false for rls diff editor
* improve chat UX to make it smoother (thank you alaister for your help 🙏)
* Dynamically do keepPreviousData
* Gracefully handle errors for add prompt
* Use animated ai icon while message is loading
* using Sheet component
* Address commernts
* Bit more improvements
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
* Init demo world map for read replicas
* Update package.json
* Scaffold and mock data for flow view of project settings infrastructure configuration
* Shift map stuff and install deck.gl to experiment
* Flesh out map view a bit more
* Scaffold deploy new replica panel
* Add restart replica option
* Add animations, shift node generation into utils, attempt to show region nodes
* Experiments
* General improvement to chart and map UI
* Improve some copy writing for restart and drop replica modals
* Simplify loading, error, success states in DatabaseSettings
* Scaffold DB selection in connection string section
* Link replica node to connection string
* Scaffold database selection for SQL editor
* Make DatabaseSelector into a component
* Add database selector to infra activity
* Update
* Hide read replicas UI behind a feature flag
* Update flags
* Update package-lock
---------
Co-authored-by: Jonathan Summers-Muir <MildTomato@users.noreply.github.com>
* feat: add session timeout configs
* Regenerate the api file.
* Fix bunch of type errors caused by regenerating the api file.
---------
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
* Refactor organization details query to organization members
* Remove organzation detials key
* Deprecate Member type from dashboard, use api spec as source of truth
* Add mfa enabled support proactively
* Show mfa enabled column proactively
* Add icon
* Move all studio files from /studio to /apps/studio.
* Move studio specific prettier ignores.
* Fix the ui references from studio.
* Fix the css imports.
* Fix all package.json issues.
* Fix the prettier setup for the studio app.
* Add .turbo folder to prettierignore.
* Fix the github workflows.