/connector-plugin-sdk

SDK for Developing Tableau Connector Plugins

Primary LanguagePythonMIT LicenseMIT

Tableau Connector SDK

Tableau Supported Connector Packaging CI Status TDVT CI Status

This project consists of documentation, example files, the Tableau Datasource Verification Tool (TDVT) test harness, and a packaging tool that you can use to build and customize a Tableau Connector that uses an ODBC or JDBC driver.

The latest version of the SDK is always targeted towards the latest, non-beta version of Tableau. Right now, this is Tableau Desktop/Server 2024.2. This means that the samples may not work on older versions of Tableau, and connectors packaged with newer versions of the SDK may not work in older versions of Tableau. You can download past releases of the SDK to work with older versions of Tableau if necessary.

Tool Latest Version
Connector SDK for Tableau 2024.1 07-03-2024
Connector SDK for Tableau 2023.3 03-26-2024
Connector SDK for Tableau 2023.2 11-06-2023
Connector SDK for Tableau 2023.1 06-15-2023
Connector SDK for Tableau 2022.4 03-15-2023
Connector SDK for Tableau 2022.3 12-14-2022
Connector SDK for Tableau 2022.2 10-18-2022
Connector SDK for Tableau 2022.1 06-29-2022
Connector SDK for Tableau 2021.4 03-31-2022
Connector SDK for Tableau 2021.3 12-15-2021
Connector SDK for Tableau 2021.2 09-09-2021
Connector SDK for Tableau 2021.1 07-14-2021
Connector SDK for Tableau 2020.4 03-29-2021
Connector SDK for Tableau 2020.3 12-07-2020
Connector SDK for Tableau 2020.2 8-12-2020
Connector SDK for Tableau 2020.1 5-08-2020
Connector SDK for Tableau 2019.4 3-13-2020
Connector Packager SDK (Beta) for Tableau 2019.3 12-11-2019
TDVT 2.7.0 (10-28-2022)
1.5.24 (04-13-2020)
Connector Packager 2.1.0 (05-08-2020)

Why Connectors?

At Tableau, we pride ourselves in helping people see and understand their data... wherever it may be. A key investment for us has been creating a way to enable both partners and customers help us in this mission. Thank you for expressing your interest in joining us on that mission. On behalf of the Connectivity team at Tableau, I’d like to announce the early release of our Connector SDK!

Get started

Review the Tableau Connector SDK developer guide to help you design, build, and test your connector.

You can also watch our Tableau Conference 2019 talk, where two of our developers walk through the basics of creating a custom Tableau connector and packaging it into a single .taco file.

Samples

The SDK includes several standalone example connectors that use ODBC and JDBC.

Prerequisites

To work with connectors, you need the following:

  • Windows or Mac
  • Tableau Desktop or Server 2020.4
  • Python 3.9 or higher
  • An ODBC or JDBC data source and driver
  • The provided test data loaded in your data source

To package the connector into a .taco file, you will also need:

  • JDK 8 or higher

For a JDBC connector, your driver must fulfill the following requirements:

  • You must have read permissions on the .jar file.
  • Tableau requires a JDBC 4.0 or later driver.
  • Tableau requires a Type 4 JDBC driver.

Get Help

This SDK is supported, so if you have problems getting the test harness set up, find defects, or have questions related to the configuration or testing of your connector:

  • Start by submitting a GitHub Issue here in this project
  • or you can reach us on the Developer Forums in Tableau Community.

FAQ

If I build a connector, will Tableau include it?

Not necessarily. We plan to include connectors on a case by case basis. The work needed to include connectors with a shipping Tableau product extends well beyond the code itself and into continuous integration and supportability concerns. We have included a few partner built connectors, and we are looking at providing a way to include third-party connectors in the future through some exciting new features, as well as a more formal validation program. Make sure to get in touch with our Technology Partner team for the latest news: https://www.tableau.com/partners/become?data=technology

Why would I build a connector instead of just telling users to use the Other Databases (ODBC/JDBC) connector?

Connectors allow for a much more extensive level of customization than using the generic Other Databases (ODBC/JDBC) connector does. When you build a connector, it's possible to apply many of the optimizations that current "native" connectors in Tableau use.

Can I make a connector for OLAP Cubes, file-based, or REST API-based connections? We intend for the Connector SDK to eventually support additional connector types, but we're starting with ODBC and JDBC.

How do I distribute a connector to my customers? Starting with Tableau 2019.4, you can package and sign your connector using a public certificate: https://tableau.github.io/connector-plugin-sdk/docs/package-sign

To run your packaged connector, Simply drop the .taco file, into your "My Tableau Respository/Connectors" folder: https://tableau.github.io/connector-plugin-sdk/docs/run-taco

What types of things might change that impact my connector development? Many things might change, but the most likely changes are how a connector is packaged, and the extension points for new Auth Modes like Kerberos or OAuth. We highly encourage you to sign up here in GitHub or email us to get the latest information. Partners participating in the open sprint demos will get notice of any breaking changes in real-time.

Visit the project website and documentation here.

Known Issues

Current

Support links that are not fully qualified throw error when clicked on Support links that are not fully qualified (ie include the https:// header) will throw an error when the user clicks on them. This only affects in-development connectors, as we check for this when packaging a connector into a Taco.

Fixed

(Mac Only) Packaged Connectors (.taco files) throws unexpected error in 2019.4 You can work around this by skipping signature verification with the command line argument -DDisableVerifyConnectorPluginSignature=true. Fixed in 2019.4.1.

The properties builder JavaScript truncates values containing the equals sign '=' in 2019.4 A bug in the JavaScript translation layer means that you cannot return values containing the '=' character from the JavaScript properties builder. Fixed in 2019.4.1.

Contributions

Code contributions and improvements by the community are welcomed! See the LICENSE file for current open-source licensing and use information.

Before we can accept pull requests from contributors, we require a signed Contributor License Agreement (CLA)