The command menu search option uses the unpaginated version of the
buckets endpoint, which times out / causes jankiness when users have
tends of thousands of buckets.
Switch to using the paginated version. The old behaviour is preserved,
where only the first 10 results are shown, and the user has to specify a
more specific search query to get other buckets. This is for UX
simplicity, since this is a convenience feature, and fully
infinite-loading search is available in the full Storage interface.
* fix(studio): check job_run_details size in cron display
When cron.job_run_details grows too large (200k+ rows), loading the
cron jobs overview can timeout and affect other queries by pulling
excessive data into shared buffers.
This change:
- Estimates table size using pg_stat before fetching cron jobs data
- Shows a cleanup notice when the table exceeds the threshold
- Provides batched deletion using ctid ranges to avoid buffer pollution
- Allows scheduling an automated daily cleanup cron job
- Handles timeout errors gracefully with a "suspected overflow" state
The useCronJobsData hook now returns a discriminated union status that
tracks loading, estimate-error, overflow-confirmed, overflow-suspected,
and ready states, allowing the UI to respond appropriately to each case.
* fix(studio): use index when querying cron.job_run_details
cron.job_run_details is only indexed by runid, not by start_time. Change
the query to use the runid index (which gives the same result, since
runid is auto-incrementing).
* feat: replace usage metric cards with new charts
* feat: use new chart components for auth api and error codes
* style: some tweaks to the two tables
* fix: padding around empty states
* feat: smol adjustment
* fix: add aria label to go to logs tooltip
* fix: diff value
* fix: status code method font colour
* fix: actions onClick
* query perf improvements
* info tooltips
* filter fixes
* prettier wont work in cursor for some reason
* fix type error
* rm clear all filters button, its too much
* prettier
* Popover ui component to use portal by default, remove all manual declaration of portal for PopoverContent in dashboard
* Forgot to add ui changes lol
* Clean uop
* edit branch modal to not make requests per branch change
* reverted onblur mode
* Simplify debounce logic
* updated open linker to handle undefined error
* updated to ensure branch name isn't stale
* updated to use static event
* updated logging statement
* formatted document
* removed static events
* updated loading and check states
* updated to watch on branch name
* Nit remove isChecking loading for Update branch button
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* added query performance dropdown with filters and groups
* updated and cleaned up roles
* updated filter popover to show options
* updated types for filter
* updated spacing
* fixed minor bug
* updated description
* updated
* update roles
* updated width and added only button
* updated index button
* updated to remove descriptions
* fix: correct styling for access tokens action menu
* fix: use timestampinfo card for created and expired
* chore: remove unused tooltip components
* feat: bonus add sorting for expiry and used dates
* fix: coderabbit suggestions
* fix: colspan suggestion
* fix: line truncation for token
* fix: another colspan spotted
We use the quota term for actual billing quotas, so using "Quota" as a term for configurable Realtime limits is confusing. While there are varying per-plan limits, they are not used for billing. Realtime Quotas on plans refer to Realtime Messages and Realtime Peak Connections
When a wrapper is changed (e.g., by changing a table name, the entire
wrapper is destroyed and recreated. This also destroys dependent objects
like functions, but the user is not warned.
Add a confirmation modal warning that this will happen.