What's new on Retool

Retool news feed and changelog.

August 24, 2019

August 25, 2019 – v2.43.0

Improved backend logging

For on-prem customers, we’ve improved backend logging by emitting logs as a JSON object. We include all details (e.g. query response times, whether it succeeded or failed, etc) so you can track what happened across an entire request.

This logging improvement enables you to connect a monitoring service (i.e. Datadog) to read the logs and build reports and alerts around them.

Here’s an example of logs for a successful and unsuccessful query:

// SUCCESS {"requestId":"8aa9df50-78bc-4f95-b1f5-eb798c57888b","email":"yogi@retool.in","organizationId":1,"organizationName":"yogi@retool.in","message":{"type":"REQUEST","method":"POST","url":"/api/pages/uuids/3e9e40fa-ad86-11e9-a2e7-bf5202eb3fb8/query?queryName=query2","hostname":"http://localhost:3000"},"level":"info","timestamp":"2019-07-29T17:47:41.646Z"} {"requestId":"8aa9df50-78bc-4f95-b1f5-eb798c57888b","message":{"type":"QUERY_REQUEST","ipAddress":"::ffff:","userSid":"user_4c424358408e43a2bd4757e4dfce83c9","resourceName":"hammerhead_production","resourceType":"postgresql","environment":"production","isPreview":false},"level":"info","timestamp":"2019-07-29T17:47:41.741Z"} {"requestId":"8aa9df50-78bc-4f95-b1f5-eb798c57888b","email":"yogi@retool.in","organizationId":1,"organizationName":"yogi@retool.in","message":{"type":"QUERY_RESULT","success":true,"isPreview":false,"pageUuid":"3e9e40fa-ad86-11e9-a2e7-bf5202eb3fb8","queryName":"query2","resourceName":"hammerhead_production","resourceType":"postgresql","environment":"production","queryResponseTimeMs":"27.0771"},"level":"info","timestamp":"2019-07-29T17:47:41.771Z"}

// FAILURE {"requestId":"91497c47-22d2-4417-8b8b-ad5bc2054231","email":"yogi@retool.in","organizationId":1,"organizationName":"yogi@retool.in","message":{"type":"REQUEST","method":"POST","url":"/api/pages/uuids/3e9e40fa-ad86-11e9-a2e7-bf5202eb3fb8/query?queryName=query1","hostname":"http://localhost:3000"},"level":"info","timestamp":"2019-07-29T17:47:49.426Z"} {"requestId":"91497c47-22d2-4417-8b8b-ad5bc2054231","message":{"type":"QUERY_REQUEST","ipAddress":"::ffff:","userSid":"user_4c424358408e43a2bd4757e4dfce83c9","resourceName":"hammerhead_production","resourceType":"postgresql","environment":"production","isPreview":false},"level":"info","timestamp":"2019-07-29T17:47:49.482Z"} error: duplicate key value violates unique constraint "blocks_name_organizationId_key" at Connection.parseE (/retool_backend/node_modules/pg/lib/connection.js:601:11) at Connection.parseMessage (/retool_backend/node_modules/pg/lib/connection.js:398:19) at Socket.<anonymous> (/retool_backend/node_modules/pg/lib/connection.js:120:22) at Socket.emit (events.js:189:13) at Socket.EventEmitter.emit (domain.js:441:20) at addChunk (_stream_readable.js:284:12) at readableAddChunk (_stream_readable.js:265:11) at Socket.Readable.push (_stream_readable.js:220:10) at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17) {"requestId":"91497c47-22d2-4417-8b8b-ad5bc2054231","email":"yogi@retool.in","organizationId":1,"organizationName":"yogi@retool.in","message":{"type":"QUERY_RESULT","success":false,"isPreview":false,"pageUuid":"3e9e40fa-ad86-11e9-a2e7-bf5202eb3fb8","queryName":"query1","resourceName":"hammerhead_production","resourceType":"postgresql","environment":"production","queryResponseTimeMs":null,"errorMessage":"duplicate key value violates unique constraint \"blocks_name_organizationId_key\""},"level":"info","timestamp":"2019-07-29T17:47:49.491Z"} Error in a microservice { error: true, message: 'duplicate key value violates unique constraint "blocks_name_organizationId_key"' }

Push groups from Okta*, Ping Identity, OneLogin, etc

You can now manage groups in your SSO provider and sync changes to Retool.

  • Assign new users to groups in Retool when you provision their accounts in your SSO provider.
  • Remove users from groups in Retool when you do so in you SSO provider.
  • Create & destroy new groups in Retool when you do so in you SSO provider.

*Okta coming soon! Check our next release notes for an update.

Improved navigation between different elements in Edit Mode

  • Retool now highlights the selected element (e.g., query, component, temporary state, or transformer) in the left-hand panel model browser.
  • Also, each element referenced in a query or text input is hyperlinked to its detail view. For example, if you reference query2.data.name in a transformer, you can click on query2 to navigate to it.

Expose column indexes for faster querying

We now show a ⚡ icon next to column names in the query panel database schema when that column has an index. Queries that use indexed columns often run faster than they otherwise would.

Descriptions for releases

Now you can add a description when creating a new release (aka version) of an app. That way if you have to roll back to an old version, you’ll know which version to pick.

Improved SQL autocomplete

The query editor autocomplete now handles handles camelcase, non-lowercase letters, numbers, and underscores in table names.

New & Improved

  • Added an optional MaxKeys parameter to AWS S3 queries to limit the number of objects returned.
  • Updated Google Sheets integration to read, append, and update beyond 26 columns.
  • Updated Datetime Picker to re-trigger queries after selecting a new date or time.
  • Updated sign in button to read “Sign In” for customers with SSO enabled.
  • Added resource icons to query tabs.
  • Fixed the Bounding Box component to calculate the correct (x,y) coordinates for landmarks.
  • Fixed JSON Schema Forms to respect when form elements have a required flag
  • Form submit buttons now prevent accidental multiple submissions.
  • Improved performance of Javascript queries.
emoji negative reaction for 'August 25, 2019 – v2.43.0' emoji neutral reaction for 'August 25, 2019 – v2.43.0' emoji positive reaction for 'August 25, 2019 – v2.43.0'
Thank you for your feedback.