Tableau Extension Manifest File


The extension manifest file (.trex) contains metadata for the extension and is used for registration.

For details about a manifest or its fields, see the Sample Manifest File and Elements of the Manifest File.

In this section

XSD Validation

The manifest is an XML-based file. We have provided an XSD (an XML schema definition file) that can be used to validate the manifest file you have created for your extension. The XSD is available from the Extensions API Developer Preview site. You are strongly encouraged to validate your extensions manifest file before using it for the first time.

Manifest Versioning

The versioning of the manifest is designed to be semantically simple and support compatibility. The version follows the [Major].[Minor] format. Minor upgrades are backwards compatible while major upgrades involve breaking changes.

Error Reporting

At start up, Tableau checks the manifest file. If any errors are found while parsing the file, Tableau writes these errors to the log.txt file in the My Tableau Repository (Beta)/Logs folder. This is the same location that Tableau Desktop uses to report other errors and activity.

If a workbook is saved with an extension and then later opened on another computer that does not have the extension installed, Tableau displays a message in the dashboard zone where the extension would have appeared that states the extension is not available.

Sample Manifest File

        <?xml version="1.0" encoding="utf-8"?> 
        <manifest manifest-version="0.1" xmlns="http://www.tableau.com/xml/extension_manifest">
          <dashboard-extension id="com.example.extensions.name" extension-version="0.1.0">
            <default-locale>en_US</default-locale>
            <name resource-id="name"/>
            <description>Extension Description</description>
            <author name="USERNAME" email="USER@example.com" organization="My Company" website="https://www.example.com"/>
            <min-api-version>1.0</min-api-version>
            <source-location>
              <url>SCHEME://SERVER[:PORT][/PATH]</url> 
            </source-location>
            <icon>Base64-Encoded ICON</icon>
            <permissions>
    	       <permission>full data</permission>
            </permissions>
            <context-menu>
              <configure-context-menu-item />
            </context-menu>
          </dashboard-extension>
          <resources>
            <resource id="name">
              <text locale="en_US">name in English</text>
              <text locale="fr_BE">name in French</text>
              <text locale="de_DE">name in German</text>
            </resource>
          </resources>
        </manifest>

Elements of the Manifest File

Name of element Description
manifest The root element that contains the manifest options.
manifest-version The version of the manifest. The version currently supported is 0.1.
dashboard-extension The root element that contains the options for the extension. The dashboard-extension includes the id attribute, which follows the reverse domain name pattern (com.example.extension), and extension-version number attribute. These attributes are required.
extension-version The version of the extension. For example, extension-version="0.1.0"
default-locale Specifies the default locale to use for localized text. Here both the locale format (en_US) and language code (en) are accepted. The default locale specified here is converted to one of the supported languages in the Tableau UI. If the language is unsupported or invalid, English is set as default.
name The name of the extension as it appears under Extensions on a dashboard sheet. To provide localized text, specify the name of the resource-id and provide the text strings in the resources element of the manifest (see the manifest example). You can provide localized strings for name and description.
description A short description of the extension.
author Specifies metadata about the author of the extension, including name, email address, organization, and website. The name and website attributes are required. The website URL must use HTTPS. The website URL is the target of the Get Support link that users see in the About dialog box for your extension. The URL should take users to a page where they can learn about your extension and can get help on using it.
source-location Contains the url of the server that hosts the web page you create that interacts with Tableau.
url Specifies the scheme (HTTPS, HTTTP), the name of the server, the port (optional) and the path to extension (optional). The url must use HTTPS. For example: https://example.com/extension. The exception is for localhost. In this case, HTTP is allowed. For example: http://localhost:8080.
icon If specified, the icon is what appears in the About dialog box. The icon must be a 70x70 pixel PNG file that is Base64 encoded. If you need an encoder, see https://www.base64-image.de/
permissions Declares the types of permissions that this extension requires. The only option is full data. If your extension can access the underlying data or information about the data sources, you must declare full data permission in the manifest. Full data permissions are required if you use any one of the following APIs: Worksheet.getUnderlyingDataAsync(), Datasource.getUnderlyingDataAsync(), Datasource.getActiveTablesAsync(), Datasource.getConnectionSummariesAsync(). If your extension does not use one of these APIs, you do not need include permissions element.
context-menu Adds a context menu item in the extension zone. This is a configuration feature that allows you to register a custom JavaScript callback function and associate it with a context menu item. The only allowed element in <context-menu> is <configure-context-menu-item />. The menu item and your configuration callback function are mapped together in the initializeAsync() function. When the extension is initialized, the menu item Configure... appears in the drop-down menu of the dashboard extension. When the user clicks the menu item, your callback function is executed.
resources Specifies the resources that can be localized.
min-api-version Specifies the minimum API version required to run the extension.

Constraints