The tableau_manifest() function generates Tableau Extension Manifest XML which constitutes the extension manifest file (with the standard extension .trex). This XML text contains metadata for the extension and is used for registration. When generating your shinytableau extension app, the value generated by the call to tableau_manifest() to passed to tableau_extension()'s manifest argument.

An often preferable alternative to using the tableau_manifest() function in a shinytableau extension app is to use a YAML manifest file. A skeleton YAML manifest file can be created via the yaml_skeleton() function. Once the YAML file is edited to reflect the app being authored, it can be linked to a shinytableau extension app by using the tableau_manifest_from_yaml() (in place of the tableau_manifest() call).

tableau_manifest(
  extension_id = "com.example.extensions.name",
  extension_version = "0.1.0",
  name = "My extension",
  description = NULL,
  extended_description = description,
  author_name = "Your Name",
  author_email = "author@example.com",
  author_organization = "Example Organization",
  website = "https://example.com",
  source_location = NULL,
  icon_file = system.file("default_icon.png", package = "shinytableau"),
  permissions = c("full data"),
  min_api_version = "1.4"
)

Arguments

extension_id

The ID value for the Tableau extension which follows the reverse domain name pattern. By default, this is set to a placeholder value of "com.example.extensions.name"

extension_version

The version number for the extension. The default value for this is "0.1.0".

name

The name of the extension. This name will appear as given under Extensions on a Tableau dashboard sheet.

description, extended_description

The description and extended description for the extension. Whereas description expects a relatively short amount of text, the extended_description parameter serves as a long-form description of the extension. HTML text can be used for the latter.

author_name, author_email, author_organization, website

Details about the extension author and the project website.

source_location

The source location, which is the URL of the server that hosts the web page that in turns interacts with Tableau. If NULL (the default, and a good option) then shinytableau will autodetect the source location.

icon_file

The path to the icon file to be used for the extension. The image used as an icon file must be a 70x70px PNG file.

permissions

A setting that determines the level of permissions. The value "full_data" is the default and is currently the only available option for Tableau extensions. This declaration is required since the extension can access the underlying data or information about the data sources.

min_api_version

This specifies the minimum API version required for running the extension. The default for this is "1.4".

See also

The functions used in the alternative workflow for generating Tableau Extension Manifest XML: yaml_skeleton() and tableau_manifest_from_yaml().

Examples

# Create a Tableau Manifest via the
# `tableau_manifest()` function
tableau_manifest(
  extension_id = "com.example.ggvoronoi",
  extension_version = "1.1.3",
  name = "Voronoi Plot",
  description = "Insert a Voronoi plot using ggvoronoi",
  author_name = "Jane Doe",
  author_email = "jane_doe@example.com",
  website = "https://example.com/tableau/extensions/ggvoronoi"
)
#> <?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.ggvoronoi" extension-version="1.1.3">
#>     <default-locale>en_US</default-locale>
#>     <name>Voronoi Plot</name>
#>     <description>Insert a Voronoi plot using ggvoronoi</description>
#>     <author name="Jane Doe" email="jane_doe@example.com" organization="Example Organization" website="https://example.com/tableau/extensions/ggvoronoi"></author>
#>     <min-api-version>1.4</min-api-version>
#>     <source-location>
#>       <url></url>
#>     </source-location>
#>     <icon>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</icon>
#>     <permissions>
#>       <permission>full data</permission>
#>     </permissions>
#>     <context-menu></context-menu>
#>   </dashboard-extension>
#> </manifest>