Integrations

Tableau

Integration model

To obtain metadata related to Tableau (sites, projects, and workbooks), the following Tableau REST APIs are used:

  • Sign in → {host}/api/{version}/auth/signin

  • Sign out → {host}/api/{version}/auth/signout

  • Query sites → {host}/api/{version}/sites. The pageSize and pageNumber parameters are sent to enable pagination; the pageSize parameter is configurable up to 1000 (Tableau's maximum), as indicated later in the Configuration section

  • Graphql → {host}/relationship-service-war/graphql

Metadata extraction

To perform metadata extraction of Tableau workbooks, the user views the following hierarchy of technology structures with sites, projects, and workbooks:

  • Site1

    • Prj1

      • Wrk1

      • Wrk2

    • Prj2

      • Wrk3

      • Wrk4

  • SiteN

    • PrjN

      • WrkM

It is recommended to create a specific WORKBOOK entity subtype, because the extracted metadata is very specific to this technology.


The plugin extracts the following attributes from the workbooks (they must be named the same in the attribute_definition table's name field, so that they appear in the template).

  • path with the concatenation of the site, project, and workbook values (siteName/projectName/workbookName)

  • infrastructure with the selected value

  • technology with the selected value

  • zone with the selected value

  • physicalName and name with the same value, the workbook name

The attributes to be created in Anjana must have the following types:


Attribute name

Attribute type

physicalName

INPUT_TEXT

path

INPUT_TEXT

infrastructure

SELECT

technology

SELECT

zone

SELECT

name

INPUT_TEXT


Below are the optional metadata related to the site and the workbook that can be included in the object template so that they are reflected when the workbook metadata is extracted.

Workbook metadata

Attribute name

Attribute type

workbookLuid

INPUT_TEXT

workbookId

INPUT_TEXT

workbookContainsUnsupportedCustomSql

INPUT_CHECKBOX

workbookProjectVizportalUrlId

INPUT_NUMBER

workbookProjectName

INPUT_TEXT

workbookProjectLuid

INPUT_TEXT

workbookContainerType

INPUT_TEXT

workbookContainerName

INPUT_TEXT

workbookOwnerId

INPUT_TEXT

workbookOwnerUserName

INPUT_TEXT

workbookDescription

INPUT_TEXT

workbookUri

INPUT_TEXT

workbookVizportalUrlId

INPUT_NUMBER

workbookCreatedAt

INPUT_DATE

workbookUpdatedAt

INPUT_DATE

workbookTags

INPUT_TEXT


Site metadata

It is recommended to create a section within the WORKBOOK entity template to include the site metadata

Attribute name

Attribute type

siteName

INPUT_TEXT

siteId

INPUT_TEXT

siteContentUrl

INPUT_TEXT

siteAdminMode

INPUT_TEXT

siteRevisionHistoryEnabled

INPUT_CHECKBOX

siteDisableSubscriptions

INPUT_CHECKBOX

siteState

INPUT_TEXT

siteRevisionLimit

INPUT_NUMBER

siteSubscribeOthersEnabled

INPUT_CHECKBOX

siteAllowSubscriptionAttachments

INPUT_CHECKBOX

siteGuestAccessEnabled

INPUT_CHECKBOX

siteCacheWarmupEnabled

INPUT_CHECKBOX

siteDataAlertsEnabled

INPUT_CHECKBOX

siteCommentingEnabled

INPUT_CHECKBOX

siteCommentingMentionsEnabled

INPUT_CHECKBOX

siteFlowsEnabled

INPUT_CHECKBOX

siteEditingFlowsEnabled

INPUT_CHECKBOX

siteSchedulingFlowsEnabled

INPUT_CHECKBOX

siteExplainDataEnabled

INPUT_CHECKBOX

siteExtractEncryptionMode

INPUT_TEXT

siteCatalogingEnabled

INPUT_CHECKBOX

siteDerivedPermissionsEnabled

INPUT_CHECKBOX

siteWebExtractionEnabled

INPUT_CHECKBOX

siteAskDataMode

INPUT_TEXT

siteRunNowEnabled

INPUT_CHECKBOX

siteUserVisibilityMode

INPUT_TEXT

siteRequestAccessEnabled

INPUT_CHECKBOX

siteAuthoringEnabled

INPUT_CHECKBOX

siteCustomSubscriptionEmailEnabled

INPUT_CHECKBOX

siteCustomSubscriptionFooterEnabled

INPUT_CHECKBOX

siteNamedSharingEnabled

INPUT_CHECKBOX

siteUseDefaultTimeZone

INPUT_CHECKBOX

siteSelfServiceScheduleForRefreshEnabled

INPUT_CHECKBOX

siteAutoSuspendRefreshEnabled

INPUT_CHECKBOX

siteAutoSuspendRefreshInactivityWindow

INPUT_NUMBER

sitePersonalSpaceEnabled

INPUT_CHECKBOX

sitePersonalSpaceStorageQuota

INPUT_NUMBER

siteDqwSubscriptionsEnabled

INPUT_CHECKBOX


Required credentials

Metadata extraction

A personal access token is required to obtain the token used afterward to make the REST API calls that retrieve the site, project, and workbook information. This token is created in Tableau Server, and its name and value must be included in the yml before using the plugin, in the properties:

  • totplugin.connection.personalAccessTokenName

  • totplugin.connection.personalAccessTokenSecret

The user with which the PAT is generated must have access to all the sites to be governed (must have the Server Administrator role on each site). The personal access token's lifetime is one year, so it is the client's responsibility to renew it before it expires for correct operation.

To be able to use the metadata Graph API, it must first be enabled with the command:

tsm maintenance metadata-services enable

which the client must run before using the plugin.

Configuration

This includes the details of the plugin-specific configuration.

The common configuration is explained in the Technical Configuration Guide.

YAML
server:
  port: 15022

totplugin:
  location: http://totplugintableauserver:15022/plugin/tableau/api/v1
  path-separator: "/"
  pagination:
    pageSize: 100
  anjana:
    tagsSeparator: "_-"
  server:
    url: http://totserver:15000/tot/
  connection:
    - name:  tableau-1
      technology:
        server: <server>
        version: 3.17 
        personalAccessTokenName: <user>
        personalAccessTokenSecret: <secret>
      aris:
        - ari: "anja:totplugin:extract:/tableau/tableau/tableau/"


  • server.port → Port where the plugin is deployed

  • totplugin.location → Base URL of the plugin

  • totplugin.pathSeparator → Character that separates the path for extraction

  • totplugin.pagination.pageSize → Number of items per page when retrieving the sites. Maximum 1000

  • totplugin.anjana.tagsSeparator → Tag separator used when sending them to Anjana

  • totplugin.server.url → URL of tot

  • totplugin.connection → List of connections for Tableau

  • totplugin.connection[].name → Name of the Tableau connection

  • totplugin.connection[].techonology.server → URL of Tableau Server

  • totplugin.connection[].techonology.version → Version used in the API URLs

  • totplugin.connection[].techonology.personalAccessTokenName → Name of the personal access token

  • totplugin.connection[].techonology.personalAccessTokenValue → Value of the personal access token

  • totplugin.connection[].techonology.aris → List of ARIs indicating the services available in the plugin