Implements a growth engineering experiment to improve new user onboarding
by providing AI-powered and template-based table creation options.
Features:
- AI prompt interface for describing app requirements
- Pre-built templates for common app types (social media, e-commerce, blog, etc.)
- Seamless integration with existing table editor
- State management using Valtio for reliable data flow
- PostHog feature flag controlled (tableQuickstart)
Technical implementation:
- Uses Valtio proxy-based state management instead of sessionStorage
- Properly handles quickstart flow to prevent race conditions
- Integrates with TableEditor via useQuickstartData hook
- Cleans up state appropriately to prevent panel re-opening issues
- Full TypeScript support with proper type definitions
The experiment aims to reduce time-to-value for new users by providing
smart defaults and reducing the SQL knowledge barrier for initial setup.
* feat(replication): Show warning when publication is not found
* Fix
* Pretty ✨
* Smol tweaks
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* Create OrganizationProjectSelector which handles infinite scrolling in Popover
* Use OrganizationProjectSelector in InviteMemberButton
* Refactor OrganizationProjectSelector to optimize UX
* Use OrganizationProjectSelector in SupportFormV2
* Update apps/studio/data/projects/projects-infinite-query.ts
* Nit
---------
Co-authored-by: Jordi Enric <37541088+jordienr@users.noreply.github.com>
Debounce filter application in UnifiedLogs
Introduced debounced filter application using useDebounce to reduce excessive API calls when users quickly change filters in UnifiedLogs. This improves performance and user experience by batching rapid filter changes.
* fix(ui/auth-sessions): always show refresh token reuse interval
The reuse interval input was previously hidden when rotation was disabled. This
caused confusion, since the interval still applies regardless of rotation
setting. Allow zero values for reuse interval as it is supported in auth server
and is used by some projects.
* Always render SECURITY_REFRESH_TOKEN_REUSE_INTERVAL field.
* Removed .positive() schema check to allow 0 values
* Improves alignment between dashboard UI and backend behavior
* chore: prettier
---------
Co-authored-by: Chris Stockton <chris.stockton@supabase.io>
* feat: change calls label to count
This changes the column title for calls to count for clarity
* feat: add cache hit rate col and number formatting
Adds a cache hit rate column for each query as well as tidies up some number formatting.
* feat: add styling for 0 numbers
This makes anything marked as 0 feint in the table for easier parsing.
* chore: remove debug console log
* fix: silly next-env again
* nit: remove avg rows col
* nit: add toFixed to cache hit rate
* feat: add tooltip for role column
* Update perms checking in audit logs
* Deprecate useCheckPermissions, useIsPermissionsLoaded and useCheckProjectPermissions as they're no longer used
* Rename useAsyncCheckProjectPermissions to useAsyncCheckPermissions
* Fix TS
fix: handle undefined count when fetchint table rows
count can be undefined in the return from fetching table rows (it uses
executeSqlQuery under the hood which has no type safety) so we need to
deal with that case
* feat: remove tabs and unify columns
This removes the tabs from Query Performance with unified columns in the table.
* chore: remove unused imports
* chore: small adjustment to min max and mean time col size
* feat: original experiment with metric cards
* fix: height of table container on load
* feat: add percentage background for time consumed col
Adds a percentage based background colour for time consumed column and reshuffles some columns.
* feat: working metrics above rows
* feat: simplify stats + go back full width
* style: bring up percentage bar opacity
* chore: remove reportType again
* feat: add metric queries to reset function
* fix: type error for passing query metrics
* fix: query queries plural thing
* chore: remove next-env weirdness
* fix: prevent crash on _ page when user has no organizations
* Nit refactors to make wild card pages consistent + fix loading state of org wildcard route
* Smol fix
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* fix: estimate number of users when count is large
In the Auth Users table, we always fetch an exact count of users. This
can be a problem for projects with many (>50K) users as the count(*)
might cause performance issues on the database. We already have logic on
the Table Editor to only run automatic count estimates (fetching the
exact count only if usr requests it), this change ports the same logic
over to Auth Users.
* Nit refactor
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* feat: remove tabs and unify columns
This removes the tabs from Query Performance with unified columns in the table.
* chore: remove unused imports
* chore: small adjustment to min max and mean time col size
* chore: remove unused prop
* init
* Infinite scrolling pagination for projects in table view
* Infinite scrolling pagination for projects in cards view
* Shift searching projects to URL state + to server side
* Shift status filter to URL state
* opt to use local storage query for view moe
* update wildcard project route
* add created at value, and shift filter status to server side
* Nit
* final nit
* Address comments
* Fix
* Prettier
* Raise page limit to 96
The cron jobs details detail will throw a client side exception while
cron jobs are in running status. This is because the types that we've
defined for cron job details expect both return_message and end_time to
be strings, but they will be null until the cron job is finished.
Fixed the types and added some defensive checks to fix the bug.
Also made some minor tweaks to the table. Figured that end time and
duration can also be shown for failed jobs, doesn't only have to be
succeeded ones.
* feat: tidy up query perf column headers
* feat: update col widths and which ones are sortable
This gives a reasonable column width to all cols as well as adds an option for us to filter out which columns we dont want to make the table sortable by.
* feat: column order and word wrapping for query
* feat: column data text align for numbers
* fix: pointer event was preventing index advisor icon popover
* feat: use code block instead of editor
Swapped Editor out for Code block as its less expensive and modified it to add pgsql syntax highlighting
* fix: small truncation issue
* chore: remove unused sort function
* fix: sort menu closing on first click
Sort menu of a column no longer disappears on first click
* feat: move sorting and ordering over to nuqs
This removes the usage of Next Router params and uses Nuqs instead for managing the QP table sorting and ordering.
* feat: add clear sorting button to filter bar
* chore: remove unused files
* fix: add highlighting for selected sort
* Nit update sort
* nit: smol styling update for direction
* feat: inian feedback on time based numbers
* fix: return number instead of string for total time
We were returning a string for total time percentage which meant the sorting was a little bit off
* Shift roles to nuqs
* chore: clean up
* fix: smaller viewport filter bar
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>