Skip to main content

Changelog

Updates, changes, and improvements at Retool.

Tabs!

You can now reorder query tabs! Sometimes, it’s the little things 🙂

Cascader Component

When you need a dropdown with nested options, you can use our new Cascader component

Tables

  • Table cells have a new type: Modal — Clicking on a cell of this type will open a modal. You can use selectedRow.data to customize your components inside.
  • You can show and hide columns using {{ }} in the Column Settings section

Query Library

  • You can now delete your own queries in the Query Library
  • Query runs are now tracked in the audit log
  • REST resources are now displayed correctly with the base URL

Improvements

  • Query preview now shows the data after transformation
  • Forms now validate text inputs of type email correctly
  • On-premise users now have git-syncing for resources
  • The MSSQL resource now lets you dynamically override username and password

Notes v2

We’ve heard your feedback and built out a version 2 of the Notes component. You can now leave multiple comments, and also see who commented and when!

Schemas

We spiced up the schema viewer for SQL based resources. You can search by table, field, and collapse and expand columns. We’ve also made scrolling through more responsive.

Braintree component

We added a Braintree component to accept payments — and to keep our Stripe component company 🙂

Query Library!?

The Query Playground is now the Query Library. We want the name to reflect the core functionality we’ve added to to the Library, like reusable queries. We hope this doesn’t stop you from playing around and experimenting though!

You can now pass along links to specific queries in the playground. This should make sharing queries much easier.

Screen Shot 2019-10-30 at 1.59.37 PM.png

Improvements

  • Table columns are now sorted by the unmapped value. Now, using a mapper on a column won’t affect your sorting.
  • The Create button on the home page is now disabled for users who can’t create apps
  • Fixed SSL connections for legacy versions of Aurora

GraphQL queries now correctly return errors!

  • Download your query results in the Query Playground as CSV or JSON
  • Fixed a bug where MSSQL resources needed SSL to write back
  • Fixed a bug with how Retool processes and returns large Salesforce SOQL queries
  • Made the Query editor more responsive

If your team is trying to build apps around processes that require approval — budget increases, large purchases, or anything that requires approval from another specific user — please reach out to yogi@retool.com! We’re working on making these flows easier to build and have something that might make your life easier.

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

Resource access levels

  • Extended the access control levels in Retool to allow admins to restrict access to Resources connected in Retool.
  • You can use this feature to do things like:
    • Only allow analysts to use readonly database connections.
    • Only allow developers to use apis / databases that they manage.

Screen Shot 2019-06-03 at 1.54.16 PM.png

Here, the group lets the "Awesome Intern" use the onboarding_db (readonly) and onboarding_api resources to create / modify apps

Query playground

  • Added the Query Playground which lets developers write queries quickly without having to create an app. Screen Shot 2019-06-03 at 2.02.33 PM.png

  • Coming soon: reusing queries you write in the playground within your Retool apps.

Tile homepage view

  • Added a new tile-based home screen for Retool apps
  • You can customize the image you use for each tile.
  • You can also "favorite" your most frequently used apps so that always appear at the top of the page.

Screen Shot 2019-06-03 at 2.08.00 PM.png

New

  • Added support for deleting S3 files.
  • Added support for S3 bucket URLs in APIs that use the AWSv4 authentication method.
  • Increased maximum timeout for queries to 10 minutes.

Fixed

  • Fixed how custom redirect flows in "Custom Auth" APIs work in "staging" environments.
  • Fixed POST/PUT/DELETE requests in the Stripe integration that have an empty body.

Query Caching

  • Added query caching as a way to optimize the performance of Retool apps.
  • Queries can have its results cached for up to one day (the cache TTL)
    • The first time you run a cacheable query, it will run the query normally and then remember the query result.
    • Anytime anybody runs the query again the remembered result gets returned instantly.
    • The remembered result is deleted after the cache TTL expires.
  • You can configure this option in the "Advanced options" section of the query editor.

Screen Shot 2019-05-20 at 7.36.17 AM.png

Retool community!

New and Improved

  • Added lastUploadedFileName to the S3 Uploader component. Works similarly to the lastUploadedFileUrl.
  • Added live warnings to make it easier to write Javascript scripts.
  • Added a utils.downloadFile function to Javascript scripts. Use this to with API queries that return pdfs / docx / xlsx / etc. to download the files returned. Docs here.

Fixed

  • Changed the MongoDB insertOne queries to also return the created object, including the MongoDB _id.
  • Fixed deadlink on the Permissions dashboard.