December 18, 2020 – 3:42am
Every month is like Christmas for Developer Program members because we strive to delight our members as we showcase the latest projects from our internal developer platform and tools engineers. For the last Sprint Demos, we featured some exciting updates: Personal Access Token impersonation, auto-disabling Webhooks, new Webhooks payload for Slack, and JupyterLab integration for the Hyper API. Check out the gifts of increased communication, time, and security that these updates will bring.
Personal Access Token (PAT) impersonation
One of the use cases for the REST API is to query available content (e.g. projects, workbooks, data sources) for certain users. For embedding scenarios specifically, we often want to load up end-user-specific content within the application. The way to do this today is via impersonation, by which a server admin can impersonate a user, query as that user, and retrieve content that user has access to based on permissions within Tableau.
Today, server admins can already impersonate users by sending over the user’s unique userID as part of the sign-in request, however, in order to do this, they need to hardcode their username and password in any scripts requiring impersonation.
Over a year ago, we released Personal Access Tokens (PATs), which are long-lived authentication tokens that allow users to run automation with the Tableau REST API without hard-coding credentials or requiring an interactive login. In the 2021.1 release, we are going to introduce user impersonation support for PATs, the last piece of functionality previously supported only by hard-coded credentials in REST API scripts. So, why not update all your scripts to use PATs today?
Webhooks is a notification service that allows you to integrate Tableau with any external server. Anytime that an event is happening on Tableau, Tableau is sending an HTTP POST request to the external server. Once the external server is receiving the request, it can respond to the event. But what is happening when the Webhook fails? You might have created multiple Webhooks on your site for testing that are no longer set properly, which means you’ll want to manually disable them or delete them.
Today, the way that a Webhook works is that every time a Webhook is triggered, it is going to attempt to connect to the external server up to four times. After four times, it is going to count as a failed delivery attempt.
In our upcoming product releases, after four failed delivery attempts, the Webook will be automatically disabled and an email will be sent to the Webhook owner. But don’t worry: If you have a successful delivery attempt before reaching a fourth failed attempt, the counter will be reset to zero. As always, you can configure these options on Tableau Server.
Slack: New payload for Webhooks
Since the release of Webhooks, we noticed that one of the most popular use cases is Slack. Tableau users want to be notified on Slack when an event is happening on Tableau. Today, this use case doesn’t work out of the box. You need to set up middleware in order to send Webhooks from Tableau to Slack—so yes, the payload that we’re sending from Tableau has a different format than the payload that Slack is asking for. (It’s like speaking French to someone who only speaks German: you need a translator in the middle.)
In the upcoming 2021.1 release, you’ll be able to create new Webhooks to Slack with no need for middleware! We’re going to add an additional field to the payload.
Hyper API: JupyterLab integration
Hyper API is a powerful tool, but with the new command-line interface around Hyper API, will it be even more powerful?
It will indeed! We added the command-line interface around HyperAPI to our hyper-api-samples in our open-source repository, so you can directly run SQL queries against Hyper. We integrated with an existing command-line interface infrastructure—the Jupyter infrastructure—giving you the ability to use HyperAPI directly within JupyterLab. If you’re not familiar with JupyterLab, it’s a web-based IDE mostly used by data scientists.
With the JupyterLab integration, it has never been easier for you to prototype new functionalities:
- You can run your SQL queries and check the results without having to write a complete program around Hyper API.
- Debugging is also becoming easier: You can isolate your queries to find the root cause of your issue.
- Don’t forget about all the ad hoc, analytical queries that you can now run on data directly from your console.
Get started using JupyterLab in a few minutes.
Updates from the #DataDev Community
The #DataDev community continues to share their knowledge with others and drive innovation:
- Elliott Stam (twitter @elliottstam) launched a YouTube Channel and published multiple videos on the Tableau REST APIs
- Andre de Vries (twitter @andre347_) also shared on YouTube a video explaining Trusted Authentication
- Anya Prosvetova (twitter @Anyalitica) inspired from the Brain Dates at TC-ish launched a monthly DataDev Happy Hours to chat about APIs and Developer Tools
Join the #DataDev community to get your invitation to our exclusive Sprint Demos and be the first to know about the Developer Platform updates—directly from the engineering team. See you next year!