Skip to main content

Changelog

Updates, changes, and improvements at Retool.

You can use the same query in multiple apps with Reusable Queries. Often, you want the same functionality across apps, but don’t want to copy paste a query over and over again. Reusable queries help you avoid code duplication, version control queries, and share queries with your team.

Improvements

  • Add and edit headers in GraphQL queries
  • Pressing ESC correctly deselects your components
  • Performance fixes around the query editor and autocomplete

Retool managed notes — beta

If you’ve ever thought, “I wish I could just write a quick note about this user, but don’t want to create a table or add a column for it,” you should try the Note component. The component lets you comment on any row your database. For example, you can write a note (e.g. “duplicate user!”), attach it to userid_42, and retrieve it later. This is still in beta, so we’d love your feedback!

Playground updates: shared queries and variables

You can now share your Playground queries with the rest of the team! Once a query has been shared, all the editors in your team will be able to see, run, and edit the query.

Also new: variables in queries. Use double curly braces {{ }} in your playground queries to define parameters to your queries. To run parameterized queries in the playground, pass in values to variables on the right hand side.

Coming soon — import queries from the playground into your apps, so you can stay DRY and avoid copy/pasting queries 🙂

Calculated table columns

Ever wished you had Javascript in Excel? Now you have Retool! The Table component now lets you add columns populated by calculations (such as ones that reference other values in the table). And, of course, you get the power of JS with the {{ }}.

New resources: OpenAPI + CosmosDB + S3-compatible storage providers

We’ve added three new resources:

  1. API that has an OpenAPI specification (e.g. certain Google Cloud Endpoints)
  2. Azure CosmosDB
  3. You can now pass in a different base URL to the S3 resource to connect to any S3 compatible storage provider (ex: DigitalOcean Spaces or Wasabi)

Revert to an older release

You can now directly revert to an older release in the app editor, without searching through your entire history. (If your end users are not on the latest release, reverting to an older version will not revert their published version.)

Other improvements

  • SAML JIT user provisioning for Okta (if you know, you know)
  • You can now pass in SSL certificates to connect to RethinkDB
  • We added utils.copyToClipboard to let you copy text in Javascript queries
  • We now support various eastern european characters in our font, such as ľščťžřňěůôä for our Czech friends
  • Our MySQL and Postgres resources now accept self signed certificates — this is useful if you’re on GCP
  • Small fixes for containers in mobile mode, the DateTimePicker, and authentication for REST Queries
  • Various performance fixes

Transformers for query data

Queries now have built-in transformers, which let you write JS to “transform” the result of any query. For example, if your API returns data in a column-based format, but you want to “transform” the data into an array of objects, you can write a transformer directly in the query. Then, when you use {{ query1.data }} elsewhere, it’ll be transformed, so you won’t have to write the same JS in multiple places.

  • Click “enable” next to the “Transformer” section below your query.
  • Use data in the Query Transformer to access the query results.
  • In the rest of the app, access the transformed results with the data property inside {{ }}, for example with {{ query1.data }}.
  • If you need to, you can still access the original response of the query with {{ queryName.rawData }}.

Note: you can disable the query transformer by clicking the “disable” button.

Example of using the Transformer to filter User IDs with a dynamic slider. Example of using the Transformer to filter User IDs with a dynamic slider.

Click to copy the green “evaluation preview”

Retool now supports copying the content from an “evaluation preview” textbox. ​​

​​For example, in the GIF below, we’re copying the actual live results of a query into a JSON Explorer, so we can inspect it.

Copying the green “evaluation preview” text to inspect the data in a JSON explorer component.

Copying the green “evaluation preview” text to inspect the data in a JSON explorer component.

Copy & paste containers with their children

You can now copy and paste Containers with of their children.

  • Select the parent Container (or Tabbed Container) component.
  • Copy with ⌘ + C on Mac (or CTRL + C on Windows / Linux).
  • Click on the canvas to deselect the Container.
  • Paste with ⌘ + V on Mac (or CTRL + V on Windows / Linux).

Copy and paste containers with their children!

Copy and paste containers with their children!

Paste components inside existing containers

Also, you can also now paste components directly into Container or Tabbed Container components.

  • Click the component and copy it with ⌘ + C on Mac (or CTRL + C on Windows / Linux).
  • Select the Container or individual tab of a Tabbed Container where you want the copy to go.
  • Paste the component with ⌘ + V on Mac (or CTRL + V on Windows / Linux).

Copy and pasting a button from one container to another. Copy and pasting a button from one container to another.

Performance enhancements

Last week, we spent a lot of time working on making Retool faster; now some of that work has been released. Edit mode and Presentation mode are faster, more complex apps should feel snappier, and even tables with custom cell colors & mapped values will load quicker too!

New minor features

  • Added ability to control staging vs. production environment with a URL parameter.
  • Added an onboarding checklist for new users! (If you complete it, we’ll mail you a Retool T-shirt 👕).
  • Updated visual cue to make it more obvious when components reference unsaved queries.
  • Added sms:// and facetime:// to our list of allowed protocols in HTML links.
  • Added option to disable introspection for GraphQL resources.
  • Added ability to specify an audience parameter in OAuth 2.0 authentication for HTTP and GraphQL APIs.
  • Added ability to clear the PDF Viewer component programmatically with .clear().
  • Added better support for newlines when copying text and components to the clipboard.
  • Added option to hide the clear button in Select components (aka Dropdown components).
  • Added option for scroll on the Modal component.

Small fixes

  • Fixed the the display for the “Always show download button” option on Table components.
  • Fixed upsert action for querying Snowflake databases.

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