Skip to main content

Changelog

Updates, changes, and improvements at Retool.

203 posts tagged with "Retool Cloud"

View All Tags

Retool 2.69.3

Google Maps and Google Analytics integrations

Need to geocode addresses? Find the road closest to a map point? Build a realtime dashboard of visitors on your website?

We've added native integrations with two of Retool’s most commonly connected APIs: Google Maps and Google Analytics. Both integrations come with out-of-the-box authentication support and a custom query builder for discovering endpoints and validating inputs. For Google Analytics, we've prepared a transformer that makes it easy to parse reports into a clean array of objects for charting and displaying in a table format. To learn more, check out the Google Analytics and Google Maps docs.

Improved query sharing

Shared queries imported from the Query Library can now be pinned to their latest version. Before this update, any changes made to a shared query required you to manually bump the version in each app that used it. Now your apps can be in sync automatically with your shared query.

We also now include a list of apps that use a shared query in the right panel of the Query Library. When making big changes to a query (e.g. adding new variables), you can quickly open each app from the list and carefully update them, as needed.

Pinning to the latest version is only available for cloud customers, if you'd like to use it on-prem, shoot us a note at support@retool.com.

Fixes and improvements

  • Added support for copy/pasting multiple components

  • Added autocomplete for native JavaScript functions in JavaScript queries

  • Added support for ES2020 features like nullish coalescing and optional chaining

  • Updated pasted components to use their original name

  • Improved performance of apps with a Table component

  • Added a setValue API to the Slider component

  • Added play, pause, and seekTo APIs to the Video component

  • Added a duration property to the Video component

  • Fixed inspector for the Calendar component

  • Fixed the size of the Modal button when disabled

  • Fixed event handlers on the S3 Uploader component

  • Fixed the default name for new S3 Uploader components

  • Fixed component positioning when pasting into containers

  • Fixed some folders not appearing in the "Add to folder" dropdown when creating a new app

  • Added link to "Releases and history" when previewing an app ---Enterprise plan

  • Added support for creating releases for protected apps

  • Fixed "Releases and history" to show history for the current branch on a protected app

  • Enabled editors to reset a protected app to the state of a remote branch

Check out this guide to see the on-prem versions and their release notes.

Retool 2.68.13

Event Handlers

Think of a Retool event handler just like addEventListener** ** in native JS or **onChange** in React. Before, components could only trigger a single query, and anything more advanced would require writing JavaScript. Now, you can configure components to trigger multiple queries, control other components, and call additional APIs in response to user interactions.

We’ve also greatly expanded the number of events available on components, and added new utils and component APIs. Anything you can do with Retool’s JavaScript API (e.g.** _query1.trigger()**_, modal.open(), **utils.showNotification(...)**) you can now do with Event Handlers. Event Handlers will be rolled out to all customers over the next few weeks. To learn more, check out the docs.

Style Editors

Every component now has a style editor in the inspector, making it easier to customize the appearance of your applications without CSS. You can edit the background, foreground, borders and more—you can even use a JavaScript expression for dynamic colors (e.g. {{ checkbox1.value ? 'purple' : 'yellow' }}). Style editors will be rolled out to all customers over the next few weeks. To learn more, check out the docs.

Group Admins

Admins can now assign Group Admins to manage membership for any custom groups.

Previously, only Admins could manage membership for custom groups. Now, Admins can grant any number of group members the Group Admin privileges to add new users or remove existing users. Group Admins will be able to see all users within an org, but are not able to modify any aspect of their group beyond membership (e.g. app and resource permissions).

Fixes and improvements

  • Improved performance when typing in a TextInput
  • Added the ability to unpublish a release, which switches an app back to using the latest working version
  • Added an action to format SQL or GraphQL queries in the Query Library
  • Added more information to document titles to make working in multiple browser tabs easier
  • Added new templates for an Elasticsearch Admin Panel, Datadog Elasticsearch Admin Panel, and Twilio + Segment Personalized Outreach App
  • Reduced app startup time
  • Fixed visibility of the spinner when saving changes in a Table
  • Removed updatedAt property from release and commit diffs
  • Improved performance of apps with multiple modules
  • Fixed display of debug data when testing a custom auth flow with an OAuth step
  • Changed query search in the Query Editor to be case insensitive
  • Fixed incorrect page documentation content on public apps
  • Fixed styles of the color picker in the inspector
  • Fixed documentation links for several resources
  • Fixed "last active" date on the Users page under Settings

Enterprise plan

  • Fixed default folder permissions for new pages that use Git Syncing

Check out this guide to see the on-prem versions and their release notes.

Retool 2.68.5

App Documentation

**READMEs. **README files are a staple of any programming project. If you're on the Startup plan or above, all of your Retool apps now come equipped with a built-in README file. To open it, click on the app’s description in the navigation bar. The Editor README is a great place for sharing information with other Retool editors in your organization: details on working with data sources, descriptions of business logic, or ground rules for making changes.

User Documentation. Of course, developers aren’t the only ones who benefit from documentation. For customers on plans that support end-user only permissions (Pro and above), we’ve also added User Documentation support. Here you can provide information that will be visible to your app’s users, like how to operate the app and who to contact when there’s an issue. (You can also set the docs to open automatically for users firing up the app for the first time.)

To learn more about App Documentation and how to bring sophisticated text display to Retool, check out our blog.

Fixes and improvements

  • Introduced ⌘/⌃X to cut/paste components on the canvas and between apps
  • Corrected placement of pasted components to be more predictable
  • Improved the Text component:
    • Reintroduced a background color option
    • Reintroduced support for the class attribute on HTML elements
    • Improved styles for nested lists and headlines
    • Fixed a bug where toggling staging mode would reset the height
  • Added the ability to turn a Container into a Tabbed Container from the component’s Inspector menu
  • Updated the Container deletion confirmation to list child components that will also be deleted
  • Updated Table and Chart to use the currently selected query by default when created
  • Updated the Table setFilters_ _API to support "OR" in addition to "AND"
  • Fixed a bug where custom CSS did not load correctly in Modules
  • Added support for tabbing between components in the editor
  • Added support for opening a new tab from the Omnibox by holding ⌘/⌃
  • Added keyboard shortcut to toggle the canvas grid lines (⌘/⌃+Shift+G)
  • Updated the Query Library to display duration after running a query
  • Updated the Releases list to include the creator and publisher of each release
  • Fixed a bug where renamed components, queries, and transformers could collide with reserved Retool names (e.g. utils)
  • Fixed a rare bug where JS references to a component wouldn't be updated on rename
  • Improved error messages when renaming components, queries, and transformers
  • Redesigned tooltips in the Inspector
  • Updated the Alert component to be resizable up to 4 rows in height
  • Fixed a bug where editors without "use" permissions could add a Module to apps
  • Fixed Snowflake queries to respect the_ DBCONNECTOR_QUERY_TIMEOUT_MS_ env variable
  • Fixed a bug with Stripe queries that contain array parameters
  • Fixed a bug in Google Cloud Storage queries where the default export file type was invalid
  • Fixed a bug where disabled users would show up in the app users list

Enterprise Plan

  • Updated protected apps to create an initial commit when starting with an empty repo
  • Fixed author data when syncing protected branches to Retool
  • Fixed a rare bug where the GitHub API would not return the entire tree for a protected app's repo

Retool 2.66.88

Text v2

We’ve just launched a brand new version of our Text component. The component includes:

  • Full support for all GitHub flavored markdown features — 6 different headline sizes, bold, italics, strikethrough, underline, bullet lists, numbered lists, task lists, images, links, blockquotes, code blocks, and tables.
  • Dynamic height with the “hug contents” option, on by default
  • Inspector improvements including a markdown-aware code editor and image scaling options

The new Text component no longer supports advanced HTML rendering. If you require more custom HTML, check out the iFrame component or the Custom component.

App specific styles and scripts

You might have noticed that the Text component doesn’t support adding style tags for custom CSS. Good news is, you no longer have to hack in CSS into random Text components. You can now add styles specific to your application in the “Scripts and styles” modal. As the name suggests, this panel also lets you add JS libraries and define custom code in your applications.

Layout improvements and dynamic containers

We’ve refreshed the way drag and drop works in the editor for easier editing and a faster feedback loop:

  • Redesigned component bounding box for easier selection, drag, and resize
  • Instant drag-and-drop feedback with no countdown timer
  • Major improvements and fixes to layout reflows from drag-and-drop and hidden components
  • Hidden components are now visible when selected
  • Support for opening/closing modals and switching Tabbed container tabs during drag-and-drop

We’ve also added dynamically resizing to some containers. The Container component, Tabbed Container component, and Form components now include a “hug contents” setting that automatically sets the height of the container based on the height of its contents!

For a quick guide on how these changes can make you faster at editing, check out the docs.

Chart v2

Our new chart component, built on top of the open source Plotly library, makes data visualizations easier to build, update, and consume. It makes it simple to build charts right out of the box with all of the basics—like mixed chart types, built-in aggregations, and support for grouping—included. And because you’re building charts in Retool, you can take action on the data you’re looking at by easily writing back to your database, making an API request, or whatever else is impactful. See how other Retool users are leveraging charts in our blog post or checkout our webinar on how to build data-driven dashboards in Retool.

Modules

Modules are a new way for Retool customers to reuse groups of components and queries between applications. Modules give you the ability to create a shared library of reusable components and queries that you can use in any Retool application. Any update you make to a module is immediately reflected in every app it powers. Check out our blog post and the docs.

User Management Improvements

A brand new UI and folder-based permissions. Quickly and effortlessly manage access for many users.

A suite of new integrations

We’ve added integrations for Jira, Asana, Datadog and BigID, with many more to come!

Refreshed Query UIs

We’ve updated our UI for some of our most popular integrations including Stripe, Twilio and Sendgrid. Among many visual improvements, the new UI includes inline documentation for the resources so you no longer have to constantly switch between Retool and the Stripe/Twilio/Sendgrid documentation when writing your queries.

Retool 2.66.28

New

  • Added support for attachments in the SMTP integration
  • Added support for renaming resources without breaking references to the resource in apps
  • Added misc. improvements to the UX of modules

Protected applications (beta)

  • Fixed switching between branches in protected apps that were placed in a folder.
  • Showed better error messages when invalid branch names are chosen

Bugfixes

  • Improved error message when queries fail due to network errors
  • Removed requirement to manually enable custom analytics on each app

Retool 2.66.14

New

  • Added support for Docker secrets in Retool's on-prem deployment

  • Added support for parsing group claims in the **Custom OAuth2 SSO integration. **

  • Added support for Google SSO in the **Custom OAuth2 SSO integration. **

  • Official Helm 3 chart for Retool available. Helm 2 charts are available here.

  • Added tools to debug the authentication flow for resources configured using **Custom Auth **

  • Redesigned the database schema browser

  • Changed REST API resources to allow for empty base URLs

Performance improvements

  • Transition speed between different apps greatly improved
  • Cleaned up some unnecessary libraries and code

Bugfixes

  • Fixed issue where single-container on-prem deployments no longer supported SSH connections

  • Fixed issue where text would overflow in Button components when the label was too long

  • Fixed issue where the SAP Hana integration would unexpectedly hang

  • Fixed visual issue with Table headers when using themes

  • Fixed issue where the ReorderableList would not work with duplicate values

  • Fixed visual bugs of the Settings page on wider screens

  • Fixed custom dimensions support in our Google Analytics integration

  • Fixed visual bug when inviting additional users

  • Fixed issue where the staging / production toggle would still appear even when you had set the HIDE_PROD_AND_STAGING_TOGGLES environment variable to true

Retool 2.64.83

This update is available in version 2.64.83 or higher.

Query editor folders

You can now organize your queries and transformers inside folders! We’ve also re-structured the query editor so that queries and transformers are in the same list and can be organized together.

Property tooltips

When you’re exploring the left panel (⌘B) in the editor, you’ll find tooltips as you hover over certain properties that surface helpful tips and documentation.

Editor improvements

  • You can now search for imported queries in the Query editor menu
  • String type values in the green evaluation preview are now wrapped in quotes
  • Component drag-and-drop no longer interferes with selecting text in an input
  • You can now configure the resolution on** utils.downloadPDF()**
  • You can now omit elements when downloading a pdf of your Retool app with utils.downloadPage()
  • Query "on success" notifications are no longer configurable when they won't be displayed

Component improvements

  • All Select components can now be set to allow app users to enter custom values
  • Enables option to search for and select custom values in Dropdowns. Clarifies difference between allowing a custom value and displaying an invalid value by renaming "Allow out of range values" to "Display invalid values"
  • Form components now also consider input components (Text Inputs, Selects, etc.) nested inside containers
  • Plotly chart components now omit numeric columns formatted as strings from parsed x-axis value options. Data returned from Postgres and Google Sheets datasets will now render correctly when graphed with Plotly component
  • DateTimePicker components now support "required" validation for forms
  • Fixed an issue where the Rich Text Editor would not always display the correct value after model updates

Resource improvements

  • Cassandra resources now support read-only AWS Keyspaces
  • Fix Google Cloud DataStore ordering bug where clearing the ordering setting broke the query.
  • Fix for OpenAPI custom query parameters
  • Specifying a None for the Body field in REST queries will now send nothing instead of an empty object
  • Fixed an issue where certain Custom Auth steps for REST and GraphQL resources were skipped if they followed an OAuth2 step

Retool 2.64.71

These updates are included in v2.64.71 or higher.

Google sheets

  • New action type Bulk Update: allows you to update many cells in a sheet at once, where previously you had to configure a custom JS query
  • New action type Delete: allows you to delete a row in a given sheet, which was previously not possible in Retool
  • Typed values: Retool can now read column types from your spreadsheet (e.g. Numbers, Booleans, and Strings). Tables now detect column formats and sort columns with those new formats. Typed values also makes it easier to join across different resources without type conversions.
  • Updated docs: improvements include a new tutorial for building an app
  • Small bug fixes: Retool no longer throws errors when querying empty spreadsheets. Additionally, we improved the stability of connecting your Google account.

Releases and history

You can now better manage versions of your applications with our release and history modals.

New features include:

  • App releases have been reworked to clarify who took what action
  • You can now compare changes between any two releases side-by-side
  • First releases for an app are no longer forced to use v0.1.0
  • The redesigned history tab shows 10 items per page and includes tags on saves that are live and/or released

Query failure conditions

Before, Retool would display a default raw error message from a failing query to users using your Retool apps. You can now override that default message by setting a message on failure conditions.

You can use “failure conditions” in queries to:

  1. Display custom error messages to your users
  2. Mark successful queries as failure (ex: for GraphQL queries)

Check out the docs for more info. Note that this feature replaces “Error transformers.”

New editor functionality

  • You can now download an image of your Retool app as a PDF with utils.downloadPage()
  • You can now logout programmatically by redirecting to /logout in your apps

Table improvements

  • You can now set dropdown labels dynamically with {{ }} in dropdown columns
  • When adding a new row to an empty table, your column settings (e.g. dropdown values like {{ query1.data }}, dropdown labels, background color, etc.) will now apply to the new row

Component improvements

  • Text Inputs components now include an option to show commas for numerical types
  • Queries can now be cached per user instead of across your organization. You can toggle this setting on the Settings → Advanced page.
  • Added the option to scroll vertically in Tabbed Container components
  • Cleaned up styles for Toggle components
  • Plotly components that use Group by now generate the correct JSON
  • Keys in Key Value components are now reorderable even when they don't contain data
  • Key Value components now display falsy values correctly
  • You can no longer move components off the page when moving them with arrow keys

Resource improvements

  • You can now search for resources on your Resources page
  • In REST and GraphQL resources, you can now use an OAUTH2_ID_TOKEN (in addition to the OAUTH2_TOKEN) to substitute for the OAuth ID token when sharing OAuth credentials between users is disabled.
  • MSSQL resources now support Trusted Authentication
  • MongoDB queries now let you specify the options field to support inputs like allowDiskUse
  • Firebase resources now correctly let you specify the database URL
  • MySQL resources correctly support dynamic name overrides for Bulk insert, update, and upsert queries
  • Retool no longer incorrectly passes an audience to the /token endpoint for OAuth2 auth flows
  • Fixed an issue where Postgres resources that connected via SSH occasionally timed out
  • PostgreSQL auto-incrementing primary keys now don’t need to be passed in for Bulk upsert queries

Bug fixes

  • Large apps with Text inputs (read: most apps!) are now more performant and don't slow down when you type
  • Keyboard shortcuts now work correctly on Chromebooks
  • CSV exports no longer prepend apostrophes to negative values
  • Query library gRPC queries now import metadata correctly
  • Previewing an OpenAPI query no longer crashes the query editor
  • Container components no longer show duplicate property editors

Retool 2.64.5

Form Generator

You can now generate a form directly from a database table! Drag out a Form component, click on the “Generate fields from a database” button, choose your table, and we’ll add a query and all the components you need to insert a row. You’ll be able to edit the query and each component just as if you’d created the whole form manually.

Release diffs

We’ve added the ability to view the diff between two different releases. If you want to know which lines in a SQL query are different, or which exact property you tweaked last week on that button, this is your feature.

Full screen editing

Need more room to write code? You can now press F11 to view code editors in full screen. This feature works anywhere you can use {{ }}.

SSO with OAuth providers

For on-premise deployments, you can now implement SSO with any provider that implements OpenID, such as Auth0 and Microsoft Entra ID. Check out the docs here.

Table improvements

  • Table component now handles non-array data correctly
  • Selecting a row in Table components now correctly updates the selected page
  • Table components using GraphQL server side pagination no longer infinitely loop
  • Table component pagination arrows now display correctly in Firefox
  • Table components columns with names that conflict with Table component properties now work correctly
  • Fixed Table components with inline editable columns that occasionally crashed

More improvements

  • Code completion for Table component column mapper settings is now based on the selected table row
  • Faster List View component rendering time
  • Faster load time for the Audit log page
  • Personal queries are now first in the Query Library

Bug fixes

  • Text Input components no longer default to an invalid regex check

  • Fixed an issue where pressing Tab would hide a Tabbed Container component’s tabs

  • Fixed certain cases where Text Input components inside containers and List views crashed

  • The JSON Schema Form component now lists all compatible SQL resources

  • Selecting a user in the Settings page no longer selects the wrong user

  • Fixed an issue where the query editor crashed with certain resources selected

  • Transformers no longer crashed the display when previewed

  • 0 is now considered a valid Text Input component value

  • Checkboxes inside Form components now clear when a form is cleared

  • App names with non-letter characters like !, #, or ? now display correctly in the editor

  • You can now dynamically add a key to a URL param for REST/GraphQL queries

  • Using /users/scheduled_sends in the Sendgrid resource no longer crashes the Query Editor

  • The visibleContainers field in the Container component now updates correctly on scroll

  • Changing the URL now triggers queries dependent on urlparams

  • Formatting SQL queries with && now works correctly

Retool 2.63.5

We’ve been silent for a while but fret not, we’ve been hard at work. We’ve deployed some larger features over the last month and a half, not to mention a whole lot of smaller bug fixes and improvements. As usual, please reach out if you have feedback or comments!

Wizard component (BETA)

We've released a beta version of the Wizard component, an exciting new addition to Retool's component library. The Wizard allows you to visually create multi-step workflows with branching logic, ideal for when you need to guide users through a specific sequence. This is an entirely new component in Retool, so we’d love to hear more about how it can better fit your workflows.

Plotly Chart component (BETA)

We’ve released a beta version of our new Chart component, powered by Plotly. This new component gives you the option of quickly generating a chart from a query or transformer. For more advanced charting needs you can toggle to directly edit Plotly JSON.

New out of the box features:

  • Combine bar and line graphs in the same chart
  • Dynamically group and aggregate data
  • Use the chart’s selectedPoints property to dynamically update other parts of your app

Preview, Save, and Run Queries

The query editor now has improved clarity around previewing, saving and running queries. We've heard a lot of questions like: “Why does query1 run when I save, but query2 doesn’t?” and “Wait, the play button doesn’t actually run the query?” To help clear up this behavior, we've made the following changes:

  • The preview button now has a clearer label to prevent confusion with actually triggering a query.
  • The save button now has two states: “Save” and “Save & Run”. The state shown is tied to whether the query is set to run “automatically when inputs change” (Save & Run) or “only when manually triggered” (Save). In Retool, “read” queries default to always run when inputs change, while “write” queries will only run when manually triggered (e.g. by clicking on a button).
  • Once a query has been saved, you’ll see a newly added run button. This will trigger the query to run once. (Helpful for debugging—no more having to add a button to your app just to test trigger a query!)
  • Last but not least, we’ve moved the run query when setting to the top of the query editor, so it’s easier to predict the behavior of a query at a glance.

gRPC Connector

Retool now connects to gRPC based resources for on premise deployments. The connection supports unary requests for reading and writing (including with variables) with gRPC today. To setup your proto files and start making gRPC request start with the docs here.

SQL resource creation changes

Retool previously required you to set up two resources for SQL: one for reading and one for writing. We’ve simplified this so that one resource that can perform both reads and writes! This has been enabled for all SQL resources over the last few weeks. Check out the docs for a more detailed overview of the changes.

Configurable table button

You can now add a button to the table that can fire off any query of your choice. Often we’ve wanted a button that’s very table related but doesn’t quite fit into the existing toolkit, so we’ve added this button as a catch-all.

Improvements

  • App search on the homepage now also shows apps inside folders
  • Added toggle to hide the submit button from Form containers
  • Added name of editors in the History and Releases modals
  • The search omnibox now de-prioritizes archived apps
  • Added support for specifying ?_releaseVersion as a URL parameter
  • Added the ability to customize the duration of query success/error notifications
  • Added (back!) the ability to bulk invite users

Components

  • ListView components now support dynamic row heights and hiding components
  • Add ability to delete notes in the Notes component
  • Improved fuzzy search functionality for select components
  • Added back Regex filter on TextInput components that stopped users from typing invalid characters
  • Added the ability to set a start time for the Timer component and the ability to customize the value
  • Added the ability to style the Toggle component as a caret
  • Added a .select() method to Text Input components to select text from Run JS Code queries
  • Added the ability to use allow-downloads with IFrame components
  • Added the ability to group events by day in the Timeline component
  • Added the ability to allow geolocation in the Custom Component's IFrame
  • Added the ability to enable allow-same-origin in the Custom Component
  • Added the ability render custom HTML inside the Select component

Table improvements

  • CSV downloads now include the correct column names for renamed columns
  • Added the ability to disable the save changes button
  • Added the ability to view columns as radio buttons
  • Added the ability to disable checkbox and radio style columns
  • Fixed an issue where CSV exports now include all columns (instead of just those in the first row)
  • Fixed an issue where manually triggered queries were not run when clicking the refresh button
  • Fixed an issue where certain column names like “Disabled” broke the component
  • Fixed issues where currentRow and self displayed the wrong value
  • Fixed an issue where the “Server side paginated” field did not work as expected

Resources

  • You can now access returned errors in the Error transformer. You can now return an object from the Error transformer
  • Added the ability to specify user role for Snowflake connections
  • Added the ability to query collection groups for Firestore connections
  • Added in and array-contains-any queries to Firestore
  • Added the ability to use BigQuery’s legacy SQL dialect
  • Added KEYS, MGET, and HMGET to the available Redis commands
  • Added the ability to use IAM roles for Athena and DynamoDB
  • Added the ability to get, set and delete tags on S3 files

Auth improvements for REST/GraphQL

  • Added the ability to verify a custom auth connection via a request
  • Added the ability to create a custom flow for refreshing authentication
  • Added the ability to automatically submit an OAuth form for REST/GraphQL queries

Bug Fixes

  • Fixed a bug where paginated GraphQL queries were called repeatedly if they returned no results
  • Fixed a bug where the HTML renderer in Select components didn’t work if values were objects
  • Fixed an issue where Firebase queries didn’t allow selecting a collection ID
  • Fixed an issue where Firestore queries did not work when using $ref in the request
  • Fixed an issue where you could not call methods on components nested inside ListView components
  • Fixed an issue where the Rich Text Editor component called the “On Blur” query on every keystroke if the component contained a URL
  • Fixed issues where Select and Text Input components didn’t render correctly inside ListViews
  • Fixed an issue where Containers inside ListView components didn’t render in the right order
  • Fixed an issue where rejected promises returned from JS queries were not interpreted as errors
  • Fixed an issue where ui:emptyValue in JSONSchemaForm components wasn’t being set correctly