Skip to main content

Changelog

Updates, changes, and improvements at Retool.

New

  • Javascript queries can now return values and be used like a normal query in other parts of Retool
  • Add support for OAuth 1a one-legged support

Improved

  • The SQL autocomplete no longer triggers on , and other special characters
  • Drag and drop performance has been optimized to be smoother and more responsive.

Fixed

  • MongoDB projections now work correctly
  • Double clicking on a table's row does not retrigger a re-running of all the queries if the selectedRow.data has not changed
  • HTTP APIs now correctly implement the binary body type to send the raw payload of the file rather than encoding it in FormData
  • Fixed Retool's edit integration with Redshift

S3 Extensions

  • Added support for generating signed requests.
  • This allows to create a temporary URL that you can use in <img> tags to render data from private S3 buckets
  • Added support for uploading data to S3 buckets, like json or csv files.

Video player component

  • Embed videos into Retool, control playback rate, and read timestamps from the video
  • Supports Youtube, Vimeo, Streamable, mp4 files, etc.

Salesforce integration

  • Fixed various issues when calling into Salesforce Apex classes
  • Added an option to auto-flatten child objects in SOQL queries

Graphql

  • GraphQL variables are preserved when the query's syntax temporarily becomes invalid while typing out a query.
  • Authentication cookies are correctly forwarded along with GraphQL introspection queries

Improved

  • Queries that update / delete rows can now be configured to treat a no-op as a success case.
  • Improved styling of our OAuth consent screen
  • Added the option to duplicate data in Google sheets
  • Show an error when metadata about a resource failed to fetch - e.g. the list of tables / columns in a database or the list of spreadsheets available.
  • KeyValueMap components now render singleton arrays without [ and ]
  • Add a X-Retool-Forwarded-For header to outgoing API requests

Fixed

  • Fixed autocasting of bit(1) and binary columns in MySQL
  • Fixed loading database schemas from Denodo datasources

Turning off Prepared Statements

  • Retool now supports turning of preparing SQL queries to prevent SQL injection.
  • Only admins may enable this option in the Resource connection form.

Progress bar component

  • We've added a new Progress bar component!

Screen Shot 2018-09-17 at 12.32.46 AM.png

Improved

  • Allow Table components to have dynamic formatting / cell coloring depending on any field in the table's data.
  • SOQL queries now support auto-flattening children objects. Enable this on a per-query basis like below:Screen Shot 2018-09-17 at 12.31.10 AM.png

Fixed

  • GraphQL variables are no longer unset when the parsed GraphQL query is invalid.
  • The GraphQL shows an error when the GraphQL schema cannot be parsed
  • GraphQL queries now support cookie-based authentication
  • Google Sheets queries can now query public Google sheets without having to first granting Retool read permissions on your Google account.

Custom CSS Styles

  • You can now customize how your Retool apps look with global css styles by opening up the Settings screen and navigating to the Code section. Screen Shot 2018-09-11 at 5.40.45 PM.png
  • Fair warning! You might end up changing the CSS of some of the Retool UIs. To avoid that, you can scope your styles under the .retool-canvas class name. For example:
.retool-canvas h1 { color: red };

Firebase writes

  • Added support for .set, .update and .push methods on Firebase database refs.

New and Improved

  • Added .setData method to Table components
  • Our json parser supports numbers as property names
  • Our Salesforce integration correctly authenticates with sandbox environments.
  • Fixed support for Denodo write in on-prem setups.

Table action buttons

  • Action buttons on tables support opening new pages (either internal Retool apps, or external URLs). To customize the behavior for each button, you can use the currentRow variable or the i variable.
  • Action buttons on tables can be dynamically disabled in a similar fashion. See below for an example config.

Screen Shot 2018-09-09 at 3.45.23 AM.png

API Custom Authentication

  • Added support for a custom redirect-based authentication scheme. Useful in cases where a custom in-house SSO solution has been built. Screen Shot 2018-09-09 at 3.48.12 AM.png
  • Added support for defining variables to substitute into an API requestScreen Shot 2018-09-09 at 3.48.42 AM.png

Improved

  • UX for adding new databases has been improved by providing sane defaults.
  • Added support for connecting via SSH Tunnels to MySQL databases with edit permissions enabled.

Fixed

  • The Stripe integration has been improved to support form-data based endpoints.
  • The JSONEditor component no longer switches focus when pressing the Tab key.