Skip to main content

Changelog

Updates, changes, and improvements at Retool.

Debugging in browser developer tools, Barcode scanner

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