Skip to main content

Changelog

Updates, changes, and improvements at Retool.

Editor Improvements

  • We've optimized the sizing of everything in the Retool Editor.
  • It's now friendlier on computers with smaller screens and makes sure that you can see everything you need to without having to scroll or zoom out.

Improved

  • Microsoft SQL Server queries now support returning multiple recordsets. For example the below will now return both results in the same SQL query -- Find all the rogers select from dbo.Users where name = 'Roger'; -- Find all the sarahs select from dbo.Users where name = 'Sarah';
    • Tables can be server-paginated without specifying the total size of the dataset being paged through.
    • In case you've forgotten how Retool works, or if you want to show a friend the basics, you can now restart the tutorial from the home screen by clicking on Do Tutorial
    • A link to our docs has been added to the sidebar.

    Fixed

    • Fixed: switching between production and staging now also auto-refetches the schema of your datasources

New PDF Exports

  • Write markdown, and get a PDF.
  • Great for creating tools to generate PDF documents (invoices, contracts, etc.)
  • Use this by using the new PDF Exporter query: Screen Shot 2018-10-11 at 6.24.30 PM.png
  • To generate PDFs that look like this:

Screen Shot 2018-10-11 at 6.25.19 PM.png

Improved Javascript Queries

  • Javascript Queries lets you script Retool to do pretty much anything.
  • This works by invoking methods on Retool primitives (components, queries, etc.).
  • All of these operations are asynchronous - they don't immediately take effect (e.g. triggering a REST API query).
  • To help make this easier, Retool now supports promise based syntax and async-await syntax on newer browsers Screen Shot 2018-10-11 at 6.26.13 PM.png

Improved Tables

  • The column of buttons can be moved to the leftmost column of the Table.
  • The header of the column of buttons can be customized.
  • Server side paginated tables no longer requires the total number of records in the dataset to page correctly.

Misc Improvements

  • Added .setValue to checkboxes

  • Added percents to pie charts

  • Added the HTML class ._retool- to containers

  • Fixed: GraphQL errors have been improved

  • Fixed: Allow underscores in odbc based connections

  • Fixed: SAML login cast to lower case for consistency

New component: Reorderable Lists

  • Need to allow your users to reorder a collection of items?
  • The Reorderable List is a component that allows your users to drag and drop cards to reorder an array of strings into any order they want.

Bulk Upserts

  • Retool supports bulk upserts into SQL databases (Postgres, MySQL, and SQL Server).
  • Choose which table, which key to treat as a primary key, and an array of data to update / insert data into Retool.

Improved

  • Retool's resizing handle's hitbox has been increased to make it easier to click and drag.

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.

Improved

  • KeyValueMap now supports customizing the values using HTML
  • CheckboxGroup has an option to align all the checkboxes vertically rather than horizontally.
  • The syntax highlighting has been improved for areas where an JS Object is expected
  • A Home button has been added to the file menu.
  • When opening up a Retool page using a device with a small screen, Retool now shows the app as if it were opened on a desktop.

Fixed

  • Disabled queries may sometimes have unintended consequences and cause downstream queries to fail to run.
  • TimePicker's sets the second to 0 when the formatted string does not include seconds
  • Fixed a bug with our modals on Firefox.

Calendar component

  • Retool now has a calendar component that you can use to render events.
  • Supports creating new events
  • Supports moving events and changing start / end of events
  • Supports selecting events.

Screen Shot 2018-09-04 at 3.34.21 AM.png