Retool 2.64.71
These updates are included in v2.64.71 or higher.
Google sheets
- New action type Bulk Update: allows you to update many cells in a sheet at once, where previously you had to configure a custom JS query
- New action type Delete: allows you to delete a row in a given sheet, which was previously not possible in Retool
- Typed values: Retool can now read column types from your spreadsheet (e.g. Numbers, Booleans, and Strings). Tables now detect column formats and sort columns with those new formats. Typed values also makes it easier to join across different resources without type conversions.
- Updated docs: improvements include a new tutorial for building an app
- Small bug fixes: Retool no longer throws errors when querying empty spreadsheets. Additionally, we improved the stability of connecting your Google account.
Releases and history
You can now better manage versions of your applications with our release and history modals.
New features include:
- App releases have been reworked to clarify who took what action
- You can now compare changes between any two releases side-by-side
- First releases for an app are no longer forced to use v0.1.0
- The redesigned history tab shows 10 items per page and includes tags on saves that are live and/or released
Query failure conditions
Before, Retool would display a default raw error message from a failing query to users using your Retool apps. You can now override that default message by setting a message on failure conditions.
You can use “failure conditions” in queries to:
- Display custom error messages to your users
- Mark successful queries as failure (ex: for GraphQL queries)
Check out the docs for more info. Note that this feature replaces “Error transformers.”
New editor functionality
- You can now download an image of your Retool app as a PDF with utils.downloadPage()
- You can now logout programmatically by redirecting to /logout in your apps
Table improvements
- You can now set dropdown labels dynamically with
{{ }}
in dropdown columns - When adding a new row to an empty table, your column settings (e.g. dropdown values like
{{ query1.data }}
, dropdown labels, background color, etc.) will now apply to the new row
Component improvements
- Text Inputs components now include an option to show commas for numerical types
- Queries can now be cached per user instead of across your organization. You can toggle this setting on the Settings → Advanced page.
- Added the option to scroll vertically in Tabbed Container components
- Cleaned up styles for Toggle components
- Plotly components that use Group by now generate the correct JSON
- Keys in Key Value components are now reorderable even when they don't contain data
- Key Value components now display falsy values correctly
- You can no longer move components off the page when moving them with arrow keys
Resource improvements
- You can now search for resources on your Resources page
- In REST and GraphQL resources, you can now use an OAUTH2_ID_TOKEN (in addition to the OAUTH2_TOKEN) to substitute for the OAuth ID token when sharing OAuth credentials between users is disabled.
- MSSQL resources now support Trusted Authentication
- MongoDB queries now let you specify the options field to support inputs like allowDiskUse
- Firebase resources now correctly let you specify the database URL
- MySQL resources correctly support dynamic name overrides for Bulk insert, update, and upsert queries
- Retool no longer incorrectly passes an audience to the /token endpoint for OAuth2 auth flows
- Fixed an issue where Postgres resources that connected via SSH occasionally timed out
- PostgreSQL auto-incrementing primary keys now don’t need to be passed in for Bulk upsert queries
Bug fixes
- Large apps with Text inputs (read: most apps!) are now more performant and don't slow down when you type
- Keyboard shortcuts now work correctly on Chromebooks
- CSV exports no longer prepend apostrophes to negative values
- Query library gRPC queries now import metadata correctly
- Previewing an OpenAPI query no longer crashes the query editor
- Container components no longer show duplicate property editors