Skip to main content

Changelog

Updates, changes, and improvements at Retool.

New

  • Added support for custom SSL options in the** gRPC** integration

  • Improved how we handle errors in the OpenAPI integration

  • Added option to configure Table components to hide the refresh button in its footer.

  • Added support for frozen columns in the **Table **component

Protected Applications (Beta)

  • Added branch management interface to the editor
  • Fixed issue where renaming or moving apps would not sync to git repos
  • Fixed issue opening pull requests in GitHub Enterprise

Layout (beta)

  • Holding CMD will block component interaction and allow you drag and drop components without having to worry about triggering side effects

  • Selecting a hidden components will make the component visible automatically. Performance improvements

  • Apps with larger numbers of concurrent queries (5+) should see significant improvements in the responsiveness of the application when the queries are running.

Modules beta

  • Modules will inherit the permissions sets of their host app. This means that end users will be able view modules used in apps even if they have not been granted explicit view access to those modules.
  • Importing an app with modules will also automatically recreate missing modules that are needed by that app.

Bugfixes

  • Fixed issue where exporting apps on a non-main branch in the protected application workflow would still export the main branch

  • Fixed an issue where OAuth2 flows that had “skip Retool consent screen” turned on was incorrectly interpolating variables

  • Fixed issue where the id token was not being refreshed in the OAuth2 refresh

  • Fixed issue where the Github API Base URL was not visible in the protected apps settings

  • Fixed issue where importing apps would stop working

  • Fixed issue where the Rich Text Editor would be blurred unexpectedly

  • Fixed issue where it was not possible to disable beta experiments

We’ve added an “Alert” component to Retool! Alert components let you provide and highlight feedback to your users. You might hide and show this component based on the response of a query. You can dynamically set the type of alert you show to your users (ex: display a success or error based on the return value of a query). You can also include a button in this component that can take any action a Button component can, such as running a query, or exporting data.

These updates are included in v2.64.40 or higher.

Debug queries in browser DevTools

No longer do you have to console.log everything you can to debug queries. You can now use your browser’s developer tools debugger with Javascript Queries and Transformers! Check out the docs for more details.

For example, to do this in Chrome:

  1. Run the query 2. Open the Sources tab in Chrome DevTools and navigate to a file (Cmd/Ctrl-P) with the same name as the query 3. You should now be able to inspect variables, set breakpoints, etc.

Barcode scanner

You can now scan barcodes in Retool using the Barcode scanner component. The component uses the camera of the device to scan the barcode and returns the code number.

Cascading query deletion

Often deleting a query left your app in a broken state. To fix this, we've changed query deletion to cascade: deleting a query will delete all the references to it. We've added a confirmation modal that explicitly describes what will happen. One note: it's tricky to delete query references in JS expressions, so we leave those as-is and provide references in the confirmation modal.

Preview specific app versions

You can now jump from the editor to previewing the latest or the live version of the app, without having to open the Releases modal.

More powerful components

  • Added support for LIKE operations in the Query builder component
  • You can now allow popups in the iFrame component
  • You can now reload the iFrame component from a JS query
  • The Form generator now allows for fields to be drag-and-dropped reordered. You can also specify dropdowns as an input type.
  • Fixed an issue where opening another Retool app via the Button component sent you to the home page instead
  • Added a lastSubmittedAt field to Text Input components
  • Added option to not clear the Dropdown component when clicked
  • Added the ability to remove borders in the ListView component
  • MultiSelect components no longer expand past the allotted space when full
  • Added a button to clear Text Input components
  • Chart components with duplicate x-axis values now display correctly

Table improvements

  • Long strings in cells no longer crash the table
  • Dropdown type columns now map a value of 0 correctly to its label
  • Numeric columns now align right by default
  • Queries triggered by Button type columns can now access the triggeredById and index fields to see which table and row triggered them

Editor power and quality of life

  • The releases modal now shows email addresses
  • Query editor now scrolls correctly to the bottom of the query list when a query is created
  • Deleting a query now also deletes other properties that reference that query
  • Queries now have a queryRunTime field that contains how long the query took to run
  • Added toggle to always show a hidden component in editor mode
  • Query success toasts now display the query name in editor mode
  • You can now add metadata to gRPC resource requests

Bug fixes

  • The Releases modal now displays the correct page (was off by 1)
  • Accessing currentRow in Button type columns now works as expected
  • List View components using row keys no longer crash
  • New queries no longer incorrectly display "Cannot find property 'get' of undefined"
  • Forms no longer crash when optional fields require validation
  • Text Input components now validate numbers with regex correctly
  • Text Input components now invalidate floats when an integer was required
  • Fixed a bug where connecting a Google sheets resource would occasionally fail
  • Added clarifications to GCS resources that failed silently on upload
  • Creating a folder named "root" no longer breaks your home page
  • The Resend invite button after inviting a user now works as expected
  • Fixed a bug that stopped you publishing the latest version of an app
  • The errors field is now correctly cleared after a query succeeds
  • Custom auth steps when setting up a REST/GraphQL resource now accurately show what variables you have access to
  • Queries no longer have isFetching set to true after completion
  • Fixed a bug where switching apps didn't stop queries on the previous page from running
  • Renaming a page now displays a reason if it failed
  • Copy pasting a Container component now also correctly copies its children
  • Marking a Text Input component as not required in a Form component now works as expected
  • Mappers in Chart components are now recalculated correctly when datasets are toggled

A new home page

The home page is the first screen you see after signing in. It’s the hub of Retool: where you go to create a new app, access apps you’ve already built, and discover apps built by teammates. To make it easier for new users to get started — and existing teams to manage a growing number of apps — we’ve rebuilt the Apps home page from the ground up with a focus on speed and visibility.

Some of our favorite features of the new home page include:

  • Quick links to access apps you’ve recently viewed or starred
  • Ability to view all your folders
  • See when an app was last edited and by whom with more app metadata
  • Search for pages by name (and last editor) and faster page loads

What's using this button?

Components, transformers, state, and queries now show dependencies in the model browser! Hover over the blue icon next to the name to see the dependencies. For example, you can see which components update textinput1 and what components textinput1 depends on.

Tables

As usual, we've made improvements to the table component, given how core it is to the Retool experience. Let us know if there any cases that make using tables particularly slow or cumbersome, and we’ll be on it!

Performance

  • Performance improvements for tables that contain dates
  • Tables with content that overflowed columns now load faster
  • Tables load data faster

Pagination

  • Fixed Action Buttons not rendering correctly in Tables that use forward-cursor-based pagination
  • Allow users to disable the "Next" button on the Table for forward-cursor-based pagination
  • Fixed how the Table decides to update the afterCursor property when the data has been fully loaded

Custom column types

  • Fixed an issue where tables with dropdown type columns did not load dynamic data correctly
  • Fixed an issue where tables with dropdown type columns would sometimes crash
  • Fixed an issue where dropdown type cells in tables would search via value instead of label

Features & Integrations

  • Added startAt and endAt to Firestore queries for use in pagination
  • You can now delete shared queries in the query library
  • Imported queries that have been deleted can now be converted to a regular query

UX Improvements

  • The JSON Explorer component now opens all nodes by default
  • Added Cmd/Ctrl+Shift+P as a shortcut to go to presentation mode
  • Added transformers back to the model browser

Bug Fixes

  • Fixed issue where changing URL parameters in REST resources didn't let you save the resource
  • Fixed an issue where clicking on a state variable wouldn’t focus the inspector
  • Fixed an issue where zero values did not display correctly in Text components

  • General editor performance improvements
  • Dragging new components onto the canvas should be faster
  • Dropdown components are faster when using “Max Results”
  • Faster scrolling for wide tables

Copy and paste components between apps

  • Copy & paste entire components from one app to another!

Visual cue for staging environment

  • Added a yellow banner for both Editor and Presentation modes when staging mode is selected
  • Only available for apps that have a staging environment configured

Visual cue for staging environment

New

  • Start, stop, resume, and reset a stopwatch-style timer timer component

New & Improved

  • Added triggeredby``Id attribute to manually-triggered queries so you know what triggered it
  • Added button to Settings > Advanced page to download Retool’s public key for git syncing
  • Added support for auto-pagination for DynamoDB resources
  • Added ability to specify GCS bucket in resource editor
  • Added ability to specify more than 1 permitted file type for S3 Uploader components
  • Added onchange query trigger for Radio Group components
  • Added write-back capability for BiqQuery resources
  • Added setValue function to Editable Text component
  • Added autocomplete for JS query utility libraries
  • Now displaying hints for common SQL query gotchas in query editor
  • Various performance improvements for big Retool apps
  • Better UX in Query Playground for long queries

Concurrent developer warnings

  • Added a notification to the header that shows who else is modifying the same Retool app.
  • You can use this to avoid overwriting changes that your team mates are making to the Retool app.

Screen Shot 2019-06-03 at 2.19.47 PM.png

Deleting apps

  • Added ability for admins to permanently delete apps that are in the archive folder.

Screen Shot 2019-06-03 at 2.21.58 PM.png

New

  • Added the option to specify the ACL for files uploaded to Google Cloud Storage
  • Added option to allow users to define custom values in Multiselects. Enable this by using the "Allow user defined values" option in Multiselects.

Screen Recording 2019-06-03 at 02.25 PM.gif

Resource access levels

  • Extended the access control levels in Retool to allow admins to restrict access to Resources connected in Retool.
  • You can use this feature to do things like:
    • Only allow analysts to use readonly database connections.
    • Only allow developers to use apis / databases that they manage.

Screen Shot 2019-06-03 at 1.54.16 PM.png

Here, the group lets the "Awesome Intern" use the onboarding_db (readonly) and onboarding_api resources to create / modify apps

Query playground

  • Added the Query Playground which lets developers write queries quickly without having to create an app. Screen Shot 2019-06-03 at 2.02.33 PM.png

  • Coming soon: reusing queries you write in the playground within your Retool apps.

Tile homepage view

  • Added a new tile-based home screen for Retool apps
  • You can customize the image you use for each tile.
  • You can also "favorite" your most frequently used apps so that always appear at the top of the page.

Screen Shot 2019-06-03 at 2.08.00 PM.png

New

  • Added support for deleting S3 files.
  • Added support for S3 bucket URLs in APIs that use the AWSv4 authentication method.
  • Increased maximum timeout for queries to 10 minutes.

Fixed

  • Fixed how custom redirect flows in "Custom Auth" APIs work in "staging" environments.
  • Fixed POST/PUT/DELETE requests in the Stripe integration that have an empty body.

Query Caching

  • Added query caching as a way to optimize the performance of Retool apps.
  • Queries can have its results cached for up to one day (the cache TTL)
    • The first time you run a cacheable query, it will run the query normally and then remember the query result.
    • Anytime anybody runs the query again the remembered result gets returned instantly.
    • The remembered result is deleted after the cache TTL expires.
  • You can configure this option in the "Advanced options" section of the query editor.

Screen Shot 2019-05-20 at 7.36.17 AM.png

Retool community!

New and Improved

  • Added lastUploadedFileName to the S3 Uploader component. Works similarly to the lastUploadedFileUrl.
  • Added live warnings to make it easier to write Javascript scripts.
  • Added a utils.downloadFile function to Javascript scripts. Use this to with API queries that return pdfs / docx / xlsx / etc. to download the files returned. Docs here.

Fixed

  • Changed the MongoDB insertOne queries to also return the created object, including the MongoDB _id.
  • Fixed deadlink on the Permissions dashboard.

RethinkDB Integration

  • Added RethinkDB as a Retool integration.
  • Run get, insert, update, delete, and find queries on your database.
  • Let us know what else we can add.

Lambda Integration

  • Added AWS Lambda as a Retool integration.
  • Invoke lambda functions with whatever payload you need.
  • See more info in our docs here.

Improved

  • Added support for sharded Microsoft SQL Server databases.
  • Improved the user management screen in Retool. Disabled users are greyed out, and we show accurate last active dates for each user.

Fixed

  • Fixed how Custom Auth API integrations work in staging environments
  • Fixed how non-string values are passed in FormData API requests.
  • Fixed error that Slack webhooks would return in on premise Retool.
  • Disabled overly aggressive cache headers in on premise Retool.
  • Fixed editing JSON columns in editable tables.