Skip to main content

Changelog

Updates, changes, and improvements at Retool.

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

Dynamic JSON Improvements

  • Retool supports dynamically adding and removing keys from objects.

Misc.

  • Syntax highlighting for MongoDB queries improved
  • Syntax highlighting for Elastic Search queries improved
  • ButtonGroup component support for multi-selection is fixed.

DynamoDB Improvements

  • ExpressionAttributeValues no longer require typing out the entire Dyanmo Type
  • Added support for the IndexName property
  • Added a link to DynamoDB docs within the DyanmoDB editor

Denodo Improvements

  • Denodo schemas are now shown side by side the query editor
  • Retool supports writing back to Denodo datasources

Fixed

  • Uploading payloads that are larger than 5MB now shows the HTTP status code (413 Entity Too Large) instead of a generic error.
  • Git syncing: our yaml formatter now supports Date objects.

DynamoDB Integration

  • Retool now supports DynamoDB as a datasource!
  • We support connecting to DynamoDB via an AWS IAM Role.
  • For more information, see the documentation.

New JSON Parser

  • Retool no longer forces precise JSON expressions. See below for equivalencies.

    // Property keys no longer need to be quoted { "id": 123 } // before { id: 123 } . // after // Property values can be in single quotes { "name": "Ashley" } // before { name: 'Ashley' } // after // Trailing commas are allowed [1,2,3] // before [1,2,3,] // after

    • Dynamic expressions are still valid, see below for some examples: // Use {{}} as proeprty values { name: {{ textinput1.value }} } // Use {{}} as items in an array, or a { age: [1, 2, {{ 3 }}, 4, 5] } // Use {{}} within property value strings { message: 'Hi {{ textinput1.value }}' }

Writing to Google Sheets

  • Retool supports writing data back to Google Sheets
  • Supported operations
    • Create spreadsheets programmatically
    • Append new rows to spreadsheets
    • Read data from spreadsheets
  • Coming soon:
    • Updating ranges in spreadsheets
    • Listing available spreadsheets
  • For more information, see the documentation.

Fixed

  • Various edge cases in our SAML login has been fixed
  • Retool supports mapping attributes from the SAMLResponse to the firstName and lastName fields Retool uses.