# tableau Tableau Server on Linux (server-linux) - Full Documentation [Skip to main content](#main-content) # About Tableau Advanced Management on Tableau Server **Important:** As of 16 September 2024, Advanced Management is no longer available as an independent add-on option. Advanced Management capabilities are only available if you previously purchased Advanced Management, or if you purchased certain licence editions: Tableau Enterprise, Tableau Cloud+ or Tableau+ Bundle (available for Tableau Cloud), or Tableau Enterprise or Tableau Server+ (available for Tableau Server). Tableau Advanced Management is a collection of features for Tableau Server, which provide enhanced security, manageability and scalability capabilities. The Advanced Management capabilities are available to you if you have Tableau Enterprise. **Note:** Tableau Advanced Management includes several Tableau Server features and two separately installed tools: Tableau Content Migration Tool and the Tableau Resource Monitoring Tool. For more information, see the [feature table](#feature_table) later in this topic. ## Advanced Management Licensing Requirements Advanced Management is licensed on a per-deployment basis on Tableau Server, which may be User-Based or Core-Based. A Deployment includes a licensed production Tableau Server installation and two licensed non-production Tableau Server installations that support the production installation. For more information on Deployment, see the [EULA Documentation](https://mkt.tableau.com/files/Documentation.pdf?_ga=2.77356117.133433043.1563398594-1734029830.1510592172). - Advanced Management can only be activated on a licensed Tableau Server Deployment. This means that your Tableau Server must be first activated with a valid key that is either User-Based or Core-Based, before applying the Advanced Management product key. For more information on how to acquire the Advanced Management capabilities and get the product key, contact your account manager. - When the product key is active and enabled, you can use all the features that are included in Advanced Management. - When the Advanced Management product key is removed or deactivated, you will no longer be able to use the features that require a valid Advanced Management licence. Any associated data will not be deleted. Each feature might have slight differences on what happens when the licence expires. For more information on the individual features use the links in the table below. The following table lists the features that are included and require a valid Advanced Management licence:
FeatureDescriptionRequirements to use the featureVersion
About Tableau Resource Monitoring ToolProvides a comprehensive look at the health of Tableau Server. With the Resource Monitoring Tool you can identify issues that cause slow load times, extract failures and other critical issues and can help you proactively address the issues that impact end user experience.The installation of Tableau Server that you are monitoring must have an Advanced Management licence.

Available in 2019.3 and later.

Linux support was introduced in version 2020.4.

About Tableau Content Migration ToolThe Content Migration Tool provides an easy way to copy or migrate content between Tableau Server projects, sites and deployments. You can do this between projects on separate Tableau Server installations (for instance, between a development instance of Tableau Server and a production instance of Tableau Server) or between projects on a single Tableau Server installation.
  • Both the source Tableau Server (Server that you are moving the content from) and the target Tableau Server (Server that you are moving the content to) must have a valid Advanced Management licence.
  • The Content Migration Tool must be installed on a version of Microsoft Windows that supports .NET 4.6.1 (Windows 7 or later, Windows Server 2008R2 or later).
Available in version 2019.3 and later.
Activity LogThe Activity Log writes log events to the vizportal logs folder on the local hard drive for further analysis and auditing.

The Tableau Server must have a valid Advanced Management licence.

Available in version 2022.3 and later.
Tableau Server External RepositoryAllows you to deploy Tableau Server Repository external to Tableau Server. The Tableau Server Repository is a PostgreSQL database that stores data about all user interactions, extract refreshes and more.The Tableau Server that is using an external repository must have a Advanced Management licence.

Available in version 2019.3 and later.

- AWS supported on Tableau Server version 2019.3 and later.

- Azure supported on Tableau Server version 2020.4 and later.

Workload Management through Node RolesUsing node roles, you can configure where certain types of workloads are processed on your Tableau Server installation. The node roles features allows you to dedicate and scale resources to specific workloads (ex: extract refreshes, subscriptions).The Tableau Server must have a valid Advanced Management licence.Available in version 2019.3 and later.
Tableau Server Key Management SystemGives you additional functionality to configure Tableau Server to use AWS as the KMS for extract encryption.Tableau Server must have a valid Advanced Management licence.

Available in version 2019.3 and later.

- AWS supported on Tableau Server version 2019.3 and later.

- Azure supported on Tableau Server version 2021.1 and later.

Tableau Server External File StoreAllows you to use network attached storage(NAS) as your File Store. This removes the need to run File Store locally on your Tableau ServerTableau Server must have a valid Advanced Management licence.Available in version 2020.1 and later.
Tableau Backgrounder Resource LimitsThe Tableau Server Resource Limits Manager tracks backgrounder resource usage in relation to the set resource limits to make sure the resource limits are applied correctly.Tableau Server must have a valid Advanced Management licence.Available in version 2022.1 and later.
Tableau Server Independent GatewayTableau Server Independent Gateway allows you to install a Tableau Server-managed reverse proxy on a separate computer. Install Independent Gateway in your DMZ to provide security for your Server installation and all your data. The Independent Gateway can be used in a variety of configurations and can be scaled to meet your client connection demands.Tableau Server must have a valid Advanced Management licence.Available in version 2022.1 and later.
## Activating the Advanced Management product key The Advanced Management licence is applied to a Tableau Server Installation and can be used for both User-Based and Core-Based installations. Here is a quick overview of how you can activate Advanced Management on your Tableau Server Installation. Use the TSM web interface 1. Open TSM in a browser: https://:8850 2. Click **Licensing** on the **Configuration** tab. Click **Activate Licence**. 3. Enter or paste your Advanced Management product key and click **Activate**. 4. On the **Register** page, enter your registration information and click **Register**. 5. Follow the prompts and restart Tableau Server after registration is complete. **Note:** If this is a new Tableau Server installation, and you apply an Advanced Management Key before you apply the Tableau Server product key, you will see an error. You may however, continue the installation and apply the Tableau Server product key using the same steps described above. Use the TSM CLI 1. Open a command prompt as administrator on a node in the Tableau Server cluster. 2. Run the following command with your Advanced Management product key to activate the licence: `tsm licenses activate -k ` **Note:** If this is a new Tableau Server installation, run the command twice, first with the Tableau Server product key and then with an Advanced Management product key. 3. Apply the changes and restart the Server: `tsm pending-changes apply` ### Who can do this Only Server Administrators can activate Advanced Management licence keys. ## Other articles in this section [Skip to main content](#main-content) # About Data Management **Important:** As of 16 September 2024, Data Management is no longer available as an independent add-on option. Data Management capabilities are only available if you previously purchased Data Management, or if you purchased certain licence editions: Tableau Enterprise, Tableau Cloud+ or Tableau+ Bundle (available for Tableau Cloud), or Tableau Enterprise or Tableau Server+ (available for Tableau Server). Data Management is a collection of features and capabilities that helps customers manage Tableau content and data assets in their Tableau Server or Tableau Cloud environment. Starting in Tableau Server 2019.1, Tableau Prep Conductor is available for on-premise Tableau Server deployments, and in version 2019.3, Tableau Prep Conductor is available for Tableau Cloud deployments. You can use Tableau Prep Conductor to schedule and monitor flows. Starting in Tableau 2019.3, Tableau Catalog is included in Data Management, making a variety of additional features available to you in the data management space. You can use Tableau Catalog to discover data, curate data assets, communicate data quality, perform impact analysis and trace the lineage of data used in Tableau content. Starting in Tableau 2021.4, more governance and security features were added to Data Management: virtual connections and data policies. Using the virtual connection editor, you can create: - Virtual connections that provide a sharable central access point to data. - Data policies to apply row-level security at the connection level. ## Data Management Features The following table lists the features for Data Management, which include: - Tableau Catalog - Tableau Prep Conductor - Virtual connections - Data policies ### Tableau Catalog
FeatureDescription
Permissions on metadataTableau Catalog enables you to control who can see and manage external assets and what metadata is shown through lineage by setting permissions.
Expanded connect experience – data discoveryWhether you author in the web or in Tableau Desktop, you can now search for and connect to the specific databases and tables used by published data sources and workbooks on your Tableau Server or Tableau Cloud site.
Expanded searchTableau Catalog expands search to include results based on columns, databases and tables.
Tag external assetsYou can categorise items on Tableau Server and Tableau Cloud with tags, helping users to filter external assets (databases, files, tables and columns).
Certify databases and tablesHelp users find trusted data that meets the standards you set by certifying databases and tables.
Set data quality warningsYou can set warnings to alert users to data quality issues, such as stale or deprecated data.
Lineage and impact analysisThe Lineage tool traces the source of your data. You can use it to analyse the impact of changes to your data, identify which users might be impacted, and email owners of a workbook, data source or flow, or contacts for a database or table, about data-related updates.
Data DetailsEnable users to better understand a published visualisation by seeing information about the data used.
Add descriptions to assetsHelp users find the data they're looking for by adding descriptions to databases, tables and columns.
Developer resourcesTableau REST API - metadata methodsProgrammatically add, update and remove external assets; and add additional metadata to Tableau content and external assets like descriptions.
Tableau Metadata APIProgrammatically query metadata from the content published to Tableau Server or Tableau Cloud. Programmatically update certain metadata using the metadata methods in the Tableau Server REST API. 
Note: The Metadata API does not require Data Management.
GraphiQLExplore and test queries against the Metadata API schema using an interactive in-browser tool called GraphiQL.
Note: GraphiQL does not require Data Management.
### Tableau Prep Conductor | Feature | Description | | --- | --- | | Schedule Flow Tasks in the [Tableau Cloud](https://help.tableau.com/current/online/en-gb/prep_conductor_online_schedule_flow_task.htm) or [Tableau Server](https://help.tableau.com/current/server/en-gb/prep_conductor_schedule_flow_task.htm) help. | You can create scheduled flow tasks to run a flow at a specific time or on a recurring basis. | | [Monitor Flow Health and Performance](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_monitor_flow.htm) | Set up email notifications at the site or server level when flows fail, view and resume suspended flow tasks and view errors and alerts. | | [Administrative Views for Flows](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_admin_views.htm) | Use Administrative Views to monitor the activities related to flows, performance history and the disk space used at the server or site level. | | Tableau REST API - [flow methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_flow.htm) | Programmatically schedule flows. | ### Virtual connections and data policies | Feature | Description | | --- | --- | | [Create a Virtual Connection](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_create_conn.htm) | A Tableau content type that enables you to create a shareable re-usable connection to curated data. | | [Create a Data Policy for Row-Level Security](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_create_rlspolicy.htm) | Use the virtual connection editor to create data policies with policy conditions that apply row-level security to the data at the connection level. | | [Test Row-Level Security with Preview as User](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_test_preview.htm) | Test the data policy with Preview as user to ensure that users can see only their data. | | [Schedule Extract Refreshes for a Virtual Connection](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_extract.htm) | Create an extract refresh schedule for the tables in your connection, ensuring that the data is fresh for any content that uses that virtual connection. | ## Other articles in this section [Skip to main content](#main-content) # About Data Policies Use a data policy when you want to apply row-level security to one or more tables in the connection. Data policies apply to both live and extract connections. A data policy has three main components: ![An example of the three components of a data policy](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconns_policy_components.png) 1. The tables they apply to are called policy tables. These are the tables that are filtered. 2. The mapped columns that define the relationships between tables (for example, between entitlement and fact tables) and between table columns and policy columns. A policy column is the column used to filter data. 3. The policy condition, which is an expression that is evaluated for every row at query time. When TRUE, the row is shown in the query. To get started, click ![Create New Policy button](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Create_New_Policy_btn.png). [Read full topic](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_create_rlspolicy.htm) ## Related tasks [About the Virtual Connection Editor](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_about_editor.htm) [Add Tables to the Connection](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_add_tables.htm) [Create and Test Data Policies](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_create_data_policy.htm) Not finding what you need? Go online to see [all Tableau help](https://www.tableau.com/en-gb/support/help) [Skip to main content](#main-content) # Extract Upgrade to .hyper Format In Tableau version 2018, we introduced the `.hyper` format for Tableau extracts to replace the old `.tde` format. The `.hyper` format has been the standard format used by Tableau to create extracts since 2018, and the large majority of extracts are now `.hyper` files. Beginning in early 2023, Tableau discontinued support for the `.tde` format on Tableau Cloud and Tableau Public. For more details about this deprecation, see this [Tableau Community post](https://community.tableau.com/s/feed/0D54T00001BHiGwSAL). ## Discontinuation of support for .tde files Beginning in 2023, the `.tde` format for Tableau extracts was deprecated. This format was replaced by the `.hyper` format in 2018 but continued to be valid for uploaded files until March 2023. - This change took place for Tableau Cloud and Tableau Public as of March 2023. - Beginning with version 2023.1.0 of Tableau Server, the uploading of `.tde` format files is disabled. - 2024.2 is the last version of Tableau Desktop that supports any .tde-based workbooks, data sources or bookmarks. Versions 2024.3 and beyond only support .hyper format. ## Manually upgrade your .tde extract using Tableau Desktop If you manage extracts locally, you can manually upgrade your `.tde` extract to a `.hyper` extract using Tableau Desktop. **Note**: This functionality is only available in Tableau Desktop versions 2024.2 and older. 1. In Tableau Desktop, open a workbook that uses a `.tde` extract. 2. Select the extract data source from the Data menu and then select Extract \> Upgrade. 3. Select File \> Save, which saves the workbook and also completes the extract upgrade. [Skip to main content](#main-content) # About Multi-fact Relationship Data Models Multi-fact relationships let you build data sources with more than one _base table_. Using multiple base tables in your data model allows you to perform multi-fact analysis in Tableau. By establishing _trees_ of tables, rooted in a base table, you can model data structures with different conceptual domains and use their shared characteristics to connect them. This type of analysis is often referred to as multi-fact analysis, conformed dimensions or shared dimensions. In Tableau, we call this a multi-fact relationship data model because you use relationships to build it. A multi-fact relationship data model always contains multiple base tables. Base tables are the left-most tables in the data model. For guidance on how to determine which tables to use as base tables, see [When to Use a Multi-fact Relationship Model](https://help.tableau.com/current/server-linux/en-gb/datasource_mfr_when_to_use.htm). ![a multiple base table model with one tree highlighted](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_highlightedtree.png) A multiple base table data model with one base table's tree highlighted. ## Levels of relatedness Data models with multiple base tables have a lot of flexibility regarding how pieces of data can relate – or not relate – to each other. **Note**: Relatedness at any level is only relevant in data models with multiple base tables. Prior to multi-fact relationship data models, either everything was related (within a single data source) or nothing was (blending across multiple data sources). **Relatedness in the data model** Tables are related, unrelated or shared based on the structure of the data model. In a data source, the relatedness of tables is a constant. As a brief overview:  - _Related tables_ are in the same tree. - Prior to 2024.2, all data sources were single base table data sources consisting of a single tree, and in a single base table data source all tables are related. - _Unrelated tables_ are in different trees. Base tables are always unrelated to each other. Tables that are downstream of exactly one base table are also unrelated to tables in other trees. - _Shared tables_ have multiple incoming relationships and belong to more than one tree. - Tables downstream from a table with multiple incoming relationships are also considered shared. **Relatedness during analysis** Fields can be related, unrelated, not yet related or ambiguously related, or they can act as stitching fields. The relatedness among a group of fields is determined on a sheet-by-sheet basis based on the structure of the data model, what fields are actively in use (that is, on the shelves as pills) and if those fields are dimensions or measures. ![a simple viz with two unrelated fields, one on rows and one on columns, and an unrelated tooltip showing](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_unrelatedtooltip_example.png) To make a visualisation with fields from multiple tables, Tableau has to perform joins behind the scenes to compute the values. The type of join used depends on the [relatedness of the fields](#fieldlevel). As a brief overview:  - When _related fields_ are used in a viz, dimensions are inner joined and measure values are broken down by the dimensions. - It's a little more complicated than that – additional joins might be needed behind the scenes to ensure that [no measure values are dropped](https://www.tableau.com/en-gb/blog/relationships-tableau-data-model). But in a dimension-only viz, related dimensions are inner joined and that's the main concept here. - This is the same behaviour as single-base table models. - When _unrelated fields_ ![](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_icon_unrelated.png "unrelated icon") are used in a viz, dimensions are cross joined. Measure values are table scoped (that is, aggregated locally to a single value for their entire table) and repeated. - It's also possible for fields to be _not yet related_ or _ambiguously_ related, which means that for the combination of active fields, there is more than one way for the relationships between their tables to be resolved. If Tableau encounters uncertainty, it treats the fields as unrelated. - When fields are _stitched_ ![](/tableau/current/en-gb/server-linux/en-gb/Img/MFR_icon_related.png "stitching icon") based on a shared field, dimensions are outer joined. Measure values are aggregated at the level of whatever dimension they can be broken down by and might be repeated. - _Stitching dimensions_ are similar to [linking fields in data blending](https://help.tableau.com/current/pro/desktop/en-gb/multiple_connections.htm#define-blend-relationships-for-blending). Results are calculated for each pair of related fields. Then the unrelated values are stitched together across the shared values of the dimension shared between them. All of these concepts and definitions are discussed in more detail later in this topic. An aside on dimensions and measures In Tableau, _measures_ are _aggregations_ – they’re aggregated up to the _granularity_ set by the _dimensions_ in the view. The value of a measure therefore depends on the context of the dimensions. For example, "number of cereal boxes" depends on if we mean the total inventory or the number of boxes per brand. _Dimensions_ are usually categorical fields, such as country or brand. In Tableau, dimensions set the granularity, or the _level of detail_, of the view. We typically want to group our data into marks by some combination of categories. What dimensions we use to build the view determines how many marks we have. When a measure is used without dimensions, it's said to be _table scoped_. This means its value is the fully aggregated value for the entire table. As soon as we use a dimension such as brand in the viz, the measure is broken down more granularly. The total number of cereal boxes is now per brand. _Aggregation_ refers to how the data is combined. Tableau's default aggregation is SUM. You can change the aggregation to other options, including: average, median, count distinct, minimum and so on. _Granularity_ refers to how detailed or broken down the measure is – which is controlled by the dimensions. Unless the granularity of the measure is row level (aka disaggregated), its value must be aggregated. #### Example ![a table of values for number of boxes of cereal, across five brands and three sizes of boxes](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_cereal_rawdata.png) What's the value of "number of boxes of cereal"? Well, it depends on the aggregation type and the granularity as set by the dimensions. - Aggregations: - Sum (or total) - Average - Granularity: - Table scoped/fully aggregated (the blue bars in the example) - Broken down by the **Brand** dimension (the coloured bars in the example) ![A dashboard with four vizzes, one for the summed table scoped number of boxes (54), one with the average table scoped number of boxes (6) and then versions of those two broken down by the five brands](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_cereal.png) ## Field-level relatedness indicators There are several visual clues that can help you understand the degree of relatedness for fields you're using in an analysis. ### Relatedness indicators on a worksheet - **Unrelated icon**: Tableau uses an unrelated icon ![unrelated icon](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_icon_unrelated.png) to indicate not everything in the view is related. If you see an unrelated icon on a pill in the view or in the Data pane, you can hover over the icon [to get more information](https://help.tableau.com/current/pro/desktop/en-gb/mfr_relatedness_messages.htm). - The related icon ![](/tableau/current/en-gb/server-linux/en-gb/Img/MFR_icon_related.png "stitching icon") indicates that field is stitching together unrelated fields. - **Light-grey field names**: Field names are displayed in light grey text in the Data pane when they're not related to _any_ fields in use on shelves. You can still use these fields for analysis in that viz, but unrelated fields are [evaluated differently](https://help.tableau.com/current/pro/desktop/en-gb/datasource_mfr_multiple_base_tables.htm#joinsbyrelatedness) in analysis from fields that are related. On hover, these fields also display an unrelated icon. ![the data pane, with one entire table greyed out, and two fields with the slashed eye icon for hidden fields](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_gray_datapane.png) **Note**: In previous versions of Tableau, light-grey field names indicated that the fields were hidden and Show hidden fields was selected. Hidden fields, when shown, are now indicated with a clickable eye icon ![hidden field icon](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_icon_hidden.png). ### Relatedness warning dialog When unrelated fields are used together in a viz, Tableau shows a warning dialog to let you know that the fields aren't related. This warning appears each time you add an unrelated field to prevent accidental cross joins that might impact performance. - If you want to use unrelated fields without stitching, click Add to continue adding the field to the viz. - If you want to stitch unrelated fields, a best practice is to bring out the stitching field before an otherwise unrelated field. The dialog won't appear if the stitching field is already in use. See [How joins are used for each level of relatedness](#joinsbyrelatedness) for more information about how stitching prevents cross joins. ![the relatedness warning dialog showing a warning for unrelated dimensions](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_unrelated_dialog_simple_v2.png) When multiple fields are being added or are already present in the view, the Details area appears in the dialog. Expand it to see more information about the relatedness of all the fields in use and identify where the unrelatedness issue is coming from. ![the relatedness warning dialog with a message for both unrelated dimensions and measures, and with the Details area expanded](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_unrelated_dialog_details_v2.png) To stop the warning message from appearing at all, select the option Don't show this again. You can always re-enable these warning messages again by turning them back on: - In Tableau Desktop, open the Help menu > Settings and Performance > Reset Ignored Messages. - In a browser, clear your cached data. For example in Chrome, open the **three dots menu** > **Delete Browsing Data...** > Choose "**Cached images and files**" > **Delete data**. ## Table-level relatedness in the data model In a data model with multiple base tables, each base table defines a set of tables that are related and form a conceptual _tree_. These trees must be connected by at least one shared table to ensure the overall data source is a single entity. What might previously have been two data sources that could be blended using linking fields can now be a single data source with two trees, connected by the shared tables that contain those common fields. ![two data models, one made of two distinct data sources, one of the two data sources superimposed on the tables they have in common to form a single data source](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_blending_comparison.png) > [!TIP] > > How tables are related in the data model impacts how their fields can be related in the analysis. It can be helpful to use the [View Data Model](https://help.tableau.com/current/pro/desktop/en-gb/viewdatamodel.htm) dialog during analysis to see how a table fits into the overall data model. Let's walk through which tables are related, unrelated or shared using this example data source. There are two trees, one established by base Table A and one by base Table B. ### Unrelated tables Base tables are fundamentally unrelated. Similarly, any tables that exist solely in a single tree are unrelated to tables in other trees.

Table A and Table X are unrelated

Table B and Table X are unrelated

A data model where base tables A and X have their own outlines. Relationships are shown in light grey.A data model where base tables A and its downstream table B share an outline. Base table X has its own outline. Relationships are shown in light grey.
### Related tables Tables in the same tree are considered related.

Table A and Table S are related

Table B and Table S are related (through Table A)

A data model where base Table A's relationship to a downstream table is emphasisedA data model where Table B's relationship to another table is emphasised by their relationships to the same base table, A
### Shared tables Shared tables have multiple incoming relationships. These tables belong to multiple trees and are shared across them. Table S and Table T are shared. ![A data model where tables S and T both have multiple incoming relationships. They both belong to base table A's tree and base table X's tree. ](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_relatedness_tables_shared.png) ## Field-level relatedness in the analysis Relatedness between fields is determined on a sheet-by-sheet basis based on the [structure of the data model](https://help.tableau.com/current/pro/desktop/en-gb/viewdatamodel.htm), which fields are actively in use (that is, which fields are in the viz as pills on shelves) and if those fields are dimensions or measures. How field relatedness impact the results of a viz is covered in [the next section](https://help.tableau.com/current/pro/desktop/en-gb/datasource_mfr_multiple_base_tables.htm#joinsbyrelatedness). Let's walk through some scenarios using the same example data source. Each field's name indicates which table it is from, such as FieldB from Table B. Fields can be dimensions or measures unless otherwise noted. ### Related fields At a high level, fields are related when Tableau can clearly determine how to evaluate them together based on a relationship path within a single tree. For example, FieldB (from Table B) and FieldS (from Table S) are related. ![FieldB and FieldS are related](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_relatedness_tables_related2.png) ### Unrelated fields At a high level, fields are unrelated in any case when they're not related. This could be because the fields are from unrelated tables, such as using fields from two base tables. In this case, fields from different base tables are fundamentally unrelated. For example, FieldA and FieldX are unrelated. ![FieldA and FieldX are unrelated](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_relatedness_tables_unrelatedbase.png) Or fields can be treated as unrelated for a point in time – such as in ambiguous or not-yet-related cases. For the most part, you can rely on [relatedness indicators](https://help.tableau.com/current/pro/desktop/en-gb/datasource_mfr_relatedness_messages.htm) to alert you when fields are unrelated in the context of a viz. ### Stitching dimension Stitching is how Tableau evaluates fields from unrelated tables in a multi-fact data model during analysis. In a viz, using a dimension from a shared table stitches together otherwise unrelated fields and allows them to be evaluated simultaneously in the same viz. Think of this as juxtaposing results from two trees together based on a dimension they share. For example, if a viz is built with FieldA and FieldX, these two fields are unrelated. Adding DimensionS introduces a stitching field. - FieldA and DimensionS are evaluated together. - FieldX and DimensionS are evaluated together. - Those intermediate results are brought together based on the values of DimensionS. - FieldA and FieldX are now stitched. ![unrelated base tables A and X stitched together by their shared table S](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_relatedness_fields_stitching.png) **Tip**: A best practice is to use a stitching field in the viz before bringing out an unrelated field. For example, drag out DimensionS first, or FieldA then DimensionS then FieldX, instead of FieldA then FieldX then DimensionS. Adding the stitching field first ensures that Tableau is always aware of how to evaluate the relationships and avoids potential performance issues from evaluating unrelated dimensions together with cross joins. Stitching requires a dimension from a shared table to be active in the viz. Fields placed on the Filters shelf or on the Tooltip property of the Marks card aren't considered active for the purposes of stitching. ### Not-yet-related fields Fields can also have multiple ways they could be related but aren't yet. This happens when there's more than one possible relationship between two shared tables (or downstream shared tables). Consider FieldS and FieldT. Their tables are related to each other both through the tree defined by base Table A and through the tree defined by base Table X. In a viz with just FieldS and FieldT, there's no information about which tree should be used to relate them. Without additional information, Tableau can't evaluate whether to relate these fields through Base Table A's tree or Base Table B's tree. FieldS and FieldT are treated as unrelated although there are multiple _potential_ relationships. ![Under-related ambiguous fields S and T](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_relatedness_fields_not-yet_hyporelated.png) These could-be-but-aren't-yet-related fields are evaluated as unrelated because Tableau can't clearly determine their relationship path. Unlike truly unrelated fields, which can only be stitched, not-yet-related fields can be resolved and the fields can be directly related. ### Ambiguously related fields Fields can also be ambiguously related. This happens when there is more than one active possible relationship between shared tables (or downstream shared tables). Unlike not-yet-related fields, which can be thought of as hypo-related or under related, ambiguously related fields are hyper-related or over related. Consider FieldS and FieldT. Their tables are related to each other both through the tree defined by base Table A and through the tree defined by base Table X. In a viz with FieldA, FieldX, FieldS and FieldT, there's too much information to decide which tree should be used to relate them. Without trimming the information, Tableau can't evaluate whether to relate these fields through Base Table A's tree or Base Table B's tree. FieldS and FieldT are treated as unrelated although there are multiple _active_ relationships. ![](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_relatedness_fields_ambiguous_hyperrelated.png "over related") These ambiguously related fields are evaluated as unrelated because Tableau can't clearly determine their relationship path. Unlike truly unrelated fields which can only be stitched, ambiguously related fields can be resolved and the fields can be directly related. ### Ambiguous measure from a shared table When a dimension is used from a shared table, it stitches together fields from its unrelated upstream tables. Measures can't stitch, however, and the value of a measure depends on its related dimensions. In a viz with DimensionA and DimensionX, these two dimensions are unrelated. If MeasureS is brought out from Table S, it is unrelated to the combination of DimensionA and DimensionX together. Although it could be related to either one independently, it can't be simultaneously related to both of them in the same viz. ![unrelated base tables A and X stitched together by their shared table S](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_relatedness_fields_stitching.png) A shared measure can be considered a type of ambiguity or over relatedness and is resolved the same way. ### Resolve unclear relationships between fields Whenever there is uncertainty about how to relate fields, Tableau won't make an arbitrary decision and instead treats them as unrelated. It's often better to relate these fields by clarifying the uncertainty around which tree to use. Resolving not-yet-related fields is done by adding a field to establish which tree to use. Resolving ambiguously related fields is done by removing fields to establish which tree to use. _Example:_ **Resolving not yet related**: add a field - In a viz of FieldS and FieldT, adding a field from Table A, B or C to the viz makes Base Table A's tree active and resolves the desired path between FieldS and FieldT. - Alternatively, using a field from Table X resolves the desired path between FieldS and FieldT to Base Table X's tree. **Resolving ambiguously related**: remove a field or fields - In a viz of FieldA, FieldX, FieldS and FieldT, removing FieldX makes only Base Table A's tree active and resolves the desired path between FieldS and FieldT. - Alternatively, removing FieldA resolves the desired path between FieldS and FieldT through Base Table X's tree. **Resolving a shared measure**: remove a field or fields - In a viz of DimensionA, DimensionX and MeasureS, removing DimensionX makes only Base Table A's tree active and resolves the desired path between DimensionA and MeasureS. - Alternatively, removing DimensionA resolves the desired path between DimensionX and MeasureS through Base Table X's tree.
Not yet relatedAmbiguously relatedRelatedness resolved to a single tree
Related through base Table ARelated through base Table X
under-relatedrelated through Arelated through X
Resolving uncertainty is similar to using a FIXED Level of Detail (LOD) expression. In a FIXED LOD expression, you tell Tableau what level of detail to aggregate to by defining the dimension declaration. Uncertainty is resolved by changing the structure of the viz to make only one tree active, thus telling Tableau what relationship paths it can consider to perform the analysis. ### Stitching vs resolving uncertainty Both stitching and resolving uncertainty are ways of dealing with unrelatedness, but they have different outcomes:

Stitching

Resolving uncertainty

stitching A and X with S

Unrelated FieldA and FieldX stitched by DimensionS

Resolving S and T with A

FieldS and FieldT evaluated through the tree defined by base Table A

Juxtaposes unrelated fields based on shared attributesNarrows down which relationship path to use when there are multiple options (ambiguity or a shared measure), or establishes a relationship path when there wasn't one (not yet related).

Uses multiple base table logic to calculate results

Uses single base table logic to calculate results

Analysis involves unrelated tablesAnalysis involves shared tables
## How joins are used for each level of relatedness After the field-level relatedness has been determined, Tableau has to evaluate the results to create the actual visualisation. The queries used to calculate the values shown in a viz rely on joins. Whether fields are related, unrelated or stitched has a different impact on what joins are performed. Remember, ambiguously related and not-yet-related fields are treated as unrelated in this context. To explain relatedness and joins, this section covers tables and their fields, plus the values in those fields. Consider the following data model with two base tables, Classes and Clubs, and a shared table, Students. ![A data model with two base tables, classes and clubs, and a shared table, students](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_model.png)

Classes

Clubs

Students

view data for the classes table, showing the values for three fieldsview data for the clubs table, showing the values for three fieldsview data for the students table, showing the values for three fields

Fields:

  • Class, a dimension with values of Nesting Basics, Advanced Songs, Flying for Fledglings and Alarm Calls 101
  • Length, a measure
  • Student, a dimension used to relate to the Student table

Fields:

  • Club, a dimension with values of Photography, Travel, Juggling, Art and First Aid
  • Dues, a measure
  • Student, a dimension used to relate to the Student table

Fields:

  • Bus Rider, a dimension with values of yes or no
  • Student, a dimension with values of Finch, Cardinal, Sparrow, Robin and Jay. Used to relate to the other two tables
  • Age, a measure
This very simple model illustrates how the high-level join logic is calculated for multi-fact relationship data models. For more information about the basics of joins used in single base table data models built on relationships, see [How Analysis Works for Multi-table Data Sources that Use Relationships](https://help.tableau.com/current/pro/desktop/en-gb/datasource_multitable_analysis_overview.htm). Should this example be a data model with multiple base tables? For this three-table data model, it might be tempting to set it up as a single base table model, as Classes-Students-Clubs or Clubs-Students-Classes, or with Students as a base table. As a rule, multi-fact relationship data models are intended for specific kinds of data schemas or analysis scenarios. If your data model [has characteristics that are best suited to a multi-fact relationship data model](https://help.tableau.com/current/pro/desktop/en-gb/datasource_mfr_when_to_use.htm), set it up that way to keep your base tables conceptually unrelated. However, if your data doesn't require this type of structure, a single base table model can be simpler to use. ![alternative data model structures for the classes-clubs-students example model](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_model_versions.png) Models that could be built for these three tables: (1) Classes and Clubs as base tables with Students as a shared table, (2) linearly, starting with either Classes or Clubs, and (3) Students as a single base table with Classes and Clubs as downstream tables. In this particular instance, there's nothing about these tables, the data or the model that truly requires multiple base tables. We're using this model as an example to keep it simple so the focus can be on the join logic. Or you could imagine that there's another related table, Rooms, that we're simply ignoring to avoid over complicating the discussion. ![a version of the classes-clubs-students model with an additional shared table, rooms](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_model_withroom.png) As a best practice, however, only use a multi-fact relationship model when your data requires it. ### Related dimensions use inner joins Related dimensions are inner joined. Inner joins drop any dimension values that aren't shared across both tables. - Tableau uses additional logic to ensure measure values aren't lost. This section uses only dimensions to demonstrate the basics of how Tableau applies inner joins to related dimensions. The following example shows how related dimensions only return rows that are present in the data. No students are in the Alarm Calls 101 class, so it's not present in the results. Cardinal and Jay aren't in any classes, so they're not present in the results. ![A viz showing an inner join of Class and Student, with two rows for Finch (Advanced Songs, Nesting Basics), two rows for Robin (Flying for Fledglings, Nesting Basics) and two rows for Sparrow (Advanced Songs, Nesting Basics)](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_relateddims_innerjoin.png) ### Unrelated dimensions use cross joins Unrelated dimensions – on their own, without a stitching dimension – are cross joined. In a cross join, every value from one dimension is combined with every value from the other dimension, even if a resulting combination doesn't actually exist in the data. In this example, the cross join adds a row for each possible combination of Class and Club. ![A viz showing a cross join of Class and Club with rows for every combination of Advanced Songs/Alarm Calls 101/Flying for Fledglings/Nesting Basics with Art/First Aid/Juggling/Photography. There is an unrelated icon shown on both dimension pills on the Rows shelf](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_unrelateddims_crossjoin.png) It's important to recognise when a cross join is occurring in your analysis. Although there’s a row for Advanced Songs + First Aid in the results table for the cross join, no students are actually in this combination of activities (we'll see proof of this in the stitching example in the next section). Why is it important to recognise that not all cross join results are based on the data? Imagine you were trying to build a schedule for classes and clubs so there were no conflicts for any students. There aren't any students in Advanced Songs and First Aid, so you could ignore this result and schedule that class and club simultaneously. The cross join doesn't represent combinations of values that actually exist in the data. Additionally, cross joins when there is high cardinality (a large number of unique values) can impact performance. Imagine cross joining every phone number with every email address in your contacts. That would be a huge explosion of combinations and a potentially costly operation. ### Stitched dimensions use outer joins Unrelated dimensions – in the presence of a stitching dimension – are outer joined. In this example, both the Classes table and Clubs table are related to the shared Students table but not to each other, so the fields Class and Club are unrelated. Adding the Student dimension lets Tableau know which values from Class and which values from Club should be juxtaposed in the analysis. We call this outer join behaviour _stitching_. ![A viz showing the results of an outer join of the Student-Class inner join and the Student-Club inner join. There is an unrelated icon on the Class and Club pills on the Rows shelf. A pill for Student is on the Colour property of the Marks card and does not have an unrelated icon. Not all combinations of classes and clubs are represented, and there are rows for students and clubs without a class](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_stitched_outerjoin.png) Stitching is similar to data blending in that there are intermediate results that are brought back together for the overall results. Unlike blending, however, stitching is an outer join, not a left join, and doesn't drop values from either side. There's no concept of primary or secondary data sources when it's all one data source, so both of the unrelated fields are given equal precedence. #### Intermediate results are outer joined What goes into the outer join for stitched fields? An intermediate inner join is computed for the stitching field and each of the unrelated fields in turn. Then those intermediate results are outer-joined based on the values of the stitching dimension. **Example** An inner join for Student and Class... ![A results table for three values of students and three values of classes](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_stitched_inner1.png) ...and an inner join for Student and Club... ![A results table for four values of students and five values of clubs](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_stitched_inner2.png) ...are then outer joined on Student. ![A results table for four values of students, three values of classes and five values of clubs](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_stitched_outerjoin.png) ### Additional joins to retain measures In addition to the join logic for dimensions, measures can introduce additional joins. When relationships were first introduced in Tableau, one of the [core principles was that measure values aren't lost](https://www.tableau.com/en-gb/blog/relationships-tableau-data-model). This is also maintained in multi-fact relationship data models. The essential details are: - Measure values are broken down only by related dimensions. - Measure values repeat for unrelated dimensions. - Dimension values that would be dropped in dimension-only vizzes may be returned if there are relevant measure values associated with them. **Note**: Remember that measures are aggregations – they’re computed at the level of detail (the granularity) set by the combination of dimensions in the viz. This is referred to as a measure being _broken down_ by a dimension. When a measure is used without any dimensions, it is said to be _table scoped_. This means the measure's value is the fully aggregated value. As soon as we use a dimension in the viz, the measure is broken down more granularly based on the dimension values. The value of a measure in an analysis therefore depends on the context of the dimensions. #### Related measures Consider the subset of dimension values that are returned for an inner join on the related dimensions **Student** and **Class.** There are _three_ student values, Finch, Robin and Sparrow; and _three_ class values, Advanced Songs, Nesting Basics and Flying for Fledglings. ![a results table for an inner join between student and class](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_inner_student_class.png) If we add the **Length** measure from the Class table, we see that all _four_ classes are shown and there's a null for Student. Every class **Length** is displayed, at the level of **Class**. ![A null value appears for a student even though dimensions are inner joined](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_related_measurefrombase.png) If we instead add the **Age** measure from the Student table, we see that all _five_ students are shown and there are two nulls for Class. The results preserve every student, even if they're not in a class. Every student **Age** is displayed, at the level of **Student**. ![A null value appears for classes even though the dimensions are inner joined](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_related_measurefromshared.png) #### Unrelated measures Measure values are repeated for unrelated dimension values. If we look at the **Length** measure from the Classes table and the unrelated **Club** dimension, the measure is table scoped and repeated across all the dimension values of **Club**. ![a table-scoped measure repeated across unrelated dimension values](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_unrelateddim-measure.png) In the presence of a stitching dimension, measures can be both broken down and repeated. Here, the measure **Age** is from the Students table and is broken down to the level of student. Each time a student is repeated based on the dimensions for **Class** and **Club**, the **Age** value is repeated. ![](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_ex_birds_unrelateddims_sharedmeasure.png) ## Troubleshooting ### Considerations when working with multi-fact relationship data models **Per-table extract filters** All extract filters for a multi-fact relationship data model extract are per table (not pervasive). Because of this, filtering results may be different between live and extract connections. **Row-level calculations** Row-level calculations can only refer to fields that share the same upstream base table. That is, row-level calculations can't be performed across trees. **Combined Fields** All fields in a combined field must share an upstream table. That is, you can't create a combined field using fields that are in different trees. **Sets** Sets can only be created with a definition that involves fields that share the same upstream base table. However, in a viz, the option to Add to Set may be available from a mark when that mark is defined by fields unrelated to the fields used to define the set. If you choose Add to Set, Tableau will add only the related fields to the set definition. This is different from the behaviour for Add to Set in single base table data sources, when Add to Set adds everything that defines the mark. **Validate INCLUDE level of detail expressions** INCLUDE LOD expressions can't be evaluated across unrelated fields. Because relatedness between fields is evaluated on a sheet-by-sheet basis, it's possible to have a valid LOD expression in the Data pane or calculation editor that becomes invalid in the context of a specific viz (in the presence of an unrelated dimension). When this happens, the LOD pill will turn red. You can update the LOD expression to remove unrelated field conflicts, change the structure of the viz or remove the LOD expression from the viz. **Updating Published Data Sources** As a best practice, create a copy of an existing published data source if you plan to modify it to become a multi-fact relationship data model when not all of its connected workbooks need the new data model. Don't update the existing version of the data source unless all its workbooks need the new tables. Publish the modified data source as a new data source and create new workbooks from it. This will prevent the existing workbooks from being converted to use VDS instead of data server when they don't need the functionality, preventing the potential for a performance hit. ### Resolved issues
Resolved IssueFixed as of

Extracts

Local data source (in a workbook): Attempting to extract a multi-fact relationship data source will give a "No such table" error.

Published data source: Extracting a published multi-fact relationship data source appears to succeed, but field values can be swapped.

If you still see these issues in Tableau Desktop or Tableau Server, upgrade to a version from 24th July 2024 or later.

EXCLUDE Level of Detail expressions

Only INCLUDE LODs should be validated in the presence of unrelated fields. However, EXCLUDE LODs may also be incorrectly marked as not valid in the same conditions.

Nested user calculations

Nested user calculations are not available in published data sources with a multi-fact relationship data model.

### Known issues **Relatedness indicators with multiple Marks cards** When a viz is built with multiple measures on the Rows shelf or on the Columns shelf, each measure gets its own Marks card. The logic used to determine relatedness indicators (the unrelated icon, the text in tooltips and the relatedness warning dialog) may not give expected results depending on which Marks card is open. The viz itself, however, is correctly computed based on the relatedness of each pair of fields. There is a planned fix for this behaviour. **BatchQueryProcessor** BatchQueryProcessor must be enabled to support multi-fact relationship data models. This is expected behaviour with no currently planned fix. **Tableau Pulse** Tableau Pulse may not work with multi-fact relationship data models. You may be prevented from creating a metric definition, or any metrics that are created may be blank. This is not expected behaviour but there is currently no planned fix yet. **Changing dimensions with a parameter** Tableau lets you [swap fields using a parameter](https://help.tableau.com/current/pro/desktop/en-gb/parameters_swap.htm). However, with multi-fact relationships, swapping dimensions with a parameter will fail silently. The parameter and its calculation can be created, and the parameter control can be shown, but the field won’t change when the parameter does. This is due to when dimensions are evaluated for relatedness and when parameters are evaluated in the order of operations. ## Other articles in this section [Skip to main content](#main-content) # About Tableau Resource Monitoring Tool This document gives you an overview of the Tableau Resource Monitoring Tool. ## What is Resource Monitoring Tool? The Resource Monitoring Tool is a tool that you can use to monitor the health and performance of your Tableau Server. It gathers data from your Tableau Server to provide a comprehensive look at the health of Tableau Server. Using this tool, you can identify the cause of slow loading times, extract failures and other critical issues. To use the Resource Monitoring Tool, you must have Advanced Management enabled on your server. For more information on Advanced Management, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm) The Resource Monitoring Tool has two main components: Resource Monitoring Tool Server (RMT Server) and Agent. - The RMT Server is where the data from Tableau Server is collated and served up through a web interface. This is also where you can configure, monitor and analyse the health and performance of Tableau Server. - An Agent runs on each of the nodes in your Tableau cluster to monitor their performance and activity. The following diagram illustrates the interaction between a Tableau Server node and the RMT Server. ![A diagram that illustrates the transmission of hardware metrics, usage and performance metrics, and their corresponding user-friendly names and data structures from a master server to a node.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-data-flows-linux.png) ## Other articles in this section [Skip to main content](#main-content) # About Tableau Catalogue > [!WARNING] > > As of 14 October 2025, Data Cloud has been rebranded to Data 360. During this transition, you may see references to Data Cloud in our application and documentation. While the name is new, the functionality and content remains unchanged. Data is increasing in volume, formats and importance leading to more complex environments. With the rapid pace that data changes, it can be hard to keep track of that data and how it's being used in such complex environments. At the same time, more users need to access more of that data in more places, and it’s difficult for users to find the right data. Ultimately, this causes a lack of trust in the data because people question whether they’re using the right source or if the source is up to date. Tableau Catalogue integrates features like lineage, impact analysis, data dictionary, data quality warnings and search into your Tableau applications, helping solve these problems differently from a stand-alone catalogue. It focuses on both IT and the end user so that everyone using Tableau Server or Tableau Cloud has more trust in and visibility into the data, while also enabling more discoverability. Tableau Catalogue builds a catalogue out of the Tableau content being used by your organisation, enabling comprehensive functionality like the following: - **Impact analysis and lineage**. - You can see the workbooks and other Tableau content that depend on particular columns or fields from tables or data sources you manage. When you need to make changes to your data, you can notify the impacted Tableau authors using email. - As a workbook author, you can use lineage to trace the fields that your workbook depends on. - As a user, when you use a Tableau visualisation, you can see where the data came from that was used to create the view. - **Curation and trust**. As a data steward, you can add helpful metadata, like descriptions and certification, so that users find the right data. You can set data quality warnings, view data details on the Data Details pane, certify assets and remove assets from the catalogue. - **Data discovery**. In Tableau Desktop or Tableau web authoring, you can use Tableau Catalogue to search for databases, tables, data sources and virtual connections to analyse in Tableau and connect to them from the search results. Starting in 2019.3, Tableau Catalog is available as part of Data Management for Tableau Server and Tableau Cloud. When the product key is active and enabled, the catalogue features described above are integrated into the product you're using, so you can work with the data where you find it. ## How Tableau Catalogue works Tableau Catalogue discovers and indexes all the content on your site– workbooks, data sources, sheets, virtual connections and flows – to gather metadata about the content. From the metadata, external assets (databases, tables and other objects) are identified. Knowing the relationships between the content and the external assets enables Tableau to display the lineage of the content and external assets. Tableau Catalog also enables users to connect to external assets using Tableau Server or Tableau Cloud. Users on your site can publish or delete content, can attach data quality warnings or certifications, or do anything else that changes the content or its metadata on the site, and Tableau Catalogue will update its information accordingly. For information about how you can use Tableau Catalogue to support data governance in your organisation, see [Governance in Tableau](https://help.tableau.com/current/blueprint/en-gb/bp_governance_in_tableau.htm) in the Tableau Blueprint Help. ## Key Tableau Catalogue terms - Metadata - Information about the data. - Tableau content - Content created in Tableau such as workbooks, data sources, virtual connections and flows. - External assets - Databases (including data files) and tables (including table-like objects) used by Tableau content, published to Tableau Server or Tableau Cloud. ## Licence Tableau Catalogue Tableau Catalog is licensed through Data Management. For information about how Data Management licensing works, see [Licence Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_license.htm). ## Enable Tableau Catalog After Tableau Server or Tableau Cloud is licensed with Data Management capabilities, you can enable Tableau Catalog by doing one of the following tasks: - **For Tableau Cloud**, no action is necessary. Tableau Catalogue is on by default, configured to use derived permissions and ready to use. For more information about derived permissions, see the [Permissions on metadata](https://help.tableau.com/current/server-linux/en-gb/dm_perms_assets.htm#perms) topic. - **For Tableau Server**, the Server admin must first enable the Tableau Metadata API using the `tsm maintenance metadata-services` command. For more information, see [Enable Tableau Catalog](https://help.tableau.com/current/server-linux/en-gb/dm_catalog_enable.htm). After the Metadata API is enabled, Tableau Catalogue is on by default, configured to use derived permissions and ready to use. For more information about derived permissions, see the [Permissions on metadata](https://help.tableau.com/current/server-linux/en-gb/dm_perms_assets.htm#perms) topic. ## Features and functionality To learn more about the features you can use with Tableau Catalogue, see the following Help articles: ### Data discovery - In the Connect pane on Tableau Desktop, under Search for Data select Tableau Server to [connect to data using Tableau Server or Tableau Cloud](https://help.tableau.com/current/pro/desktop/en-gb/examples_tableauserver.htm). When Tableau Catalogue is enabled, in addition to searching for published data sources to connect to, you can now search for and connect to the specific databases, tables and objects used by published data sources and workbooks on your Tableau Server or your Tableau Cloud site. - [Search](https://help.tableau.com/current/pro/desktop/en-gb/search.htm) is expanded to include results based on columns, databases, tables and other objects when Tableau Catalogue is enabled. - If you author in the web, in addition to published data sources, you can also [connect to databases and tables](https://help.tableau.com/current/pro/desktop/en-gb/getstarted_web_authoring.htm#tableau-catalog-users-create-workbooks-from-external-assets). - If you use Tableau Prep on the web, you can [create new flows based on external assets](https://help.tableau.com/current/prep/en-gb/prep_startflow.htm#start-a-new-flow), such as databases and tables. - If you [connect to Salesforce Data Cloud](https://help.tableau.com/current/pro/desktop/en-gb/examples_data_cloud.htm), you'll see support for native Data Cloud objects built into Tableau Catalogue. Data Lake Objects (DLOs), Data Model Objects (DMOs), and calculated insights appear distinct in search, connect and lineage pages, which makes discovering, connecting to and reusing them simpler. ### Curation and trust - [Certify your data assets](https://help.tableau.com/current/server/en-gb/datasource_certified.htm) to help users find trusted and recommended data. - Set [data quality warnings](https://help.tableau.com/current/server/en-gb/dm_dqw.htm) to alert users to data quality issues, such as stale or deprecated data. - Add [sensitivity labels](https://help.tableau.com/current/server/en-gb/dm_labels_sensitivity.htm) to warn users about data that needs to be handled with care. - Add [custom labels](https://help.tableau.com/current/server/en-gb/dm_labels_custom_categories.htm) to classify data in ways that suit the needs of your organisation - [Manage data labels](https://help.tableau.com/current/server/en-gb/dm_labels_manage.htm) to extend the label names and categories available to users. - Categorise items on Tableau Server and Tableau Cloud using [tags](https://help.tableau.com/current/pro/desktop/en-gb/tags.htm) to help users filter external assets. - Better understand published visualisations by using the [Data Details](https://help.tableau.com/current/pro/desktop/en-gb/data_explore_analyze_interact.htm#use-data-details-to-see-visualization-information) tab to see information about the data used. - [Add descriptions](https://help.tableau.com/current/pro/desktop/en-gb/qs_content_page.htm#add-or-edit-descriptions) to databases, tables and columns to help users find the data they're looking for. ### Lineage and impact analysis - Use [lineage](https://help.tableau.com/current/server/en-gb/dm_lineage.htm) to trace the source of your data and to analyse the impact of changes to your data and identify which users might be impacted. - [Email owners](https://help.tableau.com/current/server/en-gb/dm_lineage.htm#email) of a workbook, data source or flow about data-related updates. Do the same with database, table or object contacts. ### Developer resources You can use metadata methods in the Tableau REST API to programmatically update certain metadata. For more information about the metadata methods, see [Metadata Methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_metadata.htm) in the Tableau Server REST API. In addition to the REST API, you can use the [Tableau Metadata API](https://help.tableau.com/current/api/metadata_api/en-gb/index.html) to programmatically query metadata from the content published to Tableau Server or Tableau Cloud. The Metadata API is fast and flexible and is best when you are looking to find out specific information about the relationship between metadata and its structures. Explore and test queries against the Metadata API using an interactive in-browser tool called [GraphiQL](https://help.tableau.com/current/api/metadata_api/en-gb/docs/meta_api_start.html#explore-the-metadata-api-schema-using-graphiql). **Note:** Data Management is not required to use the Metadata API or GraphiQL. [Skip to main content](#main-content) # About Tableau Content Migration Tool This set of articles guides you through setting up, using and maintaining the Tableau Content Migration Tool. **Note**: The Tableau Content Migration Tool is not recommended for migrations when moving from Tableau Server to Tableau Cloud. To migrate from Tableau Server to Tableau Cloud, use the [Tableau Migration SDK](https://help.tableau.com/current/api/migration_sdk/en-gb/index.html). For Tableau Content Migration Tool recommended use cases, see [Tableau Content Migration Tool Use Cases](https://help.tableau.com/current/server-linux/en-gb/cmt-use-cases.htm#cmt-use-cases) ## What is Content Migration Tool? The Content Migration Tool provides an easy way to copy or migrate content between Tableau Server sites. You can do this between sites on a single Tableau Server installation, or if you have user-based licensing, between sites on separate installations (for example, between a development instance of Tableau Server and a production installation). The Content Migration Tool user interface walks you through the steps necessary to build a "migration plan" that you can use once or as a template for multiple migrations. Before migrating content, we recommend reviewing the [Content Governance](https://help.tableau.com/current/blueprint/en-gb/bp_governance_in_tableau.htm#content-governance-in-tableau) section in Tableau Blueprint. ## Help and Support If you have problems that you cannot solve with this documentation, contact [Tableau Technical Support](http://www.tableau.com/en-gb/support/request). ## Other articles in this section [Skip to main content](#main-content) # About Tableau Enterprise Tableau Enterprise is our advanced software package to help you explore and manage data faster with Tableau Server. It also makes it easier to purchase the capabilities needed by organisations that require advanced data and deployment management options. ## Tableau Enterprise Licensing As of March 2026, Tableau Enterprise is sold in the following models: - **Tableau Server or Tableau Cloud Role-Based Edition** The role-based edition is sold on a per-user role-based licensing model, including Creators, Explorers and Viewers. This model is structured around the specific roles within an organisation, each requiring different levels of functionality. With Tableau Enterprise, each role-based licence includes Data Management, Advanced Management and eLearning for Creators and Explorers. Available for Tableau Server or Tableau Cloud. - **Tableau Server Core Edition** The core edition is capacity-based and sold in eight core increments, and it bundles Advanced Management and Data Management into the licence. Available only for Tableau Server. ## Tableau Enterprise Feature Table The following table lists the features that are included with the Tableau Enterprise licence edition. Feature availability below is noted for Creator. There are differences in available functionality between Creator, Explorer and Viewer.
FeatureDescription
Tableau AuthoringUse Tableau Desktop or Tableau web authoring on Tableau Server to create, collaborate and share insights about your data. Tableau provides you with a way to identify and solve problems, or highlight key findings in a visual and easily understandable way.
Tableau PrepTableau Prep is a data preparation tool for cleaning, shaping and combining data for analysis.
eLearningRole-based training Tableau Learning Paths provide a clear track to proficiency with the most up-to-date Tableau training content. Assessments help you evaluate where you are in your learning path and give you confidence in your new skills. Accelerate the onboarding process for new employees and help more experienced users get the most out of Tableau capabilities.
About Data ManagementData Management is a collection of features and capabilities that helps customers manage Tableau content and data assets in their Tableau Server environment.
About Tableau Advanced Management on Tableau ServerAdvanced Management is a collection of features and capabilities designed to provide enhanced security, manageability and scalability for Tableau Server.
[Skip to main content](#main-content) # About Tableau Server+ Tableau Server+ is our advanced software package to help you explore and manage data faster with Tableau Server. Tableau Server+ includes Tableau Agent in authoring, Premium Success and expanded deployments (one production environment and up to six additional non-production environments for testing). It also makes it easier to purchase the capabilities needed by organisations that require advanced data and deployment management options. ## Tableau Server+ Licensing As of July 2026, Tableau Server+ is sold in two models: - Tableau Server Role-Based Edition The role-based edition is sold on a per-user role-based licensing model, including Creators, Explorers and Viewers. This model is structured around the specific roles within an organisation, each requiring different levels of functionality. With Tableau Server+, each role-based licence includes Data Management, Advanced Management and eLearning for Creators and Explorers. - Tableau Server Core Edition The core edition is capacity-based and sold in eight core increments, and it bundles Advanced Management and Data Management into the licence. ## Tableau Server+ Feature Table The following table lists the features that are included with the Tableau Server+ licence edition. Feature availability below is noted for Creator. There are differences in available functionality between Creator, Explorer and Viewer.
FeatureDescription
Tableau AuthoringUse Tableau Desktop or Tableau web authoring on Tableau Server to create, collaborate and share insights about your data. Tableau provides you with a way to identify and solve problems, or highlight key findings in a visual and easily understandable way.
Tableau PrepTableau Prep is a data preparation tool for cleaning, shaping and combining data for analysis.
eLearningRole-based training Tableau Learning Paths provide a clear track to proficiency with the most up-to-date Tableau training content. Assessments help you evaluate where you are in your learning path and give you confidence in your new skills. Accelerate the onboarding process for new employees and help more experienced users get the most out of Tableau capabilities.
About Data ManagementData Management is a collection of features and capabilities that helps customers manage Tableau content and data assets in their Tableau Server environment.
About Tableau Advanced Management on Tableau ServerAdvanced Management is a collection of features and capabilities designed to provide enhanced security, manageability and scalability for Tableau Server.
Premier SuccessThe Premier Success Plan helps you start strong, grow your business and get more value from Salesforce with expert guidance and expedited support.
[Skip to main content](#main-content) # About the Flow Workspace After you publish your flow, you can schedule tasks or linked tasks (version 2021.3 and later) in Tableau Server to automatically run your flows on a regular basis to keep your output data fresh. You can also run your flows manually at any time (no Data Management required). Tableau Prep Conductor leverages much of the same functionality for managing flows that you might see when managing workbooks or data sources from Tableau Desktop in Tableau Server. For example, just like extract refreshes, scheduled flow tasks and on-demand flow runs are queued as background tasks. But when it comes to working with flows, there are a few differences. ## Flow Overview page The flow Overview page is the main landing page where you can view data about your flow and schedule, monitor and maintain the flow. If you don't have the Data Management, you will have different options. Open the flow Overview page by clicking on a flow in your list. You can navigate there from Content > Explore > All Flows or by opening the project that contains your flows. ![The Tableau Prep Flow Overview page.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_parameters_flow_overview.png) 1. The header lists the name of the flow, the flow owner and the date that the flow was last modified. Starting in version 2020.4, click Edit to edit existing flows. Add a flow to your favourites or from the More actions![The More Options menu option represented by three dots.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_rmoremenu.png)menu, you can also edit, run, download the flow, set permissions, change the flow owner, restore previous flow versions and more. 2. View and edit the flow description and set tags to help others find the flows they are looking for. 3. View the output steps for a flow along with any parameters applied to the flow (version 2021.4 and later), the status of the last update, any schedule the output is assigned to and any errors from the last flow run. You can also click the Run ![The Run Flow button shown as a right-facing arrow point in a circle.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_run_button.png)button to run all output steps or individual output steps on-demand.
Parameters

If the flow includes user parameters, the parameter value last run in the flow is shown and you can see all generated outputs in the Output column. When the flow is run, you'll be prompted to enter the parameter values.

System parameters (version 2023.2 and later) are automatically generated at flow run time and the type of system parameter is shown in the Parameters column. To see the last system parameter value applied to the flow, edit the flow.

For more information about using parameters in flows, see Create and Use Parameters in Flows in the Tableau Prep help.

StatusAfter a flow has run successfully, outputs that are data sources become links that you can click to open the Data Source page to view more information about the data source or edit the flow input connection.
Schedule

In the Schedule field, view the scheduled tasks that the output step is assigned to. A flow output can be assigned to one or more tasks.

If no schedule has been assigned yet, click Create new task to add the output step to a schedule. To immediately run the flow to update a specific output step, click the RunThe Run Flow button shown as a right-facing arrow point in a circle.button on the left-hand side of the row.

Errors

If the flow has errors, the flow run will fail. Connectivity errors can be resolved directly by navigating to the Connections tab for the flow and editing the input connections.

To resolve any other flow errors, edit the flow then republish it and try running the flow again. If you are using an earlier version of Tableau Prep Builder, from the More actionsThe More Options menu option represented by three dots.menu, you can also download and open the flow in Tableau Prep Builder, then republish it and try running the flow again.

4. View an image of the flow. ### Flow Overview page without the Data Management If you don't have the Data Management installed on your server, you can still publish flows to Tableau Server, but you will see fewer options to manage your flow. ![Tableau Prep connections.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_webauth_no_dm_addon.png) ## Flow Connections page View both the input and output locations for a flow, connection types, authentication settings, input and output steps and any connectivity errors. You can set authentication settings when publishing a flow. For more information, see [Publish a Flow](https://help.tableau.com/current/prep/en-gb/prep_conductor_publish_flow.htm). For database input types, click the More actions![The More Options menu option represented by three dots.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_rmoremenu.png) menu for an input connection to edit the connection and change the server name, port, username and password. ![A table of connection types and their sources in Tableau Prep.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_serverconnections.png) ## Flow Scheduled Tasks page (Data Management required) View any schedules that the flow is assigned to, the outputs that are included in those schedules and any parameters applied to the flow (version 2021.4 and later). As an administrator, you can click the schedule link to open the Schedules page and see a list of flows that are assigned to that schedule. For more information about assigning flows to a schedule, see Schedule Flow Tasks in the [Tableau Cloud](https://help.tableau.com/current/online/en-gb/prep_conductor_online_schedule_flow_task.htm) or [Tableau Server](https://help.tableau.com/current/server/en-gb/prep_conductor_schedule_flow_task.htm) help. To view the outputs on a schedule or the tasks assigned to a linked task (version 2021.3 and later), click the links in the Schedule type column. You can also add new tasks or manage existing ones from this page. To take action on an existing task, select the tick box on a task card then click the Actions drop-down menu to run, edit or delete the task. If the flow fails to run after a configured number of consecutive attempts, the flow is automatically suspended. You can see that status on the Overview tab as well as this tab. You can resume suspended tasks from this menu. For information about how to set the threshold for suspended flow tasks, see [Step 5: Optional Server Configurations](https://help.tableau.com/current/server/en-gb/prep_conductor_config_server_optional.htm). For more information about suspended flow tasks, see [View and resolve errors](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_monitor_flow.htm#View_Errors). **Note**: The Scheduled Tasks page for flows was redesigned in version 2021.3. Your view may look different depending on your server version. ![The Flow page with the Scheduled Tasks tab selected](/tableau/current/en-gb/server-linux/en-gb/Img/prep_parameters_scheduled_tasks.png) ## Schedules page On the Schedules page, you can view the flows assigned to a schedule and the details about the flow runs. If the schedule includes linked tasks (version 2021.3 and later) the number of flows included in the linked tasks is shown. You can run the schedule on-demand and run all flows assigned to it. You can also select one or more flows, then use the Actions menu to change the flow schedule or priority, delete selected flows from the schedule or resume suspended flows. For information about how to set up a schedule, see [Step 3: Create Schedules for Flow Tasks](https://help.tableau.com/current/server/en-gb/prep_conductor_create_schedule_definitions.htm). ![A table that shows flow details, including priority, status, last run, next scheduled run and errors.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_schedules_page.png) ## Flow Run History (Data Management required) See, search and sort through a list of historical runs for a flow. This page also includes details about the flow run such as run type, parameter values applied to flows included in each flow run (version 2021.4 and later), duration and number of rows that were generated. If the flow output has an error, hover over the error to view the messages. If applicable, click the Go to Connections link in the error message to navigate to the Connections page to fix connectivity errors. You can also edit the flow directly to fix any errors, or click Download the flow to download and fix flow errors in Tableau Prep Builder, then republish the flow to continue to manage it using Tableau Prep Conductor. **Note**: The run history for a flow will persist unless the flow is deleted. ![The Run History tab is chosen, and the Errors column displays a message about the errors.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_parameters_run_history.png) ## Flow Revision History If you need to revert a flow to a previous version, from the More actions![The More Options menu option represented by three dots.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_rmoremenu.png) menu for the flow, select Revision History. On the Revision History dialog, select the flow version from the list that you want to revert to. ![A table of Revision History with the option to restore a revision.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_revisionhistory.png) ## Who can do this Server Administrators can activate Data Management licence keys. Server administrators can enable Tableau Prep Conductor. Creators can create, edit and run flows manually. If the Data Management is installed, creators can run flows on a schedule. [Skip to main content](#main-content) # About the Identity Migration Beginning in version 2022.1, Tableau Server stores and manages identity information using the Identity Service. Identity migration is a prerequisite for configuring and using [identity pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm). > [!WARNING] > > **Important:** If you don't plan to use the identity pools capability, we recommend that you don't run the identity migration. Running the identity migration without plans to use identity pools won't provide benefits to your Tableau Server deployment. For existing deployments, if upgrading Tableau Server to version 2022.1 (or later) and restoring a backup of Tableau 2021.4 (or earlier), you can start the identity migration after Tableau Server upgrade completes to populate the new Identity Service. The identity migration populates supplemental Identity Service tables for all Tableau Server users, which are then used to authenticate users through the Identity Service. The migration runs in the background and won’t interrupt or interfere with your users' use of Tableau Server. As an administrator, you can monitor and manage the migration, including changing when the migration runs or resolving any potential migration conflicts, through a dedicated **Identity Migration** page available from Tableau Server’s Users page. This page is available for the duration of the migration process. ## Summary of steps for existing deployments For new and existing deployments, you must configure Tableau Server to use the Identity Service after the migration completes to take advantage of the identity structure improvements and configure identity pools. > [Step 1: Before you begin](#step1) > > [Step 2: Enable new schema and sign-in capability](#step2) > > [Step 3: Start the identity migration](#step3) > > [Step 4: Complete the identity migration](#step4) > > [Step 5: Configure Tableau Server to use the Identity Service](#step5) > > [Step 6: Enable identity pools](#step6) ### Key terms - **Identity Service** - a service in Tableau Server 2022.1 (and later) that is responsible for the administration of user identities, including authentication and provisioning. The service uses an identity schema where user identities are represented by Identity Service tables and the legacy "system\_users" table. - **Identity pools** – an identity management tool that uses provisioning and authentication information to enable user access to Tableau Server. Identity pools enable a more centralised and flexible identity management workflow built on the Identity Service for the storage and management of user identities in Tableau Server. - **Legacy identity store mode** - a limited identity schema used by Tableau Server 2021.4 (and earlier), where user identities are only represented by the legacy "system\_users" table. - **Identity migration** - The auditing process that evaluates existing Tableau Server user identities, queries the upstream external identity stores for additional identity information (as appropriate) and imports that additional identity information to the Identity Service. - **External identity store** - an identity store type, external and upstream to Tableau Server, where all identity information is stored and managed by an external directory service (Active Directory (AD) or LDAP). If configured, Tableau Server synchronises to the external directory so that a copy of the identity information exists in Tableau Server. - **Local identity store** - an identity store type provided by Tableau Server. If configured, Tableau Server stores and manages identity information in the Tableau Server repository without any configured external directory for this information. - **System user** - a Tableau Server user. A user corresponds to a sign-in record ("system\_users") in both the Identity Service (through the "system\_users\_identities" table) and legacy identity store mode. A "system\_users" record can potentially have multiple user identities associated with it and enabled to sign in to multiple sites. The link between a "system\_users" record and sites is defined in the "users" table. ### Purpose of the identity migration When you create a Tableau Server backup, identity information is saved in the identity schema used by the version of Tableau Server that the backup was created for. The migration is necessary to populate identity information from the identity schema used in the backup to the identity schema used by the Identity Service. **Identity schema of Tableau Server 2021.4 and earlier** ![A diagram of an application service with two boxes labelled "system\_users" and "domains".](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_tables_legacy.png) The identity schema used by the legacy identity store mode consists of two tables: "system\_users" and "domains." **Identity schema of Tableau Server 2022.1 and later** ![A diagram that illustrates the database tables for the identity service.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_tables.png) The identity schema used by the Identity Service includes the legacy "system\_users" tables and supplemental Identity Service tables (\*\_identity\_stores and \*identities) that capture more identity information. The additional tables help reduce issues that can be caused by upstream changes in the external identity stores. ### What happens during the identity migration When information about user identities are migrated, identity information stored in the legacy "system\_users" table are supplemented with the Identity Service tables. The type of Identity Service tables that the identity information is supplemented with depends on which identity store type Tableau Server is configured for: local, Active Directory (AD) or Lightweight Directory Access Protocol (LDAP). - For **AD** identity store types, Identity Service tables only inherit unambiguous attributes or attributes that are not stored in the same database record. For example, sAMAccountNAme and userPrincipalName (UPN) can be stored in the same name record of a legacy "systems\_users" table, which can occur as a result of a complex series of rules. In most cases, the migration is able to correctly interpret and successfully migrate the user identity. However, if the migration produces ambiguous results, you must either manually acknowledge the ambiguity or manually resolve the conflict using the dedicated Identity Migration page. For more information, see [Resolve Identity Migration Conflicts](https://help.tableau.com/current/server-linux/en-gb/identity_migration_conflicts.htm). - For **LDAP** identity store types, like AD identity store types, Identity Service tables only inherit unambiguous attributes. In most cases, the migration is able to correctly interpret and successfully migrate the user identity. However, if the migration produces ambiguous results, you must either manually acknowledge the ambiguity or manually resolve the conflict using the dedicated Identity Migration page. For more information, see [Resolve Identity Migration Conflicts](https://help.tableau.com/current/server-linux/en-gb/identity_migration_conflicts.htm). - For **Local** identity store types, Identity Service tables inherit the user and domain fields directly. This means, no additional information or manual resolution is required from you. When Tableau Server is configured for this type of identity store, migration of users identities happens after the Tableau Server backup restore process. ## Perform the identity migration ### Step 1: Before you begin Before you begin, identify your Tableau Server version and upgrade method (if applicable) below to determine next steps in the identity migration.
Upgrading FromUpgrading ToUpgrade MethodNext Steps
n/aTableau Server versions: 2022.1.0 (and later), 2022.3.0 (and later), 2023.1 (and later) and laterNew installationGo to Step 2.
Tableau Server versions: 2022.1-2022.1.7, 2022.3-2022.3.9 or 2023.1-2023.1.5Tableau Server versions: 2022.1.8 (and later), 2022.3.10 (and later), 2023.1.6 (and later) and latern/a

Have you enabled the new schema for sign-in (i.e. wgserver.authentication.legacy_identity_mode.enabled -v false)?

Tableau Server versions: 2021.4.x or earlierTableau Server versions: 2022.1.8 (and later), 2022.3.10 (and later), 2023.1.6 (and later) and latern/aGo to Step 2.
Tableau Server versions: 2021.4.x or earlierTableau Server versions: 2022.1.0-2022.1.7, 2022.3.0-2022.3.9 or 2023.1.0-2023.1.5If you’re performing a Blue/Green upgrade or manually upgrading Tableau Server by 1) installing Tableau Server on a new machine and then 2) backing up and restoring Tableau Server using the tsm maintenance (backup and restore) commands, you’re required to take some additional steps to initiate the migration.Go to Troubleshoot Issues with the Identity Migration.
If you’re doing an “in-place” single-server or multi-node upgrade of Tableau Server using the method described here, there are no additional steps required from you to initiate the migration. The migration initiates after Tableau Server upgrade to version 2022.1 (or later) is complete.Go to Step 2.
If you’re manually upgrading Tableau Server by 1) installing Tableau Server on a new machine and then 2) exporting and importing configuration and topology information using tsm settings (export and import) commands, there are also no additional steps required from you to initiate the migration. The migration initiates after the import process completes on the new Tableau Server machine.Go to Step 2.
### Step 2: Enable new schema and sign-in capability Before starting the identity migration, the new identity schema must be enabled by the tsm command [features.NewIdentityMode](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#identity_mode_new), and you must continue allowing sign-in to Tableau Server, while the identity migration process takes place, by the [wgserver.authentication.legacy\_identity\_mode.enabled](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#legacy_identity_mode) or [tsm authentication legacy-identity-mode ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#tsm_identity_mig_legacy) tsm commands. 1. Open a command prompt as admin on the initial node (where TSM is installed) in the cluster. 2. Run the following command: ``` tsm configuration set -k features.NewIdentityMode -v true ``` 3. Run the following commands depending on the version of Tableau Server you're running: - For Tableau Server versions 2022.1.8 (and later), 2022.3.10 (and later), 2023.1.6 (and later) and later: ``` tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled -v true tsm pending-changes apply ``` - For Tableau Server versions 2022.1.0-2022.1.7, 2022.3-2022.3.9 or 2023.1-2023.1.5: ``` tsm authentication legacy-identity-mode enable tsm pending-changes apply ``` **Note:** Running these commands causes Tableau Server to restart. ### Step 3: Start the identity migration **Note:** If you’ve upgraded to Tableau Server versions 2022.1-2022.1.7, 2022.3-2022.3.9 or 2023.1-2023.1.5, the identity migration starts by default and you can skip to [Step 4: Complete the identity migration](#step4) below. To start the identity migration, you must enable the identity migration capability by using the tsm command [features.IdentityMigrationBackgroundJob](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#identity_migration). 1. Run the following command: ``` tsm configuration set -k features.IdentityMigrationBackgroundJob -v true ``` After the identity migration begins, you’ll see a notification in Tableau Server that links you to the Identity Migration page. The Identity Migration page is where you can monitor the status of the identity migration and identity conflicts that need to be resolved. ### Step 4: Complete the identity migration **Note**: Skip this step for new installations. To complete the identity migration, all identity conflicts must be resolved or acknowledged before you can enable the Identity Service for Tableau Server. 1. Sign in to Tableau Server as an administrator. 2. From the left navigation pane, select Users (or All Sites > Users for a multi-site Tableau Server) and then click the Identity Migration page to verify the migration has started. You can monitor and manage its progress using the dedicated Identity Migration page available from Tableau Server’s Users page. For more information, see [Manage the Identity Migration](https://help.tableau.com/current/server-linux/en-gb/identity_migration_manage.htm). 3. Resolve or acknowledge all identity conflicts as described in [Resolve Identity Migration Conflicts](https://help.tableau.com/current/server-linux/en-gb/identity_migration_conflicts.htm) so that the All failures tab displays "0" like in the image below. ![Identity migration summary showing zero failures.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_failures_acknowledge.png) 4. Do _one_ of the following: - To run the identity migration job now, next to the Migration Overview heading, click the Edit Schedule drop-down arrow, then select Run Now. ![Dropdown menu for editing the migration schedule with options to disable or run now.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_overview_runnow.png) - Alternatively, you can wait for the migration job to run during the next scheduled time. 5. After the migration completes, from the Identity Migration page, validate that the Migration Overview shows 100% complete. ![Identity migration progress bar indicating 100% completion.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_complete.png) ### Step 5: Configure Tableau Server to use the Identity Service After the identity migration is complete, configure Tableau Server to use the Identity Service. 1. Open a command prompt as an administrator on the initial node (where TSM is installed) in the cluster. 2. Run the following commands depending on the version of Tableau Server version you are running: - For Tableau Server versions 2022.1.8 (and later), 2022.3.10 (and later), 2023.1.6 (and later) and later: ``` tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled -v false ``` - For Tableau Server versions 2022.1-2022.1.7, 2022.3-2022.3.9 or 2023.1-2023.1.5: ``` tsm authentication legacy-identity-mode disable ``` **Note:** After running one of the commands above, the dedicated Identity Migration page is removed and no longer accessible. The page is accessible only when `tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled` is `true` or `tsm authentication legacy-identity-mode` is enabled. After Tableau Server is configured to use the Identity Service, when users sign in to Tableau Server, Tableau Server searches for their user identities using their identifiers in the configured identity store. From the identifiers, the universal unique identifiers (UUID) are returned and used to match existing Tableau Server user identities. This process then generates sessions for the users and completes the authentication workflow. ### Step 6: Enable identity pools When you’ve completed the identity migration and enabled the Identity Service, enable the identity pools capability in preparation for configuring [identity pools](https://help.tableau.com/current/server-linux/en-gb/identity_migration_manage.htm). 1. Run the following commands: ``` tsm configuration set -k features.IdentityPools -v true tsm pending-changes apply ``` **Note:** Running these commands causes Tableau Server to restart. ## Other articles in this section [Skip to main content](#main-content) # About the Tableau Server Data Dictionary The Tableau Server Data Dictionary includes information about the tables and views in the "workgroup" PostgreSQL database of the Tableau Server repository. This database provides persistent storage for Tableau Server and is primarily intended to support that application. The Data Dictionary is not a complete description of all tables and fields in the database, and is provided for customers who want to query the database for information about usage on Tableau Server. Because the database and its contents are intended to support Tableau Server, the structure and contents may change without warning. This means any custom views you build from directly querying the database could break. > [!IMPORTANT] > > The Data Dictionary is provided with an **As-Is** level of support. For assistance creating reporting based on the dictionary, including writing queries to the database or updating broken workbooks, please engage with the Tableau Community forums. [Open the Data Dictionary](https://tableau.github.io/tableau-data-dictionary/2026.2/data_dictionary.htm "Data Dictionary"). [Skip to main content](#main-content) # About the Virtual Connection Editor Centralise and manage data access for your organisation using these features: - **Virtual connections** – Reusable, managed data access points. - **Data policies** – Use to set row-level security. - **Centralised extracts** – Reuse the same extract multiple times. Use the virtual connection editor to create virtual connections and data policies. The following diagram shows the process: ![Diagram outlines the process of creating a virtual connection and data policy](/tableau/current/en-gb/server-linux/en-gb/Img/dm_vconn_workflow_diagram.png) To get started, select a database, if required. Then, select and drag a table to the Tables tab. [Read full topic](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_overview.htm) ## Related tasks [Add Tables to the Connection](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_add_tables.htm) [About Data Policies](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_about_data_policy.htm) [Create and Test Data Policies](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_create_data_policy.htm) Not finding what you need? Go online to see [all Tableau help](https://www.tableau.com/en-gb/support/help) [Skip to main content](#main-content) # About Virtual Connections and Data Policies Virtual connections are a Tableau content type, along with data sources, workbooks and flows, to help you see and understand your data. Virtual connections provide a central access point to data. Another key feature introduced with virtual connections is data policies, which support row-level security at the connection level, rather than the workbook or data source level. Row-level security data policies are applied to any workbook, data source or flow that uses the virtual connection. A virtual connection can access multiple tables across several databases. Virtual connections let you manage extracting the data and the security in one place, at the connection level. ![Diagram shows how virtual connections centrally manage the connection and security](/tableau/current/en-gb/server-linux/en-gb/Img/dm_vconn_diagram_centralized.png) For information about row-level security options, see an [Overview of Row-Level Security Options in Tableau](https://help.tableau.com/current/server-linux/en-gb/rls_options_overview.htm). Not every virtual connection has an associated data policy. You can also use a virtual connection simply as a central place to manage connection credentials. ## Key terms - Virtual connection. A sharable resource that provides a central access point to data. - Connection. The server name, database and credentials you use to access data. A virtual connection has one or more connections. Each connection accesses one database or file. - Virtual connection table. A table in a virtual connection. - Data policy. A policy that's applied to one or more tables in a virtual connection to filter data for users. For example, use a data policy to apply row-level security to tables in a virtual connection. - Policy table. A fact or data table in a data policy that is filtered. - Policy column. A column that's used to filter the data in the policy tables. A policy column can be in a policy table or in an entitlement table. - Entitlement table. A table that includes both a policy column you can use to filter policy tables and another column you can relate (map) to a column in a policy table. - Policy condition. An expression or calculation that is evaluated for every row at query time. If the policy condition is TRUE, the row is shown in the query. ## Licence virtual connections and data policies Virtual connections and data policies are licensed through Data Management. For information about how Data Management licensing works, see [Licence Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_license.htm). ## Enable virtual connections and data policies Virtual connections and data policies are automatically enabled on Tableau Server and Tableau Cloud with Data Management. ## Permissions Permissions for virtual connections work much like the permissions for other Tableau content. After you publish a virtual connection, anyone can view the connection. However, only the connection creator and administrators can access data using the connection until the connection creator explicitly grants more permissions. When you create a virtual connection, you must set the permissions for the Connect capability to enable other users to connect to data using the virtual connection. The Connect capability allows you to share a virtual connection and allows users to query it. With connect permissions, a user can view the tables in a virtual connection and create content using the tables. For more information, see [Set permissions on a virtual connection](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_publish_save.htm#set-perms). ### Permissions vs. data policies Permissions define what a person can or can't do with a piece of content in Tableau. Permissions are made up of capabilities – the ability to do things like view content, web edit, download data sources or delete content. Permission rules define which capabilities are allowed or denied for a user or group on a piece of content. The interplay between licence level, site role and potentially multiple permission rules factor into the final determination of what a person can or can’t do – their effective permissions. See [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm) for details. Data policies filter the data in a virtual connection, making sure that people see only the data they're supposed to see. A data policy is applied and filters the data when it's viewed in the Tableau content (for example, a workbook or flow). The policy condition in a data policy is a calculation or expression that defines access to the data. User functions are often used to limit access to users or groups. Access can be based on the user name, the group a user belongs to, or a region value. See [Create a Data Policy for Row-Level Security](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_create_rlspolicy.htm) for details. Both permissions and data policies govern access. Simply put, permissions determine which _content_ you can see, access, use or create; data policies determine which _data_ you can see. #### How permissions and data policies work together Tableau permissions are applied to Tableau content first. People can only do the things they have the capabilities to do with Tableau content – data policies don't override Tableau permissions. After permissions are evaluated, the data policy is applied to determine which data in the virtual connection the person can see based on the policy condition. The following example describes the effects of permissions and data policies on a virtual connection that contains salary data: - The virtual connection is in the HR project, which is restricted to Tableau users in the HR group. Anyone outside the HR group can't see content in the HR project, which means they can't browse to, connect to or view the virtual connection. - The virtual connection has Connect permissions granted only to members of the HR Business Partners group. All others in the HR group can see that the virtual connection exists, but they can’t view the data it contains. When they view a workbook that uses that virtual connection, they can't see any data. - The virtual connection also contains a data policy that filters the salary data based on the individual user, so HR Business Partners can see only rows that pertain to employees in their business unit. When they view a workbook that uses that virtual connection, they see data only for their business unit. ## Features and functionality For the manager of data, virtual connections provide: - **Securely managed service accounts.** If you use a ‘service account’ model, now, instead of having to share that service account information with any user who wants to access that data, you can give the service account credentials to the few analysts who are empowered to create virtual connections. - **Agile physical database management.** You must make database changes (for example, a field is added or table name is changed) only one time in the virtual connection, rather than in every piece of content where the data is used. - **Reduced data proliferation.** By centrally managing extract refresh schedules, refreshes are scheduled once, ensuring that anyone who accesses the data from that virtual connection is seeing fresh data. - **Centralised row-level security.** You can create data policies that apply row-level security to both Tableau extracts and live queries at the connection level. The data policies are applied to any workbook, data source or flow that uses the virtual connection. **Note:** Data policies are valid for flow input data, but not for flow output data. Users with access to flow output data will see all of the data, and not only a subset of it that pertains only to them. As the user of data, you benefit from virtual connections knowing that you have: - **Appropriate access** to only the data you should see, because row-level security is already applied to the data. - **Flexibility** to use data that's been curated and secured. The virtual connection stores and shares the connection information. All you have to do is create a data source with a data model specific to your needs. - **Trust** that data is fresh because the extract refresh schedule has already been set. - The ability to **share** content freely, assured that you won’t put security at risk because data policies are always enforced. ## Virtual connection editor workflow The virtual connection editor enables you to create: - Virtual connections, which are a Tableau content type that provides a sharable central access point to data. - Data policies that support row-level security at the connection level. After you create a virtual connection and its associated data policies, you can publish it and set the permissions to share with other users. You can also schedule extract refreshes so that all content that uses the virtual connection is accessing fresh data. The following diagram shows the workflow to create a virtual connection. At any time during the process, you can publish or save a draft of your connection, but the connection must be published before you can schedule extract refreshes or use (or edit) a virtual connection. You must also set permissions before others can use the connection. ![Workflow diagram for creating a virtual connection](/tableau/current/en-gb/server-linux/en-gb/Img/dm_vconn_workflow_diagram.png) Click on a step in the process to go to that help topic. ## Next step The first step is to [Create a Virtual Connection](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_create_conn.htm). ## Other articles in this section [Skip to main content](#main-content) # Access Scopes for Connected Apps Starting with Tableau Server version 2022.3 , using Tableau-connected apps, you can programmatically call and access the Tableau REST API through your custom application on behalf of Tableau Server users. Access to the REST API is enabled by a JSON Web Token (JWT) defined as part of the initial Sign In request. The JWT must contain scopes that define the REST API methods that are available to your custom application and its users through the connected app. Authorise access to the REST API using connected apps to: - Enhance security – using a JWT as a bearer token is inherently more secure than storing and managing admin user passwords through .env files in vaults - Enhance efficiency – using a JWT as a bearer token enables a simplified impersonation with one request to the Sign In endpoint instead of two requests - Extend and automate complex Tableau integrations and backend queries – such as dynamic content retrieval and advanced filtering ## Scope actions Connected apps use scopes that grant access to content or administrative actions through the [REST API methods that support JWT authorisation](#scopes) (below). A scope is a colon-separated string that starts with the namespace `tableau`, followed by the Tableau resource that access is being granted to, such as `datasources`, and ends with the action that is allowed on the resource, such as `update`. The action a scope can take includes: - `create` - `read` - `run` - `update` - `download` - `delete` For example, a scope that allows your custom application to call the [Update Data Source](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_data_sources.htm#update_data_source) method looks like: `tableau:datasources:update` ## Scope types The type of scope you use depends on the content or administrative action that you want to enable. Scopes generally fall into one of the following types: content read, individual, wildcard and cross-category. - **Content read scope:** The content read scope, `tableau:content:read`, enables supported GET methods for Tableau content. When you use this scope, you enable actions across REST API categories. More specifically, using this scope you enable GET methods for data sources, metrics, views, workbooks, projects and sites. Starting in Tableau Server 2023.3, you also specify this scope in a JWT that will be used to create a credentials token for use with the [Metadata API](https://help.tableau.com/current/api/metadata_api/en-gb/docs/meta_api_auth.html). Starting in Tableau Server 2025.1, you also specify this scope in a JWT that will be used to create a credentials token for use with the [VizQL Data Service](https://help.tableau.com/current/api/vizql-data-service/en-gb/index.html). **Note:** To enable GET methods for administrative actions, like users and groups, you can use their individual scopes. - **Individual scopes:** To enable supported content and administrative actions, you can use their individual scopes. An individual scope is generally associated with a single method and REST API category. Examples: - To enable publish or update a data source action, you can use the individual `tableau:datasources:create` or `tableau:datasources:update` scope, respectively. - For administrative actions like add or remove users, you can use the individual `tableau:users:create` or `tableau:users:delete` scope, respectively. **Note:** There are some individual scopes that can enable actions across REST API categories. For example, `tableau:views:download` enables actions in the view data and workbooks REST API categories. - **[Wildcard (\*) scopes:](#wildcard)** For certain scopes, you can replace the action with the wildcard character (\*) to enable supported actions within a specific REST API category. Examples: - You can use the `tableau:projects:*` wildcard scope to enable the create, delete and update actions in the projects REST API category. - You can use the `tableau:users:*` wildcard scope to enable the get/list, add, delete and update actions in the users REST API category. - You can use the `tableau:tasks:*` wildcard scope to enable the get/list, add, delete, update and run actions of extract and subscriptions REST API categories. In addition, this scope enables update data source (if an extract) and update workbook. - **[Cross-category scopes:](#cross)** In addition to the content read scope, there are a few additional scopes that, if used, enable supported actions across different REST API categories. Examples: - If using the `tableau:tasks:run` scope, you enable actions in the data sources and workbooks REST API categories. - Again, if using the `tableau:views:download` scope, you enable actions in the view data and workbook REST API categories. - If using permissions scopes like `tableau:permissions:update` or `tableau:permissions:delete`, you enable actions in the data sources, workbooks and projects REST API categories. ## Summary of how to authorise REST API access The following list summarises the steps to request access to the REST API through a JWT: 1. **Create a connected app** using one of the following methods: - [Configure Connected Apps with Direct Trust](https://help.tableau.com/current/server-linux/en-gb/connected_apps_direct.htm) - [Configure Connected Apps with OAuth 2.0 Trust](https://help.tableau.com/current/server-linux/en-gb/connected_apps_eas.htm) 2. **Generate a valid JWT** – at runtime your custom application will generate a valid JWT, configured with the scopes you have included 3. **Make a [Sign In](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_authentication.htm#sign_in) request** – your custom application will make a Sign In request using the JWT to return a Tableau credentials token and site ID (LUID) 4. **Use the Tableau access token in subsequent requests** – in subsequent REST API calls, use 1) the Tableau credentials token as the [`X-Tableau-Auth`](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_concepts_auth.htm#using_auth_token) header value and 2) the site ID (LUID) in the request URI ### Example For example, suppose you create a connected app using direct trust. Using direct trust, your custom application that calls the REST API generates a valid JWT using the client ID and client secret generated by the connected app. **Scopes in the JWT** To successfully authorise access to the REST API, the JWT must also contain the scopes that define the REST API capabilities. For example, to enable various data source-related methods, you might include the following scopes in the JWT: `"tableau:content:read","tableau:datasources:create","tableau:datasources:update","tableau:datasources:download","tableau:tasks:run"` Or `"tableau:content:read","tableau:datasources:*","tableau:tasks:run"` **Note:** Scope values must be passed as a list type. **Sign In Request URI** To make a call to the REST API, your custom application must first make a Sign In request to generate a Tableau credentials token. ``` POST https://myco/api/3.17/auth/signin ``` **Request body** To authorise REST API access using a JWT, the Sign In request body must contain the valid JWT like the example below. ``` ``` **Response body** The Sign In request produces the following response body, which includes the Tableau credentials token. ``` ``` After the Tableau credentials token is generated, add it to the header of all subsequent REST API requests. **Header** X-Tableau-Auth:12ab34cd56ef78ab90cd12ef34ab56cd All subsequent REST API requests using the Tableau access token are then bounded by the scopes in the JWT. ## REST API methods that support JWT authorisation Scopes for connected apps grants your custom application access to Tableau REST API capabilities on users’ behalf ### How to find scopes You can find the required scope for a JWT-supported method in its properties block in the [Tableau REST API](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api.htm) Help. If a scope is not listed in the method’s properties block, access to that method can’t be controlled by a JWT. For example, a scope that allows you to call the [Query Site](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_site.htm#query_site) method in the Tableau REST API is `tableau:sites:read`. **Notes:** - Both the [Sign In](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_authentication.htm#sign_in) and [Sign Out](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_authentication.htm#sign_out) methods are supported by JWT authorisation but do not require scopes to use beginning in Tableau Server 2023.3. - For scopes supported by the Embedding API v3, see one of the following: - [Configure Connected Apps with Direct Trust](https://help.tableau.com/current/server-linux/en-gb/connected_apps_direct.htm) - [Configure Connected Apps with OAuth 2.0 Trust](https://help.tableau.com/current/server-linux/en-gb/connected_apps_eas.htm) - Starting in Tableau Server 2025.3, a subset of listed scopes also supports REST API authorisation through unified access tokens (UATs). This means connected apps and UAT scopes are the same. ### Type of scopes #### About wildcard (\*) scopes Wildcard scopes use the wildcard character (\*) instead of a specific action, to enable multiple supported actions within a specific Tableau REST API category. #### Examples
ScopeMethods enabled
tableau:datasources:*Enables create, update and update connection data source methods.
tableau:metrics:*Enables query, update and delete metrics actions.
tableau:workbooks:*Enables publish, update, download and preview image workbook actions.
tableau:groups:*Enables create, query, update and delete groups actions.
tableau:projects:*Enables create, delete and update projects methods.
tableau:users:*Enables get/list, add, delete and update users methods.
tableau:tasks:*

Note: This scope is also cross-category.

Enables get/list, add, delete, update and run methods for extracts and subscription tasks.

Enables update methods for data sources for workbooks.

#### About cross-category scopes Cross-category scopes enable multiple supported actions across multiple Tableau REST API categories. #### Examples
ScopeMethods enabled
tableau:content:readEnables read/list methods for Tableau content, including data sources, metrics, views, workbooks, projects and sites.
tableau:tasks:runEnables run methods for data sources, workbooks and extracts.
tableau:views:downloadEnables download methods for view data and workbooks.
tableau:tasks:*

Note: This scope is also wildcard.

Enables get/list, add, delete, update and run methods for extracts and subscription tasks.

Enables update methods for data sources for workbooks.

## Troubleshoot scopes ### 401001 - signin error If you encounter error 401001, the **Sign In** response body is appended with one of the following additional connected apps-specific error codes: 16, 10084, or 10085. For example, in the following response body, "10084” is the connected apps error code you can use to help troubleshoot issues with signing in to Tableau Server using a JWT for REST API authorisation. "summary": "Signin Error", "detail": "Error signing in to Tableau Cloud (10084)" To help resolve the issue, refer to the description of the applicable error code and its potential causes. - **16: Could not find user** – this error can occur because the incorrect "`sub`" (user name) was specified - **10084: Could not parse access token** – this error can occur for the following reasons: - JWT is invalid or there was an unexpected problem - Incorrect "`aud`" (audience) was specified - For direct trust, there was a problem with signing the secret - **10085: Could not fetch secret to verify signature for client ID** – this error can occur for the following reasons: - Incorrect client ID in "`iss`" specified - For direct trust, incorrect "`kid`" (secret ID) was specified - For EAS, unable to fetch keys from the JWKSource ### 401002 – unauthorised access error If you encounter error 401002 and have confirmed that you have the appropriate permissions to make the request, ensure the scope included in the JWT is correct and matches the request you're trying to make. For a list of endpoints and supported scopes, see the [REST API methods that support JWT authorisation](#scopes) section above. [Skip to main content](#main-content) # Access Sites from Connected Clients By default, Tableau Server allows users to access a site directly from a Tableau _client_. It allows this access after the user provides credentials the first time they sign-in from the client. A client in this case is a Tableau application or service that can exchange information with Tableau Server. Examples of Tableau clients include Tableau Desktop, Tableau Prep Builder and Tableau Mobile. Tableau Server establishes a _connected client_ by creating a secure refresh token that uniquely identifies a user when the user signs in from the client. [Skip to main content](#main-content) # Access Status Remotely **Note**: The information in this article refers to the Tableau Server status page. For information about the Tableau Server status page and the TSM status page, see [View Server Process Status](https://help.tableau.com/current/server-linux/en-gb/service_viewstatus.htm). You must be a Tableau Server administrator to see the Server Status page, but you can grant remote access to other computers to allow access to a machine-readable (XML) version of the Status table by non-admin users and by computers other than the initial Tableau Server node. One reason you might do this is as part of a remote monitoring process. To grant remote access to Tableau Server status: 1. Open a command prompt as an administrator and type the following: ``` tsm configuration set -k wgserver.systeminfo.allow_referrer_ips -v ``` In the above command, `` is the IPv4 address of the computer for which you want to enable remote access to the Tableau Server status XML. For example: ``` tsm configuration set -k wgserver.systeminfo.allow_referrer_ips -v 10.32.139.31 ``` If you are enabling remote access for more than one computer, use commas to separate each IP address. ``` tsm configuration set -k wgserver.systeminfo.allow_referrer_ips -v 10.32.139.31,10.32.139.35 ``` 2. Commit the configuration change: tsm pending-changes apply If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). Now, users of computers with the IP addresses that have been added can view Tableau process status by entering the URL `http:///admin/systeminfo.xml` in a browser or from a command line (for example, `curl http://jsmith/admin/systeminfo.xml`). If Tableau Server has been configured to work with a load balancer or proxy server, use the hostname or IP address of the initial Tableau Server node to access the XML version of the status page. For details on the XML that is returned, see [Get Process Status as XML](https://help.tableau.com/current/server-linux/en-gb/service_status_xml.htm). [Skip to main content](#main-content) # Access Tableau Content in Microsoft 365 The Tableau app for Microsoft 365 is available in Teams, Word and PowerPoint. With the Teams app, you can interact with views (visualisations) and metrics and share them in messages, channels and meetings. With the Word and PowerPoint add-ins, you can add image snapshots of views and metrics to your documents and slides and refresh those snapshots to keep them up to date. For the Tableau app to be available in Microsoft 365, your admin must deploy it and connect it to your Tableau site. For information about installing the Tableau app as an admin, see [Set Up the Tableau App for Microsoft 365](https://help.tableau.com/current/server-linux/en-gb/teams_set_up.htm). Note: If you’ve set the language in Tableau or Microsoft 365 to a Tableau-supported language other than English (US), you might see text in English that isn’t localised. ## Use the Teams app If your admin didn’t pre-install the app for you but has deployed it for your organisation, you can install the app yourself. To learn how, see [Add an app to Microsoft Teams](https://support.microsoft.com/en-us/office/add-an-app-to-microsoft-teams-b2217706-f7ed-4e64-8e96-c413afd02f77) in the Microsoft Teams documentation. The Teams app has three tabs: Tableau, Pulse and Configuration. The Tableau tab shows the views that you’ve added as favourites. The Pulse tab shows the metrics that you follow and a summary of insights about those metrics. Be aware that the Pulse tab appears only for Tableau Cloud sites. The Configuration tab lets you set the site that Microsoft Teams checks when you search for content and, if you’re a Tableau admin, add and remove site configs. If you don’t have any favourite views or followed metrics, you won’t see any content in the app. Sign in to your Tableau site directly to add views as favorites and to follow metrics. For more information, see [Mark Favourites](https://help.tableau.com/current/pro/desktop/en-gb/favorites.htm) and [Follow Metrics](https://help.tableau.com/current/online/en-gb/pulse_explore_metrics.htm#follow-metrics). Though it’s possible to add other types of content as favourites, none of your favourite content besides views appears in the Tableau app. If you want to see all of the views in a workbook, add each individual view to your favourites. ### Explore content in Teams On the Tableau or Pulse tab, click on the card for a view or metric to open the full interactive version. The interactive view or metric allows you to see more details about the data and filter the data based on different dimensions or time ranges. #### Search for content If you know the name of a view or metric, you can search for it in the Tableau app. You can also enter the URL to a view in the search bar to access specific content or custom views. 1. On the Tableau or Pulse tab, select the search icon. ![Tableau app search entry point](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_search.png) 2. Enter the name of the view or metric. 3. Select the open button next to the view or metric name to go to the interactive version. #### Follow a metric Each metric represents a unique set of filters. When you filter an existing metric, you create a new metric if one doesn’t already exist with those filters. Follow the new metric to see it on your Pulse tab and in your insight summary. 1. On a metric, select the follow (subscribe to this metric) icon. ![Follow icon on a metric](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_follow.png) You can unfollow the metric by selecting the button again. #### Share content 1. On a view or a metric, select the share icon. ![Share icon](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_share.png) 2. Select the person, group chat or channel to share with. 3. Select Share. #### Switch sites 1. On the Tableau or Pulse tab, select the site name from the breadcrumb menu. If more than one site is connected to the Tableau app, you see a list of sites. ![Site switch options](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_switch_site.png) 2. Select the site that you want to switch to. ### Add Tableau content to channels and meetings #### Pin content in a channel tab 1. In the channel where you want to pin Tableau content, select the + icon to add a tab. ![Add a channel tab options](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_channel_tab.png) 2. From the list of apps, select the Tableau app. 3. Select the content to pin. To pin a custom view, select the search button and enter the view URL. You can pin one view and up to five metrics per tab. To pin more Tableau content, add a second tab. ![Tableau views and metrics to pin](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_pin_content.png) 4. Select Save. 5. Optionally, to rename the tab, select the dropdown menu on the tab, then select Rename. ![Rename option for the Tableau tab](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_rename_tab.png) #### Add Tableau content to a meeting You must first create a meeting and then add Tableau content. You can't add third-party apps during the creation of a meeting. 1. In the Calendar app, find the meeting that you want to add Tableau content to, then select Edit. 2. Select More options. 3. From the toolbar, select Apps. 4. From the list of apps, select the Tableau app. 5. Select the content to pin. 6. Select Save. 7. Save the changes to the meeting. 8. After you start the meeting, select the Tableau tab. This opens the Tableau content in a side panel, which is visible to only you. 9. On the side panel, select the share to stage button. This makes the content visible to others in the meeting. Be aware that the content that you share appears to others as you see it, similar to how screen sharing works. If there’s row-level security on the data, everyone in the meeting sees your view of the data. ### Share Tableau content in messages If you know the URL for a view or metric, you can quickly share that content by pasting the URL into a message. The Tableau message extension turns the link into a card that shows the content title and a thumbnail, with a button to open the full interactive view or metric. If you don’t know the URL of the content that you want to send, you can search for content to share. 1. On a message, select the + (Actions and apps) icon. 2. Select the Tableau app. 3. Search your Tableau site for the view or metric that you want to share. 4. Select the view or metric. It takes a moment to generate the card for this content. ![Metric card in a Teams message](/tableau/current/en-gb/server-linux/en-gb/Img/teams_app_metric.png) 5. Send the message. ## Use the Word and PowerPoint add-ins The Tableau add-in appears on the Home tab in Microsoft Word and PowerPoint. To learn how to access an add-in, see [Start using your Office Add-in](https://support.microsoft.com/en-gb/office/start-using-your-office-add-in-82e665c4-6700-4b56-a3f3-ef5441996862) in the Microsoft documentation. Note that for the Tableau app to be available for you to use, your Microsoft 365 admin must first deploy it and connect it to a Tableau site. ### Add a visualisation or metric to documents and slides With the Tableau add-in, you can add an image snapshot of a visualisation or metric to your documents and slides. Note that Tableau Pulse metrics are available only for Tableau Cloud. These images show the time at which they were added and the user who added them, and the image links to the content in Tableau Cloud or Tableau Server. The image is the same for all users, so if there’s row-level security applied to the data, the image shows the view of the data that’s specific to the user who added the image. If other users open the image link in Tableau Cloud or Tableau Server, those users see the interactive view or metric with their credentials applied. 1. From the Home tab, select the Tableau add-in. 2. Select Insert Viz Image or Insert Pulse Image. ![Insert viz or metric options for Microsoft 365 add-in](/tableau/current/en-gb/server-linux/en-gb/Img/microsoft_365_add_in.png) 3. Either search for the name of the view or metric that you want to add, or select from your favourite views or followed metrics. 4. On the preview of the view or metric, select Insert Image. If you have the Tableau site URL of the content that you want to add, you can instead choose Insert Content from URL. #### Use a custom view to show filtered data To add a filtered view of the data, insert a custom view. 1. Open the view in Tableau Server or Tableau Cloud. 2. Filter the view to show the data that you want to include in the snapshot, then create a custom view. For more information, see [Use Custom Views](https://help.tableau.com/current/server/en-gb/customview.htm). 3. Open the Tableau add-in in Word or PowerPoint. 4. Select Insert Content from URL, then paste in the URL for the custom view. ### Refresh a visualisation or metric The image is a snapshot taken at the time that you add it. If the image no longer represents the latest data, refresh it. 1. From the Home tab, select the Tableau add-in. 2. Select Refresh Data. The Tableau add-in identifies all of the Tableau images in your document or slides. 3. Select the content that you want to refresh, then select Refresh Selected. [Skip to main content](#main-content) # Actions by All Users The Actions by All Users view gives you insight into how your Tableau Server installation is being used. You can filter the view by actions and by time range. Server administrators can filter by site. The Total Users count shows the number of users who have performed an action. This value is not affected by any filtering. The Active user count shows the number of active users who have performed one of the selected actions. ![A line chart displays the actions taken by users on a server over a seven-day duration.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_user_access.png) Up to three separate groups of time lines show you how users are using Tableau Server over a time range you specify (the default is the last 7 days). If no actions are selected for a particular group, that group does not display. Possible groups are: - Access & Interactions – This shows you sign in (log on) activity, view access and data source use. - Publish & Download – This shows publishing and downloading of flows, workbooks and data sources. - Subscriptions – This shows counts of subscription email sent for workbooks and views. It also shows the counts of flow runs. Use the legend at the bottom to view a subset of the displayed actions. Click a single action to highlight the line for the action, or **Ctrl + Click** on multiple actions to highlight more than one. To clear the selection and display all the selected actions, click on any action in the legend. [Skip to main content](#main-content) # Actions by Recent Users The Actions by Recent Users view shows you which signed-in users have been active on Tableau Server over the past 24 hours. This can be useful if you need to perform some maintenance activity and want to know how many and which users this will affect, and what they are doing on Tableau Server. The view Active, Recently Active, and Idle users that are currently signed in to Tableau Server. For this view, an active user is one who took an action in the last 5 minutes, a recently active user is one who last took an action within 30 minutes, and an idle user is one who last took an action more than 30 minutes ago. The actions are displayed in the lower section of the view. ![A table with two sections. The first section contains a list of users, their associated site names and the time of their last activity. The second section displays a scatter plot of user actions over time.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_recentuser.png) Select a user to see only the actions that user performed recently. Hover over an action to see details of the action. ![Tooltip shows the type of action that a user last performed and when the action happened.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_user_recent01.png) [Skip to main content](#main-content) # Actions by Specific User The Actions by Specific User view gives you insight into how individual users are working in your Tableau Server installation. You can filter the view by user name, actions, and time range. Server administrators on multi-site installations can filter by site. ![Viz displays a user's server actions over the past week, with distinct lines for each type of action, including access and interactions, publish and downloads, and subscriptions.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_user_specific.png) Up to three separate groups of time lines show you how a selected user is using Tableau Server over a time range you specify (the default is the last 7 days). If no actions are selected for a particular group, or if no actions were taken, that group does not display. Possible groups are: - Access & Interactions – This shows you sign in (log on) activity, view access and data source use. This means any interaction with a Data Source by the selected user, including extract refreshes scheduled by that user, or the user accessing a workbook that is associated with that data source. - Publish & Download – This shows publishing and downloading of flows, workbooks and data sources. - Subscriptions – This shows counts of subscription email sent for workbooks and views. It also shows the counts of flow runs. A bar graph at the bottom of the view shows which items the selected user is using. Use the legend at the bottom to view a subset of the displayed actions. Click a single action to highlight the line for the action, or **Ctrl + Click** on multiple actions to highlight more than one. To clear the selection and display all the selected actions, click on any action in the legend. [Skip to main content](#main-content) # Activate and Register Tableau Server Before you can use Tableau Server, you must activate and register it. Tableau Server requires at least one product key that both activates the server and specifies the number of licence levels you can assign to users. You can access your product keys from the [Customer Portal](https://customer.tableau.com/). If you need to activate Tableau Server on a computer that is offline, see [Activate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/activate_off.htm). If you need to activate additional product keys to add capacity to an existing Tableau Server installation, see [Add Capacity to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/capacity_add.htm). ## Prerequisite Before proceeding with the procedures in this topic, complete the following prerequisites as outlined in [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm): - [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm) - TSM uses port 8850. If you are running a local firewall, open port 8850. See [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 1. [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). The account you use must have administrative privileges on the computer where TSM is installed. 2. On the **Activate** page, Enter or paste your product key and click **Activate Product Key**. **Note:** In versions prior to 2023.3.0 an option to activate a trial licence displays. This option was retired (removed) starting version 2023.3.0. To learn about options for trying Tableau Server, contact your account representative. After your product key is activated, it appears under **Activated Product Keys**. ![A Tableau Server activation screen, featuring a field for the 20-character licence product key entry.](/tableau/current/en-gb/server-linux/en-gb/Img/install_01_activate.png) 3. To activate another product key, type over the key you just entered to add the new product key, and then click Activate Product Key. After your product key is activated, it appears under Activated Product Keys. Continue adding product keys in this manner until you're done. 4. When you’re finished activating product keys, click Next. **Note:** If the product keys you have activated don’t have the necessary capacity, such as not enough cores or only a Viewer role product key, Tableau Services Manager displays the Insufficient licences applied dialog box. Click Activate Another Product Key to add another product key and increase capacity on your Tableau Server installation. ![A notification that the activation of product keys for Tableau Server deployment is insufficient.](/tableau/current/en-gb/server-linux/en-gb/Img/install_01_insufficient_product_keys.png) 5. On the Register page, enter your information into the fields and click Register. ![Registration step of Tableau Server activation wizard, with required fields for populating contact information, company information and regional details.](/tableau/current/en-gb/server-linux/en-gb/Img/install_02_register.png) ### Activate Tableau Server To activate Tableau Server for production use, you must have a product key. To activate a product key, run the following command: ``` tsm licenses activate -k ``` To activate a two-week trial, run the following command: ``` tsm licenses activate -t ``` If you are unable to activate Tableau, for example, if you get an error like this: License Server not available see [Activate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/activate_off.htm). **What if I get an access denied error when I attempt to run TSM commands?** The account that you use to configure the rest of the installation must be a member of the `tsmadmin` group that was created during initialisation. To view the user accounts in the `tsmadmin` group, run the following command: `grep tsmadmin /etc/group` If the user account is not in the group, run the following command to add the user to the `tsmadmin` group: `sudo usermod -G tsmadmin -a ` ### Register Tableau Server After activation, you need to register Tableau Server. To do this, create a registration file and then pass it as an option with the `tsm register` command. 1. Generate a template that you can edit by running the following command: `tsm register --template > /path/to/.json` 2. Edit the template file to create your completed registration file. Here is an example of a registration file in the required format: ``` { "first_name" : "Andrew", "last_name" : "Smith", "phone" : "311-555-2368", "email" : "andrew.smith@mycompany.com", "company" : "My Company", "industry" : "Finance", "company_employees" : "500", "department" : "Engineering", "title" : "Senior Manager", "city" : "Kirkland", "state" : "WA", "zip" : "98034", "country" : "United States", "opt_in" : "false", "eula" : "accept" } ``` **Notes:** - The `opt_in` field indicates your preference for receiving marketing communications from Tableau. The default value is `false` for many countries. Country-specific laws can impact the default for this field. For more information, see [Privacy Information](https://www.salesforce.com/ap/company/privacy/) on the Salesforce website. - The `eula` field confirms you accept the End User Licence Agreement (EULA). The default value is `accept`. You must accept the EULA to use Tableau Server. If you don't accept, you can't run Tableau Server. 3. After saving changes to the file, pass it with the `--file` option to register Tableau Server: `tsm register --file /path/to/.json` For example: `tsm register --file /usr/share/tableau-reg-file.json` If you have a product key for Data Management or Advanced Management, you must activate that key to use the additional functionality. Product keys for these licences should only be activated after at least one capacity product key has been activated on the server. - For licence information on Tableau Data Management, see [Licence Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_license.htm). - For licence information on Tableau Advanced Management, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). ## Next step - [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm) ## Other articles in this section [Skip to main content](#main-content) # Activate Tableau Server Offline When you install Tableau Server, you have to activate at least one product key, but we recommend that you activate all Tableau Server licences found in the Tableau Customer Portal. Doing this activates the server, and specifies the number of licence levels you can assign to users. For offline activations on Tableau Server with ATR, you can use either the Offline Activation ID or Product Key Name listed in the Offline Activation ID field in the Tableau Customer Portal. For information about finding the right key, see the [Find the Correct Key to Activate on Tableau Server](https://help.salesforce.com/s/articleView?id=001464376&type=1) Knowledge Article. There are also times you may need to activate licences after Tableau Server is installed, for example, if you add capacity to your server, or get a new product key. If you don't have your product key, you can get it from the [Tableau Customer Account Centre](http://myaccount.tableau.com/). **Note:** Activating any product key after Tableau Server has already started will require a Tableau Server restart for the changes to take effect. In most cases, you can activate your key directly from Tableau Server, either during installation, or later, using the Tableau Services Manager (TSM) Licences page, but there are some circumstances that don't allow you to do this. If your computer is not connected to the internet for example, or has a firewall that restricts access outside your intranet. In these cases you need to do an offline activation. Tableau Server in a Container only supports licence activation using Server ATR. Offline activation is not supported. ### Offline activation and login-based licence management (LBLM) Beginning in Tableau Server version 2023.1.0, offline activation is supported for LBLM when your server is configured to use the Authorisation-to-Run (ATR) service. You can only configure Tableau Server to use the ATR service during a new installation. Upgrading customers with existing server installations need to install a new instance of Tableau Server version 2023.1.0 or later and restore a backup of their existing installation to that new instance. For information on this process, see [Using a Blue/Green approach for upgrading Tableau Server](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-blue-green.htm). For more information about ATR service, see [Activate Tableau Server Using the Authorisation-To-Run (ATR) Service](https://help.tableau.com/current/server-linux/en-gb/atr_service.htm). ### Offline activation and updatable subscription licences (USL) Offline activation of updatable subscription licences requires special steps. For details, see [Activating USL in Offline or Disconnected Environments](https://help.tableau.com/current/server-linux/en-gb/license_usl.htm#USLActivatingOffline). There are two scenarios in which you may need to do an offline activation: - Offline activation during installation – To complete an offline activation when you are installing Tableau Server. - Offline activation of licences after install – To complete an offline activation after your server is installed and running. ## Offline activation overview Offline activation of Tableau Server depends on your method of activation (with or without the Authorisation-to-Run service, ATR). **Note**: When using ATR and activating a USL licence for Tableau Server, you can use either the Product **Key Name** or the **Offline Activation ID**. We recommend using the Key Name because you do not need to determine the Offline Activation ID. Offline activation _without_ ATR involves the following steps: 1. Generate an offline activation request file. 2. Copy the offline activation request file to a computer with internet access. 3. Upload the offline activation request file to the [Tableau activation website](https://www.tableau.com/en-gb/support/activation). 4. Download the resulting offline activation response file from the website. You'll use this file to activate Tableau Server ### Offline activation file name changes Beginning in Tableau Server version 2023.1, the Tableau licensing system supports two underlying licensing technologies. From an administrative perspective, the only configuration difference between the two systems is the file types that are generated and consumed for offline activation. The licensing technology is determined during the initial installation of Tableau Server and cannot be changed after installation. We refer to the legacy (and still supported) version of licensing technology as FlexNet. The latest version of the technology is referred to as ATR. For more information, see [Activate Tableau Server Using the Authorisation-To-Run (ATR) Service](https://help.tableau.com/current/server-linux/en-gb/atr_service.htm). The following table describes the file naming nomenclature for each technology. The table also includes the generic reference.
Generic file nameServer ATR file namesFlexNet file names
OfflineActivationRequestOfflineActivationRequestFile_yyyyMMdd.hhmmss.jsonTableauOfflineActivationRequest.tlq
OfflineActivationResponseOfflineActivationLicensingAtrs.zipactivation.tlf
**Note:** Since this documentation supports multiple versions of Tableau Server, we will use the generic file name references (OfflineActivationRequest and OfflineActivationResponse) for the rest of this topic. You can identify the licensing technology your Tableau Server installation uses according to the file type generated in the steps that follow. If you attempt to activate your product key from the TSM licences page and see a dialog that says online activation is unavailable, you can activate the key offline. The offline activation process must be completed once for each product key. 1. Click Activate Licence Offline. ![A dialog box that states online activation is not available and offers troubleshooting methods.](/tableau/current/en-gb/server-linux/en-gb/Img/server_setup_offline_activate02.png) 2. Create an offline activation request file (OfflineActivationRequest) for the product key. Create an OfflineActivationRequest file you will upload to the Tableau activation website. If your product key is not pre-filled in the form, enter your key and click Create Offline File to generate an OfflineActivationRequest file on the local computer. ![How to create, upload and submit an offline file.](/tableau/current/en-gb/server-linux/en-gb/Img/server_setup_offline_activate04.png) Copy the OfflineActivationRequest file to a computer with internet access. You need to upload this file to the Tableau activation website to generate an activation response file. 3. Upload and submit the OfflineActivationRequest file. You will upload and submit the OfflineActivationRequest file to the Tableau activation website. This automatically generates an activation response file (OfflineActivationResponse) that you can download and copy back to the Tableau Server computer. 1. On the computer where you copied the OfflineActivationRequest file, open a browser and go to [http://www.tableau.com/en-gb/support/activation](http://www.tableau.com/en-gb/support/activation) to open the Tableau Support Activation page. 2. On the Offline Activation page, click Choose File to select the OfflineActivationRequest file. 3. Click Upload Activation File to submit the file to the Tableau activation website. 4. Click the `here` link to download the OfflineActivationResponse file to your computer. ![Offline activation success message.](/tableau/current/en-gb/server-linux/en-gb/Img/server_setup_offline_activate08.png) 5. Copy the OfflineActivationResponse file to the computer where Tableau Server is installed. 4. Upload the OfflineActivationResponse file. On the Tableau Server computer, click Upload Activation File to upload the OfflineActivationResponse file to Tableau Server. When you do this successfully, the Activate Product Key button is enabled. ![A form that guides you to upload an activation file.](/tableau/current/en-gb/server-linux/en-gb/Img/server_setup_offline_activate09.png) 5. Click Activate Product Key to complete the offline activation. 6. (Skip this step if you are installing Tableau Server for the first time.)  Restart Tableau Server for licensing changes to take effect. ### Step 1. Log in to Tableau Services Manager Before you can proceed you must log in to Tableau Services Manager (TSM). To log in to TSM, run the following command: `[tsm login](https://help.tableau.com/current/server-linux/en-gb/cli_login.htm) -u ` #### What if I can't log in? The account that you use to configure the rest of the installation must be a member of the `tsmadmin` group that was created during initialisation. To view the user accounts in the `tsmadmin` group, run the following command: `grep tsmadmin /etc/group` If the user account is not in the group, run the following command to add the user to the `tsmadmin` group: `sudo usermod -G tsmadmin -a ` After you have added the user to the `tsmadmin` group, run the `tsm login` command. ### Step 2. Generate an offline activation request file 1. On the initial node, open a terminal session. 2. Type this command to get your offline activation file:  `tsm licenses get-offline-activation-file -k -o ` You can get your product key from the [Tableau Customer Portal](http://customer.tableau.com). The target directory must already exist. To identify which key to use for offline activations, see the [Find the Correct Key to Activate on Tableau Server](https://help.salesforce.com/s/articleView?id=001464376&type=1) Knowledge Article. **Note**: When using ATR and activating a USL licence for Tableau Server, you can use either the Product **Key Name** or the **Offline Activation ID**. We recommend using the Key Name because you do not need to determine the Offline Activation ID. 3. Copy the offline activation file (OfflineActivationRequest) from the target directory to a computer that has internet access. ### Step 3. Upload the offline activation request to the Tableau activation website 1. On the computer that has internet access, go to the Tableau [Product Activations](http://www.tableau.com/en-gb/support/drivers/activation) page. 2. Complete the instructions to upload your OfflineActivationRequest file. This creates an activation response file (OfflineActivationResponse). 3. Download the OfflineActivationResponse file from the Tableau activation website. ### Step 4. Initialise or activate your licence 1. Copy the OfflineActivationResponse file to a location accessible from the Tableau Server computer. 2. Run the following command:  tsm licenses activate -f **Note:** When using ATR to activate Tableau Server, `` should point to the packaged OfflineActivationResponse `.zip` file. Do not unzip the OfflineActivationResponse file prior to running this command. 3. (Skip this step if you are installing Tableau Server for the first time.)  Restart Tableau Server for licensing changes to take effect:  tsm restart 4. (Optional) To verify that all licences are activated, you can run this command: tsm licenses list If you have completed the steps above, you should see a success message: Activation successful. Tableau Server is activated. If you need additional assistance, contact [Tableau Technical Support](http://www.tableau.com/en-gb/support/request). [Skip to main content](#main-content) # Activate Tableau Server Using the Authorisation-To-Run (ATR) Service You can use the Server authorisation-to-run (ATR) service to activate Tableau Server deployed in on-premises, cloud, container or virtual environments without running out of licence activations. The ATR service achieves this by providing short-term leases of configurable duration (ATR duration) which ties the licence to the device until product key expiry date is met. ATR handles activation capacity tracking so if there is an underlying hardware change, maximum activation errors don't occur. This option is recommended for all Tableau Server installations. If you are activating Tableau Server online (this is the default), Tableau Server connects to various internet locations for licensing purposes. For more information, see [Communicating with the Internet](https://help.tableau.com/current/server-linux/en-gb/plan_network.htm). If you are activating Tableau Server offline, you can still use ATR service to activate, however there are slight differences in how ATR duration works with offline activations. For more information, see [ATR Duration for Offline Activations](#ATR2). We recommend using the Server authorization-to-run (ATR) service to simplify server licensing. If you chose not to use Server ATR, you will use the legacy licensing technology which does not provide the dynamic management capabilities of Server ATR. Your choice of activation type will be permanent for this installation of Tableau Server. To change this later, you must backup, remove and then reinstall Tableau Server. ## How Tableau Server ATR works When ATR service is enabled, Tableau Server periodically contacts a Tableau-hosted authorization-to-run (ATR) service to verify that Tableau is authorised to run, based on its licence and the length of the authorisation window (ATR duration or lease). As long as this communication is successful, Tableau runs without any impact to the user. When Tableau Server is activated offline and ATR is enabled, Tableau Server can not periodically contact the ATR service to verify Tableau is authorised to run. Instead, Tableau Server internally tracks the ATR Duration from when the product key was first activated offline. ### ATR Duration By default, an instance of Tableau Server is given a 5 day ATR lease (duration) to successfully contact the ATR service for verification. This means that after the initial authorisation, Tableau Server could be used for 5 days without network connection before the activation expired. The authorisation checks between Tableau Server and ATR service are attempted regularly, and each time a check is successful, the ATR duration is reset to its full length. The authorisation check frequency varies, and is dependent on the ATR duration:
ATR durationAuthorisation check frequency
< 4 hoursevery 15 minutes
< 24 hoursevery 1 hour
< 7 daysevery 12 hours
> 7 daysevery 24 hours
For example: If the ATR duration is 48 hours, Tableau Server will contact the ATR service every 12 hours to complete an authorisation check and the ATR duration is reset to 48 hours after each successful authorisation check. The ATR duration will then begin to count down to 0 until the next authorisation check. If the Tableau Server machine is shut down or there is no internet access, Tableau Server can no longer contact ATR service. If this happens, the ATR duration will not be reset to 48 hours and will continue to count down to 0. If Tableau Server is not started or cannot communicate with the ATR service before the ATR duration reaches 0, the licence will expire and you must activate the licence again. **Note:** You should keep your Tableau Server running as much as possible. If Tableau Server cannot successfully complete an authorisation check within the ATR duration period, ATR service will reclaim the license lease and then you'll need to reactivate your licence. To view the ATR duration, see [tsm licenses atr-configuration get](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMAtr-configuration-get). ## Set or change the Server ATR duration When using Server authorisation-to-run (ATR) to activate Tableau Server, you can change the ATR duration and use a setting different than the default of 432000 seconds (5 days). If you're creating a test server or virtual machine (VM) that will have a short lifespan, you might want to shorten the ATR duration. Similarly, if you have a server that you plan to keep for a long time, you might want to lengthen the ATR duration. If you start up new VMs frequently, reducing the ATR duration can allow older VMs to release their capacity, allowing it to be used by new VMs. On the other hand, if you increase the ATR duration, renewal cycles will be longer but capacity is not released as often. To change the ATR duration, you use the `tsm licenses atr-configuration set –duration ` command. For more information, see [tsm licences atr-configuration set](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMAtr-configuration-set).
ATR duration in secondsMinimumMaximumDefault
Tableau Server (container)3600 (1 hour)2593000 (30 days)14400 (4 hours)
Tableau Server (non-container)3600 (1 hour)7776000 (90 days)432000 (5 days)
##### Tableau Server on Linux To set ATR duration and manually start the Activation Service, run the following commands: 1. On the initial node, open a terminal session, and then use the following commands: 1. `tsm licenses atr-configuration set -–duration ` 2. `tsm pending-changes apply` 3. `sudo su -l tableau` 4. `systemctl --user stop activationservice_0` 5. `systemctl --user start activationservice_0` 2. Verify that the Activation Service is running by using the `tsm status -v` command. Tableau Server Activation Service should be listed as "is running". If the Activation Service is not started, run: `systemctl --user restart activationservice_0` ##### Tableau Server in a Container To set ATR duration and manually start the Activation Service, run the following commands: 1. On the initial node, open a terminal session, and then use the following commands: 1. `tsm licenses atr-configuration set -–duration ` 2. `tsm pending-changes apply` 3. `sudo su -l tableau` 4. `supervisorctl -c /var/opt/tableau/tableau_server/supervisord/supervisord.conf stop activationservice_0` 5. `supervisorctl -c /var/opt/tableau/tableau_server/supervisord/supervisord.conf start activationservice_0` 2. Verify that the Activation Service is running by using the `tsm status -v` command. Tableau Server Activation Service should be listed as "is running". If the Activation Service is not started, run: `supervisorctl restart activationservice_0` **Note:** For Tableau Server running in a container, the TTL Start and TTL End values reflect the current lease being used by Tableau Server. Container leases that are shorter than a day are refreshed hourly, but longer leases can take up to 24 hours to renew. ## ATR Duration for Offline Activations When Tableau Server is activated offline, the ATR duration is set to either one year from the day the product key was activated offline, or to the renewal date of the product key, whichever comes first. Once the ATR duration reaches the set date, the product key will become deactivated. Since Tableau can not communicate with the ATR service in offline environments, there are no authorisation checks. If you use the `tsm licenses atr-configuration get` command to view the ATR duration for offline activations, the result will be `0`, which is expected. To view ATR duration for offline activations, use the `ATRDiag -product "Tableau Server"` command instead. For more information, see [ATRDiag.exe Command Line Reference](https://help.tableau.com/current/server-linux/en-gb/atrdiag.htm). In the resulting output, the `TTL End` date is the date the ATR duration ends. ### Updating ATR duration in offline environments Because authorization checks are not possible in an offline environment, the ATR duration is set to a fixed value as described above. To avoid unplanned Server downtime, be aware of the ATR duration in your installation, and plan to update the ATR duration before it expires. How you do this depends on whether you have a USL key or a non-USL key: - **USL keys:** If you have a USL key, follow the instructions here: [USL offline licence entitlement updates](https://help.tableau.com/current/server-linux/en-gb/license_usl.htm#USL). - **Non-USL keys:** If you have a non-USL key, offline activation with ATR is not supported. Manual steps must be taken. For more information, [see Tableau Server 2023.1+: Offline Licence Deactivation with ATR Not Available](https://help.salesforce.com/s/articleView?id=001534333&type=1) knowledge article. ## Move a Server ATR product key to another Tableau Server If you want to stop using your product key on an existing Tableau Server and use it on a new installation of Tableau Server, you can move your Server ATR product key. You might want to move product keys when: - Switching between development or pre-production environments. - Moving Tableau Server to upgraded hardware. - Moving Tableau Server to cloud infrastructure. - Using an ephemeral Tableau Server, such as a virtual machine (VM) or container. ## Deactivate a product key for reuse on another Tableau Server ### Deactivate a product key in version 2021.4 and later You can remove product key(s) that were activated using Server ATR when you want to reclaim licence capacity from one Tableau Server installation and use it on another. For more information about reclaiming a product key, see [Deactivate Product Key](https://help.tableau.com/current/server-linux/en-gb/license_deactivate.htm). ### Deactivate a product key in version 2021.3 and earlier When ATR service is used to activate a Tableau Server licence you cannot manually deactivate the licence. You can have one production and two non-production installations per licence. If you have unused activations on a licence, you can activate the same licence on another Tableau Server. If you’re out of activations, you can still activate the licence after the ATR lease expires by taking the following steps: 1. Disable the existing Tableau Server from refreshing its leased activation. You can do this using any of the following methods: - Shut down your existing Tableau Server. - Uninstall the existing Tableau Server. - Disconnect the existing Tableau Server from the Internet by unplugging the ethernet cable or disconnecting Wi-Fi. 2. After the ATR lease expires, you can reuse the licence on another Tableau Server. 3. On the new computer, install Tableau Server. When prompted, activate Tableau Server using the same licence. [Skip to main content](#main-content) # Activity Log If you have Tableau Server with Advanced Management, Activity Log files are automatically recorded for detailed analysis and auditing. Use these logs to: - **View and analyse event data:** Access detailed event data for Tableau Server, capturing compliance information and tracking activities across your sites. All events include a timestamp and the ID of the actor and, if relevant, the ID of the affected content. - **Audit permission changes:** Track and audit permission changes, such as adding or removing users from a group, moving content between projects and explicitly changing content permissions. This is essential for implementing robust controls for compliance purposes. - **Supplement Admin Views:** Enhance the information provided by Admin Views to track site activity and usage metrics. You can integrate Activity Log data with monitoring tools, such as Splunk or Amazon EventBridge, to query log fields and answer questions such as the last ten actions taken by a user, who last performed an event on content and what the last action on content was. ## Accessing Activity Log events Activity Log events are stored in the `vizportal` and `vizqlserver` folders on the local hard drive. By default, the folders are located at `/var/opt/tableau/tableau_server/data/tabsvc/logs/`. Within each directory, you’ll find files named `-cepp-canonical-events_*.log` that record events and operations for your deployment. For a full list of Activity Log events, see [Activity Log Site Event Type Reference](https://help.tableau.com/current/server-linux/en-gb/activity_log_schema.htm). ## Other articles in this section [Skip to main content](#main-content) # Activity Log Site Event Type Reference This topic describes the Activity Log site event types and attributes. ## Event type details The following content describes site event types and attributes in Activity Log. Use the alphabetically sorted list of event types on the right, or **ctrl/cmd-f** to go directly to keywords you have in mind. **Note:** Timestamps for events are recorded in ISO 8601 UTC. ## Common attributes The table contains common attributes for all Activity Log site events. For event-specific attributes, review the individual event tables in this topic.
Attribute NameTypeDescription
actorUserIdintegerID of the user who performed the action that initiated the event
actorUserLuidstringLUID of the user who performed the action that initiated the event
eventOutcomestringRepresents the final outcome of the operation. Possible values are:
  • success: The attempted operation was completed successfully.
  • unauthorised: The initiating user wasn't authorised to perform the operation.
  • client_error: The operation failed due to a cause attributable to the client/caller. For example, invalid API request parameters, client connection timeout or throttling.
  • internal_error: The operation failed due to an unexpected internal error.
eventOutcomeReasonstringProvides additional details about the event outcome
eventProcessedTimestringTimestamp of when the event was available in Activity Log. This attribute applies to events written after the Hyperforce migration in January and February 2026. To see the timestamp for when the event occurred, use the eventTime attribute.
eventTimestringTimestamp when the event occurred
initiatingUserIdintegerID of the initiating user. This value is usually the same as actorUserId and differs only for delegated authentication, such as trusted tickets or impersonation. During impersonation, it’s the ID of the administrative user who initiated the session. When the session has no initiating user, or no session exists, initiatingUserId uses the value of actorUserId.
initiatingUserLuidstringLUID of the initiating user. For impersonation, it's the LUID of the administrative user who initiated impersonation. For standard login, the value is the same as actorUserLuid.
licensingRoleNamestringName of the user's licensing role when the event occurred
serviceNamestringName of service that initiated the event, such as vizportal, vizqlserver or sitesaml.
siteLuidstringLUID of the Tableau site where the event occurred
siteRoleIdintegerThe user's site role ID. The value 0 = SiteAdministratorExplorer, 1 = SupportUser, 2 = ExplorerCanPublish, 3 = Explorer, 7 = Guest, 8 = Unlicensed, 9 = Viewer, 10 = Creator, and 11 = SiteAdministratorCreator.
systemAdminLevelintegerIndicates if the user is a system administrator. The value 10 = System Admin and 0 = Not a system admin.
## add\_delete\_user\_to\_group The `add_delete_user_to_group` event is logged when a user is added or removed from a group.
Attribute NameTypeDescription
groupIDintegerThe ID of the group
groupLuidstringThe LUID of the group
groupOperationstringGroup operation, either add or delete user to a group
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
userIdintegerThe ID of the user
userLuidstringThe LUID of the user
## content\_owner\_change The `content_owner_change` event is logged when the content owner changes.
Attribute NameTypeDescription
contentIdintegerThe ID of the content that had the owner changed
contentLuidstringLUID of the content that had the owner changed
contentNamestringName of the content that had the owner changed
contentTypestringThe type of content, such as data source, workbook or view
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
newOwnerIdintegerThe ID of the new content owner
newOwnerLuidstringThe LUID of the new content owner
oldOwnerIdintegerThe ID of the old content owner
oldOwnerLuidstringThe LUID of the old content owner
## create\_delete\_group The `create_delete_group` event is logged when a group is created or deleted.
Attribute NameTypeDescription
groupDomainstringThe domain of the group, such as local
groupIDintegerThe ID of the group
groupLuidstringThe LUID of the group
groupNamestringThe name of the group that had its permissions changed
groupOperationstringGroup operation, either create or delete
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
## create\_permissions The `create_permissions` event is logged when a new explicit permission rule is created. **Note:** Deprecated in October 2024. Use the [set\_permissions](#set-permissions) event instead.
Attribute NameTypeDescription
authorisableTypestringThe type of content that had its permissions changed, such as a project or workbook
capabilityIdintegerThe ID of the capability. A capability is the ability to perform actions on content, such as view, filter, download or delete
capabilityValuestringDescription of the capability
contentIdintegerThe ID of the content that had the permissions updated
contentLuidstringThe LUID of the content item
contentNamestringThe name of the content that had the permissions updated
granteeIdintegerThe ID of the grantee
granteeLuidstringThe LUID of the grantee
granteeTypestringThe type of grantee, either user or group
granteeValuestringThe updated permissions value, such as 'user allow' or 'group allow'
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
## delete\_all\_permissions The `delete_all_permissions` event is logged when all explicit permission rules for content are deleted, typically when content is deleted.
Attribute NameTypeDescription
authorisableTypestringThe type of content that had its permissions changed, such as a project or workbook
contentIdintegerThe ID of the content that had the permissions updated
contentLuidstringThe LUID of the content
contentNamestringThe name of the content that had the permissions updated
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
## delete\_permissions The `delete_permissions` event is logged when an explicit permission rule is removed from a content item through the REST API. For more information, see [Permissions Methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_permissions.htm) in Tableau REST API Help. Other ways of removing permissions are logged as different events: - Removing a capability in the Permissions dialog is logged as a `set_permissions` event with a `permissionType` of `unspecified`, because the grantee’s entire permission set is replaced. - Deleting content is logged as `delete_all_permissions`. - Deleting a user or group is logged as `delete_permissions_grantee`. To capture all permission removals, monitor `set_permissions`, `delete_all_permissions` and `delete_permissions_grantee`.
Attribute NameTypeDescription
authorisableTypestringThe type of content that had its permissions changed, such as a project or workbook
capabilityIdintegerThe ID of the capability. A capability is the ability to perform actions on content, such as view, filter, download or delete
capabilityValuestringDescription of the capability
contentIdintegerThe ID of the content that had the permissions updated
contentLuidstringThe LUID of the content
contentNamestringThe name of the content that had the permissions updated
granteeIdintegerThe ID of the grantee
granteeLuidstringThe LUID of the grantee. This value can be null if the grantee was recently deleted or the LUID lookup service is unavailable. The granteeId attribute is always present.
granteeTypestringThe type of grantee, either user or group
granteeValuestringThe updated permissions value, such as 'user allow' or 'group allow'
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
## delete\_permissions\_grantee The `delete_permissions_grantee` event is logged when all explicit permission rules for a user or group are deleted, typically when the user or group is deleted.
Attribute NameTypeDescription
granteeIdintegerThe ID of the grantee
granteeLuidstringThe LUID of the grantee. This value can be null if the grantee was recently deleted or the LUID lookup service is unavailable. The granteeId attribute is always present.
granteeTypestringThe type of grantee, either user or group
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
## display\_sheet\_tabs The `display_sheet_tabs` event is logged when the "Tabbed Views" value is updated on a workbook.
Attribute NameTypeDescription
displayTabsbooleanIndicates whether sheets of the workbook are displayed as tabs or not
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
workbookIdintegerThe ID of the workbook
## move\_content The `move_content` event is logged when content is moved, for example, moving a workbook between projects.
Attribute NameTypeDescription
contentIdintegerThe ID of the content that had the owner changed
contentLuidstringLUID of the content that had the owner changed
contentNamestringName of the content that had the owner changed
contentTypestringThe type of content, such as data source, workbook or view
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
newContainerLuidstringLUID of the new container
newContainerTypestringThe new container type, such as a project
oldContainerLuidstringLUID of the previous container
oldContainerTypestringThe previous container type, such as a project
## project\_lock\_unlock The `project_lock_unlock` event is logged when project permissions are locked or unlocked.
Attribute NameTypeDescription
controllingProjectLuidstringLUID of the project that controls permissions for the nested project
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
projectLuidstringLUID of the project
projectOperationstringProject operation, either lock or unlock
## set\_permissions The `set_permissions` event is logged when a permission rule is created or updated for a content item, typically when you save changes in the Permissions dialog. Removing a permission rule is also logged as this event, with a `permissionType` of `unspecified`.
Attribute NameTypeDescription
authorisableTypestring

The type of content that had its permissions changed, such as project or workbook

capabilityIdintegerThe ID of the capability. A capability is the ability to perform a certain action on a particular piece of content, such as view, filter, download or delete.
capabilityValuestringDescription of the capability
contentIdintegerThe ID of the content that had the permissions set
contentLuidstringThe LUID of the content item
contentNamestringThe name of the content that had the permissions set
granteeIdintegerThe ID of the grantee
granteeLuidstringThe LUID of the grantee. This value can be null if the grantee was recently deleted or the LUID lookup service is unavailable. The granteeId attribute is always present.
granteeTypestringThe type of grantee, either user or group
granteeValuestringThe set permissions value, such as “user allow” or “group allow”
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
permissionTypestringThe permission type. A value of explicit means an Allow or Deny rule was set. A value of unspecified means a rule was removed or set to inherited.
## update\_permissions The `update_permissions` event is logged when an explicit permission rule is updated for a content item. **Note:** Deprecated in October 2024. Use the [set\_permissions](#set-permissions) event instead.
Attribute NameTypeDescription
authorisableTypestringThe type of content that had its permissions changed, such as a project or workbook
capabilityIdintegerThe ID of the capability. A capability is the ability to perform actions on content, such as view, filter, download or delete
capabilityValuestringDescription of the capability
contentIdintegerThe ID of the content that had the permissions updated
contentLuidstringThe LUID of the content
contentNamestringThe name of the content that had the permissions updated
granteeIdintegerThe ID of the grantee
granteeLuidstringThe LUID of the grantee
granteeTypestringThe type of grantee, either user or group
granteeValuestringThe updated permissions value, such as 'user allow' or 'group allow'
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
permissionTypestringThe permission type, either explicit or unspecified
## update\_permissions\_template The `update_permissions_template` event is logged when a permission template for a project is updated.
Attribute NameTypeDescription
authorisableTypestringThe type of content that had its permissions changed, such as a project or workbook
capabilityIdintegerThe ID of the capability. A capability is the ability to perform actions on content, such as view, filter, download or delete
capabilityValuestringDescription of the capability
contentIdintegerThe ID of the content that had the permissions updated
contentLuidstringThe LUID of the content
contentNamestringThe name of the content that had the permissions updated
granteeIdintegerThe ID of the grantee
granteeLuidstringThe LUID of the grantee. This value can be null if the grantee was recently deleted or the LUID lookup service is unavailable. The granteeId attribute is always present.
granteeTypestringThe type of grantee, either user or group
granteeValuestringThe updated permissions value, such as 'user allow' or 'group allow'
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
permissionTypestringThe permission type. A value of explicit means an Allow or Deny rule was set. A value of unspecified means a rule was removed or set to inherited.
templateTypestringThe type of permission template used to change permissions, such as workbook or data source
## user\_create\_delete The `user_create_delete` event is logged when a user is created or deleted.
Attribute NameTypeDescription
forUserNamestringThe name of the user whose account was either created, updated or deleted
isErrorbooleanIndicates if the audit scenario was completed successfully or failed with an error
siteRolestringSite role of the user. Determines the maximum level of access a user can have on the site
targetUserIdintegerThe ID of the user whose account was either created, updated or deleted
targetUserLuidstringThe LUID of the user whose account was either created, updated or deleted
userOperationstringThe action performed on a user, either create, delete or site role change
[Skip to main content](#main-content) # Add a Load Balancer You can enhance the reliability of Tableau Server by running gateways on multiple nodes, and configuring a load balancer to distribute requests across the gateways. Unlike the repository process, which can be active or passive, all gateway processes are active. If one gateway in a cluster becomes unavailable, the load balancer stops sending requests to it. The load balancer algorithm you choose determines how the gateways will route client requests. - **Kerberos**: If you will be using Kerberos authentication, you need to configure Tableau Server for your load balancer before you configure Tableau Server for Kerberos. For more information, see [Configure Kerberos](https://help.tableau.com/current/server-linux/en-gb/config_kerberos.htm). - **Tested load balancers**: Tableau Server clusters with multiple gateways have been tested with Apache and F5 load balancers. If you are using an Apache load balancer and creating custom administrative views, you need to connect directly to the Tableau Server repository. You cannot connect through the load balancer. - **Tableau Server URL**: When a load balancer is in front of a Tableau Server cluster, the URL that's accessed by Tableau Server users belongs to the load balancer, not the initial Tableau Server node. - **Single load balancer endpoint**: You must configure your load balancers for a single URL endpoint. You cannot configure different endpoint hosts to redirect to the same Tableau Server deployment. The single external URL is defined in `gateway.public.host` when you configure Tableau Server, as described in [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm). - **Trusted host settings**: The computer running the load balancer must be identified to Tableau Server as a trusted host, as described in [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm). ## Configure Tableau Server to work with a load balancer The settings used to identify a load balancer to Tableau Server are the same ones that are used to identify a reverse proxy server. If your Tableau Server cluster requires both a proxy server and a load balancer, both must use a single external URL defined in `gateway.public.host` and all proxy servers and load balancers must be specified in `gateway.trusted` and `gateway.trusted_hosts`. See [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm). [Skip to main content](#main-content) # Add a Pop-up Tableau Data Story to Your Dashboard **Important changes for Tableau Data Stories** Tableau Data Stories were retired in Tableau Desktop, Tableau Cloud and Tableau Server in January of 2025 (2025.1). With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau Pulse powered by Tableau AI is Reimagining the Data Experience](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-ai). You can place a Tableau Data Story in a pop-up window that allows your users to open a story, read it and then close it when they're done. This is a great way to save space being used by already-established dashboards or to reduce the amount of clutter and information on a dashboard. 1. [Add a Tableau Data Story to a Dashboard](https://help.tableau.com/current/server-linux/en-gb/data_stories_create.htm). 2. Set the container to Floating by clicking on the menu and selecting Floating. > [!TIP] > > Another way to set the container to Floating is by holding the shift key while dragging the container onto your dashboard. 1. Navigate to the Layout tab in the left-hand column and set the background colour to white. ![The Layout pane with the background set to 100% and white.](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_white_background.png) 1. Click on the menu that is associated with your floating container to show its settings, and select Add Show/Hide Button. This creates an "X" icon that allows you to show or hide your story. ![A Data Story with a large X icon that allows users to hide the story.](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_x.png) **Note:** If your story is selected, your button is partially obscured by the sidebar options that are part of the Data Story object. Click anywhere outside of the story to reveal the button. 1. Hover over the "X" icon to show instructions for opening or closing the story. In this example, you're being prompted to press the Alt key at the same time as you click on the "X" icon. ![A Data Story object with a large X icon that allows users to hide the story and a tooltip that reads “Hide ‘Data Story’ (Alt+click to hide)](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_hide_story.png) 1. Collapse the story by clicking the "X" icon at the same time as pressing the key indicated in your prompt. The story collapses, but the menu remains on the dashboard so that the user can expand the story when needed. You can move your collapsible, floating story around your dashboard as desired. [Skip to main content](#main-content) # Add a Project Image To help distinguish projects you manage on Tableau Server (and help your users find them), you can add an image that appears in the thumbnail. Your image must meet the following requirements: - The image must be accessible using HTTPS protocol. Shared network directory and related protocols (UNC, SMB, AFP, NFS, etc) are not supported. HTTP protocol for project images is not supported by Google Chrome. - All users who access the project must have, at a minimum, "read-only" permission on the target image. - The image must be common internet format: .jpg, png, or gif. ![Custom Explore page with projects sorted into IT, Development, Customer Solutions and Statistics.](/tableau/current/en-gb/server-linux/en-gb/Img/custom_projectimage.png) ## Set a project image 1. Sign in to a site on Tableau Server. In the list of Top-level Projects you have access to, select or navigate to the project you want to update. In this example, we'll add an image to the Statistics project folder. If you're not sure where to find a child project, use the Explore drop-down list and select All Projects. 2. Click the Details icon (i), to open the Project details dialog box, and then click Edit. ![Project detail page showing owner, created date and options to edit, change owner and delete project.](/tableau/current/en-gb/server-linux/en-gb/Img/custom_projectimage_2.png) 3. In the About field, you can enter a description for your project (optional), for example "Global and US statistics". At the end of the project description, add the URL for your image using the following syntax: `!http://www.example.com/image.png!` ![Project detail page showing global and US statistics with options for project details and editing.](/tableau/current/en-gb/server-linux/en-gb/Img/custom_projectimage_3.png) Select Show formatting hints to see how you can format description text. **Note:** Images embedded in project descriptions cannot be resized or positioned. Recommended size is (300 x 184 pixels). Images that are not 300 x 184 pixels may be stretched, shrunk or cropped to fit the width of the thumbnail. In addition, they must be added at the end of the project description and be enclosed in **!** (exclamation marks), otherwise they will not be displayed as the thumbnail. 4. Click Save. ![Custom Explore page with projects sorted into IT, Development, Customer Solutions and Statistics.](/tableau/current/en-gb/server-linux/en-gb/Img/custom_projectimage_4.png) [Skip to main content](#main-content) # Add a Tableau Data Story to a Dashboard **Important changes for Tableau Data Stories** Tableau Data Stories were retired in Tableau Desktop, Tableau Cloud and Tableau Server in January of 2025 (2025.1). With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau Pulse powered by Tableau AI is Reimagining the Data Experience](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-ai). After you [Create a Dashboard](https://help.tableau.com/current/pro/desktop/en-gb/dashboards_create.htm), you can add the Data Story object to your dashboard to display insights about your viz that are written in natural language. Today, Tableau Data Stories are written in English only and are available in Tableau Cloud, Tableau Server (version 2023.1 and later), and Tableau Desktop. There is no data size limit when creating Data Stories. However, story generation times out after 45 seconds if it’s trying to analyse a lot of data. We recommend using Data Stories with visualisations that have 1,000 or fewer data points. **Note:** Tableau Data Stories opens in a pop-up window, so make sure you allow pop-ups. If you're using full screen mode, Data Stories can open in a new tab. 1. Drag the Data Story object into your Tableau dashboard. If you haven’t already, add a sheet to your dashboard to use Tableau Data Stories. ![Data Story object with open book icon found in the dashboard editing pane](/tableau/current/en-gb/server-linux/en-gb/Img/data_story_object.png) 2. In the Data Story dialog box, configure your story by first choosing the worksheet to write about. When you click **Next**, Tableau sends all associated workbook data to the Tableau Cloud or Tableau Server instance that you are logged in to. ![Configure pane with options to choose which sheet you want to write about](/tableau/current/en-gb/server-linux/en-gb/Img/data_story_configure_view.png) 3. Choose the dimensions and measures to include in your story. ![Configure pane with the option to drag and drop dimensions and measures that you want included in your story](/tableau/current/en-gb/server-linux/en-gb/Img/data_story_configure_field.png) 4. Choose the type of story that best describes your data: ![Configure pane with options to choose the type of story that best fits your data: Discrete, Continuous, Percent of Whole or Scatter Plot](/tableau/current/en-gb/server-linux/en-gb/Img/data_story_configure_story.png) Discrete is best for qualitative values such as names or dates, such as in bar or column charts. Continuous is best for quantitative values over time, such as a plotted-in-a-line chart. Percent of Whole is best for proportions of a whole, such as a pie chart. Scatter Plot is best for relationships between numerical values, such as a scatter plot chart. 5. Click Done. To filter your Data Story by clicking different sections on your visualisation, open the menu on your visualisation and click Use as filter. After your story is generated, click Settings at the top of your Data Story object for a guided experience that helps you personalise and contextualise your story. For more information, see [Configure Settings for a Tableau Data Story](https://help.tableau.com/current/server-linux/en-gb/data_stories_configure_edit.htm). **Note:** If you experience a discrepancy in your Tableau Data Story (for example, if the numbers in your story are different from your visualisation), it may be caused by way your visualisation is set up. Try creating a new visualisation on a different sheet, and then add a new Data Story with the [Use a hidden sheet](https://help.tableau.com/current/server-linux/en-gb/data_stories_more_data.htm#Use) technique to uncover the underlying issue. [Skip to main content](#main-content) # Add an Administrator Account The final step in activating Tableau Server is to add the initial administrator account. The administrator will have all access to the server including the ability to manage users, groups and projects. The server must be running when you create the initial admin user. If you have configured the Tableau Server identity store to use LDAP or Active Directory, then the initial administrative user that you specify must be an account in the directory. The initial administrative user is generally distinct from the user account on the Tableau Server computer that you use to run `tsm`. However, these accounts can be the same if you have configured the Tableau Server identity store to use LDAP or Active Directory and the initial admin user is a member of the `tsmadmin` group on the Tableau Server computer. ## Prerequisites Before proceeding with the procedures in this topic, complete the following prerequisites as outlined in [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm): - [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm) - [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm) - [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm) After Tableau Server is finished initialising, the installation program will display a page to create the Tableau Server administrator. - If you configured a local identity store during setup, then specify a name and password that you want to use. - If you configured a LDAP or Active Directory identity store during setup, then you must specify a user account that is a member of the directory. - The `username` value cannot include an at sign (@) unless the username suffix matches Tableau Server's primary domain. For example, if Tableau Server connects to domain "myco.com", a username of "user@example.com@myco.com" cannot be used. If you are installing remotely, then you must sign in to TSM on the physical computer where Tableau Server is installing, or you can access the computer remotely and run the tabcmd [initialuser](https://help.tableau.com/current/server-linux/en-gb/tabcmd_cmd.htm#initialu) command from a shell. You must create the initial administrative account for Tableau Server. - If you configured a local identity store during setup, then specify a name and password that you want to use. - If you configured a LDAP or Active Directory identity store during setup, then you must specify a user account that is a member of the directory. - The `username` value cannot include an at sign (@) unless the username suffix matches Tableau Server's primary domain. For example, if Tableau Server connects to domain "myco.com", a username of "user@example.com@myco.com" cannot be used. To create the initial user, run the following `tabcmd` command: `tabcmd initialuser --server http://localhost --username ''` For example: `tabcmd initialuser --server http://localhost --username 'tableau-admin'` If you are running the HTTP protocol on a port other than 80, specify the port after the host name, for example: `--server http://localhost:8080`. After you run the command, the shell will prompt for an administrative password. ## Next steps After you have created the Tableau Server administrator account, continue your deployment by working through the configuration topics at [Post Installation Tasks](https://help.tableau.com/current/server-linux/en-gb/config_post_install.htm). **Important:** You must install the PostgreSQL driver if you want to use the built-in administrative views. You can find driver links and installation instructions for all the supported connectors on the [Driver Download page](https://www.tableau.com/en-gb/support/drivers). [Skip to main content](#main-content) # Add Capacity to Tableau Server You may need to add capacity to your Tableau Server installation to allow you to increase the number of users (if you have a user-based licence) or the number of cores (if you have a core-based licence). Tableau will provide you with a new product key that adds capacity to your existing Tableau Server installation. You need to activate this key and use it together with your existing product key(s) to get the combined capacity you are licensed for. Each feature (e.g. "Data Management") and licence type (e.g. "Explorer") requires a key. For more information about the relationship between keys and licences, see [tsm licences list](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMLicenseList). Follow the steps below to add a product key to Tableau Server. If your Tableau Server is not connected to the internet, then you must perform an offline activation. See [Activate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/activate_off.htm). **Note:** If you have upgraded to Tableau Server version 2021.1 or later, you no longer need to restart Tableau Server when you add capacity. For more information, see [Zero Downtime Licensing](https://help.tableau.com/current/server-linux/en-gb/license_zero_downtime.htm). 1. Open TSM in a browser: `https://:8850` 2. Click Licensing on the Configuration tab and click Activate Licence: ![Licensing configuration page that displays a list of Tableau Server licences and their expiry dates.](/tableau/current/en-gb/server-linux/en-gb/Img/licensing.png) 3. Enter or paste your new product key and click **Activate**: ![Licence activation pop-up with a field for entering a 20-digit Tableau Server product key.](/tableau/current/en-gb/server-linux/en-gb/Img/license-activate02_tsm.png) 4. After activating the licence, you may be prompted to register with Tableau. On the Register page, enter your information into the fields and click Register. ![Registration step of Tableau Server activation wizard, with required fields for populating contact information, company information and regional details.](/tableau/current/en-gb/server-linux/en-gb/Img/install_02_register.png) 1. Copy the product key to your computer. 2. Run the following command: `tsm licenses activate --license-key ` 3. After activating the licence, you may need to register Tableau Server. To do this, create a registration file and then pass it as an option with the `tsm register` command. 1. Generate a template that you can edit by running the following command: `tsm register --template > /path/to/.json` 2. Edit the template file to create your completed registration file. Here is an example of a registration file in the required format: { "zip" : "97403", "country" : "USA", "city" : "Springfield", "last\_name" : "Simpson", "industry" : "Energy", "eula" : "yes", "title" : "Safety Inspection Engineer", "phone" : "5558675309", "company" : "Example", "state" : "OR", "department" : "Engineering", "first\_name" : "Homer", "email" : "homer@example.com" } 3. After saving changes to the file, pass it with the `--file` option to register Tableau Server: `tsm register --file /path/to/.json` For example: `tsm register --file /usr/share/tableau-reg-file.json` [Skip to main content](#main-content) # Add More Data to Your Tableau Data Story **Important changes for Tableau Data Stories** Tableau Data Stories were retired in Tableau Desktop, Tableau Cloud and Tableau Server in January of 2025 (2025.1). With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau Pulse powered by Tableau AI is Reimagining the Data Experience](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-ai). Data Stories currently supports stories with two dimensions and one measure, or one dimension and up to 10 measures. If you'd like to write about data that you don't need to show on your dashboard, then use a hidden sheet to simplify your dashboard. If you'd like to add more than two dimensions to your story, then concatenate dimensions or create multiple data stories and stack them. ## Use a hidden sheet If you have data that you want to include in a Tableau Data Story and don't need to show all the data that drove the insight, you can use a hidden sheet to bring additional measures and dimensions into your story without cluttering the dashboard. 1. Drag the Data Story object to your dashboard to see which worksheets you can write about in the Data Story dialog box. In this example, there are two worksheets available to write about. ![Data Story dialog box showing two available sheets: Tourism by Country/Region and Tourism Over Time.](/tableau/current/en-gb/server-linux/en-gb/Img/data_story_configure_view.png) 1. Bring in another data source, such as "Population", by navigating to the left-hand menu, selecting Floating and dragging that sheet onto your dashboard. ![Data Story dialog box showing three available sheets: Population, Tourism by Country/Region and Tourism Over Time.](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_hidden_3.png) The Data Story dialog box updates with the new available data source. 1. Click into Layout and adjust the size to 1 x 1 to hide the sheet but keep the underlying data in your story. ![The Dashboard pane with Floating selected.](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_hidden_1.1.png) You can now configure your stories using this hidden sheet. **Note:** You may need to deselect additional legend elements to keep the sheet hidden. ## Concatenate dimensions If your data contains three dimensions and one measure and is a Discrete Story, you can concatenate (link together) two of those dimensions by creating a calculated field. 1. From the worksheet you want to use in your story, click Analysis and select Create Calculated Field. 2. Name the calculated field and use the following formula to create your calculation, using the + sign to join the dimensions. \[Dimension 1\] + \[Dimension 2\] ![A calculation box that says "\[Population 0-14\]+\[Population 15-64\]"](Img/data_stories_concatenate.png) > [!TIP] > > Drag your dimensions into the Calculated Field box and place them in the formula. 1. Click OK. 2. Drag your new calculated field into the Detail pane to make it accessible in your data story. ## Stack multiple data stories Write about more measures and dimensions by creating multiple Data Stories and stacking them vertically or horizontally on your dashboard. For example, if you wanted to create a story about actual revenue vs. benchmark revenue, you could create two different stories – one with the actual revenue and the first benchmark, and another with the actual revenue and the second benchmark – and compare them. [Skip to main content](#main-content) # Add or Delete Sites Tableau Server comes with one site named Default. Server administrators can add or delete sites as the needs of an organisation change. ## Add a site 1. Do one of the following: - If you’re adding a site to the server for the first time, select **Settings** > **Add a Site**, and then click **Add a Site**. ![Add a Site option with instructions to host multiple sites on Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_add_ss.png) - If you’ve added sites before, in the site menu, click **Manage All Sites**, and then click **New Site**. ![Tableau Cloud option to add a New Site.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_add_multi.png) 2. [Edit the site's settings](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm) to customize it for your organization. ## Delete sites Server administrators can delete sites that have been added to Tableau Server. Deleting a site also removes workbooks and data sources that were published to the site, as well as users. If a user belongs to additional sites, they will not be removed. To permanently delete a user, go to the Server Users page. **Note:** The Default site cannot be deleted. 1. On the site menu, click **Manage all sites**, and then click **Sites**. 2. Select the site you want to remove, and then on the Actions menu, click Delete. 3. Click **Delete** in the confirmation dialog box that appears. [Skip to main content](#main-content) # Add Projects and Move Content Into Them Tableau content (such as workbooks or data sources) must be in a project. Starting in Tableau Server 2022.3 and Tableau Cloud October 2022, if Data Management is licensed and Catalogue is enabled, external assets (such as databases and tables) can also be in projects. Server and site administrators can add or remove top-level projects on a site, and move published content from one project to another. Project leaders with appropriate site roles can add or remove child projects and move content between projects on which they have Project Leader access. This article contains the steps for creating and moving projects. We recommend becoming familiar with the following related content as well: - To learn about projects and when or why to use them, see [Use Projects to Manage Content Access](https://help.tableau.com/current/server-linux/en-gb/projects.htm). - Before you create project hierarchies, become familiar with [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#projectpermissions). - To see the specific site roles that allow full Project Leader access, see [Project-level administration](https://help.tableau.com/current/server-linux/en-gb/projects.htm#project-admin). ## Add a top-level or child (nested) project 1. While you’re signed in to Tableau Server as an administrator or project leader, select Explore and then do one of the following: - Select New > Project to create a new top-level project (only administrators can do this). - Navigate to and open the project in which you want to create a sub-project, and then select New > Project. If you’re not sure where to find the child project, select All Projects from the drop-down menu next to Explore or use the filters in the upper right. 2. Enter a name and description for the project, and then click Create. ![New project dialog with fields for a project name and description.](/tableau/current/en-gb/server-linux/en-gb/Img/projects_new1.png) You can include formatting and hyperlinks in the project description. Select **Show formatting hints** for syntax. You can also [Add a Project Image](https://help.tableau.com/current/server-linux/en-gb/custom_projectimage.htm). When entering a project description, include a space between capital letters and parentheses to display content inside them, such as "PROJECT (a)". Omitting this space will cause display issues in the project description. **Note:** To edit a project description later, select it to open it, select the information icon next to its name, and then click **Edit**. ## Use the project tree to navigate projects By default, the Explore pane displays a project tree to help you easily navigate your projects. You can use the project tree to find sub-projects within a project folder. You can also use the project tree to search for projects. ![The project tree on the Explore pane in Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Cloud_ProjectTree.png) You can hide and unhide the project tree by clicking the project tree icon located on the Explore pane. ![The project tree icon on the Explore pane in Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Cloud_ProjectTreeIcon.png) > [!TIP] > > **Note:** To ensure the project tree is visible, maintain a browser window width of at least 1441px on the Explore page. A narrower window (1440px or less) or a lower-resolution display will hide the project tree. ## Move an asset to another project 1. In the Explore section, find the asset you want to move. You can use the filters in the upper right to search, or you can navigate through the project hierarchy. 2. On the workbook’s Actions(…) menu, select Move. 3. Select the new project for the workbook, and then click Move Content. ![](/tableau/current/en-gb/server-linux/en-gb/Img/projects_move_project.png) Moving a project involves moving everything in it, including child projects and their assets. ### How moving projects affect permissions When you move a project, Project Leader permissions adapt to the new project environment. - When the target project hierarchy is **Locked**, previous Project Leader permissions are removed, and new Project Leader permissions are granted according to those set at the top-level of the target hierarchy. - When the target project hierarchy is **Customisable**, previous implicitly granted Project Leader permissions are removed, explicitly set Project Leader permissions are retained and new Project Leader permissions are granted according to those set at the top-level of the target hierarchy. When you move a project and assets, permissions may be impacted. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#moveproject). ## Delete a project When you delete a project, all the Tableau content in the project is also deleted. If you want to delete a project but not its content, move the content to another project, and then delete the project. External assets, such as databases and tables, are not deleted, but are moved to the External Assets Default Project. (In Tableau Server 2022.3 and earlier, the assets can be found in External Assets.) **Important** - You cannot undo deleting a project. - Deleting a project deletes all Tableau content in it, including child projects and their content, but not external assets. - You cannot delete the Default project or the External Assets Default Project. To delete a project: 1. In the Explore section, find the project you want to remove. If you’re not sure where to find the project, select All Projects from the drop-down menu next to Explore or use the filters in the upper right. 2. On the project’s Actions (…) menu, select Delete. 3. Confirm that you want to delete the project. ## Requirements for moving assets Moving an asset is effectively like removing it from one project and publishing it to another. For non-administrators, the permissions needed on the source project are different from those needed on the destination project. ### Required site role To move assets, users must have one of the following site roles: - Server Administrator (Tableau Server only) - Site Administrator Creator or Site Administrator Explorer - Creator or Explorer (can publish) Users with a Server Administrator or Site Administrator site role do not need any additional capabilities. ### Required permissions for the project that users move content _to_ Non-administrators must have the Publish permission capability for the destination project. ### Required permissions for the project that users move content _from_ Non-administrator users must - Be the project owner, project leader or content owner for the original project OR - Have the Move permission capability for the content (or, for data sources, be the data source owner). When moving a database with its tables, the user must have the Move capability for both the database _and_ its tables. For more information on moving assets, see [Move content](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#MoveContent). [Skip to main content](#main-content) # Add Tables to the Connection On the Tables tab: Add tables to the connection **Add tables** Choose an option: - On the left, under **Tables**, double-click table names or select and drag them to the **Tables** pane on the right. Include an entitlement table, if you're using one. - Select ![New Custom SQL button](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_New_Custom_SQL_btn.png) to create a custom table schema, or select Convert to Custom SQL on an existing table and use it as a starting point for Custom SQL. Select ![The refresh data icon in the virtual connection editor toolbar](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconns_refresh_icon.png) to get the latest data from the database for all the connections. **View and edit table details** 1. Select a table in the Tables tab. 2. In the Table Details section, select a column value to make edits like hide or rename a column, or change the data type. Select live or extract mode for tables Set individual tables to either live or extract mode: - Live Only - Queried directly from the database. (Live is the default.) - Extracts Only - Extracted and saved to Tableau. Under Tables, select the table or tables you want to change the mode for and select Actions, and Change to Live or Change to Extract. - Select Create Pending Extracts to create extracts, or Refresh All Extracts to refresh them after creation. - Select a table's Actions menu (...) > Extract Settings to configure the extract for incremental refresh. - Schedule extract refreshes on the virtual connection page after you publish the connection. [Read schedule extract topic](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_extract.htm) Set the table visibility state Use the Visibility toggle to show or hide tables from users. ![Tick means show](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconn_check_mark_show.png) Users can see table data. Create a policy to govern which data users can see. (Visible is the default.) ![X means hide](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconn_x_hide.png) Users can’t see table data. You can use hidden tables in a data policy and as an entitlement table. See table details Select a table at the top of the Tables tab to see its details below. Switch the table information you see using these icons: ![Tag icon represents column data type.](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Tag_16px_medium.png) Data type for each column. ![Table icon represents column sample data.](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Table_16px_medium.png) Sample data for each column. ![Profile icon represents the column value range.](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Panes_show_16px_medium.png) Range of values in a histogram for each column selected. **Quick clip**: View your table details. Your browser does not support the video tag. See Linked keys by selecting ![table icon](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Table_16px_medium.png) to see which columns link to other tables. Linked keys appear only when databases have primary and foreign key information. Publish the connection and set permissions ### Save a draft or publish a connection Your connection is automatically saved as a draft while you work. Manually save the draft by clicking ![Save icon](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Save_16px_medium.png). To share a new virtual connection with other users, you need to publish it. 1. Click ![Publish button](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconn_publish_btn.png) in the upper right corner of the editor. 2. Type a name for the connection in the Name field. 3. Select a project to save the connection to. 4. Click ![Publish button](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconn_publish_btn.png) When you edit an existing connection, it remains available to users in its current published state. - To save updates to a draft, click ![Save icon](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Save_16px_medium.png). - To make the updated connection available to users, click ![Publish button](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconn_publish_btn.png) ### Set permissions so others can use the connection You've published the connection, and you're ready to let others use it. To do this, set the Connect capability to Allowed. 1. Navigate to the virtual connection. 2. Open the Actions menu (...) and click Permissions. 3. Select the box under the Connect icon so that connect is allowed for all users. ![Connect capability tick box under Permissions Rules](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_vconn_connect_capability.png) 4. Click Save. [Read publish and permissions topic](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_publish_save.htm) [Read virtual connections topic](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_create_conn.htm) ## Related tasks [About the Virtual Connection Editor](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_about_editor.htm) [About Data Policies](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_about_data_policy.htm) [Create and Test Data Policies](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_create_data_policy.htm) Not finding what you need? Go online to see [all Tableau help](https://www.tableau.com/en-gb/support/help) [Skip to main content](#main-content) # Add Trusted IP Addresses or Host Names to Tableau Server The first step in setting up trusted authentication is to configure Tableau Server to recognise and trust requests from one or more web servers: 1. Open TSM in a browser: https://:8850. For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click User Identity & Access on the Configuration tab and then click Trusted Authentication. 3. Under Trusted Authentication, for each trusted host, enter the name or IP address and then click Add: ![Configure trusted authentication screenshot](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-trustedauth.png) **Notes:** The values you specify completely overwrite any previous setting. Therefore, you must include the full list of hosts if you want to amend an existing list. Static IP addresses are required: The web servers you specify must use static IP addresses, even if you use host names. If you have one or more proxy servers between the computer that is requesting the trusted ticket (one of those configured in Step 2 as shown at [Trusted Authentication](https://help.tableau.com/current/server-linux/en-gb/trusted_auth.htm)) and Tableau Server, you also need to add them as trusted gateways using the `tsm configuration set gateway.trusted` option. See [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm) for steps. 4. Enter a value in Token Length (Optional). The token length determines the number of characters in each trusted ticket. The default setting of 24 characters provides 144 bits of randomness. The value can be set to any integer between 9 and 255, inclusive. 5. Click Save Pending Changes after you've entered your configuration information. 6. Click Pending Changes at the top of the page: ![Tableau Server Manager toolbar indicating that there are pending changes.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-pending-changes-btn.png) 7. Click Apply Changes and Restart. 1. Enter the following command: tsm authentication trusted configure -th In the command above, `` should be a comma-separated list of the IPv4 addresses or host names of your web server(s), with each host name or IP address in quotes. **Note**: The values you specify completely overwrite any previous setting. Therefore, you must include the full list of hosts in the `tsm authentication trusted configure -th` command. (You cannot amend the list of hosts by running the `tsm authentication trusted configure -th` command repeatedly.) For example: tsm authentication trusted configure -th "192.168.1.101", "192.168.1.102", "192.168.1.103" or tsm authentication trusted configure -th "webserv1", "webserv2", "webserv3" **Notes:** Each host name or IP address in the list must be in double-quotes, followed by a comma and one space after each comma. The web servers you specify must use static IP addresses, even if you use host names. 2. If you have one or more proxy servers between the computer that is requesting the trusted ticket (one of those configured in Step 2 as shown at [Trusted Authentication](https://help.tableau.com/current/server-linux/en-gb/trusted_auth.htm)) and Tableau Server, you also need to add them as trusted gateways using the `tsm configuration set gateway.trusted` option. See [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm) for steps. 3. Type the following command to save the changes to all the server configuration files: tsm pending-changes apply If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). There are other optional trusted authentication configurations (legacy support, logging and timeout settings) that you can make by passing a json file to Tableau Server. See [trustedAuthenticationSettings Entity](https://help.tableau.com/current/server-linux/en-gb/entity_trusted_auth.htm). Next, you need to [configure your web server to receive tickets from Tableau Server](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_webrequ.htm). [Skip to main content](#main-content) # Add Users to a Group You can organise Tableau Server users into groups to make it easier to manage multiple users. You can create groups on the server or import groups from Active Directory. If you're managing users with an [External identity store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm#external), such as Active Directory, add users to a group through the external identity store itself. Once users are added to a group in the external identity store, Tableau Server is able to update those users by synchronising the group of users in the external identity store with the group of users on Tableau Server. For example, to keep Active Directory group membership up to date, we recommend you review the following: - Site administrators can synchronise selected groups on demand in a site. For more information, see [Synchronise Active Directory Groups on a Site](https://help.tableau.com/current/server-linux/en-gb/groups_create_adsync.htm). - Server administrators can synchronise all Active Directory groups on the server based on a schedule or on-demand. For more information, see [Synchronise All Active Directory Groups on the Server](https://help.tableau.com/current/server-linux/en-gb/groups_globalsync.htm). **Notes:** - In the context of user and group synchronisation, Tableau Server configured with LDAP identity store is equivalent to Active Directory. Active Directory synchronisation features in Tableau Server function seamlessly with properly configured LDAP directory solutions. When identity pools are configured, you cannot add groups to an identity pool. - Adding groups to an [identity pool](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm) is not supported. Only individual users can be added to an identity pool. If you're managing users with an [Local identity store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm#local), use the procedures described below to add users to a group. To add a user to a group, the group must already exist. ## Add users to a group (Users page) 1. In a site, click **Users**. 2. Select the users you want to add to a group, and then click **Actions** > Group Membership. ![A user list with display names, two of which are selected to be part of a group action.](/tableau/current/en-gb/server-linux/en-gb/Img/users7.png) 3. In the Group Membership dialog box, select the groups and then click **Save**. ## Add users to a group (Groups page) 1. In a site, click **Groups**, and then click the name of the group. ![A list of groups with tick boxes for selection.](/tableau/current/en-gb/server-linux/en-gb/Img/groups_addusers_group.png) 2. In the group's page, click **Add Users**. ![Group page showing the Add Users button.](/tableau/current/en-gb/server-linux/en-gb/Img/groups_addusers.png) 3. In the Add Users dialog box, select the users to be added, and then click **Add Users**. [Skip to main content](#main-content) # Add Users to a Site Everyone who needs to access Tableau Server – whether to browse, publish, edit content or administer the site – must be added as a user. Administrators have the following options for adding users: - Add a local user account or a user account from Active Directory, described later in this article. You can also add users by importing an Active Directory group. See [Create Groups via Active Directory](https://help.tableau.com/current/server-linux/en-gb/groups_create_ad.htm). For Tableau Server on Linux, all external directory communication is configured and managed with a LDAP identity store. In the context of user and group synchronisation, Tableau Server configured with LDAP identity store is equivalent to Active Directory. Active Directory synchronisation features in Tableau Server function seamlessly with properly configured LDAP directory solutions. - [Import Users](https://help.tableau.com/current/server-linux/en-gb/users_import.htm) via a CSV file that you create using the [CSV Import File Guidelines](https://help.tableau.com/current/server-linux/en-gb/csvguidelines.htm). ## Site administrator access to user management By default site administrators can add and remove users on a site. On the site’s Settings page, server administrators can revoke that capability, so that only server administrators can manage the site’s users. > [!TIP] > >  Admin Profiles grant non-administrator users specific capabilities around user and group management without increasing their content access. A site administrator can edit an existing local user account only if the administrator has access to all of the sites the user is a member of. For example, if User1 is a member of sites A and B, an administrator of only site B cannot edit User1’s full name or reset the password. **Note:** When using local authentication, if a site administrator is able to add and remove users, they will be able to tell if a username is configured as a user on any site of Tableau Server ## Add local users to a site 1. Sign in to Tableau Server as an administrator, and if applicable select the site. 2. Select Users. On the Users page, click Add Users and then click Create new user. ![A dialog box with options to add new users or import users from a CSV file.](/tableau/current/en-gb/server-linux/en-gb/Img/users1_local.png) 3. Enter a user name. With local authentication, using an email address for the user name is the best way to avoid user name collisions (for example, _lrodriguez@example.com_ instead of _lrodriguez_). ![A new user account creation form.](/tableau/current/en-gb/server-linux/en-gb/Img/users2_local.png) User names are not case sensitive. Characters not allowed in usernames include the semi-colon (;) and colon (:). Also enter information in the following fields: - Display Name – Type a display name for the user (e.g., _Laura Rodriguez_). - Password – Type a password for the user. - Confirm password – Retype the password. - Email – This is optional and can be added at a later time in the user profile settings. 4. Select a site role. For site role definitions, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). 5. Click Create User. ## Add Active Directory users to a site Before adding users to a site, be sure to review [User Management in Deployments with External Identity Stores](https://help.tableau.com/current/server-linux/en-gb/users_manage_ad.htm) to understand how multiple domains, domain naming, NetBIOS, and Active Directory user name format influence Tableau user management. 1. In a site, click Users, and then click Add Users, and then click Active Directory Users. ![A dialog box to choose how to add users to the site.](/tableau/current/en-gb/server-linux/en-gb/Img/users_site_add_AD.png) 2. Enter one or more user names (separated by semicolons). For example, _tdavis; jjohnson; hwilson_ If you are adding a user that is from the same Active Directory domain that the server is running on, you can type the AD user name without the domain. The server’s domain will be assumed. **Note:** Do not enter the user’s full name in this field; it can cause errors during the importing process. 3. Select a site role. For site role definitions, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). 4. Click Import Users. ## Remove local users 1. Sign in to Tableau Server as an administrator, select the site, and open the Users page. 2. Select the tick boxes next to the users’ names, and on the Actions menu, select Remove. If a user is a member only of the current site, and they do not own any content, the user is removed from the server. If a user you remove from the current site is a member of other sites on the server, their status remains unchanged on those sites. ## Related information - You can also [Add Users to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/users_add.htm), without site affiliation. - Upgrading Tableau Server to version 2018.1 or later from a pre-2018.1 version, without activating user-based licences, affects users who were assigned the Viewer site role in the pre-2018.1 server version. To learn more, see the section “User-based licences” in the [Licensing Overview](https://help.tableau.com/current/server-linux/en-gb/license_server_overview.htm#User-based) and see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). [Skip to main content](#main-content) # Add Users to Tableau Server You can add users to Tableau Server one at a time or in batches. You can add them to the server as unlicensed users, and then add them to sites and assign site roles as you onboard them to Tableau Server. Or you can add users to sites and specify their site roles at the same time, at which point they are ready to sign in. ## Before you begin - If your Tableau Server is configured with an Active Directory external identity store, review [User Management in Deployments with External Identity Stores](https://help.tableau.com/current/server-linux/en-gb/users_manage_ad.htm) to understand how multiple domains, domain naming, NetBIOS and Active Directory user name format influence Tableau user management. **Note:** In the context of user and group synchronisation, Tableau Server configured with LDAP identity store is equivalent to Active Directory. Active Directory synchronisation features in Tableau Server function seamlessly with properly configured LDAP directory solutions. - Verify that you have enough user licences and role licences for your user base. If you attempt to add a user for a site role that you do not have a licence for, then you will receive an error. - To add user licences to your Tableau Server deployment, visit the [Tableau Customer Portal](http://customer.tableausoftware.com/) to purchase licences and the corresponding product key(s). After you have purchased licences, see [Add Capacity to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/capacity_add.htm) to update the server with the new key(s). - The steps in this topic describe how to add an individual user and assign their site role. To add users in batches, see [Import Users](https://help.tableau.com/current/server-linux/en-gb/users_import.htm). ## When adding users at the server level versus the site level In a single-site environment, server administrators can add users on the Users page. ![Option to Add Users on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_add_user_ss_list.png) After you add a site to Tableau Server, it becomes a multi-site server with a Server Users page (all server users from every site appear here) and a Site Users page. Only server administrators can access the Server Users page, and both site administrators and server administrators can access the Site Users page. ![Site Users on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_add_user_siteusers.png) The Server Users page is the only place where you can assign users to multiple sites, delete users from the server, and if the server is using local authentication, reset user passwords. ![A list of Tableau Server users with an option to Add Users.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_addusers1.png) ## Add a user to the server When adding a user, the workflow changes depending on whether at least one [identity pool](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm) is configured for Tableau Server. ### No identity pools configured If no identity pools are configured, i.e. Tableau Server is only using the user provisioning and authentication configured during Tableau Server setup (also referred to as the initial pool (TSM configured)), follow the steps described below to add a user. 1. In the site menu, select Manage All Sites > Users, and then click Add Users. To add a user to a site, you select the site and go to the Users page. ![Option to Add Users on Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_adduser_srv.png) 2. Do one of the following: - If the server is configured for **local authentication**, click New User, and enter a user name. With local authentication, the best way to avoid user name collisions is to provide an email address for the user name. For example, _jsmith@example.com_ instead of _jsmith_. User names are not case sensitive. Characters not allowed in user names include the semi-colon (;) and colon (,). - If the server is configured for **Active Directory authentication**, click Active Directory User. If you are adding a user from the same Active Directory domain that Tableau Server runs on, the server domain will be assumed, and you can type the AD user name without the domain. **Note:** Do not enter the user’s full name; this can cause errors during the importing process. 3. If the server is using local authentication, provide the following: - Display Name – Type a display name for the user (e.g. _John Smith_). - Password – Type a password for the user. - Confirm password – Retype the password. - Email – This is optional and can be added at a later time in the user profile settings. - Selected users are Server Administrators: Specify whether the user should be a server administrator. - Name (Site Membership) / Site Role: If the user is not a server administrator, you can assign a user to zero or more sites, along with a site role for each site. You do not have to choose site membership and site role at this time. If you don’t specify site membership and site role for a new server user, the user will be added as a server user only, with a site role of Unlicensed. For details, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). 4. Click Create. ![Add a new user on the Tableau Server form.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_adduser_srv2.png) ### One or more identity pools configured When adding a user, if one or more identity pools are configured, you must first select an identity pool or the initial pool (TSM configured), which is the user provisioning and authentication configured in TSM during Tableau Server setup. 1. In the site menu, select Manage All Sites > Users, and then click Add Users > Create new user. To add a user to a site, you select the site and go to the Users page. ![Option to Add Users on Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_adduser_srv_create_new_user.png) 2. In the Add New Users dialog box, select the identity pool you want to add the user to. ![Add new users from an Initial Pool.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_adduser_idpool_select.png) 3. Do one of the following: - If the identity pool you selected in step 2 is configured for LOCAL identity store and LOCAL authentication: 1. In the New User dialog box, in the Username text box, enter a user name. With local authentication, the best way to avoid user name collisions is to provide an email address for the user name. For example, _jsmith@example.com_ instead of _jsmith_. User names are not case sensitive. Characters not allowed in user names include the semi-colon (;) and colon (,). ![Add New User dialog box.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_adduser_idpool_local_newuser.png) 2. Enter the following information: - Display name – Type a display name for the user (e.g. _John Smith_). - Password – Type a password for the user. - Confirm password – Retype the password. - Email (optional) – This is optional and can be added at a later time in the user profile settings. - Selected users are Server Administrators: Specify whether the user should be a server administrator. - Site Role: If the user is not a server administrator, you can assign a site role. You do not have to choose site role at this time. If you don’t specify site role for a new user, the user will be added as a server user only, with a site role of Unlicensed. For details, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). 3. When finished, click Create User. - If the identity pool you selected in step 2 is configured for LOCAL identity store with OIDC authentication: 1. In the New User dialog box, in the Username text box, enter a user name. With local authentication, the best way to avoid user name collisions is to provide an email address for the user name. For example, _jsmith@example.com_ instead of _jsmith_. User names are not case sensitive. Characters not allowed in user names include the semi-colon (;) and colon (,). ![Add New User dialog box.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_adduser_idpool_local_newuser_ad.png) 2. Enter the following information: - Display name – Type a display name for the user (e.g. _John Smith_). - Password – Type a password for the user. - Identifier (optional) – Type the identifier you want to associate with the user. Identifiers are for identity matching purposes. For more information, see [Usernames and identifiers in Tableau](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm#usernames_identifiers). - Email (optional) – This is optional and can be added at a later time in the user profile settings. - Site and Site role – If the user is not a server administrator, you can assign a user to zero or more sites, along with a site role for each site. You do not have to choose site membership and site role at this time. If you don’t specify site membership and site role for a new server user, the user will be added as a server user only, with a site role of Unlicensed. For details, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). - Make selected users Server Administrators – Specify whether the user should be a server administrator. 3. When finished, click Create User. - If the identity pool you selected in step 2 is configured for ACTIVE\_DIRECTORY or LDAP identity store: 1. Type the AD or LDAP user name without the domain. In this workflow, you're adding a user from the same Active Directory domain that Tableau Server was configured with in TSM during Tableau Server setup. Therefore, the server domain will be assumed, and you can type the AD or LDAP user name without the domain. **Note:** Do not enter the user’s full name; this can cause errors during the importing process. ![Import Users from Active Directory.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_adduser_idpool_ad.png) 2. When finished, click Import Users. [Skip to main content](#main-content) # Add Web Images Dynamically to Worksheets At Tableau, we know that images are a powerful tool when analysing data. Imagine that you're looking at a viz of monthly shoe sales. The data is telling you that you sold more high heels than wedges, but you can't picture the difference in the two types of shoe. That's where Image Role comes in. You can dynamically add web images to your worksheets and use them in your headers to add visual detail. ![Viz with images of shoes along with the shoe type and sales](/tableau/current/en-gb/server-linux/en-gb/Img/imagerole_1.png) ## Prepare your data source Image Role can be assigned to discrete dimension fields that contain URLs that point to web images. To prepare your data, be sure that your image fields meet the requirements set by Tableau to be assigned an image role: - Make sure your URLs navigate to .png, .jpeg, .jpg, .svg, .webp, .jfif, .ico, or .gif image files. - Verify that each URL begins with http or https. If a transport protocol isn’t included, Tableau assumes https. - Optimise the number of images used in your data set. Usually, you can load up to 500 images per field. - Ensure that each image file is smaller than 200 kb. **Note:** If you're using Tableau 23.1 or earlier, your URLs must navigate to image files with .jpg, .jpeg or .png file extensions. In Tableau 23.2 and later, .gif files are supported, but .gif **animations** will only show on Tableau Cloud and Tableau Server with a client-side render. In Tableau Desktop and Tableau Server with a server-side render, the .gif file will show as a static image. Depending on the complexity of your viz, Tableau may default to a server-side render, which limits the number of images to 100 per field. To learn more about complexity settings and server-side rendering, see [Configure Client-Side Rendering.](https://help.tableau.com/current/server/en-gb/browser_rendering.htm) ### Example data set:
Product NameProduct Image URLProduct Sales
Flatshttps://img.example.com/flats.png12,118
High Heelshttps://img.example.com/highheels.png15,865
Running Shoeshttps://img.example.com/runningshoes.png14,200
Wedgeshttps://img.example.com/wedges.png8,665
## Assign an image role to your URLs After you’ve connected to your data source, you can assign an Image Role to your URLs from either the Data Source page or on the Data pane in a worksheet. ### From the Data Source page: 1. Locate the column that has image URLs. 2. Right-click (control-click on Mac) the icon on the top left of the column and select Image Role > URL. The icon changes to an image icon, and your images are ready to use. ![Data source option to assign an image role to URLs](/tableau/current/en-gb/server-linux/en-gb/Img/imagerole_3.png) ### From a worksheet: 1. Open a new worksheet. 2. Locate a discrete dimension field that has image URLs. 3. Right-click (control-click on Mac) the dimension field and select Image Role > URL. The icon changes to an image icon, and your images are ready to use. ![Data pane option to assign an image role to data](/tableau/current/en-gb/server-linux/en-gb/Img/imagerole_2.png) ## Add images to your visualisations From your worksheet, drag the Image Role field onto the Rows or Columns shelf. You can now see images along with their associated data on your viz. ![Create an image role in the data pane.](/tableau/current/en-gb/server-linux/en-gb/Img/imagerole_addtoviz2.gif) ## Share your visualisations You can export your workbooks with images and share them. Be sure that the images used in your vizzes are available to be viewed by everyone you share your vizzes with. For example, if you’re using images that are hosted on an internal server behind a firewall, be sure that everyone you share the viz with has sufficient permissions to access the images. In this example, users who view the viz while connected to the same server shouldn’t have any issues seeing the images. But users who export the viz to a PDF on a Tableau Cloud server may not be able to see the images. If you export your workbook and your viewer attempts to open it in Tableau 2022.3 or earlier, your viewer won’t be able to see the images. **Note:** It’s a best practice to always align an Image Role field with a text description to make the content accessible for screen readers and other accessibility software. ## Troubleshoot image connections Sometimes images won't be displayed if you exceed the number of images allowed per field, have large image files on a complex viz or are viewing the viz on a mobile device. This section helps you troubleshoot those errors. ### None of the images are being displayed in my viz There are too many images in the viz Depending on the complexity of your viz, you can typically load 500 images per field. If you have a complex viz, it may default to server-side rendering. With server-side rendering, you can load 100 images per field. If you get an error message that there are too many images in the viz, filter out images and try again. Tableau couldn't access the images If you receive broken image icons instead of your images, first confirm that you have sufficient permissions to view the images (or if, for example, they're behind a firewall). Tableau must be able to access the images, and the images can't require a separate authentication to view them. If you're sure that you have permission to view the images and they're within the size requirements, check that web images are enabled on your settings page. In Tableau Desktop: 1. From your workbook, click Help in the toolbar. 2. Select Settings and Performance > Set Dashboard Web View Security. 3. Make sure that Enable Web Page Objects and Web Images is ticked. In Tableau Cloud: 1. From the home page, click Settings. 2. Under general, scroll down and locate Web Page Objects and Web Images. 3. Make sure that Enable Web Page Objects and Web Images is ticked. ### Some of the images aren't displaying in my viz The image file is too large Each image file must be smaller than 200 kb to render. Check your image file size and try again. You're using an earlier version of Tableau If you’re using Tableau 23.1 or earlier, only .png, .jpeg and .jpg image files are supported. Upgrade your version of Tableau or use a supported file type for the version of Tableau you're using. The image URL must begin with http or https Each image URL must begin with either http or https. Tableau doesn't currently support FTP/SMTP calls. Verify your URL format and try again. The image file must be a URL An Image Role can be assigned to only URLs that navigate to .png, .jpeg, or .jpg, .svg, .webp, .jfif, .ico, .bmp or .gif image files. Verify your URL format and try again. The image file type isn’t supported An Image Role can be assigned to only URLs that navigate to .png, .jpeg, or .jpg, .svg, .webp, .jfif, .ico, .bmp or .gif image files. Verify your URL format and try again. If you’re using Tableau 23.1 or earlier, only .png, .jpeg and .jpg image files are supported. Upgrade your version of Tableau or use a supported file type for the version of Tableau you're using. In Tableau 23.2 and later, .gif files are supported, but .gif **animations** will only show on Tableau Cloud and Tableau Server with a client-side render. In Tableau Desktop and Tableau Server with a server-side render, the .gif file will show as a static image. The image file contains bad characters An Image Role can't be assigned to URLs that have the following characters: < > & \\ ^ ' or the following character sequences: .. \\\\. \\r \\n \\t Verify that your URL doesn't contain any of these characters or character sequences and try again. ### The images aren't being displayed outside of my worksheet The images aren't displaying in Viz in Tooltip Viz in Tooltip is processed with server-side rendering, which allows you to load up to 100 images per field. Verify that you have fewer than 100 images per field and try again. For more about server and client-side rendering, see [Configure Client-Side Rendering.](https://help.tableau.com/current/server/en-gb/browser_rendering.htm) For more about using Viz in Tooltip, see [Create Views in Tooltips (Viz in Tooltip).](https://help.tableau.com/current/pro/desktop/en-gb/viz_in_tooltip.htm) The images aren't being displayed in View Thumbnail View Thumbnail is processed with server-side rendering, which allows you to load up to 100 images per field. Verify that you have fewer than 100 images per field and try again. For more about server and client-side rendering, see [Configure Client-Side Rendering.](https://help.tableau.com/current/server/en-gb/browser_rendering.htm) The images aren't being displayed when I export my workbook All exports and export-related features are processed with server-side rendering, which allows you to load up to 100 images per field. Verify that you have fewer than 100 images per field and try again. The images aren't being displayed on a mobile device Mobile devices have a lower complexity threshold than computers, so the processing is completed through server-side rendering, which allows you to load up to 100 images per field. Verify that you have fewer than 100 images per field and try again. You can change the complexity settings on your mobile device. For more info on complexity thresholds, see [Configure the complexity threshold for computers and mobile devices.](https://help.tableau.com/current/server/en-gb/browser_rendering.htm#configure-the-complexity-threshold-for-computers-and-mobile-devices) [Skip to main content](#main-content) # Admin Profiles The Server Administrator and Site Administrator site roles grant users automatic permissions to various administrative settings but also all content. This means that if a user is made an admin so they can add users to the site or manage groups, they can also access all content on the site. In many settings, this type of access isn’t ideal. Admin Profiles are a way to give a user a specific set of administrative capabilities without giving them universal content access. Each admin profile defines a specific set of capabilities. Users are then assigned to a profile and gain the ability to perform those tasks. - Admin profile capabilities include user management and group management. They don’t include the ability to modify site settings. - Admin profiles are created and managed by a Tableau Server Admin. Site admins can be authorised to assign users to profiles, but site admins can’t edit or create admin profiles. - Admin profiles don’t grant access to content. ## Create an admin profile Creating an admin profile consists of setting up the profile capabilities and adding it to sites. Only a Tableau Server Administrator can create an admin profile. ### Open the Admin Profiles page 1. As a Tableau Server Administrator, go to All Sites to access server-level settings. 1. Open the dropdown for the site selector and choose Manage all sites. 2. In the left pane, select Admin Profiles. Any existing profiles appear in the Admin profiles list. A pane to the right shows details for the selected profile. A selected profile has three tabs: Capabilities, Sites and Users. - The **Capabilities** tab shows all the capabilities at a glance. - The **Sites** tab shows which sites the admin profile is present on, and how many users per site have the profile. Add the profile to existing sites from this tab. - The **Users** tab shows which users have the profile. This tab is useful for auditing but users can’t be assigned a profile from this tab. Profile assignment happens from the Users page. ![the Admin Profiles screen, with a list of four admin profiles and one selected to show its details](/tableau/current/en-gb/server-linux/en-gb/Img/admin_profiles.png) ### Make a new admin profile 1. Click the New Admin Profile button. 2. Name the profile. 1. This name appears in a dropdown when assigning the profile to users, so make it descriptive but short. 2. Avoid potentially conflicting names (such as site roles like ‘Site Admin Creator’.) 3. Select which [Admin profile capabilities](#capabilities) the profile should grant. 1. Some capabilities depend on other capabilities. For example, ‘See users’ is required for the capability ‘Add new users’. The help text for each capability describes any dependencies it has. The REST API doesn’t have these dependencies. 2. Users can have at most one profile per site. 4. (Optional) Add a description that describes the admin profile’s purpose. 5. Click the Create Admin Profile button ![the Create Admin Profiles dialog, showing the capabilities for user and group management](/tableau/current/en-gb/server-linux/en-gb/Img/admin_profiles_capabilities.png) The profile now exists on the server, but it’s not yet available on any sites. The next step is to add the profile to a site and add users. ### Add the profile to a site 1. Select the profile from the list of admin profiles. 2. Go to the Sites tab. 3. Click the Assign Admin Profile to Site button. 4. Select the sites that the profile should be available on. The final step is to assign the profile to users. Because only server admins can access the Admin Profiles page, this step isn’t done on the Admin Profiles page. Instead, users are assigned an admin profile from the Users page. ## Assign an admin profile to users To be given an admin profile, a user must have an Explorer or Creator site role. Users can be assigned only one admin profile per site. _Site or Server administrator_. Users can be assigned admin profiles at the site level: 1. Go to the Site Users page. 2. Open the action menu (...) for the user 3. Select Site role… 4. Use the Admin profile dropdown to assign them a profile. 1. To assign a profile that doesn’t appear in the dropdown, ask a server admin to make sure the profile has been added to the site. ![The site role dialog showing dropdowns for site role and admin profile](/tableau/current/en-gb/server-linux/en-gb/Img/admin_profiles_siteroles.png) _Server administrators only_. Users can be assigned admin profiles at the server level: 1. Go to the Server Users page. 2. Open the action menu (...) for the user. 3. Select Site membership… 4. For each site the user belongs to, use the Admin profile dropdown to assign them a profile. 1. Each site’s dropdown shows profiles that have been added to that site. To assign a profile that doesn’t appear in the dropdown for that site, go back to the section [Add the profile to a site](#addtosite) and make sure the profile has been added to that site. ## Manage admin profiles To manage an admin profile, go to the Admin Profiles page. (All sites > Admin Profiles in the left pane). From there: - Edit an admin profile by opening the action menu (...) for the profile and selecting Edit Profile. - Delete an admin profile by opening the action menu (...) for the profile and selecting Delete Profile. - Remove a profile from a site by selecting the profile and going to its Sites tab. Open the action menu (...) for a site and choose Remove from site. - If there are any users assigned to that profile on that site, they lose their admin capabilities. ## Admin profile capabilities Unlike groups, which are evaluated in combination to determine [effective permissions](https://help.tableau.com/current/server/en-gb/permission_effective.htm#evaluate-permission-rules), a single admin profile defines what a user with that profile can and can’t do. Set up each admin profile to exactly describe what capabilities a user with that profile has. ### User Management
CapabilityDefinitionNotes
Add new usersCreate and add new users to the siteTo be able to add users by importing a file upload, the admin profile must include Manage user settings in addition to Add new users.
Manage user settingsAssign site roles and manage user settingsUser settings include locale, email address, force password update and so on. May need to be granted on multiple sites.*
See usersSee what users exist on the siteSee users is required for all other user management capabilities in the UI. It isn’t required for the API.
Delete usersPermanently remove users 
\*When an end user has access to multiple sites, some of their user settings such as email address are shared across sites. For a user with an admin profile to manage these settings, they need to be granted the _Manage user settings_ capability on every site the end user is on. For example, consider user Leone who is a viewer on Site A and Site B. Rialto is a user with an admin profile that includes _Manage user settings_ on Site A. Rialto won’t be able to manage Leone’s email address – even on Site A – unless Rialto is given an admin profile on Site B that includes _Manage user settings_. ### Group Management
CapabilityDefinitionNotes
Create new groupsCreate groups with and without grant role on sign-in 
See groupsSee what groups exist on the siteSee groups is required for all other group management capabilities in the UI. It isn’t required for the API.
Edit group detailsChange group names and grant role on sign-in status. 
Add users to groupsManage group membershipOnly users with an admin site role can assign an admin site role to another user.
Delete groupsPermanently remove groups 
[Skip to main content](#main-content) # Administrative Views The Status page contains an embedded Tableau workbook with various administrative views. These views help you to monitor different types of server or site activity. **Note:** You must install PostgreSQL drivers before you can see Administrative views. For more information, see [Database Drivers](https://help.tableau.com/current/server-linux/en-gb/dbdriver.htm). ## Navigating to administrative views To see administrative views, click Status. Site administrators can see administrative views for their site. Administrators of multiple sites can see views for the current site. On a multi-site server, server administrators can see views for the entire server. Click the site menu, and then click Manage All Sites to access the server menus. ![A menu with options for Home, Explore, Favourites, Recents, Users, Groups, Schedules, Tasks, Server Status and Settings.](/tableau/current/en-gb/server-linux/en-gb/Img/nav_status_multi_site_serveradmin.png) To see views for individual sites on a multi-site server, click the site menu, select the site name and then click Site Status. ![A menu with options for Home, Explore, Favourites, Recents, Users, Groups, Schedules, Tasks, Server Status and Settings.](/tableau/current/en-gb/server-linux/en-gb/Img/nav_status_multi_site_serveradmin01.png) ## Other articles in this section [Skip to main content](#main-content) # Administrative Views for Flows Administrative views can be used to monitor the activities related to flows, performance history and the disk space used. The **Status** page contains an embedded Tableau workbook with various administrative views that can be used to monitor different types of server or site activity. For **Tableau Server** installations, you must install PostgreSQL drivers before you can see Administrative views. For more information, see [Database Drivers](https://help.tableau.com/current/server-linux/en-gb/dbdriver.htm) (Linux), [Database Drivers](https://help.tableau.com/current/server/en-gb/dbdriver.htm) (Windows). Server administrators can use these views to see activity both at the server level (aggregated for all sites) or for a specific site. Only server administrators can filter by site. ## Who can do this? Tableau Server administrators and Tableau Site administrators can both view and work with Administrative Views. Only Server administrators can filter by site. ## Action by all users Use this view to gather insight into how flows are being used. This includes actions like publish, download and flow runs. You can filter the view by actions, by site and by time range. The Total Users count shows the number of users who have performed an action. This value is not affected by any filtering. The Active user count shows the number of users who have been active during the selected time period and performed one of the selected actions. ![An administrative view showing a line chart on flows and how they are being used.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_action_allusers.png) ## Action by Specific User Use this view to gather insights about how an individual user is working with flows. You can filter the view by username, the type of action, time range and by site. ![An administrative view showing how an individual user is working with flows.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_action_specificuser.png) ## Action by Recent Users This view shows you which users have been active on Tableau Server over the past 24 hours. This can be useful if you need to do some maintenance activity on the server and want to know which users and how many this will affect, and what they're doing. The view shows **Active**, **Recently Active** and **Idle** users that are currently signed in to Tableau Server. For this view, an active user is one who took an action in the last 5 minutes, a recently active user is one who last took an action within 30 minutes, and an idle user is one who last took an action more than 30 minutes ago. Select a user to see only the actions that user performed recently. Hover over an action to see details of the action. ![An administrative view showing which flow users have been active on Tableau Server or Tableau Cloud over the past 24 hours.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_action_recentusers.png) ## Backgrounder Task Delays This view shows the delay for extract refresh tasks, subscription and flow tasks – that is, the amount of time between when they are scheduled to run and when they actually run. You can use the view to help identify places you can improve server performance by distributing your task schedules and optimising tasks. ![An administrative view showing Extract, Subscription and Flow wait times.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_backgrounder_delays.png) Possible reasons for the delays and ways to reduce the delays include the following: - Many tasks are scheduled for the same time. In the example view, tasks that show long delays are clustered at the same time every day, which creates spikes in the wait time. You can set the Timeline filter to a single day to view task delays by hour and identify the hours of the day when many tasks are scheduled at the same time. One solution is to distribute the tasks to off-peak hours to reduce load on the server. - Other server processes running at the same time are consuming server resources and slowing down performance. Monitor the CPU and memory usage of server processes to identify processes that consume the most resources, then adjust the configuration of processes on your server. For more information on monitoring processes, see [Collect Data with Windows Performance Monitor](https://help.tableau.com/current/server/en-gb/perf_collect_perfmon.htm). ## Background Tasks for Non Extracts Background Tasks are created to run flows (scheduled and ad hoc). You can use this view to see how many flow tasks succeeded or failed on this site. For details on a task, hover over its icon. ![An administrative view showing how many flow tasks succeeded or failed on this site.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_backgrounder_tasks.png) ## Performance of Flow Runs Use this view to see the performance history for all the flows on a site. You can filter by Flow Name, Output Step Name, Flow Owner, Run Type (Scheduled or Ad Hoc) and the time the flow runs were started. ![An administrative view showing the flow performance over time. Each point on the chart corresponds to a specific flow run, displaying the flow name, output step, flow owner, run type, and start and end times.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_flow_performance.png) Questions you can answer using this view include: - **What flow tasks are currently scheduled?** – To do this, use the Start Time filter and select the time frame you want to look at. For example, to see flow tasks that are scheduled in the next 3 hours, select **Hours** -> **Next** -> and enter **3**. - **What is the duration of flow tasks?** – To answer this, click on a mark in the view to see details, including the task duration. - **How many flows were run ad hoc, and how many were scheduled runs?** – To answer this, use the **Run Type** filter and select **Ad hoc** or **Scheduled**. This view can also show you the following information: - Flows with the highest run frequency have the most marks. - To see flows that are currently running at the same time, hover over a mark that shows “**In Progress**” or “**Pending**” and select “**Keep Only**” to filter all flow runs that are currently running. - To see flows that are running at the same time during a specific time range, select a range for the **Start Time** filter. For example, select “**Next three hours**” to see which flows will be running in the next three hours. ## Stats for Space Usage Use this view to identify which flow outputs are taking up the most disk space on the server. Disk space usage is displayed by user, project and the size of flow output, and is rounded down to the nearest number. ![An administrative view showing which flow outputs are taking up the most disk space on the server.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_spaceusage.png) Use the Min Size filter to control which flow outputs are displayed, based on the amount of space they take up. Use the object type filter for flows. - **What Users Use the Most Space** – This section shows the users who own flows (when filtered for flows) that are taking up the most space. Click a username to filter the next two graphs for that user. - **What Projects Use the Most Space** – This section shows the projects with flows (when filtered for flows) that are using the most space. - **What Workbooks, Data Source and Flows Use the Most Space** – This section shows the flows (when filtered for flows) that take up the most space. ## Who can do this - **Tableau Server Administrators**: - Set up email notifications at the server level - Set up email notifications for a site - View errors - Resume suspended tasks - View alerts - view process status - **Tableau Site Administrators**: - Set up email notifications at the site level - View errors - Resume suspended tasks - View alerts - **Flow owners, project leaders and any user who is granted permissions to view the flow**: - View errors - Resume suspended tasks - View alerts (Flow owners) [Skip to main content](#main-content) # Agent Incidents [Agents Unlicensed](#Agents) (critical) [Incompatible Agent Version](#Incompat) (critical) [Agent Message Queue Credential Rotation Failure](#MQCredFail) (critical) [Agent Down](#Agent) (warning) In an effort to align with our company values of Equality, we have changed non-inclusive terminology where possible. Because changing terms in certain places can cause a breaking change, we maintain the existing terminology. So, you may continue to see the terms in CLI commands and options, installation folders, configuration files and other instances. For more information, see [About Tableau Help](https://help.tableau.com/current/tableau/en-gb/about-tableau-help.htm). ## Agents Unlicensed _Agents Unlicensed_ incidents will be logged as critical when we detect that your Tableau Server has not been properly licensed to use Tableau Resource Monitoring Tool. To monitor a Tableau Server using the Resource Monitoring Tool your Tableau Server must be licensed with the Tableau Advanced Management. Agents will no longer collect data in the unlicensed state and send to the RMT Server. You can, however, continue to see the data that was previously collected when the environment was properly licensed. To resolve this issue, license Tableau Server with Advanced Management. For more information, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). **Note:** It may take up to an hour after adding a valid licence to Tableau Server, for the incident to be cleared. There are other possible causes that can cause an **Agents Unlicensed** incident: - Tableau Server API credentials may not be correct. In the environment configuration page, verify that the username and password are correct and that the account used has the Server Administrator role on Tableau Server. - Unable to connect to Tableau Server REST API. Make sure that REST API is enabled on Tableau Server and that Tableau Server is running. To resolve the REST API connectivity issue, from the **Admin** menu, select **Environments**, click **Edit Environment** on the environment you want to modify, and in the **Environment Details** tab, click the **Test Connection** button in the **Tableau Server REST API** section on the right side of the page. - The RMT Server was unable to connect to Tableau Server, likely due to a network connectivity or similar issue. ## Incompatible Agent Version Agent-incompatible incidents will be logged as critical when one or more Agents in the environment are on a version that is not compatible with the RMT Server version. To resolve the issue, you need to make sure that the Agent is on a version that is compatible with the current RMT Server version. Use one of the following to resolve this issue: - We recommend that the RMT Server and all Agents be on the same version. - If the Agent is on a version that is earlier than the minimum compatible version, then you must upgrade the Agent to at least the minimum compatible version that is listed in the incident report. - If the Agent is on a version that is later than the RMT Server version, we recommend that you upgrade the RMT Server to that same later version as well. You may need to upgrade other Agents depending on the version that they are currently on. ### Upgrading Agents: Use the following steps to upgrade the Agent: - 1. Copy the Agent package to the machines where you have Agents installed. Agents are installed on Tableau Server nodes that you are monitoring. The Agent should be on the same version as the RMT Server or use a version that is compatible with the RMT Server version. The incident details provide the minimum compatible version. 2. Stop the Resource Monitoring Tool Agent service on all Tableau Server nodes using the following command: `rmtadmin stop --agent` 3. Upgrade all the Agents by running the following command: **For RHEL like distributions including CentOS:** `sudo yum install /-x86_64.rpm>` `sudo /opt/tableau/tabrmt/agent/install-scripts/upgrade-rmt-agent --accepteula` **For Ubuntu and Debian distributions:** If you are upgrading from version 2020.4 to 2020.4.1 or later: `touch /tmp/tabrmt-agent-upgrading.txt && sudo apt install -amd_64.deb>` `sudo /opt/tableau/tabrmt/agent/install-scripts/upgrade-rmt-agent --accepteula` > [!IMPORTANT] > > **Note:** The touch command is only required when upgrading from 2020.4. If you do not run the touch command before installing the package, your existing version of the Resource Monitoring Tool will be uninstalled before upgrading. If you are upgrading from version 2020.4.1 to 2020.4.2 or later: `sudo apt install /-amd_64.deb>` `sudo /opt/tableau/tabrmt/agent/install-scripts/upgrade-rmt-agent --accepteula` 4. Confirm that the Agent is running and has been upgraded. You can view Agent registration status by navigating to **Admin** -> **Environments** -> **Edit the Environment** -> **servers** tab to see a full list of Tableau Server nodes and the status of the Agent. ### Upgrading RMT Server Upgrade the RMT Server if one or more Agents are on a later version. Use the following steps to upgrade RMT Server: 1. Copy the new version of the RMT Server package to the machine where RMT Server is installed. 2. Stop the Resource Monitoring Tool on the RMT server using the following command: `rmtadmin stop --master` 3. Stop the Resource Monitoring Tool Agents on all Tableau Server Nodes using the following command: `rmtadmin stop --agent` 4. Once the services have been stopped, it is best practice to check for any Resource Monitoring Tool processes that are running after the services have been stopped: Any with tabrmt-agent or tabrmt-master. This does not include PostgreSQL or RabbitMQ. You can check the status using the following command: `rmtadmin status` 5. Run the upgrade commands on the RMT Server. This will upgrade the existing version to the new version: For RHEL like distributions including CentOS: `sudo yum install /-x86_64.rpm>` `sudo /opt/tableau/tabrmt/master/install-scripts/upgrade-rmt-master --accepteula` For Ubuntu and Debian distributions: If you are upgrading from version 2020.4 to 2020.4.1 or later: `touch /tmp/tabrmt-master-upgrading.txt && sudo apt install -amd_64.deb>` `sudo /opt/tableau/tabrmt/master/install-scripts/upgrade-rmt-master --accepteula` > [!IMPORTANT] > > **Note:** The touch command is only required when upgrading from 2020.4. If you do not run the touch command before installing the package, your existing version of the Resource Monitoring Tool will be uninstalled before upgrading. If you are upgrading from version 2020.4.1 to 2020.4.2 or later: `sudo apt install /-amd_64.deb>` `sudo /opt/tableau/tabrmt/master/install-scripts/upgrade-rmt-master --accepteula` 6. Confirm that the Agent and RMT Server are running. Start the Agent and RMT Server if they do not automatically restart after the upgrade is complete. ## Agent Message Queue Credential Rotation Failure Starting in version 2021.3, as a security best practice, the credentials for connections between Agent and Rabbit MQ must be unique to that Agent. The unique credentials are created during a new installation or updated when upgrading to 2021.3. During upgrade, if there are network issues, the credential update process can fail, resulting in a critical incident report. This, however, does not interrupt the upgrade process and the upgrade process will continue. After upgrade is complete, the Resource Monitoring tool will retry daily to create the unique credentials. A critical incident report is created for the initial failure and every subsequently failed retry. During this time, Agent will continue to work using the previous credentials until new credentials have been created. The issue might resolve by itself, but if it persists, do the following: - Verify that the Agents can connect to RMT Server. - Check for firewall issues between Agent and RMT Server. ## Agent Down Agent Down incidents will be logged as warning when the Tableau Resource Monitoring Tool is unable to communicate with the Agents on Tableau Server. Use the following steps to troubleshoot this issue: 1. Make sure that the hardware that hosts the Agents is running and available to communicate with the RMT Server. 2. Make sure that the Agent service is successfully registered and is running. You can view Agent registration status by navigating to **Admin** -> **Environments** -> **Edit the Environment** -> **servers** tab to see a full list of Tableau Server nodes and the status of the Agent. ### Agent polling and incident creation times - Agent sends a _heartbeat message_ to the Resource Monitoring Tool server every 5 minutes. - The Resource Monitoring Tool server checks to see if the most recent _heartbeat message_ from Agent is less than 15 minutes old. - If the latest _heartbeat message_ received from the Agent is less than 15 minutes old, then the Agent is considered to be online and no incident is created, and any existing **Agent Down** incidents are cleared. - If the latest _heartbeat message_ received from Agent is more than 15 minutes old, then it is considered to be the first failed attempt. Every minute thereafter, a check is done two more times. If after three attempts (first attempt and two retries) there is still no recent heartbeat message, then an **Agent Down** incident is created. **Note:** Based on the polling interval described above, it takes about 17 (15+1+1) minutes for an **Agent down** incident to be created after the Agent is offline. ## Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Server/Environment Management** role. [Skip to main content](#main-content) # Allow Saved Access Tokens After you configure Tableau Server for OAuth, you can decide to allow users to manage their own OAuth credentials, or you want to manage them centrally. If you want users to manage their own, you need to enable user profile settings from the server. **Note:** If you haven’t yet configured your server to enable OAuth data connections, see the related topics listed below. **Note**: Single-use refresh tokens are not supported for OAuth connections to Tableau at this time. In most cases, you can set up your identity provider (such as Okta or Redshift IDC) to use rolling refresh tokens instead. For more information, see your provider’s OAuth documentation. 1. Sign in to Tableau Server as a server administrator. 2. **Single-site**: Click Settings \> General. **Multisite**: In the site menu, click **Manage. All Sites** and then click Settings \> General. 3. In the Saved Credentials for Data Sources section, select the following: - Let users save passwords for data sources (allows users to save their individual credentials with data sources). - Let users save OAuth access tokens for data sources ![](/tableau/current/en-gb/server-linux/en-gb/Img/allow_saved_tokens.png) 4. Click Save. After you tick these boxes, users will see a Manage Credentials section in their profile settings, where they can add access tokens for OAuth data connections. ![](/tableau/current/en-gb/server-linux/en-gb/Img/allow_saved_tokens3.png) ## Managing credentials centrally Server administrators alternatively can manage OAuth credentials centrally. This can work well, for example, if multiple users work from the same data, and you have a dedicated user account for your data provider. To manage credentials centrally, you do the following: - Clear the tick boxes described in the preceding procedure. - Edit connection information as data sources are published. When you edit the connection, you embed credentials that use an OAuth access token instead of an individual’s user name and password. When the settings for saving passwords and access tokens aren’t enabled, the Manage Credentials section is excluded from users’ profile settings. ## See also [Set up OAuth for Google](https://help.tableau.com/current/server-linux/en-gb/config_oauth_google.htm) [Change Salesforce.com OAuth to Saved Credentials](https://help.tableau.com/current/server-linux/en-gb/config_oauth_sfdc.htm) [Configure OAuth for Snowflake Connections on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/config_oauth_snowflake.htm) [Set Up OAuth for Intuit QuickBooks Online](https://help.tableau.com/current/server-linux/en-gb/config_oauth_qbo.htm) [Skip to main content](#main-content) # Allow Users to Save Revision History Revision history enables your users to see how workbooks and data sources (content resources) have changed over time. Each time someone saves (publishes) a content resource, Tableau Server creates a new version, which becomes the current version. It makes the previous version the most recent revision in the revision history list. Revision history gives users confidence to experiment with their content, knowing that their older versions are available. ## Notes - This information applies to Tableau Server, and is for server administrators who want to allow publishers to work with revisions. - On Tableau Cloud, workbook and data source revision history are enabled on all sites. Users can save up to 10 revisions. - For information about working with the content revisions themselves, including potential issues, see [Work with Content Revisions](https://help.tableau.com/current/pro/desktop/en-gb/qs_revision_history.htm "Opens linked topic in new browser tab.") in the User/Analyst section of the Tableau help. ## Permissions users need to work with revision history To access revision history, a user must have a site role of Creator or Explorer (Can Publish), plus the following permissions, depending on the content type: - Project: View and Save - Workbooks in the project: View, Save and Download Workbook/Save As - Flows in the project: View, Save, and Download Flow/Publish As - Data sources in the project: View, Save and Download Data Source For virtual connections in the project, you must have a Creator site role and the View and Overwrite permissions. (Virtual connections require Data Management. See [About Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_overview.htm) for details.) ## Enable revision history and set the number of revisions allowed Revision history is set at the site level, and is enabled by default, with a limit of 25 revisions for each content resource. 1. Sign in to a site as a Server Administrator, and click Settings. 2. Under Revision History, select Save a history of revisions, and enter the maximum number of revisions you want to allow for each content resource. 3. Click Save. When you lower the number of revisions, the most recent revisions are saved. For example, if you set the limit to 15, the 15 most recent versions of the workbook or data source are saved. **Note**: A content resource’s revision history list might not show the changes to the limit until a background cleanup process runs on the server. ## Clear all revisions Server administrators can delete all previous revisions of published workbooks and data sources from a site. The most recent version of each published workbook and data source is always retained. 1. Sign in to a site as a Server Administrator, and click Settings. 2. Under Revision History, click Clear Revision History. 3. Click Save. ## Security for previewing and restoring workbooks When users select Restore or Preview for workbook revisions, user passwords are exchanged between the user’s browser and the server. Tableau Server encrypts these passwords using public/private key encryption. To ensure these public keys are provided by Tableau Server, you must configure the server to use SSL (HTTPS). For more information, see [SSL](https://help.tableau.com/current/server-linux/en-gb/ssl.htm). ## See also [Potential revision history issues](https://help.tableau.com/current/pro/desktop/en-gb/qs_revision_history.htm#more-notes) in the User/Analyst section of the Tableau help. [Skip to main content](#main-content) # An error occurred communicating with the server (403) If Tableau Server is configured for trusted authentication, you may receive this error after opening a new view in a browser and attempting to navigate back to views you'd opened earlier. Tableau Server provides protection against unauthorised reuse of VizQL sessions through the [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm) `vizqlserver.protect_sessions`, which are set to `true` by default. Because Tableau Server is configured for trusted authentication, you might not need this level of protection. To disable this option, you can use [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm) to change `vizqlserver.protect_sessions` to `false`. Beginning in 2024.2.0, Tableau Server always prevents VizQL sessions from being reused after the original user signs out. [Skip to main content](#main-content) # Analysed Fields in Explain Data Explain Data runs a statistical analysis on a dashboard or sheet to find marks that are outliers, or specifically on a mark you select. The analysis also considers possibly related data points from the data source that aren't represented in the current view. Explain Data might not include every column from the data source in the analysis. In many cases, certain types of fields will be automatically excluded from the analysis. For more information, see [Fields excluded by default](#DefaultExcFields). ![Explain Data view of analysed fields.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_viewfields.gif) **Note**: Dimensions with more than 500 unique values won't be considered for analysis (unless allowed by the author in Explain Data Settings). All users can view information on which fields are included or excluded in the current analysis. Creators and Explorers who have editing permissions can edit the fields used by Explain Data for statistical analysis. ## View fields analysed by Explain Data When you expand an explanation for a measure that is contributing to the value of the mark, a link that indicates the number of fields considered in the analysis is displayed at the bottom of the Data Guide pane. ![Explain Data details with a link to view the 14 of 23 fields that are relevant to the higher sum value.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_fieldslink.png) Click the link to see the list of fields included in or excluded from the current statistical analysis. When a data source contains more than 1000 unvisualised dimensions or measures, you might see an alert asking if you want Explain Data to consider more fields. Click Explain All to run an analysis that includes more fields. The analysis may take longer to complete. #### To view fields used by Explain Data for statistical analysis 1. [Run Explain Data on dashboard, sheet or mark](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm#RunExD). 2. In the Data Guide pane, under **Contributing to the value of**, click a measure name. ![Explain Data details about an analysed mark, with text highlighted that describes a higher-than-expected trip distance sum value of 8,800.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_viewfields1.png) 3. Click on the _number-of-fields_ link at the bottom of the pane. ![Explain Data details about an analysed mark, with text highlighted that reads "12 of 23 fields".](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_viewfields2.png) ## Change fields used for statistical analysis Creators and Explorers who have editing permissions can select fields to be included or excluded from the statistical analysis in the Fields tab of the Explain Data Settings dialog box. ![Explain Data Settings window that provides information about the data settings, including fields and data types.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_settings.png) When a data source contains dimensions with a large number of unique values (up to 500), those fields won't be considered for analysis. #### To edit the fields used by Explain Data for statistical analysis Settings for analysed fields are applied at the data source level. 1. Run Explain Data on a mark when editing a view. 2. In the Data Guide pane, click the settings icon at the bottom of the pane. Or, click the Edit button in the Analysed Fields view ([how to open analysed fields](#ViewAnalyzed)). ![Edit button on the Analysed Fields pane.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_editfields.png) 3. In the Explain Data Settings dialog box, click on the Fields tab. 4. Click a drop-down arrow next to a field name, select Automatic or Never Include, and then click OK. Note that fields must have less than 500 unique values to be included in the analysis. ![Explain Data Settings window with a measure selected and the dropdown menu expanded to reveal options for including or excluding the field.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_excludefield.png) ## Fields excluded by default
Fields excluded by defaultReasons for exclusion

All unvisualised measures when there are more than 1,000 measures in the data source.

All unvisualised dimensions when there are more than 1,000 dimensions in the data source.

Computing explanations for more than 1000 unvisualised measures or dimensions can take longer to compute, sometimes several minutes. These fields are excluded by default for initial analysis, but you can choose to include them for further analysis.

In this situation, you might see an alert asking if you want Explain Data to consider more fields. Click the alert link to get more information. Click Explain All to run an analysis that includes more fields.

Fields that use geometry, latitude or longitudeGeometry, latitude or longitude by themselves can never be explanations. It is highly likely that an explanation that calls out the latitude or the longitude as an explanation is due to a spurious correlation and not a probable explanation.
Dimensions with high cardinality (dimensions with > 500 members)

High cardinality dimensions take longer to compute. Dimensions with more than 500 unique values will not be considered for analysis.

Groups, bins or setsNot currently supported.
Table calculationsTable calculations cannot be analysed when table calculations are at a different level of detail than the view.
Unvisualised measures that can't be averagedUnvisualised measures that can't be averaged include measures that are calculated fields where the calculation expression includes aggregations (display as AGG() fields when added to the sheet).
Discrete measures and continuous dimensionsNot currently supported.
Hidden fieldsNot available.
Calculated fields with errorsNo values present to analyse.
[Skip to main content](#main-content) # Archived Content ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Other articles in this section [Skip to main content](#main-content) # Ask Data Usage **Important changes for Ask Data and Metrics** Tableau's Ask Data and Metrics features were retired in Tableau Cloud in February 2024 and in Tableau Server version 2024.2. With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau AI and Tableau Pulse are reimagining the data experience.](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-gpt) The Ask Data Usage view is a pre-built dashboard that allows site or server admins to see and understand the usage patterns and value of Ask Data for a site. Admins can see the growth of engagement with Ask Data and monitor the results of internal training or roll-outs. The dashboard highlights the top Ask Data users, data sources, and data source owners, along with some headline value metrics. ![A dashboard illustrating Ask Data's usage and adoption, tracking the number of users, queries and data sources over time.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_ask_data_usage.png) To enable Ask Data, see [Disable or Enable Ask Data for a Site](https://help.tableau.com/current/server-linux/en-gb/ask_data_enable.htm). ## Explore the dashboard The Ask Data Usage view provides information about Ask Data across the entire site. You can use the following metrics to understand user engagement and help drive self-service analytics adoption in your organisation. ![Ask Data usage is evidenced by 22 users, 177 queries and 930 data sources.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_ask_data_usage_top.png) At the top of the dashboard, three headline metrics provide an overview of Ask Data usage on the site. - Number of Users on Ask Data - This shows the total number of Ask Data users on the site. - Number of Queries on Ask Data - This shows the total number of Ask Data queries issued on the site. - Number of Data Sources Used with Ask Data - This shows the total number of data sources used with Ask Data. ![Two line graphs display the growth of distinct users and distinct data source owners over time.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_ask_data_usage_middle.png) In the middle of the dashboard, two line charts show you how Ask Data is used over time. - Distinct Users Over Time - This shows the distinct number of Ask Data users over time. - Distinct Data Source Owners Over Time - This shows the distinct number of data source owners over time. ![Three bar charts display the top data users, data sources and data source owners.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_ask_data_usage_bottom.png) At the bottom of the dashboard, three bar charts list the top Ask Data users, data sources, and data source owners. - Top Ask Data Users - This lists the top Ask Data users and the total number of queries issued by each user. - Top Ask Data Data Sources - This lists the top Ask Data data sources and the total number of queries issued for each data source. - Top Ask Data Data Source Owners - This lists the top Ask Data data source owners and the total number of data sources owned by each user. [Skip to main content](#main-content) # ATRDiag.exe Command Line Reference You can use the ATRDiag command line utility to manage licensing issues related to the login-based licence management and authorisation-to-run (ATR) features. ## Synopsis `ATRDiag -dumpATR -showAll -showVerbose -product ["Tableau Desktop"]["Tableau Prep"]["Tableau Server"]` `-subProduct {subProduct} -version {version} -setVersion {version}` `-container -serverDataPath {path}` `-log [Trace][Debug][Info][Warn][Error][Fatal][Off] -status -deleteAllATRs` `-deleteInvalidATRs -deleteATR {atrIdToDelete}` `-enableATRFeature -disableATRFeature -enableLBLMFeature -disableLBLMFeature` `-requireLBLMFeature -setDuration {seconds`} **Note:** All ATRDiag options are case-insensitive. ## Options `-dumpATR` Display a valid authorisation-to-run (ATR) on the command prompt (if present). Use `-version/-product/-subProduct/-version` to control which ATR is dumped if more than one is valid. `-showAll` Enumerate the contents of the registry to see available ATRs.(some of which might not be valid). `-showVerbose` Enumerate the contents of the registry and use `-version/-product/-subProduct/-version` to provide per-product. `-product ["Tableau Desktop"]["Tableau Prep"]["Tableau Server"]` Defaults to "Tableau Desktop". Must specify "Tableau Server" to display Server ATR. For example: `atrdiag -product "Tableau Server"` ![Command prompt window with attributes details.](/tableau/current/en-gb/server-linux/en-gb/Img/atrdiag_product_tableau_server.png) `-subProduct {subProduct}` Defaults to "Professional". `-container` Container mode, only for Tableau Server. Must specify `-product "Tableau Server"`. `-serverDataPath` The location of Server data under Container mode. Defaults to `"/var/opt/tableau/tableau_server/"`. `-version {version}` No default; a valid value for this field is "Tableau 2021.1". `-setVersion {version}` Persist a default value for -version. `-log [Trace][Debug][Info][Warn][Error][Fatal][Off]` Display ATR log information. `-status` Provide ATR feature status (enabled or disabled), the licence server and dump the ATR. `-deleteAllATRs` Remove all ATRs present on the machine. `-deleteInvalidATRs` Remove all invalid ATRs. `-deleteATR {atrIdToDelete}` Remove an ATR by ID. `-enableATRFeature` Turn on the ATR feature. Must run as an administrator. For use on Tableau Desktop only. `-disableATRFeature` Turn off the ATR feature. Must run as an administrator. For use on Tableau Desktop only. `-enableLBLMFeature` Turn on login-based licence management (LBLM). Must run as an administrator. `-disableLBLMFeature` Turn off login-based licence management (LBLM). Must run as an administrator. `-requireLBLMFeature` Set the login-based licence management (LBLM) feature to required. Must run as an administrator. `-setDuration {seconds}` Set `ATRRequestedDurationSeconds` to seconds. Must run as an administrator. ## Global Options `-h, --help` Optional. Show the command help. [Skip to main content](#main-content) # Attempting to Redeem the Ticket from the Wrong IP Address When you’ve configured Tableau Server for trusted authentication, you may encounter issues with redeeming the ticket. This issue can occur when Tableau Server is configured to enforce client IP address matching. Because the client web browser IP address is not considered by default when redeeming the ticket, make sure that the client's web browser IP address that is sent in the POST request to Tableau Server is the same as when the browser tries to retrieve the embedded view. For example, in the Trusted Authentication diagram, if the [POST request in step 3](https://help.tableau.com/current/server-linux/en-gb/trusted_auth.htm) sends the parameter `client_ip=74.125.19.147`, then the [GET request in step 5](https://help.tableau.com/current/server-linux/en-gb/trusted_auth.htm) must come from that same IP address. For more information, see [Optional: Configure Client IP Matching](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_optional.htm) to learn how to configure Tableau Server to enforce client IP address matching. [Skip to main content](#main-content) # Audit Permissions Using the Activity Log Permission auditing allows system administrators to monitor which users have modified access controls to Tableau content. There are two ways to modify access control: _explicit_ changes (by changing permission capabilities on a project or content item) and _effective_ changes (by changing user site roles, group membership, moving content and so on). All of these changes are recorded, so administrators can certify that security and access controls are maintained. For more information about how permission rules are evaluated, see [Effective permissions](https://help.tableau.com/current/server-linux/en-gb/permission_effective.htm). ## Log format Every action that modifies user or group access to content will get a log entry. Each log entry is structured in a JSON format, with specific keys representing different pieces of information. A log entry contains two parts: - Metadata: Contains information about when and where an action occurred and what user performed the action. - Action: Contains information about what piece of content had its permissions changed, what capabilities were changed and to what values the capabilities were changed. **Note:** Activity Log records changes made through the Permissions Dialog UI and REST API. For more information about API methods, see [Permissions Methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_permissions.htm). The Activity Log entries are not formatted, and the keys are not sorted in any particular order in the logs. When auditing permissions, you can combine Activity Log data with other data sources to link IDs to names and make the events easier to interpret. ### Example The following is an example log entry showing a group was allowed to connect to a data source. { "actorUserId": 39872, "actorUserLuid": "4e6b42bf-9040-4e60-b326-1c56a4fb96f8", "authorizableType": "DATASOURCE", "capabilityId": 32, "capabilityValue": "connect", "contentId": 2099835, "contentName": "Superstore ExtractNeal3", "eventTime": "2023-01-31T22:44:23.650058Z", "granteeId": 22, "granteeLuid": "dae0717a-d524-436d-b469-fadeaa22a5dd", "granteeType": "Group", "granteeValue": "GROUP\_ALLOW", "initiatingUserId": 39872, "initiatingUserLuid": "4e6b42bf-9040-4e60-b326-1c56a4fb96f8", "isError": false, "eventCategory": "security", "eventType": "set\_permissions", "eventVersion": "1.0", "permissionType": "explicit", "siteLuid": "b45e272d-10c7-49d5-9037-e53ce47dbf4e" } The log entry captures essential information regarding the event, including: - `eventType` shows a set-permissions event occurred - `permissionType` shows an explicit change to permissions - `contentId` shows the ID of the content that was modified - `authorizableType` shows the content type, in this case, a data source - `capabilityValue` shows the capability that was changed - `granteeId` shows the grantee that was affected - `actorUserId` shows the ID of the user who performed the change - `eventTime` shows the date and time of the change ## Events Log entries contain various event types for permissions changes, such as `content_owner_change` when the content owner changes or `set_permissions` when a permission rule is created or updated. Different actions produce different events. For more information about event types, attributes and when they’re recorded, see [Activity Log Site Event Type Reference](https://help.tableau.com/current/server-linux/en-gb/activity_log_schema.htm). [Skip to main content](#main-content) # Authentication Authentication verifies a user's identity. Everyone who needs to access Tableau Server – whether to manage the server, or to publish, browse or administer content – must be represented as a user in the Tableau Server repository. The method of authentication may be performed by Tableau Server (‘local authentication’), or authentication may be performed by an external process. In the latter case, you must configure Tableau Server for external authentication technologies such as Kerberos, SAML or OpenID. In all cases, whether authentication takes place locally or is external, each user identity must be represented in the Tableau Server repository. The repository manages authorisation meta data for user identities. Looking for Tableau Server on Windows? See [Authentication](https://help.tableau.com/current/server/en-gb/security_auth.htm "Opens topic in a new browser tab"). Although all user identities are ultimately represented and stored in the Tableau Server repository, you must manage user accounts for Tableau Server in an identity store. There are two, mutually exclusive, identity store options: LDAP and local. Tableau Server supports arbitrary LDAP directories, but it's been optimised for Active Directory LDAP implementation. Alternatively, if you are not running an LDAP directory, you can use the Tableau Server local identity store. For more information see [Identity Store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm). As shown in the following table, the type of identity store you implement, in part, will determine your authentication options.

Identity 

Store

Authentication Mechanism
BasicSAMLSite SAMLKerberos(Windows only)

Automatic

Logon

(Microsoft

SSPI)

OpenID

Connect

Connected AppsTrusted

Auth

Mutual

SSL

LocalXXX  XXXX
Active

Directory

XX XX XXX
LDAPXX    XXX
Access and management permissions are implemented through site roles. Site roles define which users are administrators, and which users are content consumers and publishers on the server. For more information about administrators, site roles, groups, Guest User and user-related administrative tasks, see [Users](https://help.tableau.com/current/server-linux/en-gb/users.htm) and [Site Roles for Users](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). **Note**: In the context of authentication, it’s important to understand that users are not authorised to access external data sources through Tableau Server by virtue of having an account on the server. In other words, in the default configuration, Tableau Server does not act as a proxy to external data sources. Such access requires additional configuration of the data source on Tableau Server or authentication at the data source when the user connects from Tableau Desktop. ## Add-on authentication compatibility Some authentication methods can be used together. The following table shows authentication methods that can be combined. Cells marked with an "X" indicate a compatible authentication set. Blank cells indicate incompatible authentication sets.
 Connected AppsTrusted AuthenticationServer-wide SAMLSite SAMLKerberos(Windows only)

Automatic Logon (Microsoft

SSPI)

Mutual SSLOpenID Connect
Tableau Connected AppsN/A XXX XX
Trusted Authentication N/AXXX XX
Server-wide SAMLXXN/AX    
Site SAMLXXXN/A    
KerberosXX  N/A   
Automatic Logon (Microsoft SSPI)     N/A  
Mutual SSLXX    N/A 
OpenID ConnectXX     N/A
Personal Access Token (PAT)********
**\*** PATs, by design, do not work directly with the authentication mechanism listed in these columns to authenticate to the REST API. Instead, PATs use Tableau Server user account credentials to authenticate to the REST API. ## Client authentication compatibility ### Authentication handled through a user interface (UI)

Clients

Authentication Mechanism 
BasicSAMLSite SAMLKerberos(Windows only)

Automatic

Logon

(Microsoft

SSPI)

OpenID

Connect

Connected AppsTrusted

Auth

Mutual

SSL

Personal Access Token (PAT)
Tableau DesktopXXXXXX  X 

Tableau Prep Builder

XXXXXX  X 
Tableau MobileXXXX

(iOS only *)

X

**

X  X 
Web BrowsersXXXXXXX

***

XX 
**\*** Kerberos SSO isn't supported for Android, but a fall-back to username and password is possible. For more information, see [Note 5: Android platform](https://help.tableau.com/current/server-linux/en-gb/kerberos_browser.htm#note5). **\*\*** SSPI is not compatible with the Workspace ONE version of the Tableau Mobile app. **\*\*\*** In embedding workflows only. ### Authentication handled programmatically

Clients

Authentication Mechanism 
BasicSAMLSite SAMLKerberos(Windows only)

Automatic

Logon

(Microsoft

SSPI)

OpenID

Connect

Connected AppsTrusted

Auth

Mutual

SSL

Personal Access Token (PAT)
REST APIX     X  X
tabcmd 2.0X        X
tabcmdX         
## Local authentication If the server is configured to use local authentication, then Tableau Server authenticates users. When users sign-in and enter their credentials, either through Tableau Desktop, tabcmd, API or web client; Tableau Server verifies the credentials. To enable this scenario, you must first create an identity for each user. To create an identity, you specify a username and a password. To access or interact with content on the server, users must also be assigned a site role. User identities can be added to Tableau Server in the server UI, using [tabcmd Commands](https://help.tableau.com/current/server-linux/en-gb/tabcmd_cmd.htm), or using the [REST API](https://help.tableau.com/current/api/rest_api/en-gb/help.htm#REST/rest_api.htm). You can also create groups in Tableau Server to help manage and assign roles to large sets of related user groups (e.g., ‘Marketing’). When you configure Tableau Server for local authentication, you can set password policies and account lockout on failed password attempts. See [Local Authentication](https://help.tableau.com/current/server-linux/en-gb/local_auth.htm). **Note:** Tableau with multi-factor (MFA) authentication is available for Tableau Cloud only. ## External authentication solutions Tableau Server can be configured to work with a number of external authentication solutions. ### Kerberos You can configure Tableau Server to use Kerberos for Active Directory. See [Kerberos](https://help.tableau.com/current/server-linux/en-gb/kerberos.htm). ### SAML You can configure Tableau Server to use SAML (security assertion markup language) authentication. With SAML, an external identity provider (IdP) authenticates the user's credentials, and then sends a security assertion to Tableau Server that provides information about the user's identity. For more information, see [SAML](https://help.tableau.com/current/server-linux/en-gb/saml.htm). ### OpenID Connect OpenID Connect (OIDC) is a standard authentication protocol that lets users sign in to an identity provider (IdP) such as Google. After they've successfully signed in to their IdP, they are automatically signed in to Tableau Server. To use OIDC on Tableau Server, the server must be configured to use the local identity store. Active Directory or LDAP identity stores are not supported with OIDC. For more information, see [OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth.htm). ### Mutual SSL Using mutual SSL, you can provide to users of Tableau Desktop, Tableau Mobile and other approved Tableau clients a secure, direct-access experience to Tableau Server. With mutual SSL, when a client with a valid SSL certificate connects to Tableau Server, Tableau Server confirms the existence of the client certificate and authenticates the user, based on the username in the client certificate. If the client does not have a valid SSL certificate, Tableau Server can refuse the connection. For more information, see [Configure Mutual SSL Authentication](https://help.tableau.com/current/server-linux/en-gb/ssl_config_mutual.htm). ### Connected apps #### Direct trust Tableau connected apps enable a seamless and secure authentication experience by facilitating an explicit trust relationship between your Tableau Server site and external applications where Tableau content is embedded. Using connected apps also enables a programmatic way to authorise access to the Tableau REST API using JSON Web Tokens (JWTs). For more information, see [Use Tableau Connected Apps for Application Integration](https://help.tableau.com/current/server-linux/en-gb/connected_apps.htm). #### EAS or OAuth 2.0 trust You can register an external authorisation server (EAS) with Tableau Server to establish a trust relationship between your Tableau Server and an EAS using the OAuth 2.0 standard protocol. The trust relationship provides your users with single sign-on experience, through your IdP, to embedded Tableau content. In addition, registering an EAS enables a programmatic way to authorise access to the Tableau REST API using JSON Web Tokens (JWTs). For more information, see [Configure Connected Apps with OAuth 2.0 Trust](https://help.tableau.com/current/server-linux/en-gb/connected_apps_eas.htm). ### Trusted authentication Trusted authentication (also referred to as ‘Trusted tickets’) lets you set up a trusted relationship between Tableau Server and one or more web servers. When Tableau Server receives requests from a trusted web server, it assumes that the web server has already handled whatever authentication is necessary. Tableau Server receives the request with a redeemable token or ticket and presents the user with a personalised view which takes into consideration the user’s role and permissions. For more information, see [Trusted Authentication](https://help.tableau.com/current/server-linux/en-gb/trusted_auth.htm). ### LDAP You can also configure Tableau Server to use LDAP for user authentication. Users are authenticated by submitting their credentials to Tableau Server, which will then attempt to bind to the LDAP instance using the user credentials. If the bind works then the credentials are valid and Tableau Server grants the user a session. ‘Binding’ is the handshake/authentication step that happens when a client tries to access an LDAP server. Tableau Server does this for itself when it makes various non-authentication related queries (such as importing users and groups). You can configure the type of bind you want Tableau Server to use when verifying user credentials. Tableau Server supports GSSAPI and simple bind. Simple bind passes credentials directly to the LDAP instance. We recommend that you configure SSL to encrypt the bind communication. Authentication in this scenario maybe be provided by the native LDAP solution, or with an external process, like SAML. For more information about planning for and configuring LDAP, see [Identity Store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm#plan) and [External Identity Store Configuration Reference](https://help.tableau.com/current/server-linux/en-gb/ldap_config.htm). ### SCIM System for Cross-domain Identity Management (SCIM) in Tableau Server is a standard for automating the provisioning and management of users and groups from external cloud-based identity providers (IdPs). Though SCIM is not an authentication method, it provisions users who then authenticate using the methods configured for your Tableau Server. For more information, see [SCIM](https://help.tableau.com/current/server-linux/en-gb/scim_config_online.htm). ## Other authentication scenarios - REST API: [Signing In and Out (Authentication)](https://help.tableau.com/current/api/rest_api/en-gb/help.htm#REST/rest_api_concepts_auth.htm) **Note:** REST API does not support SAML single-sign (SSO). - Mobile device authentication: [Single sign-on for Tableau Mobile](https://help.tableau.com/current/mobile/mobile-admin/en-gb/admin_mobile_sso.htm) - Certificate trust for TSM clients: [Connecting TSM clients](https://help.tableau.com/current/server-linux/en-gb/tsm_overview.htm#Connecti) - PAM integration for TSM administration: [TSM Authentication](https://help.tableau.com/current/server-linux/en-gb/tsm_overview.htm#Authenti) ## Data access and source authentication You can configure Tableau Server to support a number of different authentication protocols to various different data sources. Data connection authentication may be independent of Tableau Server authentication. For example, you may configure user authentication to Tableau Server with local authentication, while configuring OAuth or SAML authentication to specific data sources. See [Data Connection Authentication](https://help.tableau.com/current/server-linux/en-gb/security_data_connection_auth.htm). ## Other articles in this section [Skip to main content](#main-content) # Authorisation _Authorisation_ refers to how and what users can access on Tableau Server after authentication has been verified. Authorisation includes: - What users are allowed to do with content hosted on Tableau Server, including projects, sites, workbooks, and views. - What users are allowed to do with the data sources that are managed by Tableau Server. - What tasks users are allowed to perform to administer Tableau Server, such as configuring server settings, runing command line tools, creating sites, and other tasks. Authorisation for these actions is managed by Tableau Server and determined by a combination of the user's site role and permissions associated with specific entities such as workbooks and data sources. ## Site roles Site roles define who is an administrator. Administrators can be assigned at the site or server level. For non-admins, site roles indicate the maximum level of access a user can have on a given site, subject to permissions set on content assets. For example, if one user is assigned the Viewer site role, and another the CreatorCreator For more information about site roles, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). ## Permissions Permissions determine whether a given user is allowed or denied to perform a specific action on a specific content asset. As an administrator setting up Tableau Server, it’s important that you understand how permissions are evaluated. Understanding the Tableau permissions process will enable you to set up and configure permissions on sites, projects, and other assets so that you can control how content and data is shared, published, viewed, extracted, and imported. Four important concepts to understand about permissions in Tableau are: - **Permissions are asset-based**. Permissions are assigned to individual content assets (projects, data sources, workbooks) and are granted to users or groups. - **Permissions are implicitly denied, and non-admin users must explicitly be allowed to access content**. The process by which Tableau Server determines the “allow” or “deny” permission is explained in detail in [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#EvaluatePermRules). - **Permissions inheritance exists only in locked projects and in workbooks with tabbed views**. When content permissions are locked to the top-level project, workbooks, views, and data sources in the entire project hierarchy will use the default permissions set at the top-level project. In workbooks saved with the option Show sheets as tabs, views inside those workbooks use the workbook permissions. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#projectpermissions). - **In a project that is not locked, initial permissions are a one-time copy of the permissions of the container item**. A data source or workbook starts with the default permissions, but authorised users can subsequently edit permissions on those assets. For more information on default permissions and projects, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#LockProject). Tableau Server provides a flexible permissions infrastructure that allows you to manage access to all content for countless scenarios. For more detailed information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). ## Data access and external authorisation There are scenarios where Tableau Server and Desktop rely on external authorisation to enable access to data. For example: - Users connecting to external data sources might require authorisation that is outside the scope of Tableau Server’s authority. If users publish an external data source, Tableau Server will manage access and capabilities of that data source. But if users embed an external data source in a workbook, it’s up to the user who publishes the workbook to determine how other users who open the workbook will authenticate with the underlying data that the workbook connects to. - Running Tableau Server in an organisation with Active Directory, where Tableau has been configured with a Run As user account, results in a dependency on Active Directory and NTFS for authorisation. For example, if you configure Tableau Server to use the Run As account to impersonate users connecting to SQL, then object-level authorisation is reliant on NTFS and Active Directory. - How users authenticate and are authorised by specific database solutions can differ. As noted, Tableau Server can be configured to provide access authorisation when a data source is configured, but some databases will authorise access according to their own authentication scheme. [Skip to main content](#main-content) # Automate Licensing Tasks You can use `[tsm licences](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm)` to perform licensing tasks such as activating or deactivating a Tableau Server product key on- or off-line, and getting associated files for offline activation or deactivation. However, Tableau Server must already be deployed and configured. You can automate these licensing tasks using the [Tableau Services Manager API](http://onlinehelp.tableau.com/v0.0/api/tsm_api/en-gb/index.htm). `C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\` [Skip to main content](#main-content) # Automate Refresh Tasks You can associate extract refresh tasks with schedules in Tableau Server to automate refreshing extracts. You can also automate extract refreshes using tabcmd, a command line utility that you can download for use with Tableau Server. In particular, you can use the `refreshextracts` command in combination with other commands in your own script. For example: `tabcmd login - http://mytabserver -u jsmith -p P@ssw0rd! refreshextracts --datasource salesq4` **Note:** When an extract refresh is performed on extracts created in Tableau 10.4 and earlier (that is, a .tde extract), the extract is upgraded to .hyper extract automatically. While there are many benefits of upgrading to a .hyper extract, your users won't be able open the extract with earlier versions of Tableau Desktop. For more information, see [Extract Upgrade to .hyper Format](https://help.tableau.com/current/server-linux/en-gb/extracting_upgrade.htm).  ## Notes - The subrange is automatically converted to UTC. In environments using time zones other than UTC, configure the subrange based on UTC. For information about downloading the tabcmd utility, see [tabcmd](https://help.tableau.com/current/server-linux/en-gb/tabcmd.htm). [Skip to main content](#main-content) # Automatically Build Views with Ask Data **Important changes for Ask Data and Metrics** Tableau's Ask Data and Metrics features were retired in Tableau Cloud in February 2024 and in Tableau Server version 2024.2. With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau AI and Tableau Pulse are reimagining the data experience.](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-gpt) Ask Data lets you type a question in common language and instantly get a response right in Tableau. Answers come in the form of automatic data visualisations, with no need to manually drag and drop fields or understand the nuances of your data’s structure. Ask Data lets you ask sophisticated questions naturally, with support for key analytical concepts such as time series and spatial analysis, and has an understanding of conversational phrases such as "last year" and "most popular." ![Create a viz using Ask Data](/tableau/current/en-gb/server-linux/en-gb/Img/askdata_1.gif) ## Navigating to Ask Data lenses Before you can query a data source with Ask Data, [a Tableau author must first create a lens](https://help.tableau.com/current/pro/desktop/en-gb/ask_data_lenses.htm) that specifies the subset of data fields the lens uses. In Tableau, here are all the places where you can access an Ask Data lens: - On the All Lenses page at the top level of your Tableau Cloud or Tableau Server site. ![The Ad Campaigns and Shipping Analysis lenses for Ask Data.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_all_lenses.png) - On the Ask Data tab for a data source for which lenses have been created. ![The Super Store data source page displays with three connected lens options highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_connected_lenses.png) - In an Ask Data object on a dashboard. ![A dashboard with a map, a scatterplot and a customer ranking list.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_in_dashboard.png) ## Ask Data from a lens page or dashboard object ### Navigate to a lens and learn more about its data 1. Navigate to a lens via the All Lenses page for your Tableau site, the Ask Data tab for a data source, or an Ask Data object on a dashboard. 2. (Optional) Under Recommended Visualisations, click an entry to quickly see visualisations the lens author has created for your organisation. If the recommendations don't address your current data analysis needs, [build a query](#Build) to create your own question. 3. In the Data pane on the left, briefly hover over each field to learn more about the data it contains. ![Viz with Country string highlighted in the side pane and Country details shown, including the number of unique country values and a list of country names.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_tooltip.png) In a narrower dashboard object, the Data pane may be hidden, but you can see the same information by clicking the Fields drop-down menu. ![A dashboard with the Fields menu highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_dashboard_fields.png) ### Build queries by entering text 1. Type in the box reading Search fields or values to create a visualisation. ![Search field for adding fields or values to a visualisation.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_ask_textbox.png) 2. As you type, Ask Data searches data fields, functions and string values and displays results in a drop-down list. Click items in the list to add them to your current entry, shown above the search box. To automatically create a viz using the current entry, press Enter at any time. ![The Ask Data UI for search, with the autofill dropdown showing](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_entity_search.png) Modifying a query by searching for fields and analytical functions A. Current entry B. Current filters C. Search box D. Returned fields E. Returned analytical functions F. Returned field values ### Build queries by adding suggested phrases Tableau will suggest phrases based on the most common queries asked in your lens and by others in your organisation. When you open your lens, you'll notice suggestions that will help you get quick answers to common questions. You can add these suggestions to your query by clicking them. As you add phrases to your query, the suggestions dynamically update with more relevant phrases. The view automatically builds with each selection. ![Create a viz using Ask Data](/tableau/current/en-gb/server-linux/en-gb/Img/askdata_2.gif) ### Build queries by adding fields and filters 1. Click Add Field or Add Filter. ![The Ask Data Phrase Builder with the Add Field and Add Filter options highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_click_phrasebuilder.png) 2. Click the desired field. (To narrow down a long list, first type in the Search Fields box.) ![The Ask Data Phrase Builder with the Sales measure selected for visualisation.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_click_phrasebuilder_2.png) 3. Set any sub-options, such as aggregation type for a numeric field or grouping for string and date fields. 4. To add more fields or filters, click the plus sign. ![The Ask Data Phrase Builder with the plus icon highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_click_phrasebuilder_3.png) ### See how elements of your query are applied To see how elements of your query are applied, hover over them in the text box or the interpretation above it. Words that aren't used are greyed out, helping you rephrase your query in a way that’s clearer to Ask Data. ![Ask Data mapping.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_mapping.gif) ## Rephrase your question You can rephrase questions by clicking options, data fields and filters in the user interface. ### Change the viz type If the default viz doesn't fully reveal your data, click the menu at upper right, and choose from these supported viz types: - Bar Chart - Gantt Bar - Heat Map - Histogram - Line Chart - Map - Pie Chart - Scatter - Stacked Bar Chart - Text Table - Treemap ![A viz of a map of the United States displays average profit per city, and a dropdown menu is highlighted to show the following options for changing the viz type: map, bar chart, text table, stacked bar, heat map and treemap.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_viz_change.png) **Note:** To automatically create certain viz types, Ask Data sometimes adds fields such as "Number of Records" to your entries. ### Change fields, filters and displayed data Ask Data gives you several ways to fine-tune how field values are displayed. - To switch the fields used for the vertical and horizontal axes, click the Swap Axes button ![Swap Axes button.](/tableau/current/en-gb/server-linux/en-gb/Img/environ_swap.png) to the left of the viz selection menu: ![The swap axes icon.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_swap_axes_context.png) - To change a field, first click on it in your query entry, and then click the field name below. (To change fields used in difference calculations, see [Compare differences over time](#Compare).) ![The CO2 emissions measure is highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_change_field.png) - To change a field's aggregation or grouping type (for example, from average to sum), click on the field name in the text box, and then choose a different aggregation or grouping. ![Aggregation method selection options shown for sum, average or median with average selected.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_aggtype_short.png) - For categorical filters, click values (for example, "exclude United States" in the example below) to change specific values or enter wildcard parameters. ![Ask Data filter adjustment shown with a country value excluded.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_adjust_filter.png) - To adjust a numeric range, click words such as "high" or "cheap". ![Ask Data filter adjustment shown with the profit range adjustment options.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_adjust_range.png) - To delete a field or filter, hover over it and click the X. ### Adjust date filters To adjust a date filter, click words such as "last" or "previous". Then click one of the following: - Specific Dates to enter a specific time period or date value - Relative Dates to show a date range relative to the present day - Range of Dates to enter specific start and end points Specific Dates offers some unique options in the Date Detail menu: - Time Period options show a single continuous date range - Date Value options show ranges that can repeat in multiple time periods. For example, to see combined sales performance for Q1 across multiple years, under Date Value, you would choose Quarters. ![A date filter dialog for specific dates. ](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_specific_date.png) ## Compare differences over time Ask Data lets you compare time periods with phrases such as "year over year" or "quarter over quarter". The results appear as difference or percentage difference table calculations in workbooks you save from Ask Data. ![Line chart showing year-over-year difference in the sum of sales over order date, with year-over-year difference highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_yoy.png) In the text box, click a difference calculation to choose other fields, aggregation methods and time periods. ![A dialog box shows options for calculating the difference in average sales over order date or ship date.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_yoy_revise.png) ## Apply simple calculations Ask Data supports simple calculations between two measures, which you can apply using these symbols: + sums the measures \- produces the difference between them \* multiplies / divides In workbooks you save from Ask Data, these calculations don't become calculated fields but instead ad hoc calculations on the Columns, Rows or Marks shelves. ![A viz with the Ask Data calculations option highlighted showing an equation where the sum of profit is divided by the sum of sales.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_calculations.png) ## Add sheets with other vizzes To quickly create multiple different vizzes from a lens, add sheets in Ask Data. At the bottom of the web page, do any of the following: - Click the Add Sheet icon to the right of named sheets. ![Sheet tabs labelled Sheet 1 and Sheet 2, with a button to add a new sheet.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_sheets.png) - Right-click a sheet name, and choose either Duplicate or Delete. (To rename sheets from Ask Data, you need to save them in a new workbook.) ## Share Ask Data vizzes via email, Slack, or a link You can quickly share Ask Data vizzes with anyone who has access to a lens. 1. In the upper right corner of the browser, click on the Share icon. ![Share icon](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_link.png) 2. Do either of the following: - To share the viz via email or Slack, enter specific usernames in the text box. (Email and Slack integration must previously be configured by your Tableau administrator.) - To copy a URL, you can paste into custom emails and other messages, click Copy Link. ## Send feedback to the lens owner If you have questions about the structure of a lens or how best to use it with Ask Data, you can send feedback directly to the author. (This option is enabled by default, but lens authors may disable it.) 1. To the left of the query box for Ask Data, click the Ask Data tips icon. ![Hovered over information icon showing the Ask Data tips tooltip.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_tips_button.png) 2. At the bottom of the tips dialog, click Contact the Lens Author. ## Tips for successful queries As you structure questions for Ask Data, apply these tips to get better results. - **Use keywords** – For example, instead of "I want to see all the countries that these airports are in", try "by airport and country". - **Use exact wording for field names and values** – For example, if your lens includes Airport Code, Airport Name, and Airport Region fields, specify those by name. - **See a ranked list** – Ask Data maps terms such as "best" and "worst" to Top 1 and Bottom 1, respectively. If you want to see broader rankings, use "high" and "low" instead. For example, enter "houses with low sale prices". - **Query table calculations** – In query expressions for table calculation fields, note that you can't filter, limit or include "year over year difference". - **Surround unusually long values with quotation marks** – To analyse long field values that contain line returns, tabs or more than ten words, surround them with quotation marks. To improve performance, Ask Data doesn't index fields of that length, or anything beyond the first 200,000 unique field values. ## Other articles in this section [Skip to main content](#main-content) # Automatically Suspend Extract Refreshes for Inactive Workbooks and Data Sources To save resources, Tableau can automatically suspend extract refresh tasks for inactive workbooks and published data sources. This feature applies to full extract refreshes only, and only applies to refresh tasks that run more frequently than weekly. It does not apply to: - incremental extract refreshes - weekly or less frequent than weekly refresh tasks - published data sources being updated by Bridge. Server administrators can configure the length of time a workbook is inactive before extract refresh tasks are suspended. For more information, see [Configure the extract refresh suspend feature](#Config_auto-suspend) below. **Note:** Support for automatic suspension of extract refreshes for data sources is available beginning in Tableau Server version 2023.3. For a workbook, if any of the following events occur, the workbook's inactivity countdown timer is reset: - Viewing the workbook sheets - Having any data-driven alert or subscription set up on the workbook - Downloading the workbook - Moving the workbook's location or changing the owner For a published data source, any event which fetches the data from the data source will cause its inactivity countdown timer to be reset. These include: - Loading a workbook view that is connected to the data source - Visiting the data source’s Ask Data page - Tableau Desktop connecting to the data source - In web authoring, opening a workbook that uses a published data source, even without publishing the workbook - Tableau Prep flow runs (including scheduled Prep Conductor runs) that use a data source as a flow input - A Tableau Pulse metric digest or user view that is using a published data source - User-triggered ‘Run Now’ refreshes of a data source ## Configure the extract refresh suspend feature 1. Sign in to Tableau Server as a server administrator. 2. Go to the General tab of the Settings page for the site: - If you have a single site, at the top the browser window, click Settings and General. - If you have multiple sites, select the site you want to configure and click Settings and General. 3. On the General page, do the following: - Under Automatically Suspend Extract Refresh Tasks, select the Automatically suspend extract refresh tasks for inactive workbooks and datasources tick box. - Specify the number of days, from 7 through 100, that a workbook should be inactive before extract refresh tasks are suspended. The default is 32 days. - Click **Save**. ## Notifications Email notifications are sent to the owner of the workbook or data source at the following times: - Three days before the extract refresh schedule is suspended - When the extract refresh schedule is suspended ## Resume suspended extract refreshes Suspended extract refreshes won't automatically resume if someone uses the workbook. It must be done manually by a server or site administrator. To view and resume extract refreshes that were suspended: 1. Sign in to the site as an administrator and click **Tasks**. 2. Click the **Extract Refreshes** tab. 3. Select one or more items. 4. From the **Actions** menu, select **Resume**. [Skip to main content](#main-content) # AWS Key Management System Tableau Server has three Key Management System (KMS) options that allow you to enable encryption at rest. Two of these require Advanced Management capabilities, while a local one is available with all installations of Tableau Server. **Important:** As of 16 September 2024, Advanced Management is no longer available as an independent add-on option. Advanced Management capabilities are only available if you previously purchased Advanced Management, or if you purchased certain licence editions: Tableau Enterprise, Tableau Cloud+ or Tableau+ Bundle (available for Tableau Cloud), or Tableau Enterprise or Tableau Server+ (available for Tableau Server). Beginning in version 2019.3, Tableau Server added these KMS options:  - A local KMS that is available with all installations. For details, see [Tableau Server Key Management System](https://help.tableau.com/current/server-linux/en-gb/security_kms.htm). - An AWS-based KMS that comes as part of Advanced Management. This is described below. Beginning in version 2021.1, Tableau Server added another KMS option:  - An Azure-based KMS that comes as part of Advanced Management. For details, see [Azure Key Vault](https://help.tableau.com/current/server-linux/en-gb/security_kms_azure.htm). With the release of version 2019.3, Tableau Server supports the AWS key management system (KMS) as part of Advanced Management. ## AWS KMS for encryption at rest AWS KMS is available as part of Advanced Management in Tableau Server. For more information see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). If your organisation is deploying Data Extract Encryption at Rest, then you may optionally configure Tableau Server to use AWS as the KMS for extract encryption. To enable AWS KMS, you must deploy Tableau Server in AWS EC2. In the AWS scenario, Tableau Server uses the AWS KMS customer master key (CMK) to generate an [AWS data key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys). Tableau Server uses the AWS data key as the root master key for all encrypted extracts. However, even when configured for AWS KMS, the native Java keystore and local KMS are still used for secure storage of secrets on Tableau Server. The AWS KMS is only used to encrypt the root master key for encrypted extracts. Using AWS to encrypt the master root key provides better security properties by not storing the master key under the same permissions as the extracts. ![A diagram illustrating the various keys for data encryption.](/tableau/current/en-gb/server-linux/en-gb/Img/security_kms_AWS_key_hierarchy.png) The key hierarchy when Tableau Server is configured with AWS KMS ## Configure AWS KMS for Tableau Server encrypted extracts To use the AWS customer master key (CMK) to encrypt the root key in the Tableau Server KMS hierarchy, you must configure Tableau Server as described in this section. Before you begin, verify that you meet the following requirements: - Tableau Server must be deployed in AWS EC2. - Tableau Server must be configured with Advanced Management. See [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). - You must have administrative control of a customer master key (CMK) created in AWS Key Management Service. - The user ID (often the email address) for the person configuring AWS KMS cannot be longer than 26 characters. ### Step 1: Create CMK and set key policy for Tableau Server in AWS The following procedures are performed in the AWS KMS service. References are included to AWS documentation. 1. Create the CMK that you will use for Tableau Server. See the AWS topic, [Creating Keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys). 2. Update the server instance’s IAM role. Tableau Server needs to be able to authenticate with AWS KMS using the instance’s IAM role. The role needs to have a policy attached to it. The policy should be giving the instance permissions to call the "GenerateDataKey" and "Decrypt" actions on the CMK. See [IAM Roles for Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html).. In a multi-node deployment of Tableau Server, all nodes of the server must be running under roles that have this policy (or equivalent) attached. You can assign the same role to all nodes in the cluster. 3. At a minimum, the CMK must have a key policy where the `Effect` is set to `Allow` the `Prinicpal` (the IAM role that is attached to the server instances) the `Action`: `GenerateDataKey` and `Decrypt`. See [Using Key Policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html). ### Step 2: Collect AWS configuration parameters You will need the full ARN string from AWS KMS. This string is in the "General configuration" section of the AWS KMS management pages. The ARN is presented in this format: arn:aws:kms:::key/, for example, `arn:aws:kms:us-west-2:867530990073:key/1abc23de-fg45-6hij-7k89-1l0mn1234567`. You will also need to specify the AWS region, which is also included in the ARN string. In the example above, the region is `us-west-2`. The region is where your KMS instance resides. In the next step, you will need to specify a region as shown in the Region column in the [Amazon API Gateway table](https://docs.aws.amazon.com/general/latest/gr/rande.html). ### Step 3: Configure Tableau Server for AWS KMS Run the following command on Tableau Server. This command will restart the server: - `tsm security kms set-mode aws --aws-region "" --key-arn "arn:aws:kms:::key/"` The `--key-arn` option takes a direct string copy from the ARN in the "General configuration" section of the AWS KMS management pages. For example, if your AWS KMS instance is running in us-west-2 region, your account number is 867530990073, and your CMK key is 1abc23de-fg45-6hij-7k89-1l0mn1234567, then the command would be as follows: `tsm security kms set-mode aws --aws-region "us-west-2" --key-arn "arn:aws:kms:us-west-2:867530990073:key/1abc23de-fg45-6hij-7k89-1l0mn1234567"` ### Step 4: Enable encryption at rest See [Extract Encryption at Rest](https://help.tableau.com/current/server-linux/en-gb/security_ear.htm). ### Step 5: Validate installation 1. Run the following command: `tsm security kms status` The following information may be returned: - The ARN (ID) of the customer master key (CMK) - The region the CMK is in - The ID of the root master key (RMK) in use. The RMK is a key that is encrypted by the CMK. Tableau Server decrypts the CMK by making calls to AWS KMS. The RMK is then used to encrypt/decrypt the master extract key (MEK). The RMK can change, but there will be only one at a time. - KMS stores a collection of master extract keys (MEKs). Each MEK has: - An ID, for example, 8ddd70df-be67-4dbf-9c35-1f0aa2421521 - Either a “encrypt or decrypt key” or “decrypt-only key” status. If a key is "encrypt or decrypt", Tableau Server will encrypt new data with it. Otherwise, the key will only be used for decryption - A creation timestamp, for example, "Created at: 2019-05-29T23:46:54Z." - First transition to encrypt and decrypt: a timestamp indicating when the key became an encrypt or decrypt key. - Transition to decrypt-only: a timestamp indicating when the key transitioned to decrypt-only. 2. View logs after you encrypt and decrypt extracts: - Publish extracts to your site and then encrypt them. See [Extract Encryption at Rest](https://help.tableau.com/current/server-linux/en-gb/security_ear.htm). - Access the extracts with Tableau Desktop or with Web Authoring on a browser (this will decrypt the extracts for use). - Search the vizqlserver\_node log files for the `AwsKmsEncryptionEnvelopeAccessor` and `AwsKmsEncryptionEnvelope` strings. The default location of the logs are at `/var/opt/tableau/tableau_server/data/tabsvc/logs/` Log entry examples that indicate successful configuration include the following: - Decrypted the RMK with ID 1abc23de-fg45-6hij-7k89-1l0mn1234567 using the CMK with ARN arn:aws:kms:us-west-2:867530990073:key/1234567d-a6ba-451b-adf6-3179911b760f - Using RMK with ID 1abc23de-fg45-6hij-7k89-1l0mn1234567 to decrypt KMS store For publishing and extract refreshes related to KMS, search the backgrounder logs. For more information about logs, see [Tableau Server Logs and Log File Locations](https://help.tableau.com/current/server-linux/en-gb/logs_loc.htm). ## Troubleshoot configuration ### Multi-node misconfiguration In a multi-node setup for AWS KMS, the `tsm security kms status` command may report healthy (OK) status, even if another node in the cluster is misconfigured. The KMS status check only reports on the node where the Tableau Server Administration Controller process is running and does not report on the other nodes in the cluster. By default the Tableau Server Administration Controller process runs on the initial node in the cluster. Therefore, if another node is misconfigured such that Tableau Server is unable to access the AWS CMK, those nodes may report Error states for various services, which will fail to start. If some services fail to start after you have set KMS to the AWS mode, then run the following command to revert to local mode: `tsm security kms set-mode local`. ## Refresh AWS CMK Refreshing the AWS CMK is a task that you perform with AWS. By default, the AWS CMK will refresh once a year. See the AWS topic, [How Automatic Key Rotation Works](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotate-keys-how-it-works). Since the ARN and region do not change, you do not need to update the KMS configuration on Tableau Server for normal CMK refresh scenarios. After AWS CMK refreshes, you must regenerate the internal RMK and MEKs on Tableau Server. You should also re-encrypt all extracts with the new CMK: 1. Run the `[tsm security regenerate-internal-tokens](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm#regenerate-tokens)` command to regenerate all internal keys on Tableau Server, including the RMK and MEKs used for extract encryption. 2. Run `tabcmd reencryptextracts ` to re-encrypt extracts on a given site. Run this command on every site where you are storing encrypted extracts. Depending on the number of encrypted extracts on the site, this operation could consume significant server processing load. Consider running this operation outside of business hours. See [Extract Encryption at Rest](https://help.tableau.com/current/server-linux/en-gb/security_ear.htm). ## Regenerate RMK and MEK on Tableau Server To regenerate the root master key and the master encryption keys on Tableau Server, run the `[tsm security regenerate-internal-tokens](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm#regenerate-tokens)` command. ## Back up and restore with AWS KMS A server backup can be taken in AWS mode with no additional configurations or procedures. The backup contains encrypted copies of the RMK and MEKs. Decrypting the keys requires access and control of the AWS CMK. For the restore scenario, the server being restored to can be in either KMS mode, including Local. The only requirement is that the server the backup is being restored to has decrypt access to the CMK the backup itself used. Upon restore, the MEKs from the backup are imported as decrypt-only keys. The RMK is not migrated over. A new RMK is generated as part of the installation/restore process. [Skip to main content](#main-content) # Azure Key Vault Tableau Server has three Key Management System (KMS) options that allow you to enable encryption at rest. Two of these require Advanced Management capabilities, while a local one is available with all installations of Tableau Server. **Important:** As of 16 September 2024, Advanced Management is no longer available as an independent add-on option. Advanced Management capabilities are only available if you previously purchased Advanced Management, or if you purchased certain licence editions: Tableau Enterprise, Tableau Cloud+ or Tableau+ Bundle (available for Tableau Cloud), or Tableau Enterprise or Tableau Server+ (available for Tableau Server). Beginning in version 2019.3, Tableau Server added these KMS options:  - A local KMS that is available with all installations. For details, see [Tableau Server Key Management System](https://help.tableau.com/current/server-linux/en-gb/security_kms.htm). - An AWS-based KMS that comes as part of Advanced Management. For details, see [AWS Key Management System](https://help.tableau.com/current/server-linux/en-gb/security_kms_aws.htm). Beginning in version 2021.1, Tableau Server added another KMS option:  - An Azure-based KMS that comes as part of Advanced Management. This is described below. ## Azure Key Vault for encryption at rest Azure Key Vault is available as part of Advanced Management in Tableau Server beginning in version 2021.1.0. For more information see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). If your organisation is deploying Data Extract Encryption at Rest, then you may optionally configure Tableau Server to use Azure Key Vault as the KMS for extract encryption. To enable Azure Key Vault, you must deploy Tableau Server in Azure. In the Azure scenario, Tableau Server uses the Azure Key Vault to encrypt the root master key (RMK) for all encrypted extracts. However, even when configured for Azure Key Vault, the Tableau Server native Java keystore and local KMS are still used for secure storage of secrets on Tableau Server. The Azure Key Vault is only used to encrypt the root master key for encrypted extracts. ![A diagram illustrating the various keys for data encryption.](/tableau/current/en-gb/server-linux/en-gb/Img/security_kms_azure_hierarchy.png) The key hierarchy when Tableau Server is configured with Azure Key Vault ## Configure Azure Key Vault for Tableau Server encrypted extracts To use the Azure Key Vault to encrypt the root key in the Tableau Server KMS hierarchy, you must configure Tableau Server as described in this section. Before you begin, verify that you meet the following requirements: - Tableau Server must be deployed in Azure. - Tableau Server must be configured with a Advanced Management licence. See [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). - You must have administrative control over the key vault in Azure where the key resides. ### Step 1: Create a key vault and key for Tableau Server in Azure The following procedures are performed in the Azure Key Vault service. References are included to Azure documentation. 1. Create the key vault that you will use for Tableau Server. See the Azure topic, [Create a key vault](https://docs.microsoft.com/en-gb/azure-stack/user/azure-stack-key-vault-manage-portal?view=azs-2008#create-a-key-vault). 2. Create a key in the vault. See the Azure topic, [Manage keys and secrets](https://docs.microsoft.com/en-gb/azure-stack/user/azure-stack-key-vault-manage-portal?view=azs-2008). The key must be an asymmetric, RSA type, but can be any size (Tableau Server does not care about the key size). We recommend you use the Principle of Least Privilege to have maximum security. Tableau requires permissions to perform the GET, UNWRAP KEY and WRAP KEY commands operations and we recommend you allow access for only these operations for least privilege. Assign the access policy to the VM you are running Tableau Server on. In a multi-node deployment of Tableau Server, the access policy must be assigned to all nodes of the server cluster. ### Step 2: Collect Azure configuration parameters You will need the key vault name and the key name from Azure. ### Step 3: Configure Tableau Server for Azure Key Vault Run the following command on Tableau Server. This command will restart the server: - ``` tsm security kms set-mode azure --vault-name "" --key-name "" ``` The `--vault-name` and `--key-name` options a direct string copies from your Azure key vault. For example, if your Azure key vault is named `tabsrv-keyvault` and your key is `tabsrv-sandbox-key01`, then the command would be as follows: `tsm security kms set-mode azure --vault-name "tabsrv-keyvault" --key-name "tabsrv-sandbox-key01"` ### Step 4: Enable encryption at rest See [Extract Encryption at Rest](security_ear.htm). ### Step 5: Validate installation 1. Run the following command: `[tsm security kms status](cli_security_tsm.htm#kms-status)` The following information may be returned: - Status: OK (indicates the Key Vault is accessible by the controller node): - Mode: Azure Key Vault - Vault name: - Azure Key Vault key name:  - List of available UUIDs for MEKs indicating which key is active - Error information if the KMS data is not accessible 2. View logs after you encrypt and decrypt extracts: - Publish extracts to your site and then encrypt them. See [Extract Encryption at Rest](security_ear.htm). - Access the extracts with Tableau Desktop or with Web Authoring on a browser (this will decrypt the extracts for use). - Search the vizqlserver\_node log files for the `AzureKeyVaultEnvelopeAccessor` and `AzureKeyVaultEnvelope` strings. The default location of the logs are at `/var/opt/tableau/tableau_server/data/tabsvc/logs/` For publishing and extract refreshes related to the Azure Key Vault, search the backgrounder logs. For more information about logs, see [Tableau Server Logs and Log File Locations](logs_loc.htm). ## Troubleshoot configuration ### Multi-node misconfiguration In a multi-node setup for Azure Key Vault, the `tsm security kms status` command may report healthy (OK) status, even if another node in the cluster is misconfigured. The KMS status check only reports on the node where the Tableau Server Administration Controller process is running. It does not report on the other nodes in the cluster. By default the Tableau Server Administration Controller process runs on the initial node in the cluster. Therefore, if another node is misconfigured so that Tableau Server is unable to access the Azure key, those nodes may report Error states for various services, which will fail to start. If some services fail to start after you have set KMS to the "azure" mode, then run the following command to revert to local mode: `tsm security kms set-mode local`. ## Refresh Azure Key You refresh the Azure key in Azure. There is no required or scheduled key refresh period. You can refresh your key by creating a new key version in Azure. Because the Key Vault name and Key Name do not change, you do not need to update the KMS configuration on Tableau Server for normal Azure Key refresh scenarios. ## Back up and restore with Azure Key Vault A server backup can be taken in Azure Key Vault mode with no additional configurations or procedures. The backup contains encrypted copies of the RMK and MEKs. Decrypting the keys requires access and control of the Azure Key Vault. For the restore scenario, the server being restored to can be in either Azure Key Vault or Local KMS mode. The only requirement is that the server to which the backup is being restored has access to the Azure Key Vault the backup itself used. [Skip to main content](#main-content) # Back up Tableau Server Data Regularly backing up Tableau Server is an important step in proper administration and maintenance of your server. You can use the `tsm maintenance restore` command to restore Tableau Server backups created using the `tsm maintenance backup` command. Database backups made in other ways, and virtual machine snapshots are not valid sources for restoring Tableau Server, so it is critical that you have an up-to-date backup. You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. Looking for Tableau Server on Windows? See [Back Up Tableau Server Data](https://help.tableau.com/current/server/en-gb/db_backup.htm "Opens topic in a new browser tab"). Tableau Server data includes data extract files, as well as the Tableau PostgreSQL database, which contains workbook and user metadata and configuration data. When you use TSM to create a backup, all of this data is saved in a single file with a .tsbak extension. If you are running a distributed installation of Tableau Server data from all the nodes is backed up. The frequency of your backups depends on your environment, including how much use your server gets and how much and frequently the content and users change. Any changes or updates that happen after your backup will be lost if there is a system failure and you need to restore Tableau Server. The more activity there is, the more often you need to back the server up. In addition to regularly scheduled backups, you should _always_ create a backup before upgrading to a new version of Tableau Server. The upgrade process does not create a backup except when the version of PostGRES is being updated, and then the upgrade process creates a PostGRES-only backup to be used internally. To help protect against data loss, after you create the backup, you should store the .tsbak file on a computer that is not a part of your Tableau Server installation. ## Disk Space Usage for Backup The free disk space required to create a backup varies depending on the amount of data in the Tableau Server repository and file store services, and their collocation with the tabadmincontroller service. During backups, the background tasks for cleaning up old extracts are temporarily paused. This means that, for the duration of the backup, extract refreshes will leave extra files in place, adding to disk space usage. If your backup takes a long time, or if your organisation uses many extracts that are regularly updated, this can result in a significant amount of temporary disk space usage. These temporary files will be removed after the backup is complete. The following table lists the disk space requirements for backup based on whether the node hosts the repository, file store, controller or some combination of them. In multi-node Tableau Server environments, you need to estimate the required disk space on each node.
RepositoryFile StoreControllerDisk Space Required
Tick icon indicating success.  

3x repository data + 250 MB

To obtain an estimate of the repository data, check the size of <data directory>/pgsql/data/base directory.

To obtain the exact size of the repository data, open the backup file and use the size of the workgroup.pg_dump file.

 Tick icon indicating success. 

1.5x file store data

To obtain an estimate of file store data (extracts, flows, etc.), check the size of <data directory>/dataengine directory.

  Tick icon indicating success.3x repository data + 250 MB + 2.5x file store data
Tick icon indicating success.Tick icon indicating success. 3x repository data + 250 MB + 1.5x file store data
 Tick icon indicating success.Tick icon indicating success.3x repository data + 250 MB + 1.5x file store data
Tick icon indicating success. Tick icon indicating success.3x repository data + 250 MB + 2.5x file store data
Tick icon indicating success.Tick icon indicating success.Tick icon indicating success.3x repository data + 250 MB + 1.5x file store data
## Optimising Tableau Server Backup There are several ways you can maximise backup efficiency. Your environment can impact how effective each of these is, so test with your data to see what works best. **Optimising with topology configurations:** - Co-locating File Store on the same node as the Administration Controller can reduce the length of time it takes to back up Tableau Server by reducing or eliminating the need to transfer data between nodes during the backup process. This is especially true if your organisation uses many extracts. - Co-locating the repository (pgsql) with the Administration Controller node can also help to reduce back up time, but the time savings is less significant than that of the File Store. The Administration Controller is usually on the initial node, unless you have had an initial node failure and moved the controller to another node. Optimising with backup strategies: Backup is a resource intensive process. If possible, doing your backups during off peak hours is a generally a good strategy. But this however, depends on your requirements and how often Tableau Server data is updated and what your restore requirements. For a detailed explanation of backup and disaster recovery, see [Tableau Server Disaster Recovery](https://www.tableau.com/sites/default/files/whitepapers/disaster_recovery_whitepaper_0.pdf). Here are some backup strategies and adopt them to your requirements - **Type of storage:** Solid State disks are recommended in general for backups. SSD helps make your backups faster and complete sooner compared to traditional spinning disks. - **Backup compression:** You have the option of running your backups with or without compression. When you do your backup with compressions, your backup size will be comparatively smaller, but you may see a slower performance. So if your goal is more focused on speed, choose the `--skip-compression` option: Use the `--skip-compression` option when backing up Tableau Server. This creates the backup without using compression, and results in a larger backup file but can reduce the amount of time it takes for the backup to complete. For more information, see [tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm). - **Snapshot backup:** This option is only available if you have configured your Tableau Server with External File Store. Although the performance of snapshot backups depend on the type of network attached storage, in general snapshot backups are faster than the traditional Tableau Server backups. For more information see, [Tableau Server External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm). ## Create a backup using the TSM command line interface (CLI) Use the `tsm maintenance backup` command to create a backup of the data managed by Tableau Server. This data includes data extract files and the Tableau PostgreSQL database, which contains workbook and user metadata. **Important:** Do not use the `pg-only` option when generating a backup unless instructed by Tableau Support. This option will only back up the repository and _cannot_ be used to restore your Server. Its primary use is for troubleshooting, and Tableau Support will ask you to create a `--pg-only` backup if this is necessary. **Note:** When backing up Tableau Server on Linux to a network location, the unprivileged user must have write access to the network share where the backup files are written or the backup will fail. To back up server configuration data, use the [tsm settings](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm) command. When you use the `tsm maintenance backup` command, the current date is appended to the backup file: `tsm maintenance backup -f -d` For more information, see [tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm). ## Create a pre-upgrade backup You should always create a backup before upgrading Tableau Server. You can create a backup while Tableau Server is running and minimise the amount of time the server is unavailable during upgrade. The process for creating a pre-upgrade backup is the same as for creating regular backups, with one additional consideration for distributed installations. **Note:** Uninstall Tableau Server from any nodes that you are not including in your new installation to avoid conflicts between the older nodes and the new installation. ## Backups during upgrades During a Tableau Server upgrade, when necessary, a temporary backup of the database may be created to allow for migrations that occur as part of upgrades. This is done during the upgrade and in most cases has no noticeable impact to the upgrade process. In certain special cases there can be additional impacts: - Upgrades to Tableau Server 2022.1 (or later) from version 2021.4 (or earlier) – If you perform Blue/Green upgrades or manually upgrade Tableau Server 2021.4 (or earlier) using the [tsm maintenance (backup and restore)](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm) method, you must enable `legacy-identity-mode` before you can restore to Tableau Server 2022.1 (or later). For more information, see [Troubleshoot Issues with the Identity Migration](https://help.tableau.com/current/server-linux/en-gb/identity_migration_troubleshoot.htm). - Major version pgsql updates – If an upgrade includes a major version update to the database used for the Tableau repository, the internal upgrade backup is done without compression to save time. This requires additional temporary disk space during the upgrade process. Tableau Server versions that include a major version database update; 2020.4. ## Scheduling and Managing Backups Beginning in 2020.4.0, you can use tsm commands to schedule a backup. You need to do this from the command line (there is no TSM UI to schedule backups). The `[tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm)` command allows you to create and update backup schedules. The `[tsm schedules](https://help.tableau.com/current/server-linux/en-gb/cli_schedules_tsm.htm)` commands give you the ability to view, delete, pause, resume, and update schedules. ### To schedule a backup: 1. Open a command prompt as administrator on the initial node (the node where TSM is installed). 2. Run the following command: tsm maintenance backup -f -sr -st -sd -sn For example, to create a backup schedule named "monthly-backup" that runs on the 15th of each month at 2 am and generates a file called `-ts-mid_month_backup.tsbak`: tsm maintenance backup -f ts-mid\_month\_backup -sr monthly -st 02:00 -sd 15 -sn monthly-backup ### To view a scheduled backup: 1. Open a command prompt as administrator on the initial node (the node where TSM is installed). 2. Run the following command: tsm schedules list You can sort the schedules by scheduled run time, earliest to latest, or by name using the `--next-run` or `--schedule-name` options. You can alternately display details for a single schedule using the `--schedule-id` option. When you view a single schedule you see additional details about it, including when it was created, how many times it has run, and specific options used when it is run. Job options are shown in JSON format as "Job args". ### To update a scheduled backup: 1. Open a command prompt as administrator on the initial node (the node where TSM is installed). 2. Run the following command: tsm schedules update --schedule-id --schedule-time --schedule-recurrence --schedule-days **Note:** To add or change a name, use the `tsm-maintenance-backup` command. ### To suspend or resume a backup schedule: 1. Open a command prompt as administrator on the initial node (the node where TSM is installed). 2. Run one of the following commands: - To suspend a schedule: tsm schedules suspend --schedule-id - To resume a suspended schedule: tsm schedules resume --schedule-id ## Script the backup process If you back up often, you might want to create a script that performs the backup and related tasks for you. These tasks include: - Clean up files and folders before running the backup. - Running the backup itself. - Copying the backup file to a separate computer for safekeeping. This section discusses `tsm` commands you can use together to perform a backup and related tasks. ### Remove log files and clear temporary folders You can clean old Tableau Server log file and temporary files to reduce the time it takes to create a backup, and to ensure the backup file is as small as possible. To clean log files older than a few days, run the following command: `[tsm maintenance cleanup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#cleanup)` ### Run the backup **Note:** When backing up Tableau Server on Linux to a network location, the unprivileged user must have write access to the network share where the backup files are written or the backup will fail. To create the backup, use the `[tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm)` command: `tsm maintenance backup --file --append-date` Note the following about the command: - Add `--append-date` to the command to include the date in the backup file name. - The backup file is assembled in a temporary location in the data directory and then written to the directory defined in the TSM `basefilepath.backuprestore` variable: `` `/var/opt/tableau/tableau_server/data/tabsvc/files/backups/` ```.tsbak` For more information about where backup files are written and how to change that location, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). **Note:** Even when you change the backup location, the backup process uses a temporary location in the data directory to assemble the backup file. ### Copy the backup file to another computer As a best practice, after the backup is created, copy the backup file to another location that is separate from Tableau Server. [Skip to main content](#main-content) # Background Task Delay **Note:** This view is only available to server administrators. To access server views on multi-site deployments, click the site menu and select **Manage All Sites**. For information about how to navigate to administrative views, see [Administrative Views](https://help.tableau.com/current/server-linux/en-gb/adminview.htm) . The Background Task Delay view displays the delay for flow tasks, extract refresh tasks and for subscription tasks – that is, the amount of time between when they are scheduled to run and when they actually run. You can use the view to help you identify places you can improve server performance by distributing your task schedules and by optimising tasks. ![A scatter plot visually represents the wait time for extracts and subscriptions across five days.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_background_task_delay.png) Here are possible reasons for the delays, and ways that you might reduce the delays: - Many tasks are scheduled for the same time. In the example view, tasks that show long delays are clustered at the same time every day, which creates spikes in the wait time. Note that you can set the Timeline filter to a single day to view task delays by hour and identify the hours of the day which have many tasks scheduled at the same time. A solution to this issue can be to distribute the tasks to off-peak hours to reduce load on the server. - Specific tasks take a long time to run and are preventing other tasks from running. For example, there might be an extract refresh job that is connecting to a slow data source or that is processing a large amount of data. Use the Background Tasks for Extracts administrative view to identify which extract refresh tasks are running slowly. You can then optimise the extract refresh task by filtering the data, aggregating the data, or creating multiple data sources for individual tables in a data source. - Other server processes are running at the same time and are consuming server resources and slowing down performance. Monitor the CPU and memory usage of server processes to see which processes are consuming the most resources and then adjust the configuration of processes on your server. [Skip to main content](#main-content) # Background Tasks for Extracts The Background Tasks for Extracts view displays extract-specific tasks that run on the server. ![The time-series graph displays the number of extracts run on the server over the past seven days, while the bar chart illustrates the daily count of successful and failed extracts.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_extract.png) ## Understand this view To better understand this pre-built admininstrative view, make note of the following: - The table, "What Extracts Ran on this Server", lists the extracts that ran in the time period specified in Timeline. - You can click Success or Error to filter the table based on status. - You can also click a specific task to update the "How Much Time did Extracts Take" graph for the selected task. - The table, "How Many Extracts Succeeded or Failed", updates for the status (success or failure) of the task, but the count of extracts that succeeded or failed does not change. ### Status Tasks can have a status of success or error.
IconDescription
Admin view error icon.Error – Server was unable to complete the task.
Admin view success icon.Success – Server completed the task.
### See details about a task For details on about the task, use your mouse to hover over the success or error icon. ![Information on the data extract status.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_extract_details.png) [Skip to main content](#main-content) # Background Tasks for Non Extracts The Background Tasks for Non Extracts view displays tasks that the server runs that are not related to extract refreshes. For example, edited OAuth connections, subscription notifications, and so on. ![A time-series chart displays the tally of accomplished and aborted background tasks within the past 24 hours, while a comprehensive table itemises each task and its frequency of execution.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_nonextract.png) A table lists the tasks that ran in the time range specified. Click Success or Error to filter the table based on status. Select a specific task in the How Many Tasks Succeeded or Failed on this Site table to update the What Background Tasks Ran on this Site graph for the selected task. Tasks can have a status of success or error. For details about the task, use your mouse to hover over the success or error icon.
IconDescription
Admin view error icon.Error – Server was unable to complete the task.
Admin view success icon.Success – Server completed the task.
Details that you can see about the task are its ID, status and priority and when it was created, started and completed. You can also see its runtime: the total runtime of the background job, which includes the runtime of the job plus background job overhead such as initialisation and cleanup. You can also see which backgrounder the job is running on. ## Other articles in this section [Skip to main content](#main-content) # Backgrounder Dashboard The **Backgrounder Dashboard** view is an overview of the background jobs. Using this view, you can find more information about: - The time it takes for jobs to run. - When backgrounder is busy or overloaded. - Jobs that completed successfully, failed or cancelled. Note: This view does not include flow run jobs. > [!IMPORTANT] > > In previous versions of Tableau Server, admin views were all displayed in the same workbook, in separate tabs. However, the two new admin views are displayed as separate workbooks and not part of the existing admin view workbook. You can navigate to the new admin views from the Server or Site Status page: > ![Site status page on Tableau Cloud with a list of site status options including backgrounder dashboard, stats for unused content and login-based licence usage.](/tableau/current/en-gb/server-linux/en-gb/Img/new-admin-views-nav.png) ## Summary and Filters ![A dashboard includes a time-series line chart of the duration of each backgrounder job over the past 31 days, complemented by a second chart displaying a histogram of total job run times.](/tableau/current/en-gb/server-linux/en-gb/Img/admin-view-backgrounder-dashboard.png) **A** - At the top, is a summary chart that tells you the number of jobs that have succeeded, failed or cancelled. You can click on the sections of the bar chart to filter the information by job status. This filter is applied to the entire view and the information displayed includes only jobs with the job status that you selected. **B** - You can find additional filter options by clicking on the filter icon. A Filter pane is displayed that allows you to filter by **Task type**, **Job executed at**, **Site**, **Project**, **Content owner**, **Schedule** and **Backgrounder ID** . The Backgrounder ID is unique to a Backgrounder process. You can use this to see the information about the work done by each Backgrounder process. When you select one or more of these filters, they are applied to the entire view. ![A Dashboard Filters dialog box.](/tableau/current/en-gb/server-linux/en-gb/Img/admin-view-backgrounder-dashboard-filters.png) ## Details The Backgrounder Dashboard has four sections each showing different information about jobs. Each of these sections have more filters in the drop down menu that you can apply to that specific section. 1. **The section at the top left** gives you information about the jobs with the selected job status or any filters you selected using the Filter pane. If no selection is made, all jobs are included. The information displayed also varies based on the selection you make using the drop down: 1. **Total run time**: This shows you the total run time for all jobs with the selected job status, and any other filters you selected. For example, if you selected, Job Status: Failed, and Task type: Subscriptions, the graph shows all subscription jobs that failed. 2. **Number of Jobs**: This shows you the number of jobs that ran for the selected job status and any other selected filters. 3. **Maximum delay**: This shows you the how long the jobs were queued before running. ![A line chart that displays the maximum delay of jobs over time.](/tableau/current/en-gb/server-linux/en-gb/Img/admin-view-backgrounder-dashboard-top-left-section.png) 2. **The section at the top right** gives you information on how busy or overloaded the Backgrounder is on a given day and time. The information displayed however depends on the filter selections you made for the job status and other options in the Filter pane. ![A heatmap that visually represents the time each job takes to run throughout the week.](/tableau/current/en-gb/server-linux/en-gb/Img/admin-view-backgrounder-dashboard-top-right-section.png) If you click on the information icon at the top right part of this section it, a colour legend is displayed. - The variations in the blue colour correlates to the number of jobs running in that time period. The darker the blue, the more jobs that are running. - The variations in the orange colour correlates to the queue times. The darker the orange, the longer the queue time. - Using both of these metrics, you can identify when the backgrounder is busy (dark blue) or is overloaded (dark orange). ![A two-variable colour map that illustrates the correlation between queue times and running background jobs.](/tableau/current/en-gb/server-linux/en-gb/Img/admin-view-backgrounder-dashboard-info-map.png) 3. **The section at the bottom left** gives you run time information about the jobs with the selected status or any other filters you selected using the Filter pane. If no selection is made, all jobs are included. Select marks in the top sections to populate this section with details for the selected content. ![Bar chart with total run time for each job by title.](/tableau/current/en-gb/server-linux/en-gb/Img/admin-view-backgrounder-dashboard-bottom-left-section.png) The drop down selections gives you more options and the information displayed changes accordingly: - When **Title** is selected, the run time information for each individual job is displayed. - When **Project** is selected, the total run time for each project is displayed. - When **Job Creator** is selected, the total run time for jobs created by a specific user is displayed. - When **Site** is selected, the total run time for jobs on that specific site is displayed. - When **Schedule** is selected, the total run time for jobs using that specific schedule is displayed. 4. **The section at the bottom right** tells you how long it took for each job to run. ![A box plot showing the distribution of job duration per job.](/tableau/current/en-gb/server-linux/en-gb/Img/admin-view-backgrounder-dashboard-botton-right-section.png) [Skip to main content](#main-content) # Backup and Restore A Tableau Server administrator should perform regular database maintenance, monitor disk usage on the server, clean up unnecessary files to free up space on the server and back up Tableau Server and its data. Taking these steps can help ensure that Tableau Server runs with maximum efficiency. You can use the Tableau Services Manager (TSM) command line tool to back up and restore your Tableau data. Tableau data includes data extract files, as well as Tableau Server's own PostgreSQL database, which stores workbook and user metadata and server configuration data. Tableau Server log files capture activity and can help you diagnose problems. Logs are written to folders on the server and you can archive and remove them to save disk space. **Note**: You can use the `tsm maintenance restore` command to restore Tableau Server backups created using `tabadmin backup` and `tsm maintenance backup`. Database backups made in other ways, and virtual machine snapshots are not valid sources for restoring Tableau Server. You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. ## Platform compatibility - You can use a backup created with Tableau Server on Linux to restore Tableau Server on Windows. - You can use a backup created with Tableau Server on Windows to restore Tableau Server on Linux. For more information about restoring a Windows backup on Tableau Server on Linux, see [Migrate Tableau Server from Windows to Linux](https://help.tableau.com/current/server-linux/en-gb/restore_from_backup_linux.htm). - You can use a backup created with Tableau Server on Linux to restore Tableau Server on Linux running a different Linux operating system. ## Disk Space Usage for Backup and Restore The free disk space required to create a backup varies depending on the amount of data in the Tableau Server repository and file store services, and their collocation with the tabadmincontroller service. During backups, the background tasks for cleaning up old extracts are temporarily paused. This means that, for the duration of the backup, extract refreshes will leave extra files in place, adding to disk space usage. If your backup takes a long time, or if your organisation uses many extracts that are regularly updated, this can result in a significant amount of temporary disk space usage. These temporary files will be removed after the backup is complete. The following table lists the disk space requirements for backup based on whether the node hosts the repository, file store, controller or some combination of them. In multi-node Tableau Server environments, you need to estimate the required disk space on each node.
RepositoryFile StoreControllerDisk Space Required
Tick icon indicating success.  

3x repository data + 250 MB

To obtain an estimate of the repository data, check the size of <data directory>/pgsql/data/base directory.

To obtain the exact size of the repository data, open the backup file and use the size of the workgroup.pg_dump file.

 Tick icon indicating success. 

1.5x file store data

To obtain an estimate of file store data (extracts, flows, etc.), check the size of <data directory>/dataengine directory.

  Tick icon indicating success.3x repository data + 250 MB + 2.5x file store data
Tick icon indicating success.Tick icon indicating success. 3x repository data + 250 MB + 1.5x file store data
 Tick icon indicating success.Tick icon indicating success.3x repository data + 250 MB + 1.5x file store data
Tick icon indicating success. Tick icon indicating success.3x repository data + 250 MB + 2.5x file store data
Tick icon indicating success.Tick icon indicating success.Tick icon indicating success.3x repository data + 250 MB + 1.5x file store data
#### Restore disk space requirements You must have adequate disk space for the database restore process to run successfully. To restore Tableau Server: - On controller nodes, you need free space equal to at least the size of the backup archive. - On repository nodes, you need free space equal to at least three times the size of the repository data in the backup archive, plus 250 MB, plus the size of the pgsql data directory. - On file store nodes, you need free space equal to at least twice the size of the dataengine folder in the backup archive. ## Best Practices for Backing Up Tableau Server We recommend following these security and performance best practices. ### Protect backup file While configuration secrets are encrypted when stored on disk internally, when these configurations are exported to a backup file, some secrets are written into the file in plain text. It is up to the administrator to take measures to protect the backup file. There are a variety of options available: - Write the file to an encrypted file system. - Write the file to a disk that is physically protected and restricted to specific users. - Encrypt the backup file. ### Maximise backup efficiency There are several ways you can maximise backup efficiency. Your environment can impact how effective each of these is, so test with your data to see what works best. **Optimising with topology configurations:** - Co-locating File Store on the same node as the Administration Controller can reduce the length of time it takes to back up Tableau Server by reducing or eliminating the need to transfer data between nodes during the backup process. This is especially true if your organisation uses many extracts. - Co-locating the repository (pgsql) with the Administration Controller node can also help to reduce back up time, but the time savings is less significant than that of the File Store. The Administration Controller is usually on the initial node, unless you have had an initial node failure and moved the controller to another node. Optimising with backup strategies: Backup is a resource intensive process. If possible, doing your backups during off peak hours is a generally a good strategy. But this however, depends on your requirements and how often Tableau Server data is updated and what your restore requirements. For a detailed explanation of backup and disaster recovery, see [Tableau Server Disaster Recovery](https://www.tableau.com/sites/default/files/whitepapers/disaster_recovery_whitepaper_0.pdf). Here are some backup strategies and adopt them to your requirements - **Type of storage:** Solid State disks are recommended in general for backups. SSD helps make your backups faster and complete sooner compared to traditional spinning disks. - **Backup compression:** You have the option of running your backups with or without compression. When you do your backup with compressions, your backup size will be comparatively smaller, but you may see a slower performance. So if your goal is more focused on speed, choose the `--skip-compression` option: Use the `--skip-compression` option when backing up Tableau Server. This creates the backup without using compression, and results in a larger backup file but can reduce the amount of time it takes for the backup to complete. For more information, see [tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm). - **Snapshot backup:** This option is only available if you have configured your Tableau Server with External File Store. Although the performance of snapshot backups depend on the type of network attached storage, in general snapshot backups are faster than the traditional Tableau Server backups. For more information see, [Tableau Server External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm). ## Other articles in this section [Skip to main content](#main-content) # Backup and Restore with External File Store When you have External File Store enabled on your Tableau Server, you cannot use the `tsm maintenance backup` command to do a backup of the Tableau Server repository and File Store Data. Instead, use a "snapshot" backup process to create a point-in-time snapshot of your network share. - [Tableau Server configured with External File Store](#external-file-store) - [Tableau Server configured with External File Store and External Repository](#external-file-store-external-repo) ### Backup strategies: The backup strategy you use depends on your recovery plan. The snapshot backup process may not be sufficient by itself as it only creates a backup of the File Store (and repository data if requested), and there are other configurations and settings that you may need in order to do a full recovery. **Important:** We strongly recommend disabling scheduled tasks before you perform an upgrade. This includes all updates to data content and should be done before you create your pre-upgrade backup. This may involve disabling jobs that are triggered outside of Tableau Server, such as those initiated through REST API-based extract refreshes or using tabcmd. Here are some scenarios that illustrate when the snapshot backup process may or may not be enough: - **Standby Tableau Server** – If you maintain a standby Tableau Server to use if your production Server is down, creating a snapshot backup and restoring it to your standby server on a regular schedule may be sufficient. Your backup schedule should be based on your recovery point objective. - **New Tableau Server, existing configuration not needed** – If you plan to use a new Tableau Server installation in case of a disaster but don’t necessarily need to use the configurations and settings from your existing Tableau Server installation, you can install a fresh instance of Tableau Server and use the snapshot to restore your data. - **New Tableau Server, existing configuration needed** – If you plan to use a new Tableau Server installation that includes your existing configurations and settings as well as your backed-up date, you need additional files along with the snapshot backup. To do a full backup including all the configurations and settings, follow these instructions: 1. Export topology and configuration data. This exports most of the Tableau Server configuration and topology. For more information, see [Perform a Full Backup and Restore of Tableau Server](https://help.tableau.com/current/server-linux/en-gb/backup_restore.htm#backup-data-types). 2. Create a network share snapshot of the File Store (and repository data, if desired) as described in the [Backup and Restore with External File Store](#Creating) section of this topic. 3. Document the settings that are not included in the export. These include values for system user accounts, coordination service deployment configuration and customised settings. For more information, see [Perform a Full Backup and Restore of Tableau Server](https://help.tableau.com/current/server-linux/en-gb/backup_restore.htm#backup-assets-that-require-a-manual-process). ## Tableau Server configured with External File Store When you have Tableau Server configured with an External File Store, your backup process needs to include creating a point-in-time snapshot backup of the network share with the External File Store. The following procedure describes how to do this. **Note:** If you have both an External File Store and an external repository, see [Tableau Server configured with External File Store and External Repository](#external-file-store-external-repo). ### Creating a snapshot backup Use the following steps to create a snapshot backup: 1. Prepare for the snapshot backup. Run the following command to create a repository backup file and temporarily copy it to the network share. Tableau Server continues to operate normally during the snapshot prepare process. To ensure a consistent snapshot, the internal process that deletes unused extracts will be paused. This process will resume once you complete the backup process described in a later step. `tsm maintenance snapshot-backup prepare` You should see the following message when the prepare step is complete: **Preparation for snapshot backup succeeded**. Confirm that the repository backup file was created on the network share. **Note:** The prepare step creates a backup file of the repository and KMS and Asset keys. If you are using a cloud solution for your encryption key solution, you will need access to the CMK used to decrypt the keys which is necessary for restore. For more information on encryption key solution with AWS, see [AWS Key Management System](https://help.tableau.com/current/server-linux/en-gb/security_kms_aws.htm). For more information on encryption key solution with Azure, see [Azure Key Vault](https://help.tableau.com/current/server-linux/en-gb/security_kms_azure.htm). 2. Create a snapshot of your network share. Use the appropriate process to create a snapshot of your network share. The snapshot is a read-only version of the share, taken at a particular point in time. This will include your File Store data, along with the repository backup file that was temporarily copied to the share in the previous step. The steps you take to create this network share snapshot depend on your network. See your networking documentation for details. 3. Complete the snapshot backup process. Run the following command to complete the backup process and restart the paused internal processes. This removes the temporary repository backup file that was copied to your network share. `tsm maintenance snapshot-backup complete` Confirm that the temporary repository backup file was removed from the network share. ### Restoring a snapshot backup These steps apply to both single-node and multi-node Tableau Server installations. 1. Stop Tableau Server. At the command prompt, run the following command: `tsm stop` 2. Restore your File Store data by restoring your network share snapshot to your network. Your specific steps will depend on your network. 3. Restore the repository data. Use the following command to restore the repository data: `tsm maintenance snapshot-backup restore` **Note:** If you are using a cloud solution for your encryption key solution, make sure the server where the backup is being restored has decrypt access to the cloud instance where the CMK is deployed. 4. Restart Tableau Server. At a command prompt, run the following command: `tsm start` ## Tableau Server configured with External File Store and External Repository When you have Tableau Server configured with both an External File Store and an external repository, there are special steps you need to take to create a backup. These include creating a point-in-time snapshot backup of the network share with the External File Store and may include separately backing up your external repository. The following procedure describes how to do this. **Note:** If you have an External File Store but are using the default repository, see [Tableau Server configured with External File Store](#external-file-store). ### Backing up the repository When you have both an External File Store and an external repository, you have two options for backing up the repository data. There are reasons why you might choose each of these: - Include the repository backup with the network share snapshot: Ease of management. You do not have to do a separate backup of the repository, and the backup is in sync with the File Store data. - Back up the repository independently: Doing a backup of an External Repository separately can be faster, especially if you are using a cloud solution that allows for snapshot backups of the instance. The size of the backup file can significantly impact the time it takes to prepare for a network share snapshot. ### Option 1: Include repository backup with network share snapshot #### Create a snapshot backup 1. Prepare for the snapshot backup. Run the following command to create a repository backup file and temporarily copy it to the network share. Tableau Server continues to operate normally during the snapshot prepare process. To ensure a consistent snapshot, the internal process that deletes unused extracts will be paused. This process will resume once you complete the backup process described in a later step. `tsm maintenance snapshot-backup prepare --include-pg-backup` **Note:** Starting in 2021.1, if you have both External File Store and External Repository enabled, you _must_ use the `--include-pg-backup` option to create the repository backup. If you are upgrading from a version earlier than 2021.1 and you have scripts to run or schedule your backups and want to continue to include the repository backup, add the `--include-pg-backup` option in the prepare command as shown above. For versions prior to 2021.1, you do not need the option; the repository backup is automatically included. You should see the following message when the prepare step is complete: **Preparation for snapshot backup succeeded**. Confirm that the repository backup file was created on the network share. **Note:** The prepare step creates a backup of the repository and KMS and Asset keys. If you are using a cloud solution for your encryption key solution, you will need access to the CMK used to decrypt the keys which is necessary for restore. For more information on encryption key solution with AWS, see [AWS Key Management System](https://help.tableau.com/current/server-linux/en-gb/security_kms_aws.htm). For more information on encryption key solution with Azure, see [Azure Key Vault](https://help.tableau.com/current/server-linux/en-gb/security_kms_azure.htm). 2. Create a snapshot of your network share. Use the appropriate process to create a snapshot of your network share. The snapshot is a read-only version of the share, taken at a particular point in time. This will include your File Store data, along with the repository backup file that was temporarily copied to the share in the previous step. The steps you take to create this network share snapshot depend on your network. See your networking documentation for details. **Important:** The snapshot of the network share and the Repository backup must be completed within 3 hours of completing the Prepare step (step 1). This is to make sure that the File Store and the Repository backups are in sync and to allow the restore to work properly. 3. Complete the snapshot backup process. Run the following command to complete the backup process and restart the paused internal processes. This also removes the temporary repository backup file that was copied to your network share. `tsm maintenance snapshot-backup complete` #### Restoring a snapshot backup These steps apply to both single-node and multi-node Tableau Server installations. **Important:** If you perform Blue/Green upgrades or manually upgrade Tableau Server 2021.4 (or earlier) using the [tsm maintenance (backup and restore)](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm) method, you must enable `legacy-identity-mode` before you can restore to Tableau Server 2022.1 (or later). For more information, see [Troubleshoot Issues with the Identity Migration](https://help.tableau.com/current/server-linux/en-gb/identity_migration_troubleshoot.htm). 1. Stop Tableau Server. At the command prompt, run the following command: `tsm stop` 2. Restore your File Store data by restoring your network share snapshot to your network. Your specific steps will depend on your network. 3. Restore the repository data. Use the following command to restore the repository data: `tsm maintenance snapshot-backup restore` **Note:** If you are using a cloud solution for your encryption key solution, make sure the server where the backup is being restored has decrypt access to the cloud instance where the CMK is deployed. 4. Restart Tableau Server. At a command prompt, run the following command: `tsm start` ### Option 2: Back up repository separately This option is recommended only when the host platform for the External Repository allows you to do snapshot backup. If you are using Azure as your host platform, we recommend using Option 1. #### Create snapshot backups 1. Prepare for the snapshot backup. Run the following command to create a repository backup file and temporarily copy it to the network share. Tableau Server continues to operate normally during the snapshot prepare process. To ensure a consistent snapshot, the internal process that deletes unused extracts will be paused. This process will resume once you complete the backup process described in a later step. `tsm maintenance snapshot-backup prepare` You should see the following message when the prepare step is complete: **Preparation for snapshot backup succeeded**. **Note:** The prepare step creates a backup of the KMS and Asset keys. If you are using a cloud solution for your encryption key solution, you will need access to the CMK used to decrypt the keys which is necessary for restore. For more information on encryption key solution with AWS, see [AWS Key Management System](https://help.tableau.com/current/server-linux/en-gb/security_kms_aws.htm). For more information on encryption key solution with Azure, see [Azure Key Vault](https://help.tableau.com/current/server-linux/en-gb/security_kms_azure.htm). 2. Create a snapshot of your network share. Use the appropriate process to create a snapshot of your network share. The snapshot is a read-only version of the share, taken at a particular point in time. This will include your File Store data. The steps you take to create this network share snapshot depend on your network. See your networking documentation for details. 3. Create a backup of the repository: Use the backup technology of platform where you are hosting your external repository to create a backup. **Important:** The snapshot of the network share and the Repository backup must be completed within 3 hours of completing the Prepare step (step 1). This is to make sure that the File Store and the Repository backups are in sync and to allow the restore to work properly. For more information on creating a snapshot of AWS DB instance, see [Creating a DB snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html). For more information on creating a backup of Azure DB instance, see [Backup and Restore on Flexible Server](https://docs.microsoft.com/en-gb/azure/postgresql/flexible-server/concepts-backup-restore) (PostgreSQL 12 and later) or [Backup and Restore on Single Server](https://docs.microsoft.com/en-gb/azure/postgresql/concepts-backup) (PostgreSQL 11 or earlier). **Note:** If you are using a cloud solution for your encryption key solution, make sure the server where the backup is being restored has decrypt access to cloud instance where CMK is deployed. 4. Complete the snapshot backup process. Run the following command to complete the backup process and restart the paused internal processes. `tsm maintenance snapshot-backup complete` #### Restoring a snapshot backup These steps apply to both single-node and multi-node Tableau Server installations. 1. Use the database backup of your External Repository. If you are using a cloud platform to host your Repository, this generally requires that you create a new database instance into which you restore the backup. For detailed instructions on creating a new instance, see the option for your hosting solution in [Install External Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_new_install.htm#external-repo-install). 2. Use the instructions in Step 1 of the [Install Tableau Server with External PostgreSQL Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_new_install.htm) topic to create a configuration file for the new instance. 3. Stop Tableau Server. At the command prompt, run the following command: `tsm stop` 4. If the restoration of the external repository requires a new database instance, use the following commands to point Tableau Server to the new database instance and then apply the changes to Tableau Server: `tsm topology external-services repository replace-host -f .json -c .pem` `tsm pending-changes apply` The `.json` file is the configuration file you created in Step 2. The certificate file is the SSL certificate you downloaded from the new database instance. 5. Restore your File Store data by restoring your network share snapshot to your network. Your specific steps will depend on your network. **Note:** Some technologies require you to create a new network share when doing a restore. If this applies to your network attached storage, you can do your restore **before** stopping the Tableau Server. If you are restoring the File Store data to a new network share, you must configure Tableau Server to use the new network share. For more information, see [Configure Tableau Server to use a different external storage](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_reconfigure.htm#configure-new-storage). 6. Run the following command to restore the KMS and Asset keys: `tsm maintenance snapshot-backup restore` **Note:** If you are using a cloud solution for your encryption key solution, make sure the server where the backup is being restored has decrypt access to cloud instance where CMK is deployed. 7. Run the following command to restart Tableau Server: `tsm start` ## Who can do this Tableau Server Administrators can backup and restore Tableau Server. In addition you must have permission to access and perform snapshot backups on the external storage. [Skip to main content](#main-content) # Basic Product Data By default Tableau products send usage data to Tableau so that we can understand how customers use our software, and gain insights into where they are successful and where they might run into problems that we can address. For example, this data can help us learn where upgrades are commonly failing and allow us to make product changes to address those issues, or identify what portion of our user base needs informed about a security issue that applies to a specific version of Tableau Server. You can disable the sending of this data at installation time, or later. For details on how to do this, see the instructions for [Tableau Desktop](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_setting_changes.htm#usage) or [Tableau Server](https://help.tableau.com/current/server/en-gb/usage_data_server.htm). Even when you disable the sending of product usage data, certain basic product data is sent to Tableau. This Basic Product Data includes information about products and their processes, including which product or process is running, when they start up, what operating system they are running on, licensing information, which machine or cluster of machines has sent the data (using unique pseudonymised identifiers), and whether the product is configured to send product usage data. You can disable the sending of Basic Product Data at the machine level, or at the enterprise level, by blocking traffic sent to **prod.telemetry.tableausoftware.com**. ## Disabling sharing of Basic Product Data on individual computers **Important:** This procedure involves modifying your local `hosts` file. If you do not know what this is, you should not change it. You should only make this change if you understand the implications of making changes to the file, know how to change the file, and have made a backup of the file for safety. Modifying `hosts` files changes network behavior for computers. Detailed instructions for modifying `hosts` files are provided by operating system providers such as Microsoft, Apple or Linux Distributions. 1. Make a copy of your existing hosts file and save it to a computer that is not your Tableau computer. This is your backup, in case you need to reverse your changes. Do not start modifying the file until you have made a backup copy of it. 2. Modify your computer’s `hosts` file to include these lines: \# Stops sending Product Usage to Tableau (prod.telemetry.tableausoftware.com). # Learn more here: http:\\\\tableau.com\\derived-data 127.0.0.1 prod.telemetry.tableausoftware.com The first and second lines are comments, explaining the third line. The third line prevents all traffic to `prod.telemetry.tableausoftware.com` (`http://prod.telemetry.tableausoftware.com/`) from leaving your local machine by sending it to the Internal host loopback address. The data does not get sent outside the computer. ## Disabling the sharing of Basic Product Data at the enterprise level To disable sending of Basic Product Data on an enterprise level, modify your Network Firewall to prevent outbound traffic to `prod.telemetry.tableausoftware.com`. This domain is used by Tableau to receive the Basic Product Data about process launch and shutdown. It is also used for the more general Product Usage Data. Blocking traffic to this domain it you will prevent both kinds of data from being sent. Traffic to this domain will occur on Ports 80 (for initial registration of our Product Data clients) and on Port 443 (for all subsequent traffic). To completely prevent product data from being sent, block all traffic to this domain. For details on how to configure your network firewall, refer to your vendor or your internal IT department. Tableau cannot provide these instructions. [Skip to main content](#main-content) # Before you install... **Note:** You can find additional information about technical specifications for Tableau Server on the Tableau web site, [here](http://www.tableau.com/en-gb/products/techspecs#server "Tableau Server Tech Specs"). This topic includes requirements and recommendations that you must consider before you install Tableau Server into a production environment. - If you are new to Tableau Server, and you want to deploy it in your organisation, we encourage you to deploy Tableau Server as a single server in a test environment first. The easiest way to do a single-server installation is to follow the steps in [Jump-start Installation](https://help.tableau.com/current/server-linux/en-gb/jumpstart.htm). - For an end-to-end procedure that describes how to deploy an enterprise-ready, four-node, reference architecture in a tiered data centre, see [Tableau Server Enterprise Deployment Guide](https://help.tableau.com/current/guides/enterprise-deployment/en-gb/edg_intro.htm). - If you are deploying Tableau Server in a distributed cluster, review [Distributed Requirements](https://help.tableau.com/current/server-linux/en-gb/distrib_requ.htm) in addition to the requirements and recommendations described in this topic. - If you are migrating from Tableau Server on Windows to Tableau Server on Linux, see [Migrate Tableau Server from Windows to Linux](https://help.tableau.com/current/server-linux/en-gb/restore_from_backup_linux.htm). ## Validating your server deployment plan Before you commit to installing a new Tableau Server deployment in your organisation, be sure to carefully evaluate your options. For most organisations, Tableau Cloud will provide a more reliable, performant and cost-effective analytics solution when compared to self-hosting Tableau Server. For information about the viability of Tableau Cloud for your organisation, review this blog post, [Should I move my analytics to the cloud?](https://www.tableau.com/en-gb/blog/should-i-move-my-analytics-cloud) Already running Tableau Server and want to migrate to Tableau Cloud? See [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). ## Hardware recommendations for production installations The following list describes the _minimum_ hardware recommendations for a production use, single-node installation of Tableau Server: **Important:** These recommendations are minimums and may not reflect the requirements for your installation and organisation. For example, there are a number of factors that can impact disk space requirements, including whether or not you will be publishing extracts, flows and the number of workbooks to Tableau Server. For more information on what might impact free disk space requirements, see [Disk Space Requirements](https://help.tableau.com/current/server-linux/en-gb/requ_diskspace.htm).

Install Type

Processor

CPU

RAM

Free Disk Space

Single node

  • 64-bit (x86_64 chipsets)
  • Must support SSE4.2 and POPCNT instruction sets
  • ARM-based processors are not supported

8 cores (16 vCPUs), 2.0 GHz or higher

Version 2022.3 and later:

  • 128 GB

Version 2021.4.0 to version 2022.1.x:

  • 64 GB

Version 2021.3.x and earlier:

  • 32 GB

50 GB

If you are adding Tableau Prep Conductor to your Tableau Server installation, we recommend you add a second node and dedicate this to running Tableau Server Prep Conductor. This node should have a minimum of 4 cores (8 vCPUs) and 16 GB of RAM.
Recommended swap memory: The square root of the system RAM or 8 GB, whichever is larger.

Multi-node and enterprise deployments

Contact Tableau for technical guidance.

Nodes must meet or exceed the minimum hardware recommendations, except:

  • Dedicated Backgrounder nodes running up to two instances of backgrounder, where 4 cores may be acceptable.

  • Dedicated node for Tableau Prep Conductor: Minimum of 4 cores (8 vCPUs) and 16 GB of RAM.

  • Dedicated node for Independent Gateway: Minimum of 2 cores (4 vCPUs), 8 GB of RAM and 100 GB of free disk space.

**Important:** The disk space requirement cannot be checked until you initialise TSM. If you don’t have enough space, you won’t be told this until after you install the Tableau Server package. 50 GB disk space available, with a minimum of 15 GB allocated to the `/opt` directory, and the remainder allocated to the `/var` directory for data storage. - Free disk space is calculated after the Tableau Server Setup program is unzipped. The Setup program uses about 1 GB of space. You may need to allocate additional disk space depending on various factors like whether you will be using extracts. The core Tableau Server bits must be installed in a directory with at least 15 GB of free disk space. If you attempt to install Tableau Server on a computer that does not have enough space, the Tableau Server package will install, but you will be unable to continue with setup. By default the install location is the `/opt` directory. You can change the installation path for Tableau Server on RHEL distros. If you plan to make heavy use of extracts then you may need to allocate additional disk space.You can specify a different directory for data (extract) storage during installation. - **Network attached storage space requirements for External File Store:** If you are planning to configure [Tableau Server with External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm), you will need to estimate the amount of storage space to dedicate on your network attached storage. Estimating the storage size: You must take into account the amount of storage needed for publishing and refreshing extracts. In addition, you must also take into account the repository backup size unless you specifically choose the option to do your repository backup separately as described in the [Option 2: Back up repository separately](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_backup_restore.htm#backup-repository-separately) topic. - Extracts: - Consider the number of extracts that will be published to Tableau Server and the size of each extract. Test your needs by publishing several extracts to Tableau Server and then checking the disk space used. You can use this amount of disk space to help you figure out how many extracts will be published to Tableau Server over time as well as how each existing extract will increase in size. - Consider the space needed by the temp directory during an extract refresh. The temp directory, which is where an extract is stored to during a refresh, may require up to three times the final file size of the extract. - Repository Backup: - To obtain an estimate of the repository data, check the size of `/pgsql/data/base` directory. - To obtain the exact size of the repository data, open the backup file and use the size of the `workgroup.pg_dump` file. - Core count is based on "physical" cores. Physical cores can represent actual server hardware or cores on a virtual machine (VM). Hyper-threading is ignored for the purposes of counting cores. - RAM shown is the minimum recommended for a single-node installation. Your installation may function better with more RAM, depending on activity, number of users, and background jobs, for example. To see the full list of recommendations and to see the minimum requirements, see [Minimum Hardware Requirements and Recommendations for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/server_hardware_min.htm). For hardware specifications Tableau uses internally for testing scalability, see [Hardware recommendations for production installations](https://help.tableau.com/current/server-linux/en-gb/server_baseline_config.htm#Hardware). For public cloud deployments on Amazon Web Services and Google Cloud Platform, their ‘vCPU’ is actually a CPU hyper-thread, and not a full CPU core. When sizing cloud instances, you will need twice as many vCPU as the Tableau Server CPU core requirements given (8 vCPU required for a minimum trial installation, 16 vCPU recommended for a single-node installation). ## Operating system requirements **Important:** There is a [known issue](https://issues.salesforce.com/issue/a028c00000y51g0AAA/activationservice-or-tabadmincontroller-crashes-on-multiple-linux-distributions-during-initialization-or-license-activation-in-ts-20231 "link to known issue") where initialisation or licence activation fails on servers running Linux with Tableau Server on the following versions: 2023.3.1 - 2023.3.17, 2024.2.1 - 2024.2.10, and 2025.1.0 - 2025.1.1. The issue is fixed beginning with the May 2025 maintenance releases, in versions 2023.3.18, 2024.2.11 and 2025.1.2. For information on resolving this, see [this Knowledge Base article](https://help.salesforce.com/s/articleView?id=001922852&type=1 "link to Knowledge Base article with resolution to known issue"). The following distributions of Linux are supported:
 2023.1.8+2023.3.02023.3.1 - 2024.2.112024.2.12+2025.1.X – 2025.3.02025.3.1+2026.2.x
AlmaLinux 8.x  
AlmaLinux 9.x  
AlmaLinux 10.x      
Amazon Linux 2   
Amazon Linux 2023  
CentOS 7.9+
(not 8.x)
   
CentOS Stream 8.x  
CentOS Stream 9.x  
CentOS Stream 10.x      
Oracle Linux 7.3+   
Oracle Linux 8.x  
Oracle Linux 9.x  
Oracle Linux 10.x      
RHEL 7.3+   
RHEL 8.3+
RHEL 9.x 
RHEL 10.x     
Rocky Linux 8.x  
Rocky Linux 9.x  
Rocky Linux 10.x      
Ubuntu 16.04 LTS   
Ubuntu 18.04 LTS   
Ubuntu 20.04 LTS
Ubuntu 22.04 LTS 
Ubuntu 24.04 LTS   
For information about Linux distribution requirements for Tableau Server in a Container, see [Supported distributions for building](https://help.tableau.com/current/server-linux/en-gb/server-in-container_setup-tool.htm#TSContainer-distros). **Important:** To ensure you have the latest security and functionality patches, Tableau strongly recommends that you use the latest supported version of the Linux distribution you are deploying on. Tableau generally tests and validates on the latest minor version of a supported distribution major version. Additional notes on Linux distributions: - Red Hat Enterprise Linux (RHEL), CentOS, Oracle Linux and Amazon Linux distributions are collectively referred to in this documentation as RHEL-like. - As of version 2025.1.0, the following distributions are no longer supported: CentOS 7, RHEL 7, Oracle Linux 7, Ubuntu 16.04 LTS, Ubuntu 18.04 LTS and Amazon Linux 2. - As of July 2022, Debian distributions are no longer supported. For more information, see [this Tableau Community post](https://community.tableau.com/s/news/a0A4T0000011xDOUAY/debian-end-of-life). - Non-LTS releases of Ubuntu are not supported. - Ubuntu version 24.04 support was added in Tableau Server version 2025.1.0. - Ubuntu version 20.04 support was added in Tableau Server version 2023.1.0, and in Server maintenance releases 2022.1.12 and 2022.3.4. It is not supported in earlier versions. - Custom kernels are not supported. In a multi-node installation of Tableau Server, all of the computer nodes where you are installing Tableau must run Linux and the same distribution of Linux. ## Installation directory The core Tableau Server bits are installed in the `/opt` directory by default. - The directory where you install Tableau Server must have at least 15 GB of free disk space allocated to it. If you attempt to install Tableau Server on a computer that does not have enough space, the Tableau Server package will install, but you will be unable to continue with setup. - You can specify a non-default install location on RHEL-like systems, but cannot change the location on Ubuntu. - Do not specify a symbolic link or a directory location on a Network File System (NFS) volume when specifying a non-default install location on RHEL-like systems. ### Data directory By default, Tableau Server will create a data directory for all content and extracts that are managed by Tableau. The directory is created at `/var/opt/tableau/tableau_server`. Do not use a symbolic link or directory location on a Network File System (NFS) volume for the data directory as these are not supported. You can specify a non-default directory for data (extract) storage during installation. If you plan to use a different directory, do not create the directory. Instead, let Tableau Server setup create the directory. The data directory requires specific permissions that are set during the installation process. To change the data directory, you must pass a flag along with the data directory path when you run the `initialize-tsm` script. See [Help Output for initialise-tsm Script](https://help.tableau.com/current/server-linux/en-gb/initialize_tsm-h.htm). If you are changing the default data directory: - Do not specify a symbolic link or a data directory location on a Network File System (NFS) volume. - Do not specify a data directory location with a path that includes a period or space. If there is a period or space in the path, initialisation will fail. - The data directory must be installed into a different directory than the installation directory. **Important**: You cannot change the data directory location after you've run `initialize-tsm`. The data directory location will persist for the life of the deployment, including subsequent upgrades. ## Tableau Prep Conductor Tableau Prep Conductor is one of the process on Tableau Server. It runs a flow, checks connection credentials and sends alerts if a flow fails. Tableau Prep Conductor leverages the scheduling and tracking functionality of Tableau Server so you can automate running flows to update the flow output instead of logging into Tableau Prep Builder to manually run individual flows as your data changes. Tableau Prep Conductor is licensed separately and is available through the Data Management licence. For more information on Tableau Prep Conductor licensing, see [Licence Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_license.htm). We recommend you enable Tableau Prep Conductor on a dedicated node. For more information: - If you are installing a new Tableau Server, see [Step 1 (New Install): Install Tableau Server with Tableau Prep Conductor](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_new_install.htm). - If you are adding Tableau Prep Conductor to an existing installation of Tableau Server, see [Step 1 (Existing Install): Enable Tableau Prep Conductor](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_add_to_existing_install.htm). ## Additional requirements Make sure that your environment also meets the following additional requirements: **Hostname** - Tableau Server must be able to resolve the hosthame to an IP address either using the domain name server (DNS) or with a local host file on the computer running Tableau Server. By default, host files are stored at `/etc/hosts`. - The hostname of the server must not change after you start Tableau Services Manager during the setup process. For example, this might happen if you use the cloud-init package to initialise a virtual machine, and you install Tableau Server on that virtual machine. - Hostnames that include underscores (\_) are not supported by Tableau Server. **DNS responsiveness** Domain name servers configured for Tableau Server nodes must respond quickly and reliably to both A and AAAA record look-ups for hostnames used during runtime resolution. This includes returning timely negative responses (for example, NXDOMAIN) when a hostname is not registered. Slow DNS responses or timeouts may cause connection and query delays. **Static IP address** The computer where you install Tableau Server must have a static IPv4 or IPv6 address. **Database drivers** To connect to specific data sources, the computer where you install Tableau Server must have the correct database drivers installed. For more information, see [Database Drivers](https://help.tableau.com/current/server-linux/en-gb/dbdriver.htm). **Available ports** TSM and Tableau Server each require an available TCP port in order for you to access them. TSM defaults to port 8850, and the Tableau Server Gateway service defaults to port 80. We strongly recommend that you ensure that both port 8850 and 80 are not in use on your system before installing Tableau Server. If those ports are not available, the TSM and gateway ports may be dynamically remapped to different port numbers, and there is currently no interface for displaying which port they have been remapped to. See [Tableau Services Manager Ports](https://help.tableau.com/current/server-linux/en-gb/ports.htm). **Local firewall configuration** If you are running a firewall on the computer where you will be installing Tableau Server, then you will need to open the following default ports for Tableau Server traffic. All port numbers, except 443, can be changed.
PortTCP/UDPUsed by...TYPE OF INSTALLATION
All

Distributed / High Availability

80TCPGatewayX 
443TCPSSL. When Tableau Server is configured for SSL, the application server redirects requests to this port. Do not change this port.X 
8850TCPTableau Services Manager.X 
8060TCPPostgreSQL database.X 
8061TCPPostgreSQL backup verification portX 
8000-9000TCPRange of ports reserved by default for dynamic mapping of Tableau processes X
27000-27009TCPRange of ports used by Tableau Server for Licence service. This range must be open on the node running the Licence service and accessible from other nodes. By default, the initial node runs the Licence service.X 
See [Tableau Services Manager Ports](https://help.tableau.com/current/server-linux/en-gb/ports.htm) and [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). **System user and groups** Tableau Server on Linux uses one unprivileged user, and two groups for proper operation. Tableau will create the default account and groups during setup. Alternatively, you can specify existing accounts. See [System user and groups](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm#System) and [TSM authorisation group](https://help.tableau.com/current/server-linux/en-gb/tsm_overview.htm#TSM). **Sudo and root access** All installation tasks and administrative tasks for Tableau Server must be run as root. Often this is accomplished using the sudo command, but running the commands directly as the root user is also possible. To install Tableau Server with the root account, you must specify a user account during installation. The account will be used for managing TSM. Specify the account by running the initialise-tsm script with the `-a` option. See [Help Output for initialise-tsm Script](https://help.tableau.com/current/server-linux/en-gb/initialize_tsm-h.htm). **Account password** The user account that you use to install and administer Tableau Server must be able to authenticate with a password. That is, the user must not use another means of authenticating (for example public key authentication). If the account you are using to install and initialise Tableau Server does not have a password, you can set one using the `passwd` command: `sudo passwd $USER` **Port access requirements** If you want to install Tableau Server remotely, for example by means of SSH, ensure that the following ports are open: - `8850`. The port used for the Tableau Services Manager (TSM) web interface. You can use this interface to configure Tableau Server. - `80`. The port used for the main Tableau Server web interface. The Tableau Server installer attempts to open these ports during the installation process, but it can only open these ports for the `firewalld` firewall. If your computer runs another firewall, you must open the ports before you install. **Virtual Container environments** Beginning with version 2021.2, certain configurations of Tableau Server on Linux can be run in a container. For details on supported configurations, see [Tableau Server in a Container](https://help.tableau.com/current/server-linux/en-gb/server-in-container.htm). Previous versions of Tableau Server on Linux and unsupported configurations have not been tested and are not supported in virtual container environments such as Docker. In these cases, Tableau Server on Linux will not function as expected if installed in these environments. ### Package requirements **Systemd** Tableau Server requires `systemd`to manage services. This package is installed by default starting on CentOS 7 and Ubuntu 16. If you decide to test Tableau Server on a modified version of these distributions, you can run the following command to confirm that `systemd` is installed: `whereis systemd` If `systemd`is installed, the installation location is displayed. For example, you might see the following output: `systemd: /usr/lib/systemd /etc/systemd /usr/share/systemd /usr/share/man/man1/systemd.1.gz` If you have systemd installed but the Tableau installer is failing requirements checks for systemd, it's likely that systemd is not running. To verify that systemd is running, run the following command: `ls /run/systemd` The output will be a list of files and directories. If systemd is running, the output will include `system`. If `system` is not in the output, then systemd is not running. **Antivirus software** Antivirus software that scans directories used by Tableau Server can interfere with installation and ongoing use of Tableau Server. In some cases, this can result in installation failures, problems starting Tableau Server or impacts to performance. If you plan to run antivirus software on the computer running Tableau Server, follow the recommendations in the [Knowledge Base](http://kb.tableau.com/articles/howto/improving-performance-by-using-antivirus-exclusions?lang=en-gb). _Continue to the next step: [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm)._ [Skip to main content](#main-content) # Best Practices for Installing Tableau Server in the Alibaba Cloud ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction The following best practices make installing Tableau Server in the cloud a better experience. - Read the Tableau Server [Plan Your Deployment](https://help.tableau.com/current/server-linux/en-gb/plan.htm) section. - Read the Tableau Server on [Alibaba Cloud Prerequisites](https://help.tableau.com/current/server-linux/en-gb/ts_alibaba_prerequisites.htm). - Read the Tableau Server [Security Hardening Checklist](https://help.tableau.com/current/server-linux/en-gb/security_harden.htm). - If you’re new to the cloud, use the [Alibaba Cloud free trial](https://www.alibabacloud.com/campaign/free-trial) to get familiar with working in the cloud before you deploy Tableau Server on the Alibaba Cloud. - Read about and understand [network topology](https://www.alibabacloud.com/help/doc-detail/34217.htm) on the Alibaba Cloud and how to architect it. ## Keeping Costs Down The Alibaba Cloud offers cloud-based services on a pay-as-you-go basis. Costs are determined by the services you run and amount of time you use them. Different combinations of instance types and sizes have different costs. For more information about services pricing, see [Alibaba Cloud pricing](https://www.alibabacloud.com/pricing). You can estimate your total monthly costs using the [Alibaba Cloud price calculator](https://www.alibabacloud.com/pricing-calculator#/). To help monitor and control usage costs on an ongoing basis, you can set up a billing alert on the Alibaba Cloud to send email when your monthly Alibaba Cloud costs reach your predefined spending threshold: 1. In the Alibaba Cloud console, click Billing Management. 2. On the Account Overview page, next to Monthly Spending Alert, click Setting. 3. In the Monthly Spending Alert dialog box, turn on monthly spending alerts, enter the spending threshold, and set the email recipient who should be notified when spending reaches the threshold you've set. 4. Click Save. For more information about how to track your spending, see [How to see the instance spending](https://www.alibabacloud.com/help/doc-detail/106929.htm) at the Alibaba website. [Skip to main content](#main-content) # Best Practices for Installing Tableau Server on Amazon Web Services ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction The following best practices make installing Tableau Server in the cloud a better experience. - Read the Tableau Server [Plan Your Deployment](https://help.tableau.com/current/server-linux/en-gb/plan.htm) section. - Read [What You Need Before You Begin](https://help.tableau.com/current/server-linux/en-gb/ts_aws_prerequisites.htm). - Read the Tableau Server [Security Hardening Checklist](https://help.tableau.com/current/server-linux/en-gb/security_harden.htm). - If you’re new to the cloud, use the [AWS Free Tier](https://aws.amazon.com/free/) to get familiar with working in the cloud before you deploy Tableau Server on AWS. - Read about and understand [network topology on AWS](http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/gsg-aws-compute-network.html) and how to architect it. - Use an [Amazon elastic network interface](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html) to provide a static MAC address for your Amazon EC2 instance. ## Keeping Costs Down AWS offers cloud-based services on a pay-as-you-go basis. Costs are determined by the services you run and amount of time you use them. Different combinations of instance types and sizes have different costs. For more information about services pricing, see [AWS Pricing](https://aws.amazon.com/pricing/) at the AWS website. You can estimate your total monthly costs using the [AWS Simple Monthly Calculator](http://calculator.s3.amazonaws.com/index.html) at the AWS website. You can also compare on-premises vs the cloud using the [AWS Total Cost of Ownership (TCO) Calculators](https://aws.amazon.com/tco-calculator/) at the AWS website. To help monitor and control usage costs on an ongoing basis, you can use Amazon CloudWatch to alert you when your monthly AWS costs reach your predefined spending threshold. For more information, see [Monitor Your Estimated Charges Using Cloudwatch](http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/gs_monitor_estimated_charges_with_cloudwatch.html) in the _Amazon CloudWatch User’s Guide_ at the AWS website. [Skip to main content](#main-content) # Best Practices for Installing Tableau Server on Microsoft Azure ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction The following best practices make installing Tableau Server in the cloud a better experience. - Read the Tableau Server [Plan Your Deployment](https://help.tableau.com/current/server-linux/en-gb/plan.htm) section. - Read [What You Need Before You Begin](https://help.tableau.com/current/server-linux/en-gb/ts_azure_prerequisites.htm). - Read the Tableau Server [Security Hardening Checklist](https://help.tableau.com/current/server-linux/en-gb/security_harden.htm). - If you’re new to the cloud, use the [Azure free tier](https://azure.microsoft.com/en-gb/free/) to get familiar with working in the cloud before you deploy Tableau Server on Microsoft Azure. - Read about and understand [network topology](https://docs.microsoft.com/en-gb/azure/architecture/reference-architectures/hybrid-networking/) on Microsoft Azure and how to architect it. ## Keeping Costs Down Microsoft Azure offers cloud-based services on a pay-as-you-go basis. Costs are determined by the services you run and amount of time you use them. Different combinations of instance types and sizes have different costs. For more information about services pricing, see [Azure pricing](https://azure.microsoft.com/en-au/pricing/calculator/). You can estimate your total monthly costs using the [Microsoft Azure Pricing Calculator](https://azure.microsoft.com/en-au/pricing/calculator/). You can also compare on-premises vs the cloud using the [Microsoft Azure Total Cost of Ownership (TCO) Calculator](http://tco.microsoft.com/). To help monitor and control usage costs on an ongoing basis, you can set up billing alerts for Microsoft Azure to alert you when your monthly Microsoft Azure costs reach your predefined spending threshold. For more information, see [Set up billing or credit alerts for your Microsoft Azure subscriptions](https://docs.microsoft.com/en-gb/azure/billing/billing-set-up-alerts) at the Microsoft Azure website. [Skip to main content](#main-content) # Best Practices for Installing Tableau Server on the Google Cloud Platform ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction The following best practices make installing Tableau Server in the cloud a better experience. - Read the Tableau Server [Plan Your Deployment](https://help.tableau.com/current/server-linux/en-gb/plan.htm) section. - Read the Tableau Server on [Google Cloud Platform Prerequisites](https://help.tableau.com/current/server-linux/en-gb/ts_gcp_prerequisites.htm). - Read the Tableau Server [Security Hardening Checklist](https://help.tableau.com/current/server-linux/en-gb/security_harden.htm). - If you’re new to the cloud, use the [Google Cloud Platform free tier](https://cloud.google.com/free/) to get familiar with working in the cloud before you deploy Tableau Server on the Google Cloud Platform. - Read Google Cloud Platform [best practices for enterprise organisations](https://cloud.google.com/docs/enterprise/best-practices-for-enterprise-organizations). - Read about and understand [network topology](https://cloud.google.com/vpc/docs/vpc) on the Google Cloud Platform and how to architect it. ## Keeping Costs Down The Google Cloud Platform offers cloud-based services on a pay-as-you-go basis. Costs are determined by the services you run and amount of time you use them. Different combinations of instance types and sizes have different costs. For more information about services pricing, see [Google Cloud Platform pricing](https://cloud.google.com/pricing/). You can estimate your total monthly costs using the [Google Cloud Platform pricing calculator](https://cloud.google.com/products/calculator/). You can also compare on-premises vs the cloud using the [Google Cloud Platform TCO calculator](https://cloud.google.com/pricing?authuser=0&hl=fi#calculators). To help monitor and control usage costs on an ongoing basis, you can set up billing alerts for the Google Cloud Platform to alert you when your monthly Google Cloud Platform costs reach your predefined spending threshold. For more information, see [Set budgets and alerts](https://support.google.com/cloud/answer/6293540?visit_id=0-636416330629139015-862362861&rd=1) at the Google website. [Skip to main content](#main-content) # Best Practices for Updating Your Tableau Server Computer This topic provides the steps for doing minor version upgrades or patches on a computer running Tableau Server. **Important:** Any major version operating system or Linux system kernel upgrade (for example: RHEL 7.x to RHEL 8.x) must be done using Blue/Green guidelines. **Do not do a major version upgrade directly on a machine already running Tableau Server.** Even if you follow the steps below, Tableau Server will be in an unstable state if it starts at all. **Doing a major OS version upgrade directly on a machine that is running Tableau Server will render your Tableau Server installation unsupported.** For details on Blue/Green upgrades, see [Using a Blue/Green approach for upgrading Tableau Server](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-blue-green.htm). To do a minor version update or patch of the operating system or Linux kernel of a computer running Tableau Server: 1. Use TSM to stop the Tableau Server: At a command prompt, type: `tsm stop` and wait until all services are completely stopped. 2. Stop the TSM administrative services by running the `stop-administrative-services` script, by default: `/opt/tableau/tableau_server/packages/scripts./stop-administrative-services` 3. Patch the operating system as instructed by your IT team or operating system vendor for all nodes in the cluster. 4. If the patch requires a reboot of the operating system, make sure that all hosts in the Tableau Server cluster complete the reboot before restarting Tableau Server. 5. Start Tableau Server with TSM: At a command prompt, type: `tsm start` and wait until all services are completely started. [Skip to main content](#main-content) # Build a Multi-Fact Relationship Data Model Analysis often involves bringing together tables of data that don't have a direct relationship to each other yet both relate to the same, common information such as date or location. This type of analysis is sometimes referred to as multi-fact analysis with shared dimensions. To perform this kind of analysis in Tableau, create a data source that uses multiple base tables connected by shared tables. - _Base tables_ are the left-most tables in the data model on the Data Source tab. For guidance on how to determine which tables to use as base tables, see [When to Use a Multi-fact Relationship Model](https://help.tableau.com/current/server-linux/en-gb/datasource_mfr_when_to_use.htm). - _Shared tables_ are downstream tables with multiple incoming relationships. These tables contain fields that can stitch together unrelated fields during analysis in a viz. Date and Location are examples of commonly shared tables. ## Build the model Building a multi-fact relationship data model is essentially the same as creating any other data source that uses relationships, but with two additional pieces: additional base tables and multiple incoming relationships to shared tables. 1. [Connect to your data](https://help.tableau.com/current/pro/desktop/en-gb/basicconnectoverview.htm). You can use [multiple data connections](https://help.tableau.com/current/pro/desktop/en-gb/datasource_plan.htm#tableau-data-sources) if your tables aren't all in the same database. 2. Drag a table to the canvas to create the first base table. 3. Drag another table from the left pane to the New Base Table drop area. ![the data modelling canvas with an existing base table and a drop area for New Base Table](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_new_base_table.png) Tableau shows a warning that you're building a data model with multiple base tables. We recommend that you only set up a multiple base table model if your data needs it. Otherwise, use a single base table model to avoid the complexities that come with a multiple base table model. ![a data model with two base tables, one with a warning for multiple base tables](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_multi_base_table_warning.png) 4. Drag another field to the canvas and relate it to one of the base tables. [Configure each relationship if necessary](https://help.tableau.com/current/pro/desktop/en-gb/relate_tables.htm#create-and-define-relationships). ![a downstream table being added to the data model](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_downstream.png) 5. Hover over the not-yet-related base table to bring up a plus sign (affectionately known as a ‘meatball’). ![the Clubs base table with a cursor over it and the plus sign "meatball" showing](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_meatball_base.png) 6. Drag the plus sign icon to the shared table to create a new incoming relationship (also known as a "noodle"). ![a meatball dragging a new noodle to an existing downstream table](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_meatball.png) 7. _Optional:_ Continue adding downstream tables and base tables. Click and drag the plus sign icon to build shared tables as needed. **Note**: Rather than starting with the base tables, you can also build a single base table model first and add more base tables later. ## Explore the model A data model with multiple base tables is built with relationships, but not all tables are related to each other to the same degree. Each base table defines a _tree_, which contains every table related to that base table, either directly related or downstream from a related table. Shared tables exist in multiple trees. For more information about degrees of relatedness, see [About Multi-fact Relationship Data Models](https://help.tableau.com/current/server-linux/en-gb/datasource_mfr_multiple_base_tables.htm). When you view a model with multiple base tables, there are various options for exploring and managing the data model. These options are especially useful when a data model is complex. ![a data model with four base tables and multiple shared tables as well as unshared downstream tables](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_complex_model.png) An example of a complex data model with four base tables, multiple shared tables and downstream tables. The downstream tables are both shared and unshared between the base tables. 2024.2 introduced some new layout details for the data model. In a multi-fact relationship data model, relationships bundle together to help track how many incoming relationships a table has. Shared tables (and downstream shared tables) have a bolder outline than tables that aren’t shared. ### Terminology Tables in a multiple base table data model have specific roles. Base tables and shared tables are the only tables that must exist in a multi-fact relationship data model. (Without more than one base table, it's not a multi-fact relationship data model. Without a shared table connecting the base tables, it's not a valid data model.) Because of the often complex nature of these models, it’s useful to have a shared terminology: - _Base tables_ are on the far left and have no incoming relationships. - In the example, Inventory, Marketing, Sales and Support are base tables. - _Sub-base tables_ are between a base table and a shared table. - In the example, Parts is a sub-base table. - _Shared tables_ have more than one incoming relationship. - In the example, Products, Dates, Customer and Supplier are shared tables. - _Downstream shared tables_ have exactly one incoming relationship and have a shared table somewhere upstream of them. - In the example, Subcategory and Category are downstream shared tables. - _Downstream unshared tables_ have exactly one incoming relationship and have no shared tables upstream of them. - In the example, there are no downstream unshared tables. ![A data model laying out the terms base table, sub-base table, downstream unshared table, shared table and downstream shared table.](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_terminology.png) Test your understanding: identify the types of tables in the example data source ![a data model with four base tables and multiple shared tables as well as unshared downstream tables](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_complex_model.png) - **Base tables**: Inventory, Marketing, Sales and Support - **Sub-base table:** Parts - **Shared tables:** Products, Dates, Customer and Supplier - **Downstream shared tables:** Subcategory and Category - **Downstream unshared tables:** none ### Identify a relationship tree Hover over a table to highlight the tables it's related to. Tableau emphasises the tree for that table and de-emphasises unrelated tables. ![the complex model, with one base table's tree highlighted and the other tables dimmed](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_highlightedtree.png) The Marketing base table tree consists of two shared tables, Dates and Products, and downstream shared tables Subcategory and Category. ### View relationship details Hover over a relationship or bundle of relationships to see the details in a tooltip. ![A triple noodle bundle, with a tooltip that has a row for each relationship's details](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_noodle_bundle.png) The incoming relationships to the Products table include three individual relationships to the Inventory, Marketing and Sales base tables. ### Select a relationship When a relationship is selected, it’s highlighted in blue in the canvas and its details appear in the Table Details pane. The Table Details pane is where you can [inspect or modify the relationship clause](https://help.tableau.com/current/pro/desktop/en-gb/relate_tables.htm#create-a-relationship). There are multiple ways to select a relationship: - Click a relationship line (noodle) in the canvas. Every relationship has a clickable zone that selects just that noodle. - Right-click or control-click a table in the canvas to open its menu. Select the Select Relationship option and choose which table's relationship you want. - Click a bundle of relationships in the canvas to bring up a persistent tooltip (hovering over a bundle brings up the tooltip; click to make it persist). Then select a row in the tooltip details to highlight that relationship in the model. - Open the menu in the toolbar of the Table Details pane and select the desired relationship. You can also use this menu to select a specific table to see its preview in the pane. ![the menu in the Table Details pane](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_table_details_menu.png) ### Swap with base table Intermediate tables in a relationship between a base table and shared tables give you the option to swap the downstream table with the base table. This is purely a visual change to aid with conceptual understanding and doesn't change the structure of the data model. Right-click or control-click a downstream table and select Swap with base table (table name). The swap option is also only present on the downstream table and not the base table. The swap option isn’t available for tables which would alter the data model if swapped, such as shared tables or downstream shared tables. Only downstream unshared tables or sub-base tables can be swapped with base tables. #### _Example_ In this example, the **Parlour Info** and the **Ice Cream Sales** tables can be swapped without changing the data model's fundamental structure. No other tables can be swapped. - Ice Cream Sales is related to both Parlour Info and the shared Date table. - Parlour Info is related to both Ice Cream Sales and the shared Location table. - Weather is related to both the shared tables of Date and Location. These two models are conceptually equivalent: ![two versions of equivalent data models where a base table and its unshared downstream table are switched](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_swapbase_icecream.png) ### Collapse a base table You can also collapse a relationship path, or tree, to just its base table to simplify the view of the data model temporarily. Click the Collapse ![](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_icon_collapse.png) or Expand ![](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_icon_expand.png) buttons on a base table to collapse or expand its entire tree. Alternatively, right-click or ctrl-click on a downstream table and select Collapse this path or Collapse other paths. This option isn’t available on shared tables or tables downstream of shared tables. Collapsing a tree to its base table is purely visual and won't trigger the Unrelated Tables alert. A collapsed path is indicated by a base table with a stacked table and an Expand button. Collapsing affects all tables and relationships that are relevant only to that tree, so tables that are shared with an uncollapsed path aren’t hidden. Use the Expand ![](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_icon_expand.png) button to re-open the base table and everything in the tree. ![the support base table's tree being collapsed and expanded](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_collapsetree_gif.gif) ## Troubleshooting ### Create a single data source All tables must be related to the entire data source in some way. If there are any tables that aren't related to the overall data model, an alert appears. The alert remains until no tables or trees are fully separate from the rest of the data model. When the alert is active, the data source can't be published and you can't use the data source in an analysis. You can open the alert and set Visually Separate Unrelated Tables to identify which tables triggered the alert. This option is useful when you have a complex model and need to identify which table or tables aren't yet related to the rest of the data model. #### _Example_ In the steps under [Build a model](https://help.tableau.com/current/pro/desktop/en-gb/datasource_mfr_build.htm#Build), an alert appears in Step 4 before a relationship has been added to connect the second base table. ![An unrelated table alert message](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_unrelated_alert.png) Setting Visually Separate Unrelated Tables to On moves the table **Clubs** underneath the Unrelated Tables line. Relating **Clubs** to **Students** resolves the alert. ![A data model with an unrelated table below a dotted red line labelled Unrelated Tables](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_visuallyseparate.png) #### Resolve a cycle Even if some tables aren't directly related to each other, the entire data model must be a cohesive whole. In this example, each base table defines a tree but there’s no shared table connecting them. This isn't a valid model for analysis. ![A data model with two base tables whose distinct trees don’t overlap](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_unrelated1.png) The two groups of related tables need to be combined via a shared table... ![The same data model, now connected with a shared table](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_unrelated2.png) ...or the data model needs to be created as two separate data sources. ![The same data model, broken into two data sources](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_unrelated3.png) ### Data model restrictions Some relationship paths between tables are not supported in a multi-base table model. If you’re unable to drop the meatball when you attempt to create a second incoming relationship on a table, make sure the structure you're trying to create is supported in Tableau. Examples of unsupported models include: #### Cycles Cycles – where there’s more than one relationship path from an upstream table to the same downstream table – are not supported. This unsupported structure is sometimes called a bowtie. To model this kind of relationship between tables in Tableau, use multiple base tables instead of a bowtie by converting the downstream table to another base table. ![a diagram of a bow tie and another diagram with the downstream table changed to an additional base table](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_bowtie_tableauified.png) The data model must be a _directed acyclical graph_. This means every incoming relationship to a table must be traceable upstream to a different base table.
Not supported. Table X has two incoming relationships that are both from tables downstream from Base Table ASupported. Tables S and T both have multiple incoming relationships, but each one is from a different base table.Supported. Although it may visually look like there's a cycle, the incoming relationships for both Table S and Table T can be traced back to different base tables.
unsupported data model due to a cyclesupported data model with a bowtie converted to a second base tablea supported data model with incoming relationships to shared tables traceable to different base tables
#### Nested shared tables Nested shared tables are not supported. Any tables downstream from a shared table (a table with multiple incoming relationships) can only have one incoming relationship. ![unsupported model with a nested shared table](/tableau/current/en-gb/server-linux/en-gb/Img/mfr_build_nestedshared.png) Not supported. Table T is downstream from a shared table and can't receive an additional incoming relationship. [Skip to main content](#main-content) # Cancel TSM Jobs TSM Jobs can be cancelled through TSM web interface or TSM CLI. There are many TSM jobs, but only certain jobs can be cancelled once they are in progress. Any job that hasn’t yet started can be cancelled using TSM CLI. **TSM web interface**: For jobs that can be cancelled while they are running, the Cancel option is available in the Job dialog box as shown below: ![Cancel Running Job confirmation window.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-job--confirm-cancel.png) **TSM CLI:** To cancel jobs using TSM CLI, see [tsm jobs](https://help.tableau.com/current/server-linux/en-gb/cli_jobs_tsm.htm). To see more information about TSM jobs in general, see [Tableau Service Manager Jobs](https://help.tableau.com/current/server-linux/en-gb/tsm-jobs.htm). ## Cancelling Jobs that are in progress Only certain jobs can be cancelled while they are already running: Clean-up, Decommission File Store, Generate Backup, Restart Server, Start Server. The cancel behaviour can be different depending on the job and the state of the job at the time it was cancelled. This is explained in detail below: - **Cleanup:** If you cancel a cleanup job, it will stop any services that were started in order to do the cleanup. Depending on when it was cancelled, some files may be deleted and some may not have been deleted yet resulting in partial cleanup. - **Decommission File Store:** If you cancel this job, it returns the Tableau Server File Store topology to the state that it was prior to starting the decommissioning process. - **Generate Backup:** If you cancel this job, any services used for backup are stopped and Tableau Server will try to delete any files that it created as part of the backup process. - **Restart Server**: - Job is cancelled when Tableau Server processes are stopping: The job is cancelled, but the services will try to get to a stopped state. - Job is cancelled while Tableau Server processes are restarting: The job is cancelled, but the services will try to restart. - **Start Server**: The job will be cancelled, but the processes will still try to start. - **Stop Server**: The job will be cancelled, but the services will try to stop. Here are some of the main reasons why you may want to cancel a job: 1. Since tsm jobs can only be run one at a time, you might need to cancel a current job if you need to run another job instead. 2. If the running job includes changes to the Tableau Server that you did not intend to make. [Skip to main content](#main-content) # Change Logging Levels By default, Tableau Services Manager (TSM) and Tableau Server log events at the **Info** level. You can change this if you need to gather more information (if you are working with Tableau Support, for example). As a best practice you should not increase logging levels except when troubleshooting an issue, as instructed by Support. You should only set a logging level to debug when investigating a specific issue. Changing log levels can have these impacts: - Increasing the log level to `debug` or `trace` increases the amount of information being logged and can have a significant impact to performance. Reproduce the issue and then reset the logging level back to info. - Setting the log level to `warn` or `error` can reduce the amount of information so much that it is not useful for Tableau Support. **Note:** When logging at the `DEBUG` level, full environment information is gathered when Tableau starts. This means that if you have any sensitive information in an environment variable, it may be included in a log. Logging at the default `INFO` level only gathers safe environment information. ## Logging Levels The following logging levels are listed in order of increasing amount of information logged: - off - fatal - error - warn - info (the default) - debug - trace ## Change Logging Levels Set logging levels for TSM and Tableau Server processes using **tsm configuration set** configuration keys. The key you use depends on which component of TSM or Tableau Server you want to change the logging level for. ### Dynamic log level configuration In version 2020.2, we introduced dynamic configuration. The capability has been expanded in subsequent releases. If you are only changing logging levels for one or more of these components, and are running the appropriate version of Tableau, you can change the logging levels without restarting Tableau Server. These logging levels are dynamically configurable, beginning with these versions: - 2020.2 - tsm services (`tsm.log.level`) and control application services (`tsm.controllerapp.log.level`). - 2020.3 - backgrounder (`backgrounder.log.level`), cluster controller (`clustercontroller.log.level`), data server (`dataserver.log.level`), file store (`filestore.log.level`), data source properties (`tdsservice.log.level`), and VizQL server (`vizqlserver.log.level`). - 2020.4 - adds interactive microservice container (`tomcatcontainer.log.level`) and application server (`vizportal.log.level`). ## Configuration Keys for Changing Logging Levels This table includes both dynamically configurable keys and those that are not dynamically configurable.
Configuration keyLocation of affected logs

(path begins with /var/opt/tableau/tableau_server/data/tabsvc/logs/)

tsm.log.level

Changes TSM logging levels for: activationservice, appzookeeper, backuprestore, clientfileservice, databasemaintenance, licenseservice, siteimportexport, tabadminagent, tabadmincontroller, tabsvc

/<service>/<service>_node<n>-<instance>.log

example: /clientfileservice/clientservice_node1-0.log

tsm.controlapp.log.level

Changes TSM logging levels for: control applications

/<service>/control_<service>_node<n>-<instance>.log

examples: /clientfileservice/control_clientservice_node1-0.log

/filestore/control_filestore_node1-0.log

<process>.native_api.log.level

Valid process names are backgrounder, vizportal, vizqlserver, dataserver

Note: These are not dynamically configurable.

/vizqlserver/*.txt

backgrounder.log.level

Changes logging levels for: Backgrounder

/backgrounder/*.log

clustercontroller.log.level

Changes logging levels for: Cluster Controller

/clustercontroller/*.log

dataserver.log.level

Changes logging levels for: Data Server

/dataserver/*.log

filestore.log.level

Changes logging levels for: File Store

/filestore/*.log

gateway.log.level

Changes logging levels for: Gateway control processes

/gateway/*.log

gateway.httpd.loglevel

Note: added in version 2021.3.0

Changes logging levels for: Gateway

/gateway/*.log

hyper.log.level

Changes logging levels for: Hyper

/hyper/*.log

tdsservice.log.level

Changes logging levels for: Data Source Properties service

/tdsservice/*.log

tomcatcontainer.log.level

Changes logging levels for microservices in: Interactive Microservice Container and Non-Interactive Microservice Container

/tomcatcontainer/*.log

vizportal.log.level

Changes logging levels for: Application Server

/vizportal/*.log

vizqlserver.log.level

Changes logging levels for: VizQL Server

/vizqlserver/*.log
For more information, see [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). If you are only changing dynamically configurable logging levels, you do not need to stop or start the server (for more information, see [Dynamic log level configuration](#DynamicLogLevel) above). If you are changing other logging levels, you may need to stop Tableau Server before changing the logging levels and restart it afterwards. If this is the case, you will be prompted. On a multi-node installation of Tableau Server, set logging levels from the initial node. To change the logging level: 1. (Optional for dynamically configurable logging levels in 2020.2.0 and later) Stop Tableau Server by opening a command prompt and typing: `tsm stop` 2. Set the logging level to by typing `tsm configuration set -k -v ` where `` is one of the keys in the above table and `` is a valid logging level. Examples: - tsm configuration set -k backgrounder.native\_api.log.level -v debug - tsm configuration set -k tsm.log.level -v debug - tsm configuration set -k tsm.controlapp.log.level -v debug 3. Apply pending changes by running the `tsm pending-changes apply` command. 4. (Optional, only if server is stopped) Start Tableau Server by running the following command: `tsm start` ## Reset Logging Levels After you reproduce and gather information about the issue, reset the logging levels to avoid lingering performance impact and additional disk space use. In Tableau Server 2026.2 and later, you can view and reset all service logging levels to their default values with `tsm maintenance log-levels` commands. For more information, see [tsm maintenance](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm). - To see all log level configurations before resetting, run: `tsm maintenance log-levels list` - To set all log level configurations to their default values, run: `tsm maintenance log-levels reset` For earlier versions of Tableau Server, or to reset specific keys, run the `tsm configuration set` command with the `-d` option. Examples: - tsm configuration set -k backgrounder.native\_api.log.level -d - tsm configuration set -k tsm.log.level -d You must apply pending changes after resetting log levels. If you’re resetting log levels for Tableau Server processes, check the pending changes list. If the update requires a restart, stop the server, apply the changes and then start it again. [Skip to main content](#main-content) # Change Salesforce.com OAuth to Saved Credentials By default, the Salesforce.com connector uses a managed keychain for OAuth tokens that are generated for Tableau Server by the data provider and shared by all users in the same site. You can configure Tableau Server with saved client ID and client secret. There are three scenarios where you might want to do this: - Salesforce connector – If you're using the Salesforce connector, you can configure Tableau Server with an OAuth client ID and secret, so the connector can use saved credentials. - **Write to CRM Analytics** – If you're writing Tableau Prep flow data to Salesforce CRM Analytics (version 2022.3 and later), configure Tableau Server with an OAuth client ID and secret, so the flow can run in Tableau Server using saved credentials. - Einstein Discovery – If you are integrating Einstein Discovery extensions with Tableau Server, you need to do this OAuth client ID and secret configuration. The ability to integrate Einstein Discovery and Tableau Server was added in version 2021.1.0. For more information, see [Configure Einstein Discovery Integration](https://help.tableau.com/current/server-linux/en-gb/config_einstein_extensions.htm). This topic describes how to set up your Salesforce.com data sources and Einstein Discovery extensions for OAuth saved credentials. Complete these steps for each Tableau Server instance. For more information about managed keychain and saved credentials, see [OAuth Connections](https://help.tableau.com/current/server-linux/en-gb/protected_auth.htm) **Notes:**  - The Salesforce connector requires managed keychain (default), server-wide OAuth or site-specific OAuth. - To use saved credentials for a site, server-wide OAuth must be configured first. - Server-wide OAuth can be used whether site-wide OAuth is configured. - If using site-specific OAuth, each site must be configured individually. - To support live connection prompts, editing connections and web authoring, convert managed keychain to saved credentials to avoid errors. ### Summary of steps Set up OAuth by following these general steps: 1. Configure application integration by creating an external client app (recommended) or connected app (deprecated) in Salesforce. 2. Use the information you obtained in step 1 to configure Tableau Server. 3. (Optional) Configure site-specific OAuth. ## Step 1: Configure app integration in Salesforce To enable Tableau integration with Salesforce, you must first configure application integration in Salesforce. We strongly recommend using external client apps. If available, you can use Salesforce-connected apps. ### Salesforce external client app (recommended) Starting in Spring ’26, Salesforce external client apps are the next generation of connected apps and are recommended for enabling Tableau integration with Salesforce. 1. Sign in to your Salesforce.com developer account, click your username in the upper-right of the page and then select Setup. 2. In the left navigation pane, under Apps, select App Manager. 3. In the Lightning Experience App Manager, click New External Client App. 4. In the External Client App Manager, configure required Customer Key, Customer Secret and the Callback URL needed in Step 2. 5. Click Create. 6. After you have created the app, select the Settings tab. 7. Check the Consumer Key and Secret in the OAuth Settings. When finished, go to **Step 2: Configure Tableau Server for Salesforce.com OAuth**. For more information about creating an external client app, see [Create an External Client App](https://help.salesforce.com/s/articleView?id=xcloud.create_a_local_external_client_app.htm&type=5) in the Salesforce Help. ### Salesforce connected app (deprecated) > [!WARNING] > > **Important:** Starting in the Spring ’26 release of Salesforce, connected app creation is restricted. You can continue to use existing connected apps during and after Spring ’26 but using external client apps are strongly recommended. For more information, see the following in the Salesforce Help: [New connected apps can no longer be created in Spring ’26](https://help.salesforce.com/s/articleView?id=005228017), [Create an External Client App](https://help.salesforce.com/s/articleView?id=xcloud.create_a_local_external_client_app.htm&type=5) and [Connected App to External Client App Migration.](https://help.salesforce.com/s/articleView?id=xcloud.connected_app_to_external_client_app_migration.htm&type=5) **Note:** This procedure documents the process in Salesforce Lightning. If you are using the traditional interface, the navigation may be different but the configuration is the same. 1. Sign in to your Salesforce.com developer account, click your username in the upper-right, and then select Setup. 2. In the left navigation pane, underApps, search for “External Client Apps” and then select External Client App Settings. 3. Click New Connected App. 4. In Basic Information, give the app a name, tab through the API field so it will self-populate in the correct format and enter a contact email for the app. 5. In the API \[Enable OAuth Settings\] section, select Enable OAuth Settings. 6. In the new OAuth settings that appear, for Callback URL, type the fully qualified domain name of your server, using the `https` protocol and append the following text to the URL: `auth/add_oauth_token`. For example: `https://www.your_tableau_server.com/auth/add_oauth_token` 7. Move the following items from Available OAuth Scopes to Selected OAuth Scopes: - Access the identity URL service (ID, profile, email, address, phone) - Manage user data via APIs (api) - Perform requests any time (refresh\_token, offline access) 8. Click Save. After you save the app, Salesforce populates the API section with the following IDs that you will use to configure Tableau Server: - Consumer Key - Consumer Secret - Callback URL ## Step 2: Configure Tableau Server for Salesforce.com OAuth Once you’ve enabled Tableau integration with Salesforce and you have the Customer Key, Customer Secret and Callback URL, you can configure Tableau Server for Salesforce data connections and outputs, as well as Einstein Discovery. 1. On the Tableau Server computer, at a command prompt, run the following commands: `tsm configuration set -k oauth.salesforce.client_id -v ` `tsm configuration set -k oauth.salesforce.client_secret -v ` `tsm configuration set -k oauth.salesforce.redirect_uri -v ` 2. (Optional) To change the default login server, type the following command: `tsm configuration set -k oauth.salesforce.server_base_url -v ` 3. Enter the following command to apply changes: `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ## Configure custom OAuth for a site You can configure a custom Salesforce OAuth client for a site. Consider configuring a custom OAuth client to 1) override an OAuth client if configured for the server or 2) enable support for securely connecting to data that requires unique OAuth clients. When a custom OAuth client is configured, the site-level configuration takes precedence over any server-side configuration and all new OAuth credentials created use the site-level OAuth client by default. No Tableau Server restart is required for the configurations to take effect. **Important:** Existing OAuth credentials established before the custom OAuth client is configured are temporarily usable but both server administrators and users must update their saved credentials to help ensure uninterrupted data access. ### 1: Prepare the OAuth client ID, client secret value and redirect URL Before you can configure the custom OAuth client, you need the information listed below. After you have this information prepared, you can register the custom OAuth client for the site. - **OAuth client ID and client secret value:** First register the OAuth client with the data provider (connector) to retrieve the client ID and secret value generated for Tableau Server. - **Redirect URL:** Note the correct redirect URL. You will need this during the registration process in **Step 2** below. https://.com/auth/add\_oauth\_token For example, https://example.com/auth/add\_oauth\_token ### 2: Register the OAuth client ID and client secret Follow the procedure described below to register the custom OAuth client to the site. 1. Sign in to your Tableau Server site using your admin credentials and navigate to the Settings page. 2. Under OAuth Clients Registry, click the Add OAuth Client button. 3. Enter the required information, including the information from **Step 1** above: 1. For Connection Type, select the connector whose custom OAuth client you want to configure. 2. OAuth Instance URL is required if multiple OAuth clients are being registered. Otherwise, it is optional. 3. For Client ID, Client Secret and Redirect URL, enter the information you prepared in **Step 1** above. 4. Click the Add OAuth Client button to complete the registration process. ![A form for the creation of an OAuth client, including fields for connection type, OAuth instance URL, client ID, client secret and redirect URL.](/tableau/current/en-gb/server-linux/en-gb/Img/oauth_custom.png) 4. (Optional) Repeat step 3 for all supported connectors. 5. Click the Save button at the bottom or top of the Settings page to save changes. ### 3: Validate and update saved credentials To help ensure uninterrupted data access, you (and your site users) must delete the previously saved credentials and add it again to use the custom OAuth client for the site. 1. Navigate to your My Account Settings page. 2. Under Saved Credentials for Data Sources, do the following: 1. Click Delete next to the existing saved credentials for the connector whose custom OAuth client you configured in **Step 2** above. 2. Next to connector name, click Add and follow the prompts to 1) connect to the custom OAuth client configured in **Step 2** above and 2) save the latest credentials. ### 4: Notify users to update their saved credentials Make sure you notify your site users to update their saved credentials for the connector whose custom OAuth client you configured in **Step 2** above. Site users can use the procedure described in [Update saved credentials](https://help.tableau.com/current/server-linux/en-gb/manage_stored_credentials.htm#oauth_update_credentials) to update their saved credentials. ## Manage access tokens After you configure the server for OAuth, you can allow users to manage their own access tokens in their profile settings, or you can manage the tokens centrally. For more information, see [Allow Saved Access Tokens](https://help.tableau.com/current/server-linux/en-gb/allow_saved_tokens.htm). [Skip to main content](#main-content) # Changing IdPs in Tableau Server for OpenID Connect This topic provides information about changing an identity provider (IdP) if you have configured Tableau Server to use OpenID Connect. ## Change providers You might decide to change the IdP that Tableau Server is configured to use. To do so, you follow the procedure that you used to configure the first IdP: establish an account, get a customer ID and secret, configure Tableau Server with that information and provide the IdP with the redirect URL for Tableau Server. For more information, see [Configure Tableau Server for OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth_server_config.htm). ### Reset user identifiers However, you also need to perform an additional step: you must clear any user identifiers (`sub` values or claims) that have already been associated with Tableau Server users. The new IdP will have different `sub` values for each user, and you must clear the existing ones so that Tableau Server can store a new `sub` value when the user signs in using the new IdP. To clear sub values for users, use the `tabcmd reset_openid_sub` command. You can reset (that is, clear) `sub` values for an individual user, as in the following example: `tabcmd reset_openid_sub --target-username jsmith` You can also clear the sub value for all users using this command: `tabcmd reset_openid_sub --all` **Note:** Clearing user identifiers for members of an [identity pool](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm) is not supported. [Skip to main content](#main-content) # Changing the Identity Store Infrastructure or business changes may require you to change the identity store on Tableau Server. There are two kinds of identity stores: local and external. When you installed Tableau Server you configured either a local identity store or an external identity store. When you configure Tableau Server with a local identity store, all user and group information is stored and managed in the Tableau Server repository. In the local identity store scenario, there is no external source for users and groups. When you configure Tableau Server with an external store, all user and group information is stored and managed by an external directory service. Tableau Server must synchronise with the external identity store so that local copies of the users and groups exist in the Tableau Server repository, but the external identity store is the authoritative source for all user and group data. Examples of external identity stores are OpenLDAP and Active Directory. For more information about the Tableau identity store, see [Identity Store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm). You can change from local store to an external store, or you can change from an external store to a local store. In either case, to change the identity store type, you complete these steps: 1. Uninstall and then reinstall Tableau Server. The procedures for full uninstall and clean install are at the end of this topic. 2. Restore content and permissions. In these steps, the term "restore" does not refer to using the `TSM maintenance restore` command to restore the backup you are making. You cannot restore a backup (`.tsbak`) created on a Tableau Server instance that uses a different identity store than the target Tableau Server. The backup is a best practice safeguard, in case you need to go back to your original Tableau Server configuration. ![](/tableau/current/en-gb/server-linux/en-gb/Img/Road-sign-alert.png) ## Warning Changing the installation type on Tableau Server can be a complicated and time-consuming process. To avoid data loss or orphaning of content or users, you'll need to plan this process carefully. In all cases, user filters applied to workbooks and data sources will need to be updated manually after the change. Most importantly, determine how you will transition content and permissions to the new identity store after you reinstall Tableau Server. ## Methods for restoring content and permissions The following list describes two methods for restoring content and permissions after you reinstall Tableau Server. Select the method that best fits with your environmental requirements. - **Method 1: Use site export and import** – In this method, you start by exporting each site in your existing deployment. Then, you install the new server and configure it for the new identity store type. Next, you create new users in the default site on the new server. Finally, you import all the original sites. During the import stage, you can map the original identities to the new users that you created in the default site. **Note:** When migrating sites between instances of Tableau Server, the target site must be on a version of Tableau Server that is the equal to or later than the version of Tableau Server for the source site. Both the source and target sites must be from supported versions of Tableau Server. Because this method exports all content and permissions at each site, it is the best method for organisations that require a high fidelity replica of the content and permissions after the identity store change is complete. Some organisations require an identity store change as the result of an authentication change. In these cases, a different user name syntax is a often a requirement in the new model. This method, which includes a process of mapping original user names to new names, provides flexibility for such scenarios. - **Method 2: Fresh installation; users republish content** – In this method, you install a new version of Tableau Server and select the new identity store type during setup. You also create new sites. You then create users and give them access, and they republish their workbooks and data sources. Unlike the other method, in this one, you do not reuse any of your existing Tableau Server infrastructure. This method is most appropriate for smaller deployments with fairly autonomous and data savvy users. From an administrative perspective, this method is the simplest, since you're not actively porting over content. However, because you rely entirely on users to republish content, this method may not be successful for large organisations or for those where centralised oversight of content is required. ## User filters User filters are domain-specific. Therefore, when the domain of Tableau Server changes or authentication type changes, filters no longer function as expected. Although the user filters are generated by Tableau Server, after they are set by the user, the filters are stored in the workbooks and data sources. Neither of these methods for changing the identity store modifies the contents of the workbooks or data sources. As you plan the identity store change, you must also include a final task to correct user filtering in all workbooks and data sources with Tableau Desktop. ## User names and the Tableau Identity store If you are using Method 1, it's helpful to understand how Tableau Server stores user names in the Tableau identity store. Tableau stores all user identities in the repository, which coordinates content permissions and site membership with various services in Tableau Server. Generally, an identity store configured for Active Directory store user names in the format, `domain\username`. Some organisations use a UPN (`jsmith@domain.lan`). On the other hand, organisations that configure Tableau Server with local identity store usually create standard, truncated user names, such as `jsmith`. In all cases, these user names are literal strings that must be unique in the Tableau identity store. If you are changing from one identity store type to another, then your target authentication, SSO, or user provisioning solution may require a specific user name format. Therefore, to maintain all permissions, content, and user viability, one of the following must be true after you change the identity store type: - The new user names must match the original user names, or - The original user names must be updated to match a new format. If an authentication change is driving the identity store change, then the target authentication scheme will likely impose a user name syntax that is different than your original user names. Method 1 includes a process where you can map original user names to new user names. It's possible that the original user name format will work with the new authentication type. For example, if you used UPN names in a local identity store deployment, you might be able to use the same user names in an Active Directory deployment. You could also use the `domain\username` format for local identity store, as long as users continue to use that format to sign in to Tableau Server. If you are changing from local identity store to an external Active Directory store, review the topic, [User Management in Deployments with External Identity Stores](https://help.tableau.com/current/server-linux/en-gb/users_manage_ad.htm), as part of your planning process. ## Method 1: Use site export and import You must use the same version of Tableau Server for the export and import operations. 1. Export all sites on your server. See [Export or Import a Site](https://help.tableau.com/current/server-linux/en-gb/sites_exportimport.htm). 2. [Back up, remove, and then reinstall](#Back). 3. Create new users on Tableau Server. You should have a new user that corresponds to each user on the original server. 4. Import the sites that you exported in Step 1. See [Export or Import a Site](https://help.tableau.com/current/server-linux/en-gb/sites_exportimport.htm). During import, you will be prompted to map the new users to the original users. ## Method 2: Fresh installation—users republish content Even if you do not plan to port content as part of your identity store change, we recommend that you back up the server. 1. [Back up, remove, and then reinstall](#Back). 2. Create users, sites, and groups. 3. Inform your users of the new Tableau Server, provide them with credentials, and allow them to republish their content. ## Back up, remove, and then reinstall Both methods include the following steps:  1. Back up Tableau Server 2. Remove Tableau Server. 3. Reinstall Tableau Server with the new identity store type. ### Step 1: Back up Tableau Server As a best practice, you should back up the server before proceeding. Follow the procedure, [Create a backup using the TSM command line interface (CLI)](https://help.tableau.com/current/server-linux/en-gb/db_backup.htm#tsm-cli-steps). Run the `backup` command with the `–d` option. The `–d` option adds the datestamp. When you are finished, copy the backup file (`.tsbak`) to a safe location that is not a part of your Tableau Server installation. ### Step 2: Remove Tableau Server You must completely remove Tableau Server from the computer. See [Remove Tableau Server from Your Computer](https://help.tableau.com/current/server-linux/en-gb/remove_tableau.htm). ### Step 3: Reinstall Tableau Server with new authentication type 1. Go to the Tableau Customer Portal, sign in with your Tableau user name and password, and then download Tableau Server. 2. Install Tableau Server. See [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm) more information. During installation, you will select the new identity store type. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). [Skip to main content](#main-content) # Chargeback Reports Chargeback reports show usage on a per-project or per-site basis and are available for allowed users through the _Admin_ menu. The report is generated as a Tableau workbook using a generated extract, allowing you to modify the report or reuse the extract as needed. The _Chargeback Overview_ worksheet shows a breakdown of various metrics based on site and/or project: ![Overview](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-rpts-chgback_overview.png) Overview Dollar amounts can be customised using the total cost field, and by adjusting the cost weights for each metric. Clicking on a project or site navigates to a customised invoice-style detail report for that project/site: ![Detail](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-rpts-chgback_detail.png) Detail ## Security User access is controlled through the _Generate Chargeback Reports_ server role. ## Data Generation Data for the chargeback report is aggregated at the daily level, with the following metrics included in the data set: | Metric | Description | | --- | --- | | Extract File Usage | The size, in Kilobytes, of extract files is collected once per day. For the default report this is simply totalled across the time period for ratio/comparison purposes between projects/sites. | | Extract Query Duration | The length of time, in milliseconds, that queries running against extract files ran, totalled per day. | | Extract Refresh Task Duration | The length of time, in milliseconds, that extract refresh background tasks ran, totalled per day. | | Query Duration | The length of time, in milliseconds, that queries ran, totalled per day. This includes both extract and non-extract queries. | | View Request Duration | The length of time, in milliseconds, that requests to render views ran, totalled per day. This includes the duration of any data queries that blocked view rendering. | ### Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Server/Environment Management** role. [Skip to main content](#main-content) # Choose the Right Story Type for Your Tableau Desktop Data Story **Important changes for Tableau Data Stories** Tableau Data Stories were retired in Tableau Desktop, Tableau Cloud and Tableau Server in January of 2025 (2025.1). With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau Pulse powered by Tableau AI is Reimagining the Data Experience](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-ai). When you [Add a Tableau Data Story to a Dashboard](https://help.tableau.com/current/server-linux/en-gb/data_stories_create.htm), it’s important to choose the right type of story for your data. Do you want your story about trends over time? Or do you want your story about two values that you’re comparing? To help you tell the right story, this topic describes the different types of stories, including an example of each story type. ## Continuous Continuous stories are best for analysing trends or progress over time. When you create a continuous story, it includes content for performance, segments, volatility and trend lines. The story also includes contribution analysis and correlation for stories that use more than one dimension. To use a continuous story, your worksheet must have: - 1 dimension that has between 1–10 measures - 2 dimensions and up to 3 measures The following example is a continuous story for a line chart that has a single dimension and multiple measures: ![Three line charts with a continuous story example](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_continuous.png) ## Discrete Discrete stories are best for comparing values and understanding the distribution of data in each value. When you create a discrete story, the story includes content about the distribution and groupings or clusters across the data. And the story includes contribution analysis for worksheets that use multiple dimensions. Consider using a discrete story when you want to: - Understand drivers of your key performance indicators (KPIs) in sales reports. - Identify and understand outliers quickly during data discovery. - Identify trends that aren’t easily observable in the visual when performing an audit. - Uncover complex utilisation insights instantly for geographic analysis. - Identify and call out key relationships, for example, between sales and profit. To use a discrete story, your worksheet must have: - 1 dimension that has between 1–10 measures - 2 dimensions and up to 3 measures The following example is a discrete story for a bar chart that has a single dimension and two measures: ![A bar chart with a discerete story example](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_discrete.png) ## Percentage of whole Percent-of-whole stories are best for pie charts. To use a percent-of-whole story, your worksheet must have: - 1 dimension - 1 measure The following example is a percent-of-whole story that uses a pie chart with a single dimension and a single measure: ![A pie chart with a percent-of-whole story example](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_percent.png) ## Scatter plot Scatter plot stories are best for understanding the relationship between two measures. When you create a scatter plot story, the story includes content about the relationship (regression) between two measures. And the story includes content about groups (clusters) within the data, when they exist. Consider using a scatter plot story when you want to: - Call out relationships between two measures to identify impact (regression analysis). - Identify and understand outliers that are above or below defined thresholds. - Analyse how your data is distributed. To use a scatter plot story, your worksheet must have: - 1 dimension - 2 or 3 measures **Note:** When you create your scatter plot story, the first measure you select is treated as the independent variable and the second measure is the dependent variable. The following example is a scatter plot story that uses a scatter plot that has a single dimension and two measures: ![A scatter plot chart with a scatter plot story example](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_scatter.png) [Skip to main content](#main-content) # Clear Saved Data Connection Passwords As the server administrator, if you enable users to save data source passwords, server users can save data source passwords across multiple visits and browsers so they are no prompted for their credentials each time they connect to a data source. You can reset the data source passwords for all Tableau Server users. Doing this forces them to sign in to the data sources the next time they visit a view that requires database authentication. Server users can also clear their saved data connection passwords on an individual basis using their [User Preferences](https://help.tableau.com/current/pro/desktop/en-gb/useracct.htm) page. ### To clear saved data connection passwords for all server users: 1. In a single-site server, click Settings \> General. On a multi-site server, select Manage all sites, then click Settings > General. ![General tab of the Tableau site settings page.](/tableau/current/en-gb/server-linux/en-gb/Img/maintenance1a.png) 2. Under Saved Credentials, click Clear All Saved Credentials. ![Saved Credentials settings with the button to clear all saved credentials highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/maintenance5.png) [Skip to main content](#main-content) # Clickjack Protection Tableau Server includes protection against clickjack attacks. _Clickjacking_ is a type of attack against web pages in which the attacker tries to lure users into clicking or entering content by displaying the page to attack in a transparent layer over an unrelated page. In the context of Tableau Server, an attacker might try to use a clickjack attack to capture user credentials or to get an authenticated user to change settings on your server. For more information about clickjack attacks, see [Clickjacking](https://owasp.org/www-community/attacks/Clickjacking) on the Open Web Application Security Project website. **Note**: Clickjack protection was available in previous versions of Tableau Server, but was disabled by default. New installations of Tableau Server 9.1 and later will always have clickjack protection on unless you explicitly disable it. ## Effects of clickjack protection When clickjack protection is enabled on Tableau Server, the behaviour of pages loaded from Tableau Server changes in the following ways: - Tableau Server adds the `X-Frame-Options: SAMEORIGIN` header to certain responses from the server. In the current versions of most browsers, this header prevents the content from being loaded into an ** [Skip to main content](#main-content) # Distributed and High Availability Tableau Server Installations This topic describes different installation deployment types for Tableau Server. ## Validating your server deployment plan Before you commit to installing a new Tableau Server deployment in your organisation, be sure to carefully evaluate your options. For most organisations, Tableau Cloud will provide a more reliable, performant and cost-effective analytics solution when compared to self-hosting Tableau Server. For information about the viability of Tableau Cloud for your organisation, review this blog post, [Should I move my analytics to the cloud?](https://www.tableau.com/en-gb/blog/should-i-move-my-analytics-cloud) Already running Tableau Server and want to migrate to Tableau Cloud? See [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). ## Installation types The most basic way to run Tableau Server is to install a single node. With this type of installation you have a fully functional Tableau Server, with all Tableau Services Manager (TSM) and Tableau Server processes running on that single node, but this may not be the optimal way to use Tableau Server. You can decide how to install Tableau based on your organisation's needs, and your resources, adding additional nodes and configuring Tableau for high availability. Your installation options include: - **Single-node installation** – This type of installation is reasonable for testing, running trials, and for environments that can handle occasional downtime and system availability due to lack of redundancy. All server processes are running on a single machine. There is less redundancy and fewer safeguards in the event of a problem with one of the server processes. You also need to make sure the computer you install Tableau Server on has adequate resources to handle the processes and the demands of users and data. - **Distributed installation** – This type of installation is also called a multi-node installation and requires multiple computers so you can install and run server processes on those distributed nodes. Spreading the server processes out over multiple nodes can extend the reliability and efficiency of Tableau Server by providing redundancy and additional computing power. With the right configuration, a distributed installation can also provide you with automatic repository failover. For more information on failover, see [Repository Failover](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_failover.htm). - **Highly available (HA) installation** – An HA installation of Tableau Server is a special type of multi-node installation with a minimum of three nodes and multiple instances of key processes (the Repository, File Store/Data Engine (Hyper), Coordination Service and Client File Service) on different computers. With an HA installation, there is built-in redundancy of those key processes, including multiple File Stores, and automatic Repository failover. The goal is to minimise system downtime by eliminating single points of failure, and enabling detection of failures with failover where possible. Downtime is still possible in the event of an initial node failure, or when a node running Application Server (VizPortal) is recovering from a failure. Dashboards and views may load more slowly than expected, and timeouts are possible, depending on how your system is configured and being used. For more information about initial node failure, see [If an initial node fails](#IfInitialNodeFails) below. The first computer you install Tableau on, the "initial node", has some unique characteristics. Three processes run only on the initial node and cannot be moved to any other node except in a failure situation, the Licence Service (Licence Manager), Activation Service and TSM Controller (Administration Controller). Tableau Server includes a script that automates moving these processes to one of your other existing nodes so you can get complete access back to TSM and keep Tableau Server running. Two other processes are initially included on the initial node but can be added or moved to additional nodes, the CFS (Client File Service) and the Coordination Service. Depending on how your installation was configured with CFS and Coordination Service, you may also need to take steps to redeploy these. For information about moving the Licence service and TSM Controller from the initial node to another node, see [Recover from an initial node failure](#Recover) below. ### External repository For optimal performance for Tableau Server we recommend isolating the repository on a dedicated node in your deployment. If you have an Advanced Management licence, consider running the repository as an external database. If your organisation has a peak load of more than 1000 VizQL sessions per hour, we also recommend running Tableau Server on Linux. In this scenario, VizQL sessions refer to any user actions that display or generate visualisations from Tableau Server. For more information, see [Tableau Server External Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo.htm). ## Prerequisite These instructions assume that your cluster meets the [Distributed Requirements](https://help.tableau.com/current/server-linux/en-gb/distrib_requ.htm). All nodes in a multi-node cluster must have the same type of operating system and the same major version of that operating system. For example, all RHEL 9 nodes. You cannot install a multi-node instance of Tableau Server on a combination of Linux and Windows nodes. ### Licensing You must have a valid Tableau Server product key. The type of licence you have may determine how many nodes you can install Tableau on. For more information on licensing, see [Licensing Overview](https://help.tableau.com/current/server-linux/en-gb/license_server_overview.htm). ## Creating a distributed Tableau Server installation These are the general steps you follow to create a distributed installation of Tableau Server: 1. Begin by installing Tableau Server on your initial node. For details, see [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm). 2. Generate a node configuration (bootstrap) file on the initial node. For details, see [Generate the node bootstrap file](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm#Generate_bootstrapCLI). 3. Install Tableau Server on an additional node using the node bootstrap file. For more information, see [Install and initialise an additional node](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm#Install_additional_nodeCLI). 4. Configure your additional node with the processes you want to run on it. For more information, see [Configure the additional node](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm#Config_additnl_nodeCLI). 5. Repeat Steps 3 and 4 for any additional nodes you want to install. 6. Deploy a new Coordination Service ensemble. For more information, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). 7. Add Client File Service to every node that is running the Coordination Service. For more information, see [Configure Client File Service](https://help.tableau.com/current/server-linux/en-gb/distrib_cfs.htm). ## Creating a highly available (HA) Tableau Server installation A high availability Tableau Server installation is a special type of distributed installation, designed to accommodate failure in key server components without loss of complete server functionality. To create an HA installation, follow the same steps you take to create a distributed deployment but include additional steps to make the deployment highly available. These additional steps include adding at least two additional nodes (for a minimum of three nodes in the cluster), adding a second instance of the repository, and second instances of the data engine/file store, adding additional gateway processes, and deploying a Coordination Service ensemble. You can also add a load balancer to distribute requests among the gateways. At a high level, these are the steps you follow to create a highly available installation of Tableau Server: 1. Begin by installing Tableau Server on your initial node. For details, see [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm). 2. Generate a node configuration (bootstrap) file on the initial node. For details, see [Generate the node bootstrap file](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm#Generate_bootstrapCLI). 3. Install Tableau Server on at least two additional nodes using the node bootstrap file. For more information, see [Install and initialise an additional node](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm#Install_additional_nodeCLI). 4. Configure each additional node with the processes you want to run on it. These must include a second copy of the Tableau Server repository, and a second copy of the data engine and file store, as well as additional instances of the gateway. For more information, see [Configure the additional node](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm#Config_additnl_nodeCLI). 5. Deploy a Coordination Service ensemble. For more information, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). 6. Add Client File Service to every node that is running the Coordination Service. For more information, see [Configure Client File Service](https://help.tableau.com/current/server-linux/en-gb/distrib_cfs.htm). 7. (Optional) Configure a load balancer. For more information, see [Add a Load Balancer](https://help.tableau.com/current/server-linux/en-gb/distrib_lb.htm). For details on how to create a three-node HA installation, see [Example: Install and Configure a Three-Node HA Cluster](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_install_3node.htm). ## If an initial node fails If there is a problem with the initial node and you have redundant processes on your other nodes, there is no guarantee that Tableau Server will continue to run. - Tableau Server can continue to run for up to 72 hours after an initial node failure, before the lack of the licensing service impacts other processes. If so, your users may be able to continue to sign in and see and use their content after the initial node fails, but you will not be able to reconfigure Tableau Server because you won't have access to the Administration Controller. - If you are running a version of Tableau Server 2021.4.2 (or older) that is configured for ATR, then problems with the initial node will render all server functionality unavailable. This is true whether the node has a problem or if you intentionally stop it (for instance, to do a system-level patch). Even when configured with redundant processes, _it is possible that Tableau Server may not continue to function after the initial node fails_. This is true even when an installation is configured for high availability. This means you should make a point of moving the two unique processes to another of your running nodes as soon as possible. If your initial node fails for reasons that are recoverable in a relatively short amount of time (for example, a hardware failure you can correct), you should first attempt to bring the node back up without using the procedure below. ## Recover from an initial node failure With a Tableau Server installation, the initial node includes two services that are only installed on that node, the Licence service and the TSM Controller. If there is a problem with the initial node, Tableau Server may not continue to function, even when configured for high availability. To recover from a situation where the initial node fails, you can move the TSM Controller and the Licence service to one of your already configured nodes. This allows you to recover from the failure while using resources you already have in the cluster. You do not have to configure a standby initial node in case the initial node fails. For details on how to recover from a failure on the initial node, see [Recover from an Initial Node Failure](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_init_node_fail.htm). ## Configure Coordination Service ensemble on additional nodes Configuring a Coordination Service on multiple nodes provides additional duplication of processes and so reduces the possibility of server downtime due to an issue with one of the Coordination Service nodes. For details on how to deploy a Coordination Service ensemble on your cluster, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). ## Add Client File Service (CFS) to additional nodes Tableau Server requires at least one instance of Client File Service (CFS). Adding additional instances of CFS to other nodes provides additional duplication of processes and so reduces the possibility of server downtime due to an issue with one of the CFS nodes. We recommend that you configure an instance of CFS on each of the nodes where you deploy the Coordination Service. For details on how to configure CFS on other nodes, see [Configure Client File Service](https://help.tableau.com/current/server-linux/en-gb/distrib_cfs.htm). ## Tableau Server service licence check A number of processes are installed when you install Tableau Server. Some of these processes are dependent on the existence of a valid Tableau Server licence while other installed processes are not. The subset of Tableau Server that require a valid Tableau Server licence are considered "licensed processes." When a licensed process starts or restarts, the process checks with the Tableau Server Licence Manager service on the initial node to verify there is a valid licence. When the Licence Manager validates the licence, the process is fully functional and able to respond to requests from other Tableau Server processes. Once a licensed process has received confirmation from the Licence Manager, the process does not need to reconfirm the licence for 72 hours, or until the process restarts. If the process is not able to verify that it is licensed (if the primary node is unavailable, for example) it cannot run, but it continues to check for a valid licence until it confirms the licence. To see when the last licensing check occurred, look at the log files in the `/var/opt/tableau/tableau_server/data/tabsvc/logs/licenseservice` directory. For more information about licensed processes, see [Licensed processes](https://help.tableau.com/current/server-linux/en-gb/processes.htm#LicensedProcess). ## Other articles in this section [Skip to main content](#main-content) # Distributed Installation Recommendations When you add nodes to a Tableau Server installation, you must decide how many processes to run on each computer. This page provides some general recommendations that are intended only as a starting point. In addition to these general recommendations, you should also: - Understand how your organisation uses Tableau Server and tune your configuration for your use case – for example, whether you want to optimise for user response or for extract refreshes. - Perform thorough performance testing to identify the best places to adjust process configuration. For more information on tailoring a Tableau Server installation to your organisation's needs, see [Performance Tuning](https://help.tableau.com/current/server-linux/en-gb/perf_tuning.htm). For more information on the requirements for a distributed installation and for information on configuring additional nodes, see [Distributed and High Availability Tableau Server Installations](https://help.tableau.com/current/server-linux/en-gb/distrib_ha.htm). ## Recommendations for all installations Although the computers that make up a Tableau Server cluster do not need to have identical hardware, they must all meet the same minimum system requirements. The recommendations on this page assume that the computers where you install Tableau Server have eight cores or more. The following recommendations apply to all server configurations: - Run Backgrounder processes on a dedicated computer if you plan on refreshing extracts frequently. Backgrounder processes are generally the most CPU intensive and can slow down other processes on the same computer. - If you plan to refresh extracts frequently or if you plan to refresh large extracts, increase the number of processes for Backgrounder processes. - Run VizQL processes on a different computer than Backgrounder processes. Having them on the same machine means that extract refreshes can affect user views. - The instance of Data Engine installed on the node where File Store is installed is used for querying data for view requests. Consider separating the File Store process from the backgrounder processes to help minimise the backgrounder tasks from affecting user views. - **Optimising with topology configurations:** - Co-locating File Store on the same node as the Administration Controller can reduce the length of time it takes to back up Tableau Server by reducing or eliminating the need to transfer data between nodes during the backup process. This is especially true if your organisation uses many extracts. - Co-locating the repository (pgsql) with the Administration Controller node can also help to reduce back up time, but the time savings is less significant than that of the File Store. The Administration Controller is usually on the initial node, unless you have had an initial node failure and moved the controller to another node. **Note:** In a distributed installation with three or more nodes, you can have a maximum of two repository instances (active and passive). You can also run Tableau Server with one repository, but doing this means there is no failover available for the repository. For more information, see [Tableau Server Repository](https://help.tableau.com/current/server-linux/en-gb/server_process_repository.htm). [Skip to main content](#main-content) # Distributed Requirements Before you start to configure a Tableau Server cluster, make sure you meet the following requirements. ## Hardware While the computers you use in your cluster must meet the requirements described in [Before you install...](https://help.tableau.com/current/server-linux/en-gb/requ.htm), they do not need to be identical. ## Hardware Guidelines for High Availability Here are some guidelines for the systems you use for [failover and high availability](https://help.tableau.com/current/server-linux/en-gb/distrib_ha.htm): - **Failover – three computers**: To configure a cluster that provides failover support for the file store and repository processes, you need at least three computers or VMs: one for the initial Tableau Server node and two for additional nodes. - **Multiple gateways – three computers and a load balancer**: Adding multiple Gateway processes to your Tableau Server installation and using a load balancer to automatically distribute requests to those gateways enhances the reliability of Tableau further. To configure a cluster that provides failover support and multiple gateways, you need to add a load balancer to front your three-node cluster. - **Failover & multiple gateway support – three computers and a load balancer**: To configure a cluster that provides the above plus support for multiple gateways, you need at least three computers or VMs, and a load balancer to front the cluster. - **High availability – three computers and a load balancer**: To configure for high availability, you need the resources described above. - **Initial computers**: If you configure for high availability, the initial Tableau Server node may be running few or no Tableau Server processes. Therefore, the computer that serves as the initial node does not need as many cores as the ones running your additional nodes. You will, however, need adequate disk space for backups because the initial computer is used during the backup and restore processes. In addition to the amount of space needed for the backup file, you need temporary disk space. For details on disk space requirements, see [Disk Space Usage for Backup and Restore](https://help.tableau.com/current/server-linux/en-gb/db.htm#backupDiskSpace). ## Software Requirements for Multi-node Server - All nodes in a multi-node installation must be running the same version of Tableau Server. - All nodes in a multi-node cluster must have the same type of operating system and the same major version of that operating system. For example, all RHEL 9 nodes. You cannot install a multi-node instance of Tableau Server on a combination of Linux and Windows nodes. ## Installation location Keep in mind the following requirements and limitations: - The installation and data directory locations for Tableau Server must be the same on all nodes in a cluster. - You can specify a non-default install location on RHEL-like distributions but cannot change the location on Ubuntu. For more information, see [Installation directory](https://help.tableau.com/current/server-linux/en-gb/requ.htm#InstallDir). - When you initialise Tableau, you can specify a non-default location for the data directory. For more information, see [Data directory](https://help.tableau.com/current/server-linux/en-gb/requ.htm#Data). ## Networking and Ports - **Ports**: As with any distributed system, the computers or VMs you use need to be able to communicate with one another. For information on how Tableau Services Manager handles port mapping, see [Tableau Services Manager Ports](https://help.tableau.com/current/server-linux/en-gb/ports.htm). - **Latency**: Network latency between server nodes can impact Tableau Server performance. Be aware of possible latency issues, especially if you run into performance problems. To reduce network latency, you can take steps such as locating your gateways and data sources in proximity to Tableau Server. - **Static IP addresses**: Any computer running Tableau Server, whether it's a single server installation or part of a cluster, must have a static IP address. - **Discoverable**: Each node in the cluster must be discoverable from other node computers using DNS or a local host file. - **Time zone and time**: Each node in the cluster must be in the same timezone, with their system clocks synchronised. This may happen automatically. For example, if your nodes are all in the Active Directory domain, the domain controller usually handles this. If you are not sure your cluster meets this requirement, consult with your internal IT experts. ## Best Practices Here are some things to keep in mind before you start to install and configure: - **IP addresses or computer names**: As mentioned above, each computer in the cluster must use a static IP address. - **Backup**: It’s a best practice to create a backup prior to making significant system changes. See [Back up Tableau Server Data](https://help.tableau.com/current/server-linux/en-gb/db_backup.htm) for steps. ## SSL If you are planning to configure SSL for a highly available Tableau Server cluster with multiple gateways and a load balancer ([learn more](https://help.tableau.com/current/server-linux/en-gb/distrib_ha.htm)), make sure that the SSL certificate you use was issued for the load balancer's host name. See [Configure SSL for External HTTP Traffic to and from Tableau Server](https://help.tableau.com/current/server-linux/en-gb/ssl_config.htm) for other details. [Skip to main content](#main-content) # Domain Trust Requirements for Active Directory Deployments When you run Tableau Server in an Active Directory environment across multiple domains (either in the same Active Directory forest or in different forests), some Tableau functionality is dependent on the trust relationship between the domains. For example, some administrators manage users in domains that are separate from where they deploy server applications, such as Tableau Server. In other organisations, a Tableau Server deployment might be shared with external partners or with different partners in the organisation. Finally, Windows-authenticated data sources, such as SQL Server, MSAS, or Oracle, that Tableau Server connects to may also be in other domains. If it's feasible, we recommend configuring two-way trust between all domains that interact with Tableau Server. If this is not possible, Tableau Server can be configured to support user authentication where a one-way trust has been configured. In this case, a one-way trust between domains is supported when the domain in which Tableau Server is installed is configured to trust the domain where user accounts reside. The following illustration shows one-way trust between the domain where Tableau Server is installed and the domain where user accounts reside: ![Two triangles, one labelled "users.lan" and the other "dev.local", with an arrow denoting "trust" directed towards the former.](/tableau/current/en-gb/server-linux/en-gb/Img/runas_oneway_trust.png) In this scenario, Tableau Server is in the dev.local domain, and users from the users.lan Active Directory domain are imported into Tableau Server. A one-way trust is required for this scenario; specifically, the dev.local domain is configured to trust the users.lan domain. Users in the users.lan domain can access Tableau Server in the dev.local with their normal Active Directory credentials. However, you may need to update the domain nickname on Tableau Server before users log on with the nickname. Refer to the [Tableau Knowledge Base](http://kb.tableau.com/articles/Issue/users-from-new-domain-unable-to-log-in-and-do-not-appear-in-user-list?lang=en-gb) for more information. When you configure Tableau Server for this scenario, specify the primary user domain during installation. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). To ensure that Tableau Server can connect to other Active Directory domains, you must also specify other domains that Tableau Server connects to by setting the `wgserver.domain.accept_list` option with TSM. For more information, see [wgserver.domain.accept\_list](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#wgserver-domain-acceptlist). ### Duplicate bind accounts for domain trust Tableau Server on Linux relies on JDK's LDAP implementation that uses a simple bind to authenticate with Active Directory. Simple bind is not domain-aware and as a result, does not support a cross-domain bind. When you set up the initial identity store, you must supply the bind account that you will use to authenticate to Active Directory. To enable cross-domain trust and directory look-ups, you must duplicate this bind account in every target domain. Each bind account in each domain must use the same username (`sAMAccountName` or `dn`) and password. Kerberos single sign-on is supported in this one-way trust scenario. Review [User Management in Deployments with External Identity Stores](https://help.tableau.com/current/server-linux/en-gb/users_manage_ad.htm) to understand how multiple domains, domain naming, NetBIOS, and Active Directory user name format influence Tableau user management. ### Connecting to live data in one-way trust scenarios In the one-way trust scenario, users connecting to Tableau Server can connect to live data that's hosted in the cloud or on any other data source on premises that does not rely on Windows authentication. Data sources that require Windows-authentication might have additional authentication requirements that complicate the scenario, or that can even prevent Tableau Server users from connecting. This is because Tableau Server uses a service account for authentication with such data sources. If you are running Tableau Server in a different domain than data sources that use Windows authentication, verify that the service account that is used for Tableau Server can access the data source. [Skip to main content](#main-content) # Dynamic Scaling in a Container - Tableau Server Backgrounders ## Introduction The dynamic scaling of Backgrounder in a container enables various scaling strategies to be applied to backgrounder and scheduled jobs in Tableau Server. Autoscaling in this context means services can be independently scaled to handle variable task loads without requiring human intervention or impacting uptime of other server systems. The Tableau Server Containers which contain complete nodes of Tableau Server processes will continue to run as monolithic systems. Instead, a smaller set of decoupled independent container services which comprise the "backgrounder" service role will be dynamically scalable and handle computational load that would normally be handled by Tableau Server Containers. Backgrounder services are responsible for processing system tasks that include refreshing/creating extracts, sending subscriptions, checking data alerts and many maintenance jobs. If there are times, for example, where it would be advantageous to refresh a large number of datasets or compute swathes of computationally expensive data alerts, you can now leverage Kubernetes to scale up compute power to complete those tasks efficiently. This guide covers the configuration and deployment requirements for Autoscaling Backgrounders in Kubernetes. This document is a supplement to the [Tableau Server in a Container](https://help.tableau.com/current/server-linux/en-gb/server-in-container.htm) documentation. ## Prerequisites Autoscaling Backgrounders is only available in Kubernetes and is based on Tableau Server in Containers. In order to use the autoscaling backgrounders feature, you must satisfy certain prerequisites: - Tableau Server must have Advanced Management capabilities. For more information, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). - You must be using Role-based licensing. Core licences are not supported. For details on licensing, see [Understanding Licence Models and Product Keys](https://help.tableau.com/current/server-linux/en-gb/license_product_keys.htm). - The following Advanced Management features must be enabled: - [Tableau Server External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm) - [Tableau Server External Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo.htm) - You must have a Kubernetes cluster version 1.20 or later and understand how to use and manage it. ## Limitations - This feature only works as a part of a Linux-based deployment. - Flow jobs are not supported on the autoscaling backgrounders. Flow jobs will be handled by the backgrounder services that continue to run in the Tableau Server container. ## Creating Tableau Server and Backgrounder Pod Images The first step for using autoscaling backgrounders in containers is to create the service images that comprise the Tableau Server installation. These images will include the Tableau Server image, as well as images for the separate backgrounder and supporting services. You use the same build tool that is used to create the comprehensive all-in-one Tableau Server container image, but the tool must be version 2022.3.0 or later, you must have an Advanced Management licence and you need to use a special flag when building the images. 1. To create the service images, run this command: build-image --accepteula -i --backgrounder-images This creates the Tableau Server and four new images. These additional images contain individual services that comprise the new autoscalable backgrounder pod. The `docker images` command lists the images created in the local docker repository: hyper 20214.21.1117.1006 52fd9843c178 10 seconds ago gateway 20214.21.1117.1006 2308e602a2a3 11 seconds ago backgrounder 20214.21.1117.1006 4540e459cf23 12 seconds ago dataserver 20214.21.1117.1006 c5345ed47f51 12 seconds ago tableau\_server\_image 20214.21.1117.1006 b27817047dd1 7 minutes ago The hyper, gateway, backgrounder and dataserver images comprise the new Backgrounder pod. Custom drivers, installation scripts and properties will be shared across all five of these images. For more information, see [Customising the image](https://help.tableau.com/current/server-linux/en-gb/server-in-container_setup-tool.htm#CustomizingImage). 2. Publish all these images to your internal image repository for deployment. ## Deployment Guide The following information provides context for how to deploy Tableau Server in a Container and with Autoscaling Backgrounders. This information assumes you already understand and know how to deploy Tableau Server in a self-contained container. For more information, see [Tableau Server in a Container](https://help.tableau.com/current/server-linux/en-gb/server-in-container.htm). The three Kubernetes configuration files in the Kubernetes Configuration section are templates that can be used to set up the deployment. The other sections in this guide cover the requirements and details of the deployment. Deployment of Tableau Server and Autoscaling Backgrounders should be as simple as deploying the populated Kubernetes Configuration files at the bottom of the guide: kubectl apply -f ### Backgrounder Jobs Backgrounder pods assist the Tableau Server in a Container in computing additional scheduled workloads in parallel. Backgrounder handles extract refresh, subscription, alert, flow and system workloads. Distributing jobs among backgrounder pods means there will be more compute resources available for Tableau Server to handle other tasks, such as interactive user activities like rendering workbooks and dashboards. Flow jobs are the only type of backgrounder job that does not run in the background. For details about Backgrounder jobs, see [Managing Background Jobs in Tableau Server](https://help.tableau.com/current/server-linux/en-gb/server_backgrounder_job_management.htm). Backgrounder pods can handle any kind of load, except flow jobs, which must be run in the main Tableau Server containers, which continue to run the backgrounder service. The Node Roles feature gives users the flexibility to dedicate backgrounder pods to specific types of jobs. This feature is an extension of the Node Roles Feature on Tableau server. The detailed description about different node roles can be found here. Note that by default, flow jobs are disabled on the backgrounder pods (i.e. the role is set to "no-flows") since the backgrounder pods are unable to run flow jobs. To set up node roles for backgrounder, you need to set the environment variable `NODE_ROLES` as part of kubeconfig for the container running backgrounder service. For example, to set backgrounder to run only extract-refresh jobs, set up the `NODE_ROLES` environment variable to extract-refreshes as shown below: #### NODE\_ROLE\_CONFIG containers: - name: backgrounder image: # Backgrounder Image ports: - containerPort: 8600 volumeMounts: - name: logmount mountPath: /var/log/tableau - name: clone-volume mountPath: /docker/clone - name: dataengine-volume mountPath: /docker/dataengine - name: temp mountPath: /var/opt/tableau/tableau\_server/data/tabsvc/temp env: - name: ROOT\_LOG\_DIR value: /var/log/tableau - name: CLONE\_ARTIFACT\_DIR value: /docker/clone/clone-artifacts - name: FILESTORE\_MOUNT\_PATH value: /docker/dataengine - name: NODE\_ROLES value: extract-refreshes The Tableau Server pods will have at least one backgrounder configured in their topology, which is required to ensure there is always a place to run backgrounder jobs. By default, TSM will require that there must be a backgrounder able to handle every role of background job. In some scenarios, you may want to have backgrounder pods handle all jobs of a particular type. To do so, you must set the Server configuration key `topology.roles_handle_all_jobs_constraint_disabled` to `true`, which will disable the requirement that the TSM topology handle all job types. With this parameter set, the backgrounder role for the Tableau Server backgrounder instance could be set to `no-extract-refreshes` and the role for the backgrounder pods could be set to `extract-refreshes`, which would ensure that all extract refresh jobs run only on the backgrounder pods. **Note:** Disabling this constraint allows you to configure roles such that some job types are never scheduled. The role configuration of TSM backgrounders and backgrounder jobs must be set carefully because TSM will no longer be verifying that all backgrounder job types can be scheduled. ### Tableau Server in a Container Pods The containers with Tableau Server as part of the autoscaling backgrounder pods are deployed in almost the same way that our existing Tableau Server in a Container is. There are a few key requirement changes: - A network file share is _required_ to transfer configuration between the Tableau Server container and the backgrounder pods. - You must enable and use the External Filestore feature. This also requires a dedicated network file share. ### Backgrounder Pods Backgrounder pods consist of four independent service containers working together: **gateway**, **hyper**, **dataserver** and **backgrounder**. You may deploy these pods like typical independent Kubernetes container pods. The pods have the following requirements: - Backgrounder pods must be able to reach the Tableau Server node using hostname DNS resolution. - External Filestore and Clone network file shares must be provided. **Note:** Backgrounder pods are configured with an init-container to wait until the Tableau Server container has successfully produced clone configuration output before proceeding to run. #### Logs Backgrounder pod services (like Tableau Server) still write logs predominately to disk. Because the backgrounder pods can be scaled in and out, they are ephemeral so it is essential to ensure that logs are stored off the pods. Many customers with existing K8s environments will already be using a log aggregation service of some type to collect the logs from the pods they deploy. Examples of log aggregation services are Splunk and fluentd. We strongly recommend that customers use some sort of log aggregation service to collect the logs from their backgrounder pods. To make log management easier, the kubeconfig we provide configures each service in the pod to write to a shared log volume. The path of the directory in each service container is specified by the `ROOT_LOG_DIR` environment variable. If you need to open a support case and provide logs, you will provide two sets of logs: ziplogs gathered from the main Server containers and logs from the backgrounder pods (either retrieved from your log aggregation service or by using the manual process below). For customers that are unable to use a log aggregation service, logs can be retrieved manually from the pods. **Note:** Logs from any pod that did not use a Persistent Volume Claim for the volume containing the logs will be lost when the pod is scaled down! All the relevant logs are available at the `/var/log/tableau` directory (configurable via the `ROOT_LOG_DIR` environment variable) inside the backgrounder pod. We highly recommend you mount a PersistantVolumeClaim at this location so that logs are available when the pod dies. ##### Collecting logs when the backgrounder pod is running: Create a tar file of the logs inside the container: kubectl exec -it -- bash -c "tar -czf /docker/user/backgrounder-pod-logs.tar.gz /var/log/tableau" Copy the tar file to outside the container: kubectl cp :docker/user/backgrounder-pod-logs.tar.gz ./backgrounder-pod-logs.tar.gz ##### Collecting logs when the backgrounder pod has exited (or failed to start) Attach any long-running pod with the PersistantVolumeClaim mount which is used for backgrounder pod deployment logs. One example configuration: apiVersion: v1 kind: Pod metadata: name: namespace: spec: containers: - name: get-logs-pod image: busybox:1.28 securityContext: runAsUser: 0 allowPrivilegeEscalation: true command: \['sh', '-c', "while :; do sleep 5; done"\] volumeMounts: - name: logmount mountPath: /var/log/tableau restartPolicy: Never volumes: - name: logmount persistentVolumeClaim: claimName: logvolume Create a tar file of the logs inside the container: kubectl exec -it -- bash -c "tar -czf /backgrounder-pod-logs.tar.gz /var/log/tableau" Copy the tar file to outside the container: kubectl cp :/backgrounder-pod-logs.tar.gz ./backgrounder-pod-logs.tar.gz #### Live Configuration Changes If you make configuration changes in Tableau Server in a Container (for example, using the tsm command line) and want those configuration changes to be represented in Backgrounder pods, you need to run the `[tsm settings clone](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm#TSMSettingsClone)` command to produce a new set of clone configuration files ("clone payload"). 1. Use TSM to make configuration changes in the Tableau Server in a Container pod and apply the configuration changes to the server. 2. Run the following command in the Tableau Server in a Container pod: \## Run this command in the Tableau Server in a Container pod. tsm settings clone -d $CLONE\_ARTIFACT\_DIR This command creates a new set of configuration files and writes it to the Clone NFS drive location. 3. Redeploy your backgrounder pods. The pods should be configured to use the Clone NFS drive and will pick up the new configuration. ### Scaling Strategies Backgrounder pods can be scaled in Kubernetes using a variety of techniques and strategies. We provide an example scaling strategy that changes Backgrounder pod pool size based on a time schedule. Note that CPU and memory utilisation are **not** good metrics for scaling Backgrounder pods. Memory and CPU utilisation do not accurately portray the overall load demand on the cluster. For example, a Backgrounder pod could be at max. utilisation to refresh an extract, but there are no additional jobs waiting in the Backgrounder job queue. In this case, autoscaling would not improve job throughput. #### Scheduled Scaling Standard Kubernetes mechanisms using cron jobs allow you to schedule a scaling solution. An example of a Kubernetes configuration for this is provided in the Kubernetes Configuration section below. ## Kubernetes Configuration ### New Environment Variables In addition to the standard Tableau Server container environment variables (see [Initial Configuration Options](https://help.tableau.com/current/server-linux/en-gb/server-in-container_image.htm#InitialConfigOptions-container)), there are some new required environment variables that must be set in the Kubernetes Configuration.
Environment VariableRecommended ValueDescription
FILESTORE_MOUNT_PATH/docker/dataengineExternal Filestore directory mount location. This directory should point to the dataengine NFS directory mounted inside each deployed Tableau container. For more information about External Filestore, see Tableau Server External File Store. The value should be the same for the Tableau Server in a Container pod and the Backgrounder pod.
CLONE_ARTIFACT_DIR/docker/clone/clone-artifactsClone configuration directory mount location. This directory should point to an NFS directory mounted inside each Tableau container. Tableau Server will output configuration data that Backgrounder Pods consume to become members of the cluster.
ROOT_LOG_DIR/var/log/tableau(Backgrounder pods only)

Common log directory location for all services running in a backgrounder pod.

### Backgrounder Pod Ports Backgrounder pods consist of four services. By default, each is set to run on a specified port. If you want to change the port the service attaches to inside the container, you need to supply the key that corresponds to the service's port assignment. This kind of configuration should not be necessary in most cases, unless there is a sidecar container or some other additional component that is being added to the pod and conflicts with a service's port. | Port Environment Variable | Default | | --- | --- | | `BACKGROUNDER_PORT` | `8600` | | `DATASERVER_PORT` | `8400` | | `HYPER_PORT` | `8200` | | `GATEWAY_PORT` | `8080` | Dataserver also uses port 8300, which cannot be reconfigured. ### Shared Network Directory This deployment of Tableau Server requires two network shares to function properly. Note that in all Tableau Server and Backgrounder of Kubernetes configuration templates, these network directories are present: - **Dataengine Directory** (`FILESTORE_MOUNT_PATH`): Backgrounder Pods require the External Filestore feature. This network share contains extracts and other file-based artifacts that will be shared between Tableau Server and Backgrounder Pods. - **Clone Directory** (`CLONE_ARTIFACT_DIR`): Tableau Server writes static connection and configuration information to a network share. Backgrounder pods will consume this information to become members of the Tableau Server cluster. In future pre-releases, this configuration will be incorporated into the standard life cycle of Kubernetes configuration. **Important:** If you want to redeploy the cluster entirely (including a new Tableau Server Container), you must purge the contents of the clone NFS mount (otherwise backgrounder pods will attempt to attach to the old server). ### Kubernetes Configuration Examples **Note:** The configuration examples include the use of a readiness probe. You can use the readiness probe when your Tableau Server Container deployment is a single-node TSM deployment (the deployment can include multiple backgrounder pods). You cannot use a readiness probe with multi-node Tableau Server in a Container deployments. #### Tableau Server Container Config \--- apiVersion: v1 kind: Service metadata: name: namespace: spec: selector: app: ports: - protocol: TCP port: 8080 nodePort: name: http - protocol: TCP port: 8443 nodePort: name: https type: NodePort \--- apiVersion: v1 kind: ConfigMap metadata: name: configfile namespace: data: config.json: |- { "configEntities": { "identityStore": { "\_type": "identityStoreType", "type": "local" } }, "configKeys" : { "tabadmincontroller.init.smart\_defaults.enable" : "false", "wgserver.domain.ldap.starttls.enabled" : "false" }, "daysLeftForMaintenanceExpiring" : 0 } \--- apiVersion: v1 kind: ConfigMap metadata: name: extrepojsonfile namespace: data: config.json: |- { "flavor":"generic", "masterUsername":"", "masterPassword":"", "host":"", "port":5432, "prerequisiteCheckEnabled":false, "requireSsl":false } \--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: datadir1 namespace: spec: accessModes: - ReadWriteOnce resources: requests: storage: 50Gi \--- \# This is required for multi-node tableau server in container apiVersion: v1 kind: PersistentVolume metadata: name: bootstrapnfs namespace: spec: accessModes: - ReadWriteMany capacity: storage: 1Gi nfs: server: path: \--- \# This is required for multi-node tableau server in container apiVersion: v1 kind: PersistentVolumeClaim metadata: name: bootstrapnfs namespace: spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 1Mi \--- apiVersion: v1 kind: PersistentVolumn metadata: name: clonenfs namespace: spec: accessModes: - ReadWriteMany capacity: storage: 1Gi nfs: server: path: \--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: clonenfs namespace: spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 1Mi \--- apiVersion: v1 kind: PersistentVolume metadata: name: dataenginenfs namespace: spec: accessModes: - ReadWriteMany capacity: storage: 1Gi nfs: server: path: \--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: dataenginenfs namespace: spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 1Mi \--- apiVersion: v1 kind: Secret type: Opaque metadata: name: tableau-server-in-a-container-secrets namespace: stringData: license\_key: # Tableau License Key String tableau\_username: # Initial admin username in Tableau Server tableau\_password: # Initial admin password \--- apiVersion: apps/v1 kind: StatefulSet metadata: name: tableau-server namespace: labels: app: spec: selector: matchLabels: app: replicas: 1 serviceName: template: metadata: labels: app: spec: securityContext: runAsUser: 999 fsGroup: 998 fsGroupChangePolicy: "OnRootMismatch" terminationGracePeriodSeconds: 120 dnsPolicy: "None" dnsConfig: nameservers: - # DNS IP for resolving container hostnames searches: - ..svc.. # SRV Record - .svc.. # SRV Record - svc.. # SRV Record - . # SRV Record options: - name: ndots value: "5" initContainers: # init containers are optional, to clear directory content if already exists - name: clean-bootstrap-dir image: busybox:1.28 securityContext: runAsUser: 0 allowPrivilegeEscalation: true volumeMounts: - name: bootstrap mountPath: /docker/config/bootstrap command: \['sh', '-c', 'rm -rf /docker/config/bootstrap/\* || true'\] - name: clean-clone-artifacts-dir image: busybox:1.28 securityContext: runAsUser: 0 allowPrivilegeEscalation: true volumeMounts: - name: clone mountPath: /docker/clone command: \['sh', '-c', 'rm -rf /docker/clone/clone-artifacts || true'\] containers: - name: # Name of container image: # Tableau Server in Container Image env: - name: LICENSE\_KEY valueFrom: secretKeyRef: name: tableau-server-in-a-container-secrets key: license\_key - name: FILESTORE\_MOUNT\_PATH value: /docker/dataengine - name: CLONE\_ARTIFACT\_DIR\_FOR\_INDEPENDENT\_CONTAINERS value: /docker/clone/clone-artifacts - name: SERVER\_FOR\_INDEPENDENT\_SERVICE\_CONTAINERS value: "1" - name: EXT\_REP\_JSON\_FILE value: /docker/external-repository/config.json - name: TABLEAU\_USERNAME valueFrom: secretKeyRef: name: tableau-server-in-a-container-secrets key: tableau\_username - name: TABLEAU\_PASSWORD valueFrom: secretKeyRef: name: tableau-server-in-a-container-secrets key: tableau\_password resources: requests: memory: 40Gi cpu: 15 limits: memory: 40Gi cpu: 15 ports: - containerPort: 8080 volumeMounts: - name: configmount mountPath: /docker/config/config.json subPath: config.json - name: externalrepomount mountPath: /docker/external-repository - name: datadir1 mountPath: /var/opt/tableau - name: bootstrap mountPath: /docker/config/bootstrap - name: clone mountPath: /docker/clone - name: dataengine mountPath: /docker/dataengine imagePullPolicy: IfNotPresent startupProbe: exec: command: - /bin/sh - -c - /docker/server-ready-check initialDelaySeconds: 300 periodSeconds: 15 timeoutSeconds: 30 failureThreshold: 200 readinessProbe: exec: command: - /bin/sh - -c - /docker/server-ready-check periodSeconds: 30 timeoutSeconds: 60 livenessProbe: exec: command: - /bin/sh - -c - /docker/alive-check initialDelaySeconds: 600 periodSeconds: 60 timeoutSeconds: 60 volumes: - name: configmount configMap: name: configfile - name: externalrepomount configMap: name: extrepojsonfile - name: datadir1 persistentVolumeClaim: claimName: datadir1 - name: bootstrap persistentVolumeClaim: claimName: bootstrapnfs - name: clone persistentVolumeClaim: claimName: clonenfs - name: dataengine persistentVolumeClaim: claimName: dataenginenfs #### Backgrounder Pod Config \--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: logvolume namespace: spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi \--- apiVersion: apps/v1 kind: Deployment metadata: name: backgrounder labels: app: backgrounder namespace: spec: replicas: 2 selector: matchLabels: app: backgrounder template: metadata: labels: app: backgrounder spec: securityContext: runAsUser: 999 runAsGroup: 998 fsGroup: 998 fsGroupChangePolicy: "OnRootMismatch" hostname: backgrounder dnsPolicy: "None" dnsConfig: nameservers: - # DNS IP for resolving container hostnames searches: - ..svc.. # SRV Record - .svc.. # SRV Record - svc.. # SRV Record - . # SRV Record options: - name: ndots value: "5" initContainers: - name: init-myservice image: busybox # This init-container is optional (as long as there is a mechanism to set the log volume directory permissions and the pod waits for clone artifacts) securityContext: runAsUser: 0 allowPrivilegeEscalation: true env: - name: CLONE\_ARTIFACT\_DIR\_FOR\_INDEPENDENT\_CONTAINERS value: /docker/clone/clone-artifacts volumeMounts: - name: logmount mountPath: /var/log/tableau - name: clone-volume mountPath: /docker/clone command: \['sh', '-c', "chmod 777 /var/log/tableau && while \[ ! -d ${CLONE\_ARTIFACT\_DIR\_FOR\_INDEPENDENT\_CONTAINERS} \]; do sleep 5; done"\] containers: - name: backgrounder image: # Backgrounder Image ports: - containerPort: 8600 imagePullPolicy: IfNotPresent readinessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' periodSeconds: 30 timeoutSeconds: 60 livenessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' initialDelaySeconds: 600 periodSeconds: 60 timeoutSeconds: 60 volumeMounts: - name: logmount mountPath: /var/log/tableau - name: clone-volume mountPath: /docker/clone - name: dataengine-volume mountPath: /docker/dataengine - name: temp mountPath: /var/opt/tableau/tableau\_server/data/tabsvc/temp env: - name: ROOT\_LOG\_DIR value: /var/log/tableau - name: CLONE\_ARTIFACT\_DIR\_FOR\_INDEPENDENT\_CONTAINERS value: /docker/clone/clone-artifacts - name: FILESTORE\_MOUNT\_PATH value: /docker/dataengine - name: dataserver image: # Dataserver Image ports: - containerPort: 8400 imagePullPolicy: IfNotPresent readinessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' periodSeconds: 30 timeoutSeconds: 60 livenessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' initialDelaySeconds: 600 periodSeconds: 60 timeoutSeconds: 60 volumeMounts: - name: logmount mountPath: /var/log/tableau - name: clone-volume mountPath: /docker/clone - name: dataengine-volume mountPath: /docker/dataengine - name: temp mountPath: /var/opt/tableau/tableau\_server/data/tabsvc/temp env: - name: ROOT\_LOG\_DIR value: /var/log/tableau - name: CLONE\_ARTIFACT\_DIR\_FOR\_INDEPENDENT\_CONTAINERS value: /docker/clone/clone-artifacts - name: FILESTORE\_MOUNT\_PATH value: /docker/dataengine - name: gateway image: # Gateway Image ports: - containerPort: 8080 imagePullPolicy: IfNotPresent readinessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' periodSeconds: 30 timeoutSeconds: 60 livenessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' initialDelaySeconds: 600 periodSeconds: 60 timeoutSeconds: 60 volumeMounts: - name: logmount mountPath: /var/log/tableau - name: clone-volume mountPath: /docker/clone - name: dataengine-volume mountPath: /docker/dataengine - name: temp mountPath: /var/opt/tableau/tableau\_server/data/tabsvc/temp env: - name: ROOT\_LOG\_DIR value: /var/log/tableau - name: CLONE\_ARTIFACT\_DIR\_FOR\_INDEPENDENT\_CONTAINERS value: /docker/clone/clone-artifacts - name: FILESTORE\_MOUNT\_PATH value: /docker/dataengine - name: hyper image: # Hyper Image ports: - containerPort: 8200 imagePullPolicy: IfNotPresent readinessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' periodSeconds: 30 timeoutSeconds: 60 livenessProbe: exec: command: - /bin/sh - -c - /tsm\_docker\_utils/status\_check.sh | grep -E 'ACTIVE|BUSY' initialDelaySeconds: 600 periodSeconds: 60 timeoutSeconds: 60 volumeMounts: - name: logmount mountPath: /var/log/tableau - name: clone-volume mountPath: /docker/clone - name: dataengine-volume mountPath: /docker/dataengine - name: temp mountPath: /var/opt/tableau/tableau\_server/data/tabsvc/temp env: - name: ROOT\_LOG\_DIR value: /var/log/tableau - name: CLONE\_ARTIFACT\_DIR\_FOR\_INDEPENDENT\_CONTAINERS value: /docker/clone/clone-artifacts - name: FILESTORE\_MOUNT\_PATH value: /docker/dataengine volumes: - name: clone-volume nfs: server: path: - name: dataengine-volume nfs: server: path: /dataengine - name: logmount persistentVolumeClaim: claimName: logvolume - name: temp emptyDir: {} #### Scheduled Scaling Config apiVersion: v1 kind: ServiceAccount metadata: name: backgrounder-scaler-service-account namespace: # Namespace \--- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: scale-backgrounder-pods namespace: # Namespace subjects: \- kind: ServiceAccount name: backgrounder-scaler-service-account roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io \--- apiVersion: batch/v1beta1 kind: CronJob metadata: name: scale-up-job namespace: # Namespace spec: schedule: "0 7 \* \* \*" # Cron Job timing to scale up deployment replicas jobTemplate: spec: template: spec: serviceAccountName: backgrounder-scaler-service-account restartPolicy: OnFailure containers: \- name: scale image: bitnami/kubectl:1.21 imagePullPolicy: IfNotPresent args: \- scale \- --replicas=4 \- deployment/backgrounder \--- apiVersion: batch/v1beta1 kind: CronJob metadata: name: scale-down-job namespace: spec: schedule: "0 9 \* \* \*" # Cron Job timing to scale down deployment replicas jobTemplate: spec: template: spec: serviceAccountName: backgrounder-scaler-service-account restartPolicy: OnFailure containers: \- name: scale image: bitnami/kubectl:1.21 imagePullPolicy: IfNotPresent args: \- scale \- --replicas=2 \- deployment/backgrounder #### Kubernetes Job to clean Clone Configuration (Optional) This is a convenience Kubernetes job you might use during testing. If you want to clear out the clone configuration produced by Tableau Server in a Container between distinct deployment runs, you can run a job like this to clean the NFS. apiVersion: batch/v1 kind: Job metadata: name: delete-clone-artifacts-job namespace: manatee-cluster spec: template: spec: containers: \- name: delete-clone-artifacts image: busybox:1.28 command: \['sh', '-c', "rm -rf ${CLONE\_ARTIFACT\_DIR}"\] env: \- name: CLONE\_ARTIFACT\_DIR value: /docker/clone/clone-artifacts securityContext: runAsUser: 0 allowPrivilegeEscalation: true volumeMounts: \- name: clone-volume mountPath: /docker/clone restartPolicy: Never volumes: \- name: clone-volume nfs: server: # IP for shared NFS directory for clone output path: /clone [Skip to main content](#main-content) # Edit a Published Data Source Imagine that you’ve published a data source and your team is using the data source across a number of workbooks. This is a good start, but you have some changes in mind that will make your data source great. Before you implement these changes, you want to see how your proposed changes look in Tableau. And most importantly, you need to test your changes to ensure they won’t negatively impact any existing workbooks that use the data source. Editing a published data source allows you to test changes and make improvements to your data source while maintaining it as a single source of data. **Note**: Only users with a site role of Creator can edit publish data sources in the browser. Alternatively, you can _extend_ a published data source by making your changes in a new data source. An extended published data source layers your overrides in a new data source without changing the original and maintains a connection to that original data source. For more information, see [Expand Published Data Sources](https://help.tableau.com/current/pro/desktop/en-gb/datasource_extend_compose.htm). ## Edit and test changes Whether you’re creating a new published data source or editing an existing published data source, you can create relationships and modify the data model from the Data Source page without leaving your browser. Then use the Scratchpad to test your changes, create folders, organise hierarchies and rename fields and aliases before publishing your data source. While editing your data source, you’ll have all the same features and functionality that you have when authoring in Tableau Cloud. For more information, see [Web Authoring and Tableau Desktop Feature Comparison](https://help.tableau.com/current/pro/desktop/en-gb/server_desktop_web_edit_differences.htm). To edit a published data source: 1. From the Start or Explore page, navigate to the data source you want to edit. 2. Click Edit Data Source. ![Edit Data Source button](/tableau/current/en-gb/server-linux/en-gb/Img/edit_published_data_source.png) 3. Click the Data Source page to make joins or edit the schema. 4. Click the Scratchpad sheet. 5. From the Data pane, create folders, organise hierarchies, rename fields and their aliases or update metadata that are saved with the published data source. 6. Drag and drop fields onto the scratchpad to make sure your changes are working as expected. 7. Click Publish. Just like you can with workbooks, you can also Publish As if you want to make a copy of the data source. **Note:** Personal Spaces don’t support published data sources. ## Roll back changes To revert to the last version of the published data source: 1. Navigate to the data source that you want to revert. 2. Click File. 3. Choose Revert to Published. ![File drop-down menu, Revert to Published option](/tableau/current/en-gb/server-linux/en-gb/Img/revert_to_published.png) This reverts to the latest published version of that data source. ## Understand supported connections Editing published data sources doesn’t support data sources that use embedded passwords in Tableau Cloud and Tableau Server. Also, the Data Source page isn’t available for published data source connection types that aren’t supported, including but not limited to .hyper file types. To see which connection types are supported, see [Creators: Connect to Data on the Web](https://help.tableau.com/current/server-linux/en-gb/creator_connect.htm). ## Learn about permissions To edit a published data source, you’ll need a Creator licence that has Save or Save As permissions for data sources in the respective folder. For more information, see [Permissions](https://help.tableau.com/current/online/en-gb/permissions.htm). ## Edit data sources published by a flow If you make edits to a data source that was published by a flow, the changes will be overwritten during the next scheduled flow. Instead, edit the data source in the flow. For more information, see [Publish a Flow to Tableau Server or Tableau Cloud](https://help.tableau.com/current/prep/en-gb/prep_conductor_publish_flow.htm). [Skip to main content](#main-content) # Edit Connections on Tableau Server Administrators and data source owners can manage the information that describes how a published data source connects to the underlying data. This information includes the database server name or address, the server port, the database user name, and whether or not the password is embedded in the connection. **Note:** Ability to edit connections is determined primarily by your site role, rather than by your permissions on the data source. To edit connections, your site role must be Server Administrator, Site Administrator, or Creator. If your site role is Creator, you also must be the data source owner. 1. Sign in to the site that has the data sources you want to modify, and on the Content tab, select Explore > Data sources. 2. Select the name of the data source with the connection you want to update. Display filters to search for the data source or narrow the scope of the data source list. The values you type into the Server name and Database username fields are treated as regular expressions. 3. In the Connections view, select the Actions (…) menu for the data source, and then select Edit Connection. ![Data source connections list with a dropdown menu expanded to show the Edit Connection option.](/tableau/current/en-gb/server-linux/en-gb/Img/ds_connect3.png) To edit multiple data sources, select the data sources you want to edit, then click the Actions menu and Edit Connection. 4. Update the connection information. For Server name, if you want to use an IP address, make sure the database or its driver supports that type of connection. If it doesn’t, enter the database server name. See also [Authentication types for Google, Salesforce, and WDC data](#google-sfdc-auth) later in this topic. ![Edit Connection dialog with options to edit the selected data connection's server name, server port, username and password.](/tableau/current/en-gb/server-linux/en-gb/Img/ds_connect4.png) **Note:** The Test Connection button is disabled in versions 2021.4 and later when Prompt user for password if needed is selected. 5. Click Save. 6. Refresh the browser page for your changes to take effect. ## Authentication types for Google, Salesforce, and WDC data Google BigQuery, Google Analytics, Salesforce.com, and many web data connector (WDC) connections use the OAuth authentication standard, which uses secure access tokens instead of “raw” user name and password credentials. With OAuth, database credentials do not need to be stored in Tableau, and all users connect through this access token, including Tableau Desktop users who want to create or edit workbooks that connect to the data source. The following sections describe Google and Salesforce connection options. Web data connector options vary, but all involve signing in through the provider’s web-based sign-in form to establish the access token. ### Google authentication options When you edit Google BigQuery or Google Analytics connections, select either of the following options in the Edit Connection dialog box: - Select Embed Google BigQuery (or Google Analytics) credentials in the connection to authenticate through a designated account, and then select an existing account from the list or select authenticate account now... to add a new one. When you add a new account, the Google sign-in page appears. After you provide your database credentials, Google prompts you to confirm Tableau access to the data. When you click Accept, Google returns an access token to use for connecting to the data. **Note**: If you create extracts of your Google data source, select this first option, so that you can schedule refresh tasks. - Select Prompt user for Google BigQuery/Analytics credentials to require users to connect through their own individual access tokens or sign in each time they connect. ### Salesforce.com authentication options **Note:** This applies only if Tableau Server is configured to use saved credentials for Salesforce with OAuth. If the server is not configured for this, use the standard process above for modifying connections. For more information about configuring Tableau Server to use saved credentials with OAuth, see [Change Salesforce.com OAuth to Saved Credentials](https://help.tableau.com/current/server-linux/en-gb/config_oauth_sfdc.htm). When you edit Salesforce.com connections, you can select any of the following options in the Edit Connection dialog box: - Select Embedded Salesforce username and password in the connection to use a traditional authentication method. - Select Embedded Salesforce credentials in the connection to use an OAuth connection and schedule refresh tasks, and then select an existing account from the list or click Add a Salesforce Account to add a new one. When you add a new account, the Salesforce.com sign-in page appears. After you provide your database credentials, Salesforce.com prompts you to confirm Tableau access to the data. When you allow Tableau access, Salesforce.com creates an access token through which it connects to the data. ![Settings to edit a selected data connection and enter authentication credentials.](/tableau/current/en-gb/server-linux/en-gb/Img/connections7a.png) - Select No Salesforce authentication to require users to sign in to Salesforce.com each time they connect. (This option does not allow scheduled extract refreshes.) ## Monitor progress When you save your changes in the Edit Connection dialog box, the dialog displays the progress. If you close the dialog box, the modifications continue to run in the background until completed. Tableau Server will make as many changes as possible. Any failures will be skipped, but they will not impede other changes. For example, if you try to change the server name and add a password to several connections, the server names will be changed, and the passwords on workbooks will be changed. However, because you cannot add a password to a data source, the passwords for the data sources will not be changed. For information about checking the progress of these tasks, see [Background Tasks for Extracts](https://help.tableau.com/current/server-linux/en-gb/adminview_backgrnd.htm). [Skip to main content](#main-content) # Effective permissions A permission rule establishes who is impacted (a group set, group or user) and what [Capabilities](https://help.tableau.com/current/server-linux/en-gb/permissions_capabilities.htm#Capabili) they are **Allowed**, **Denied** or **Unspecified**. While it seems straightforward to simply set a permission rule and have that be the whole story, whether a user has a capability may be unclear because of membership in multiple groups and the interplay of site roles and ownership with permission rules. Multiple factors are evaluated in a specific order, yielding _effective permissions_ on a piece of content. > [!TIP] > >  To help keep things as straightforward as possible, we recommend (1) setting permission rules for groups instead of users, (2) managing permissions locked at the project level instead of setting permissions on individual content and (3) deleting the All User group’s permission rule or setting all capabilities to None. A capability is allowed for a user if and only if the following three conditions are all met: - The capability is within the scope of their site role. - They have that capability: - based on a specific user scenario (such as being the content owner or a project leader, or they’re an administrator site role), OR - because they have been allowed the capability as a user, OR - because they are both in a group that has been allowed the capability and no rules deny them the capability as a user or member of another group. - There is no conflicting permissions settings at another content level that takes precedence. Any other situation denies the user the capability. Hovering over a capability brings up a tooltip that explains the effective permission. Here are some common examples of why effective permissions – what the user can or can’t do in actuality – might appear different than what a given permission rule states: - A user might have a capability they are denied in a permission rule because their site role includes it (administrators). - A user might have a capability they are denied in a permission rule because their user scenario allows it (because they own the content or are a project owner or leader). - A user might lack a capability they are allowed in a permission rule because their site role doesn’t allow it. - A user might lack a capability they are allowed in a permission rule because a conflicting group or user rule denied it. - A user might lack a capability they are allowed in a permission rule at one level of content (such as a workbook) because another level of content denied it (such as a view). ## Evaluate permission rules Permissions in Tableau are restrictive. Unless a capability is granted to a user, they are denied permission. The following logic evaluates if a capability is allowed or denied for an individual: ![Flow chart of the rules for how permissions are evaluated](/tableau/current/en-gb/server-linux/en-gb/Img/perms_evalflow_basic.png) 1. **Site role:** If a site role doesn’t permit a capability, the user is denied. If the user's site role does permit the capability, then specific user scenarios are evaluated. - For example, a Viewer site role can’t web edit. See [General capabilities allowed with each site role](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm#site-role-capabilities-summary) for more information on what each site role can do. 2. **Specific user scenarios:**  - If the user is an admin they have all capabilities on all content. - If the user is a project owner or project leader, they have all capabilities on all content in their projects. - If the user is the content owner, they have all capabilities\* on their content. - If these scenarios do not apply to the user, then user rules are evaluated. \*Exception: Content owners won’t have the **Set Permissions** capability in projects where permissions are locked. Only administrators, project owners and project leaders can set permission rules in locked projects. 3. **User rules:** If the user is denied a capability, it is denied. If they are allowed a capability, it is allowed. If a capability is unspecified, then group rules are evaluated. 4. **Group rules:** If the user is in _any_ group that is denied a capability, it is denied. If the user is in a group that is allowed a capability (and not in any groups that are denied that capability), it is allowed. - That is to say, if a user is a member in two groups, and one is allowed a capability and one is denied the same capability, the denial takes precedence for that user and they are denied. 5. **Group set rules:** If a user is a member of a group in a group set, any group in the group set that is denied a capability is then denied. 6. If none of the above conditions apply, the user is denied that capability. In effect, this means that capabilities left as unspecified will result in denied. A final effective permission of **Allowed** therefore occurs in three circumstances: - Allowed by site role (Server Administrator, Site Administrator Creator, Site Administrator Explorer) - Allowed because the user is the content owner, project owner or project leader - Allowed by a group, group set or user rule (and not denied by a rule of higher precedence) **Denied** occurs in three circumstances: - Denied by site role - Denied by a rule (and not allowed by a rule of higher precedence) - Not granted by any rule ## Evaluate permissions set at multiple levels If Asset permissions are set to Customisable, it’s possible to configure permission rules in multiple places. There are specific rules that determine what permissions are applied on the content. - If there are nested projects, permissions set at the child level take precedence over permissions set at the parent level. - Changes to permissions at the project level are not enforced for existing content. - If there are permissions set on content (workbook, data source or flow) during or after publication, these take precedence over rules set at the project level. - If a workbook doesn’t show navigational sheet tabs, any changes to the workbook-level permissions _won’t_ be inherited by the views and any changes to permissions must be done on the view. - Configuring the workbook to show navigational sheet tabs will override existing view-level permissions and sync them with the workbook-level permissions. See [Show or Hide Sheet Tabs](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#sheettabs). ![Flow chart of the rules for how permissions are evaluated with nested projects](/tableau/current/en-gb/server-linux/en-gb/Img/perms_evalflow_total.png) This image shows how capabilities are evaluated through multiple levels of content. ## Permissions on views In a workbook that is not in a locked project and does not show sheets as tabs for navigation, views (sheets, dashboards, stories) inherit the workbook permissions at publication, but any changes to permission rules must be made on individual views. View capabilities are the same as those for workbooks, except for **Overwrite**, **Download Workbook/Save a Copy** and **Move** which are only available at the workbook level. We recommend showing navigational sheet tabs whenever possible so views continue to inherit their permissions from the workbook. For more information, see [Show or Hide Sheet Tabs](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#sheettabs). [Skip to main content](#main-content) # Enable and Configure Tableau Prep Conductor on Tableau Server _Supported in Tableau Server version 2019.1 and later._ Tableau Prep Conductor is licensed through Data Management, on a per-Deployment basis, which is User-Based or Core-Based. A Deployment includes a licensed production Tableau Server installation and licensed non-production Tableau Server installations that support the production installation. For more information on Deployment, see the [Tableau Deployment Guide](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_welcome.htm). For more information on how Tableau Prep Conductor licensing works, see [Licence Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_license.htm). ### Server Topology When you install Tableau Server and enable Tableau Prep Conductor using the Data Management product key, Tableau Prep Conductor is automatically enabled by default by the setup program. For multi-node installations, by default, one instance of Tableau Prep Conductor is enabled on any node that has backgrounder installed. In the example below, Tableau Prep Conductor is enabled on node 2 and 3 where the backgrounders are also enabled, but not on node 1, 4 and 5. ![The Tableau Server Status page showing Tableau Prep Conductor enabled on nodes 2 and 3 where the backgrounders are also enabled, but not on nodes 1, 4 and 5.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_multinode.png) Below is a visual representation of that work-flow: ![A flowchart that walks you through the process of installing and configuring a new Tableau Server, as well as upgrading an existing one.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_config_server_workflow.png) ## Next step: New Tableau Server Installations: [Step 1 (New Install): Install Tableau Server with Tableau Prep Conductor](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_new_install.htm) Existing Tableau Server Installations: [Step 1 (Existing Install): Enable Tableau Prep Conductor](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_add_to_existing_install.htm) ### Who can do this Server administrators can install Tableau Server and enable Tableau Prep Conductor. Server-level settings can be configured by Tableau Server administrators, and site-level settings can be configured by Tableau Server and Site administrators. ## Other articles in this section [Skip to main content](#main-content) # Enable Custom Schedules for Subscriptions Custom schedules for subscriptions allow users to receive email messages on a schedule that they define, rather than using a fixed schedule defined by a server administrator. Custom schedules for subscriptions have been available to users of Tableau Cloud since March 2017, and these schedules can now be enabled on a per-site basis in Tableau Server version 2018.2. Enabling custom schedules for subscriptions is a permanent change on any sites where you make this change. Any sites where you don’t enable custom schedules remain on fixed schedules defined by a server administrator. ## Enable custom schedules Before you can enable custom schedules on one or more sites, you must first enable custom schedules on Tableau Server, and then enable custom schedules on one or more sites on that server. To learn more about enabling subscriptions on Tableau Server, see [Set Up a Site for Subscriptions](https://help.tableau.com/current/server-linux/en-gb/subscribe.htm). **Step 1: Enable custom schedules on Tableau Server** From a command prompt with Tableau administrator permissions, run the following commands: ``` tsm configuration set -k features.SelfServiceSchedules -v true tsm pending-changes apply ``` This operation will restart Tableau Server. **Step 2: Enable custom schedules on a site** 1. Log in to Tableau Server as a server administrator using a web browser: ``` https:///#/login ``` 2. Browse to the **Site Settings** page for a site, and then enable custom schedules: 1. Click **All Sites**, and then choose one of the sites from the drop-down list. 2. Click **Settings**. 3. On the **General** tab, under **Subscriptions**, select the following tick box: **Permanently convert from fixed schedules created by administrators to custom schedules created by users. (You can't undo this)**. 4. Click **Save**. When custom schedules are enabled on a site, all fixed schedules with a subscription are converted to an equivalent custom schedule. [Skip to main content](#main-content) # Enable Extract Refresh Scheduling and Failure Notification Your publishers can schedule extract refreshes when two conditions are met: - Tableau Server is configured to send email messages when extract refreshes fail. This is configured by a Tableau Server Manager (TSM) administrator and is on by default. For details, see [Configure Server Event Notification](https://help.tableau.com/current/server-linux/en-gb/email.htm). - The site or sites in which you want to allow publishers to schedule extract refreshes is configured to send email when the refresh fails. This is configured by a server administrator in Tableau Server and is on by default. The instructions below explain how to do this if it is not enabled. While you’re enabling scheduling, you can decide whether also to enable sending email to owners of data sources or workbooks that are refreshed when those extract refreshes do not complete successfully. You can read more about these emails below. When you enable refresh failure notification, the owners of the content that has scheduled refreshes can opt out individually by changing their account settings. 1. Sign in to Tableau Server as a server administrator. 2. Go to the General tab of the Settings page for the site you want to configure for subscriptions: - If you have a single site, at the top the browser window, click Settings and General. - If you have multiple sites, select the site you want to configure and click Settings and General. 3. On the General page, do the following: - Scroll to the Manage Notifications settings and tick Extract jobs. If a scheduled refresh for a particular data source fails, the email goes only to the owner of that data source, not to owners of workbooks that connect to that data source. - Under Embedded Credentials, select both options to let publishers embed credentials and schedule extract refreshes. (Automatic refresh schedules require embedded credentials so Tableau Server can directly access data.) **Note:** On a multi-site server, failure notifications are a site setting, and embedded credentials are a server setting. To configure embedded credentials on a multi-site server, select Manage All Sites and then Settings. ## Managing schedules from the server In your organisation it might be more appropriate to manage embedded credentials and refresh schedules centrally from the server. If you do that, you might clear the tick boxes in the Embedded Credentials section described in the steps above, so that Tableau Desktop publishers do not see schedule options during publishing. Managing schedules centrally enables you to distribute extract refresh and subscription tasks, so you can run them when most people are offline. It also enables you to oversee which credentials are embedded in connections. ## How refresh failure emails work The email notification for a failed extract refresh lists the extract name and location on the server, gives the time of last successful refresh, the number of consecutive times the refresh has failed, and suggests the reason for the failure and possible solution. After five consecutive failures, the refresh schedule is suspended until you or the data owner takes an action to address the cause of the failure, such as updating database credentials or a path to the original data file. ## Enable refresh failure emails for non-admins **Note:** This option is not available for published data sources created or refreshed from Bridge. By default, only content owners receive notifications if there is a problem refreshing an extract. However, administrators can optionally choose to receive notifications when an extract fails. To enable email notifications when an extract fails, open the context menu (**...**) in the extract dashboard, select Extract Failure Notification and select **Yes** to receive notifications or **No** to stop notifications. ![Menu containing extract failure notification](/tableau/current/en-gb/server-linux/en-gb/Img/extract_failure_notify_menu.png "context menu") **Note**: If the current user is an owner of the extract, the ability to opt in or out of failure notifications is not available using the context menu. ### How the last successful refresh date is determined The last successful refresh date and time are shown when that last refresh occurred within a number of days. By default it is 14 days, and this value is set in `wgserver.alerts.observed_days`. If the number of days since the last successful refresh exceeds the number specified in this setting, the message in the email shows “not in the last _N_ days”. [Skip to main content](#main-content) # Enable Kerberos Delegation Kerberos delegation enables Tableau Server to use the Kerberos credentials of the viewer of a workbook or view to execute a query on behalf of the viewer. This is useful in the following situations: - You need to know who is accessing the data (the viewer's name will appear in the access logs for the data source). - Your data source has row-level security, where different users have access to different rows. ## Supported data sources Tableau supports Kerberos delegation with the following data sources: - Cloudera: Hive/Impala - Denodo - Hortonworks - Oracle - PostgreSQL - Spark - SQL Server - Teradata - Vertica MSAS is not supported on Linux platforms. ## Requirements Kerberos delegation requires Active Directory. - The Tableau Server [identity store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm) must be configured to use Active Directory. - The computer where Tableau Server is installed must be joined to the Active Directory domain. - MIT Kerberos KDC is not supported. ## Web authoring and user Kerberos authentication When configuring Connect to Data for a given target, you may select Integrated or Windows authentication as the preferred authentication method. However, for web authoring scenarios, the default behaviour will be to use the Kerberos service account (“Run As” account) instead. To enable user credentials in web authoring scenarios with Kerberos delegation, you must make an additional configuration using TSM. Run the following commands: tsm configuration set -k native\_api.WebAuthoringAuthModeKerberosDelegation -v true tsm pending-changes apply After making this configuration, Kerberos Delegation becomes the default operation when selecting integrated authentication with web authoring. However, this setting will not prevent content creators from accessing the service account. Creators can still publish content that connects with the Run As service account, using Tableau Desktop or other methods. For more information on Run As service account, see [Enable Kerberos Service Account Access](https://help.tableau.com/current/server-linux/en-gb/kerberos_runas_linux.htm). ## Configuration process This section provides an example of the process to enable Kerberos delegation. The scenario also includes example names to help describe the relationships between the configuration elements. 1. Tableau Server will need a Kerberos service ticket to delegate on behalf of the user that is initiating the call to the database. You must create a domain account that will be used to delegate to the given database. This account is referred to as the Run As service account. In this topic, the example user configured as the delegation/Run As account is `tabsrv@example.com`. The account must be configured with Active Directory User and Computers on a Windows Server that is connected to the user domain: - Open the **Properties** page for the Run As service account, click the **Delegation** tab and select **Trust this user for delegation to specified services only** and **Use any authentication protocol**. 2. Create a keytab file for the Run As service account. For example, the following commands create a keytab `(tabsrv-runas.keytab`) using the ktutil tool: sudo ktutil ktutil: addent -password -p tabsrv@EXAMPLE.COM -k 2 -e Encryption schemes for this command include `RC4-HMAC`, `aes128-cts-hmac-sha1-96` and `aes256-cts-hmac-sha1-96`. Consult your IT team for the correct encryption scheme for your environment and data source. ktutil: wkt tabsrv-runas.keytab Tableau Server will use the Run As service account and the associated keytab to authenticate and make a direct connection to the database. 3. Copy the keytab into the Tableau Server data directory and set proper ownership and permissions. If you are running a multi-node deployment, then you must run the following commands on each node in the cluster. mkdir /var/opt/keytab sudo cp -p tabsrv-runas.keytab /var/opt/keytab sudo chown $USER /var/opt/keytab/tabsrv-runas.keytab chgrp tableau /var/opt/keytab/tabsrv-runas.keytab chmod g+r /var/opt/keytab/tabsrv-runas.keytab 4. Run the following TSM commands to enable Kerberos delegation, set the delegation service account, and associate the keytab file with the service account: tsm configuration set -k wgserver.delegation.enabled -v true tsm configuration set -k native\_api.datasource\_impersonation\_runas\_principal -v tabsrv@EXAMPLE.COM tsm configuration set -k native\_api.datasource\_impersonation\_runas\_keytab\_path -v /var/opt/keytab/tabsrv-runas.keytab tsm configuration set -k native\_api.protocol\_transition\_a\_d\_short\_domain -v false tsm configuration set -k native\_api.protocol\_transition\_uppercase\_realm -v true In some cases, TSM may return an error mentioning `--force-keys`. If you get this error, run the command again with the `--force-keys` parameter appended to the argument. 5. Run the following TSM command apply the changes to Tableau Server: `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). 6. Enable delegation for data connections: - **SQL Server** – See [Enabling Kerberos Delegation for SQL Server](https://community.tableau.com/s/question/0D54T00000CWcplSAD/enabling-kerberos-delegation-for-sql-server) in the Tableau Community. - **PostgreSQL** – See [Enabling Kerberos Delegation for PostgreSQL](https://community.tableau.com/s/question/0D54T00000G54ssSAB/enabling-kerberos-delegation-for-postgresql) in the Tableau Community. - **Teradata** – See [Enabling Kerberos Delegation for Teradata](https://community.tableau.com/s/question/0D54T00000G54tCSAR/enabling-kerberos-delegation-for-teradata) in the Tableau Community. - **Denodo** – See [Enabling Kerberos Delegation for Denodo on Linux](https://community.tableau.com/s/question/0D54T00000CWdD7SAL/enabling-kerberos-delegation-for-denodo-on-linux) in the Tableau Community. - **Oracle** – See [Enable Kerberos Delegation for Oracle](https://community.tableau.com/s/news/a0A4T000002O42jUAC/enable-kerberos-delegation-for-oracle) in the Tableau Community. - **Cloudera** – See [Enable Kerberos Delegation for Hive/Impala](https://community.tableau.com/s/question/0D54T00000CWdINSA1/enable-delegation-for-hiveimpala) in the Tableau Community. - **Vertica** – See [Enabling Kerberos Delegation for Vertica](https://community.tableau.com/s/question/0D54T00000CWd5sSAD/enabling-kerberos-delegation-for-vertica) in the Tableau Community. ## See also [Troubleshoot Kerberos](https://help.tableau.com/current/server-linux/en-gb/kerberos_trouble.htm) ## Other articles in this section [Skip to main content](#main-content) # Enable Kerberos Delegation for JDBC Connectors As of version 2020.2, Tableau Server supports Kerberos delegation for JDBC connectors. Kerberos delegation enables Tableau Server to use the Kerberos credentials of the viewer of a workbook or view to execute a query on behalf of the viewer. This is useful in the following situations: - You need to know who is accessing the data (the viewer's name will appear in the access logs for the data source). - Your data source has row-level security, where different users have access to different rows. ## Supported data sources Tableau supports JDBC Kerberos RunAs authentication with the following data sources: - Oracle - PostgreSQL Both native and JDBC-based connectors use the same configuration on Tableau Server on Linux. See [Enable Kerberos Delegation](https://help.tableau.com/current/server-linux/en-gb/kerberos_delegation.htm). [Skip to main content](#main-content) # Enable Kerberos Run As Authentication for JDBC Connectors As of version 2020.2, Tableau Server supports Kerberos authentication for JDBC connectors. You can configure Tableau Server to use a Kerberos service account to access a database. In this scenario, Tableau Server connects to databases with a service account, also referred to as a "Run As service account". This scenario is referred to as "Run As authentication" To use Run As authentication on Tableau Server you must first create a workbook or datasource in Tableau Desktop that uses integrated authentication. When you publish to Tableau Server you will get the option to use Run As authentication. When creating a datasource with Web Authoring, Run As authentication is the default operation if you select integrated authentication. ## Supported data sources Tableau supports JDBC Kerberos delegation with the following data sources: - Oracle - PostgreSQL Both native and JDBC-based connectors use the same configuration on Tableau Server on Linux. To configure Run As authentication see [Enable Kerberos Service Account Access](https://help.tableau.com/current/server-linux/en-gb/kerberos_runas_linux.htm). [Skip to main content](#main-content) # Enable Kerberos Service Account Access You can configure Tableau Server to use a Kerberos service account to access a database. In this scenario, Tableau Server connects to databases with a service account, also referred to as a "RunAs account". To use RunAs authentication on Tableau Server you must first create a workbook or datasource that uses integrated authentication. When users publish to Tableau Server they will get the option for RunAs authentication. If you create a datasource with Tableau Server web authoring that uses integrated authentication, the datasource will use RunAs authentication by default. **Note**: _Integrated authentication_ is also referred to as _Windows Authentication_ on some connectors. In both cases, Tableau Server uses Kerberos authentication. ## Data Access with the RunAs Service Account To use RunAs authentication, the RunAs account requires read and query permissions to external databases. As designed, Tableau Server users with the _Creator_ role or the _Explorer (Can Publish)_ role have full access to the RunAs account for queries to external databases. For example, a user with the Creator role can view all databases that have been granted access to the RunAs service account. They can also list tables and run Custom SQL. If the Creator-user specifies the database host name and selects Integrated Authentication when creating a new data source with web authoring, then databases that have been granted RunAs access will be displayed to the user. View access to database assets are not restricted to users who connect to Tableau Server with web authoring. Sophisticated users, who have the same roles noted above and who have knowledge of database server names, could create workbooks with Tableau Desktop that display databases that have been granted RunAs access. ### Recommendations Whether user access to databases in these scenarios is acceptable must be assessed by your organisation. Generally, reducing the usage and scope of the RunAs service account will reduce the likelihood of inadvertent user access to database content. However, reducing the usage and scope of the RunAs service account may also impose more credential management to you and your users. Evaluate the following recommendations in context of your business needs and data access policies. - Firstly, be sure that you trust all users who have Creator roles or Explorer (Can Publish) roles. You will rely on these users to perform actions in Tableau with integrity. - If you cannot trust all of your users who have publishing rights on data sources that are accessed by the RunAs service account, then you should consider embedding credentials for those data sources. - If a data source is not set up for automated extract refreshes, that is, the data source is primarily accessed as a live connection, then you may be able to use Kerberos Delegation. For requirements, see [Enable Kerberos Delegation](https://help.tableau.com/current/server-linux/en-gb/kerberos_delegation.htm). ## Requirements - MIT Kerberos is not supported. - The RunAs service account must have read access to the target database. ## Configuration process This section provides an example of the process to enable Kerberos service account access. 1. Create a domain user account to act as the RunAs service account. This account must have read access to the target database. In the example here, the RunAs service account is User principal named `tabsrv@example.com`. 2. Create a keytab file for the RunAs service account. For example, the following commands create a keytab `(tabsrv-runas.keytab`) using the ktutil tool: ktutil ktutil: addent -password -p tabsrv@EXAMPLE.COM -k 2 -e Encryption schemes for this command include `RC4-HMAC`, `aes128-cts-hmac-sha1-96` and `aes256-cts-hmac-sha1-96`. Consult your IT team for the correct encryption scheme for your environment and data source. ktutil: wkt tabsrv-runas.keytab Tableau Server will use the RunAs service account and the associated keytab to authenticate and make a direct connection to the database. 3. Copy the keytab into the Tableau Server data directory and set proper ownership and permissions. The keytab should be readable by the unprivileged user. The default unprivileged user created by Tableau Setup is `tableau`. If you are running a multi-node deployment, then you must run the following commands on each node in the cluster: mkdir /var/opt/tableau/tableau\_server/keytab sudo cp -p tabsrv-runas.keytab /var/opt/tableau/tableau\_server/keytab sudo chown $USER /var/opt/tableau/tableau\_server/keytab/tabsrv-runas.keytab chgrp tableau /var/opt/tableau/tableau\_server/keytab/tabsrv-runas.keytab chmod g+r /var/opt/tableau/tableau\_server/keytab/tabsrv-runas.keytab 4. Run the following TSM commands to enable RunAs access, set the RunAs service account, and associate the keytab file with the service account. tsm configuration set -k features.RunAsAuthLinux -v true --force-keys tsm configuration set -k native\_api.datasource\_runas\_principal -v tabsrv@EXAMPLE.COM --force-keys tsm configuration set -k native\_api.datasource\_runas\_keytab\_path -v /var/opt/tableau/tableau\_server/keytab/tabsrv-runas.keytab --force-keys 5. Run the following TSM command apply the changes to Tableau Server deployment: `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ## Other articles in this section [Skip to main content](#main-content) # Enable Tableau Catalog [Tableau Catalog](https://help.tableau.com/current/server/en-gb/dm_catalog_overview.htm) discovers and indexes all of the content on your Tableau Cloud site or Tableau Server, including workbooks, data sources, sheets, metrics and flows. (The legacy Metrics feature was retired in February 2024 for Tableau Cloud and in Tableau Server version 2024.2. For more information, see [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/online/en-gb/metrics_create.htm).) Indexing is used to gather information about the content, or metadata, about the schema and lineage of the content. Then from the metadata, Catalog identifies all of the databases, files and tables used by the content on your Tableau Cloud site or Tableau Server. Catalog is available with the Data Management licence. For more information, see [About Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_overview.htm). In addition to Catalogue, metadata about your content can also be accessed from both the [Tableau Metadata API](https://help.tableau.com/current/api/metadata_api/en-gb/index.html) and the Tableau REST API using [Metadata Methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_metadata.htm). ## Before enabling Catalogue As a Tableau Server admin, there are a few things that you need to consider before and while enabling Catalogue to ensure optimal performance of Catalogue in your Tableau Server environment. ### Required versions Before enabling Catalogue, make sure you're running _one_ of the following versions of Tableau Server: - At least Tableau Server 2019.3.4 or later - At least Tableau Server 2019.4.2 or later - At least Tableau Server 2020.1.0 or later - At least Tableau Server 2020.2.15 or later - Tableau Server 2020.3 and later For more information about why these versions are required, see the [Tableau Knowledge Base](https://kb.tableau.com/articles/issue/lineage-not-populating-permissions-not-effective-and-vizzes-load-slowly-after-upgrade?lang=en-gb). ### What to expect when enabling Catalogue When Catalogue is enabled, the content that already exists on your Tableau Server is immediately indexed. #### Initial ingestion The indexing process is comprised of two primary components, one of which is called initial ingestion. Initial ingestion can be broken down into two additional components: - Content backfill - Lineage backfill The status of content backfill and lineage backfill are important to note later on when monitoring progress and validating that Catalogue has been successfully turned on and is running in your Tableau Server environment. #### Initial ingestion speed The time it takes Catalogue to index the content for the first time depends on a couple of factors: - **Amount of content on Tableau Server:** The amount of content is measured by the total number of workbooks, metrics, published data sources and flows published to Tableau Server. For more information, see [Disk space to store metadata](#Disk). - **Number of non-interactive microservice containers:** Catalogue uses the non-interactive microservice containers to index all the content on Tableau Server. For more information, see [Memory for non-interactive microservice containers](#Memory). Understanding the factors that impact initial ingestion can help you gauge how long it might take to enable and run Catalogue in your environment. #### Disk space to store metadata During initial ingestion, metadata is generated and stored in the Tableau Server repository (“relationship” PostgreSQL database). The amount of disk space needed to store the metadata is roughly up to half of the disk space currently used by the repository ("workgroup" PostgreSQL database). For example, suppose the repository uses 50 GB of disk space prior to enabling Catalogue, the repository can use up to 75 GB of disk space after enabling Catalogue. #### Memory for non-interactive microservice containers Initial ingestion runs inside the non-interactive microservice container. The non-interactive microservice container is one of two [Tableau Server microservice container](https://help.tableau.com/current/server/en-gb/server_process_container.htm) processes. By default, one instance of the non-interactive microservice container process is added to every node that has a backgrounder process installed. By default, initial ingestion on a single instance of the non-interactive microservice container can use up to 4 GB of memory on the backgrounder node. If the amount of content on Tableau Server exceeds 10,000, a non-interactive microservice container process may require up to 16 GB of memory on the backgrounder node. Therefore, when enabling Catalogue, ensure that every backgrounder node has the available capacity to support each non-interactive microservice container during the initial ingestion process. If you are planning to add more non-interactive microservice containers to decrease the time of initial ingestion, first determine how many total containers are needed (using [Step 2: Estimate how long initial ingestion will take](#step2), below) and then verify whether your Tableau Server environment is configured with enough capacity to support _all_ non-interactive microservice containers. Depending on how your Tableau Server environment is already configured, you might not be able to add all the additional non-interactive microservice containers that you need to decrease initial ingestion time. ### Best practices for enabling Catalogue Because the speed of initial ingestion and requirements are unique to each Tableau Server environment, Tableau recommends that when you enable Catalogue you do one or more of the following: - Make sure there is enough disk space that the Tableau Server repository can use to support the additional metadata that initial ingestion will generate and store. As a general rule, the repository will need an additional 50% of disk space currently used by the repository. For more information about Tableau Server disk usage, see [Server Disk Space](https://help.tableau.com/current/server-linux/en-gb/adminview_space_all_nodes.htm). - Depending on the amount of content on Tableau Server, make sure each backgrounder node has at least 4–16 GB of available memory for each instance of a non-interactive microservice container during initial ingestion. - Perform the process over the weekend to allow initial ingestion to complete before your users start using Catalogue capabilities. - Perform the process in a test environment with production content first. This is because the type of content that needs to be ingested can play a significant role on ingestion speed. ### Summary of steps to enable Catalogue The following steps summarise the process to turn on and run Catalogue on Tableau Server. The steps must be performed sequentially. 1. [Determine the amount of content on Tableau Server](#step1) 2. [Estimate how long initial ingestion will take](#step2) 3. [Decrease the time of initial ingestion](#step3) 4. [Activate the Data Management licence](#step4) 5. [Turn off Catalogue capabilities](#step5) 6. [Run the tsm maintenance metadata-services command](#step6) 7. [Monitor initial ingestion progress and validate its status](#step7) 8. [Configure SMTP](#step8) 9. [Turn on Catalogue capabilities](#step9) **Note:** Because indexing metadata about Tableau content on Tableau Server is powered by the Metadata API, enabling the Metadata API is required to run and use Catalogue. ## Enable Catalogue #### Step 1: Determine the amount of content on Tableau Server To determine the amount of content on Tableau Server, do the following: 1. Sign in to Tableau Server using your admin credentials. 2. Go to the **Explore** page. 3. Click the Top-Level Project drop-down menu and add the numbers next to All Workbooks, All Metrics, All Data Sources, and All Flows together. This is the total amount of content on Tableau Server. #### Step 2: Estimate how long initial ingestion will take To estimate the time it will take Catalogue to ingest content on Tableau Server for the first time (initial ingestion), compare _your_ Tableau Server setup to a _baseline_ Tableau Server setup. For a Tableau Server with the following setup, initial ingestion could take about 6 hours to complete. | Components | Baseline values | | --- | --- | | Content | 17,000 workbooks, metrics, published data sources and flows | | Non-interactive microservice containers | 10 | | Ingestion | ~6 hours | If you have roughly _half_ the content in your Tableau Server environment, initial ingestion might take half the time to complete. For example: 8,500 (workbooks, metrics, published data sources and flows) + 10 non-interactive microservice containers = ~3 hours (initial ingestion) If you have roughly _double_ the content in your Tableau Server environment, initial ingestion might take double the time to complete. For example: 34,000 (workbooks, metrics, published data sources and flows) + 10 non-interactive microservice containers = ~12 hours (initial ingestion) #### Step 3: Decrease the time of initial ingestion As a general rule, the time it takes for Catalogue to perform initial ingestion is correlated to the number of non-interactive microservice containers. To help decrease the time of initial ingestion, you can increase the number of non-interactive microservice containers. **Increase the number of non-interactive microservice containers** By default, one non-interactive microservice container is added to every node that has a backgrounder. To help decrease the time of initial ingestion, Tableau recommends that you increase the number of non-interactive microservice containers using the `tsm topology set-process` command. 1. Open a command prompt as an admin on the initial node (where TSM is installed) in the cluster. 2. Run the command: `tsm topology set-process --count --node --process ` For example, to increase the non-interactive microservice containers on the initial node to 4 containers, run the following command: `tsm topology set-process --count 4 –-node node1 --process noninteractive` For more information about running the command and its global options, see [tsm topology](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMSetProcess#TSMSetProcess). **Important:** Before increasing the number of non-interactive microservice containers, review the following:  - The recommendation for increasing non-interactive microservice containers is for the total number of non-interactive microservice containers, not the total non-interactive microservice containers per node. For example, suppose you have 4 nodes but you want to increase the number of non-interactive microservice containers to 8. The `--count` value you use in the tsm command is 2. - For each non-interactive microservice container added, 4 GB of additional memory will be used on the node, and the load will be added to the Tableau Server repository (PostreSQL database). - Tableau recommends that you incrementally increase non-interactive microservice containers by no more than 2 at a time while closely monitoring your Tableau Server environment to avoid issues with CPU utilisation of the Tableau Server repository (PostgreSQL database). - Be aware that when too many non-interactive microservice containers are added, CPU utilisation of the PostgreSQL database might spike and failover. Symptoms to watch for include SQLException errors in the vizportal logs. For more information, see [Repository Failover](https://help.tableau.com/current/server/en-gb/distrib_ha_failover.htm) topic. #### Step 4: Activate the Data Management licence (Requires Data Management) If not already done, you can activate Data Management. For more information, see [Licence Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_license.htm). #### Step 5 (optional): Turn off Catalogue capabilities for each site (Requires Data Management) As part of Data Management activation, Catalog capabilities are turned on by default. Because of the indexing process and the estimated time it takes to complete, consider temporarily turning off Catalogue capabilities for each site so that Tableau Server users can't access Catalogue capabilities until Catalogue is ready and able to provide complete and accurate results. 1. Sign in to Tableau Server using your admin credentials. 2. From the left navigation pane, click Settings. 3. On the General tab, under Tableau Catalogue, clear the Turn on Tableau Catalogue tick box. 4. Repeat steps 2-3 for each site on your Tableau Server. #### Step 6: Run the tsm maintenance metadata-services command Run the `tsm maintenance metadata-services` command to enable the Tableau Metadata API. Running the command begins initial ingestion. If your Tableau Server is licensed with Data Management, running the command also turns on Catalog capabilities (if it wasn’t turned off earlier). 1. Open a command prompt as an admin on the initial node (where TSM is installed) in the cluster. 2. Run the command: `tsm maintenance metadata-services enable` For more information about running the tsm command, see [tsm maintenance](https://help.tableau.com/current/server/en-gb/cli_maintenance_tsm.htm#cat_enable). **Notes:** When running this command, keep the following points in mind: - This command stops and starts some services used by Tableau Server, which causes certain functionality, such as the Recommendations capability, to be temporarily unavailable. - A new index of metadata is created at this time. Running this command any subsequent times will create and replace the previous index. #### Step 7: Monitor initial ingestion progress and validate its status Running the tsm command above starts the initial ingestion process. To ensure that the initial ingestion process is going smoothly, you can monitor its progress using the Backfill API. For more information, see [Get Initial Ingestion Status](https://help.tableau.com/current/server-linux/en-gb/dm_tools_backfill.htm). #### Step 8: Configure SMTP Setup If not already set up for Tableau Server, configure SMTP Setup. SMTP supports sending email to owners who need to be contacted about changes to data. For more information about configuring SMTP, see [Configure SMTP Setup](https://help.tableau.com/current/server/en-gb/config_smtp.htm). #### Step 9 (optional): Turn on Catalogue capabilities for each site (Requires Data Management) If you turned off Catalogue capabilities before enabling Catalogue in one of the procedures above, you must turn on Catalogue to make its capabilities accessible to your users. 1. Sign in to Tableau Server using your admin credentials. 2. From the left navigation pane, click Settings. 3. On the General tab, under Tableau Catalogue, tick the Turn on Tableau Catalogue box. 4. Repeat steps 2-3 for each site on your Tableau Server. ## Troubleshoot Catalogue You or your users might encounter one of the following issues when using Catalogue. #### Timeout limit and node limit exceeded messages To ensure that Catalogue tasks that have to return a large number of results don’t take up all Tableau Server system resources, Catalogue implements both timeout and node limits. - **Timeout limit** When tasks in Catalogue reach the timeout limit, you and your users see the following message: “_Showing partial results, Request time limit exceeded. Try again later._” or TIME\_LIMIT\_EXCEEDED To resolve this issue, as a Tableau Server admin, you can increase the timeout limit using the `tsm configuration set –k metadata.query.limits.time` command. For more information, see the [tsm configuration](https://help.tableau.com/current/server/en-gb/cli_configuration_tsm.htm) and [tsm configuration set Options](https://help.tableau.com/current/server/en-gb/cli_configuration-set_tsm.htm#metadata_timeout) topics. **Important:** Increasing the timeout limit can utilise more CPU for longer, which can affect the performance of other processes on Tableau Server. - **Node limit** When tasks in Catalogue reach the node limit, you and your users see the following message: NODE\_LIMIT\_EXCEEDED To resolve this issue, as a Tableau Server admin, you can increase the node limit using the `tsm configuration set –k metadata.query.limits.count` command. For more information, see the [tsm configuration](https://help.tableau.com/current/server/en-gb/cli_configuration_tsm.htm) and [tsm configuration set Options](https://help.tableau.com/current/server/en-gb/cli_configuration-set_tsm.htm#metadata_nodelimit) topics. **Important:** Increasing the timeout limit can affect system memory. #### Missing content - If you suspect, after initial ingestion, content is missing from Catalogue, you can use the Eventing API to help troubleshoot. Eventing handles indexing content on Tableau Server after initial ingestion. For more information, see [Get Eventing Status](https://help.tableau.com/current/server-linux/en-gb/dm_tools_eventing.htm). - When the connection between an embedded external asset and its downstream Tableau content is removed, it remains in Catalogue (or the Tableau Metadata API) until it’s automatically deleted by a backgrounder process that runs everyday at 22:00:00 UTC (coordinated universal time). For example, suppose a workbook, initially published with an embedded text file A, is republished with an embedded text file B. File A remains visible (or query-able) as an external asset until the backgrounder processes is able to delete it. You can disable this backgrounder process from running if you do not want to remove these types of external assets or if you believe that it takes up system resources that you don’t want to dedicate to this process. Alternatively, you can adjust the number of external embedded assets that are deleted. For more information, see [features.DeleteOrphanedEmbeddedDatabaseAsset](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#metadata_orphanembedded) and [databaseservice.max\_database\_deletes\_per\_run](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#metadata_orphanembedded_maxnumber). You can monitor this process in one of two ways: - Filter on the **One-time job re-canonicalise existing database/table assets after a canonicalisation logic change** task type in the [Background Tasks for Non Extracts](https://help.tableau.com/current/server/en-gb/adminview_backgrnd_nonextract.htm) admin view. - Refer to the **Finished removal of orphaned embedded databases** or **database\_service\_canonicalisation\_change** events in the [Tableau Server log files](https://help.tableau.com/current/server/en-gb/logs_loc.htm). #### Performance after initial ingestion In some Tableau Server environments where specific content that is updated very frequently (for example, through high-frequency schedules or command line or API requests), the indexing process might get over saturated. In these cases, as the server admin, you might consider enabling event throttling to better preserve Catalogue performance. For more information, see [metadata.ingestor.pipeline.throttleEventsEnable](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#metadata_eventthrottle_enable). **Note:** When event throttling is enabled, users might notice an intended delay in content changes in Catalogue. #### Out of memory errors In some cases, Tableau Server out of memory errors can occur as a result of problems with ingesting complex content. If you suspect ingestion is the cause of the out of memory errors on your Tableau Server, contact and work with Tableau Support to [metadata.ingestor.blocklist](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#metadata_blocklist) from being ingested to help resolve the issue. ## Disable Catalogue You can disable Catalog in one of two ways. #### Turn off Catalogue capabilities for each site (Requires Data Management) You can turn off Catalogue capabilities at any time. When Catalog capabilities are turned off, the features of Catalog, such as adding data quality warnings or the ability to explicitly manage permissions to database and table assets, are not accessible. However, Catalogue continues to index published content and the metadata is accessible from the Tableau Metadata API and metadata methods in the Tableau REST API. 1. Sign in to Tableau Server using your admin credentials. 2. From the left navigation pane, click Settings. 3. On the General tab, under Tableau Catalogue, clear the Turn on Tableau Catalogue tick box. #### Stop indexing metadata To stop indexing the published content on Tableau Server, you can disable the Tableau Metadata API. To disable the Metadata API, run the `tsm maintenance metadata-services disable` command. For more information, see [tsm maintenance](https://help.tableau.com/current/server/en-gb/cli_maintenance_tsm.htm#cat_disable). ## Other articles in this section [Skip to main content](#main-content) # Enable the JMX Ports To help you work through a problem with Tableau Server, Tableau Support may ask you to enable the server's JMX ports. These ports can be useful for monitoring and troubleshooting, usually with a tool like JConsole. In versions 2022.1 and later, the JMX ports can be enabled securely and this is the recommended method. In versions earlier than 2022.1, you can only enable the ports unsecured. ## Enable secure JMX ports Beginning with version 2022.1 of Tableau Server, you can enable JMX ports securely. This procedure explains how to enable secure JMX. To enable JMX in earlier versions, see [Enable unsecured JMX ports](#EnableUnsecureJMX) below. To enable secure JMX ports on Tableau Server: 1. Log on as a user with `sudo` access to the computer where TSM is installed. 2. Run this command: tsm maintenance jmx enable The command has several options you can provide when running it. If you do not provide any options when you run the command, you will be prompted for options based on the answers you give. For example: C:\\Windows\\system32>tsm maintenance jmx enable We do not recommend you enable JMX unsecured on a production environment. Would you like to enable security features for JMX? (y/n): y JMX access is readonly by default. Would you like to add readwrite access? (y/n): n Would you like to enable SSL? (y/n): y Would you like to require client authentication (mTLS)? (y/n): n Enabling JMX with the specified settings. This will perform a server restart. Do you want to continue? (y/n): y Starting enable JMX asynchronous job. For more information on the command and its options, see [tsm maintenance jmx enable](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#jmx_enable). Enable unsecured JMX ports For versions of Tableau Server earlier than 2022.1.0, if you are enabling JMX ports, they can only be enabled unsecured. **Important** Enabling unsecured JMX ports can introduce some security risk. We strongly recommend using secure JMX. If you do not have a version of Tableau Server that supports this, be aware of the risk and mitigate it by limiting access to the JMX ports to the fewest number of clients that's practical for your scenario. You typically limit access using the host's firewall rules, an external security device or routing rules. To enable unsecured JMX ports on Tableau Server: 1. [Stop the server.](https://help.tableau.com/current/server-linux/en-gb/cli_stop_tsm.htm#stop) 2. Enter the following command: ``` tsm configuration set -k service.jmx_enabled -v true ``` 3. Apply pending changes: ``` tsm pending-changes apply ``` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). 4. Restart the Coordination Service and TSM Administration Controller (as _tableau_ system account): `sudo su -l tableau -c "systemctl --user restart appzookeeper_0.service"` `sudo su -l tableau -c "systemctl --user restart tabadmincontroller_0.service"` It may take a few minutes for tabadmincontroller to restart. If you attempt to apply pending changes in the next step before the controller has fully restarted, TSM will not be able to connect to the controller. You can verify that the controller is running by using the `tsm status -v` command. Tableau Server Administration Controller should be listed as "is running". 5. [Start the server](https://help.tableau.com/current/server-linux/en-gb/cli_start_tsm.htm#start). ## How the JMX Ports Are Determined By default, the JMX ports assigned dynamically, from within a range of available ports. For details on how port assignment is done, and how to override dynamic mapping, see [Tableau Services Manager Ports](https://help.tableau.com/current/server-linux/en-gb/ports.htm). [Skip to main content](#main-content) # Encrypted Data Collection To make sure the data collection from Tableau Server to Tableau Resource Monitoring Tool is encrypted, communications between RMT Server and Agents and connections to Tableau Server Repository have to be enabled to use encrypted messaging. ## For versions 2022.3 and later - If RabbitMQ is installed on the same machine as the RMT Server (local configuration), Tableau Resource Monitoring Tool has built-in encrypted communications between RMT Server and agents. There is no setup required for encryption between RabbitMQ and RMT Server. - If RabbitMQ is hosted external to RMT Server (external configuration), you must follow the same steps as described in the [For versions 2022.2 and earlier](#For) section in this topic You still need to enable and configure the [encrypted communications to Tableau Server](#Tableau) repository database in both cases stated above. ## Tableau Repository SSL Configuration 1. Make sure Tableau Server is configured to use SSL connections for internal Postgres connections. For more information, see [Configure SSL for Internal Postgres Communication](https://help.tableau.com/current/server-linux/en-gb/ssl_config_postgres.htm). The Resource Monitoring Toolallows you to use either the certificate file or thumbprint for the SSL connections. If you plan to use the certificate file, copy the certificate file generated by Tableau Server for internal Postgres SSL connections to the machine where you plan to install the RMT Server. For more information, see [Configure Postgres SSL to Allow Direct Connections from Clients](https://help.tableau.com/current/server-linux/en-gb/ssl_config_direct_cx.htm). 2. On the RMT Server web interface, from the Admin menus, select Environments. Click on the edit environment icon. In the Tableau Repository Configuration section: 1. In the SSL Mode drop-down box, select Prefer SSL or Require SSL to configure SSL connections to Tableau Repository. Choosing Disable means SSL will never be used to make Tableau Server Repository connections. In the Prefer SSL mode, the Resource Monitoring Tool will use SSL in the first attempt, and if that fails, the subsequently attempts a non-encrypted connection. In the Require SSL mode, if the SSL connection fails, the connections to Tableau Server Repository will fail entirely. In this case, Tableau Server REST API connections will be used to communicate with Tableau Server. 2. You can choose to either supply the thumbprint that was generated by Tableau Server, or copy the **server.crt** file to the Resource Monitoring Tool Master Server machine. If you choose to copy the certificate file, you don't have to supply the thumbprint. For more information, see [Configure Postgres SSL to Allow Direct Connections from Clients](https://help.tableau.com/current/server-linux/en-gb/ssl_config_direct_cx.htm). ## For versions 2022.2 and earlier Encrypted communication between the Agent(s) and RMT Server is possible by performing the following: - [Configuring RabbitMQ with SSL/TLS certificates.](#RabbitMQ) - [Configuring the RMT Server and Agent(s) to enable encrypted messaging.](#Setup) - [Configuring encrypted connections to Tableau Repository](#Tableau). ## RabbitMQ Setup For details on RabbitMQ server setup please reference RabbitMQ’s documentation for [TLS Setup](https://www.rabbitmq.com/ssl.html). ## Tableau Resource Monitoring Tool Setup After RabbitMQ has been configured for TLS all-client applications, the Tableau Resource Monitoring Tool RMT Server and all Agents will need to be configured to enable encrypted messaging. Do the following on the RMT Server web interface: 1. On the machine where RMT Server is installed, go to: _http:///setup/server_. 2. In the Message Queue section, tick the Enable TLS box, and provide the Certificate Host Name. 3. Update the port information if needed. When configuring the RMT Server and agent(s) for encrypted messaging: - Both the `enabled` flag and the `certificateHostName` must be configured for encryption to be enabled. - The `certificateHostName` variable must match the canonical name (CN=) on the server certificate or the connection will fail. - The `port` number will likely need to be changed based on the TLS port you configured on RabbitMQ. **Note:** If the Agents were already registered before SSL was configured, then you must re-register the agent. To do this, download the new bootstrap file and re-register the Agent using the new bootstrap file. For more information on re-registering the Agent, see [Re-registering an Agent](https://help.tableau.com/current/server-linux/en-gb/rmt-tableau-server-topology-changes.htm#reregister-agent). ## Who can do this To configure an encrypted data collection you must be both a Tableau Server Administrator and a Resource Monitoring Tool administrator. [Skip to main content](#main-content) # Ensure Access to Subscriptions and Data-Driven Alerts To ensure that users see the Subscribe and Alert buttons in the Tableau Server toolbar and can receive related emails, do the following: - **Configure SMTP and event notifications on Tableau Server**: See [Set Up a Site for Subscriptions](https://help.tableau.com/current/server-linux/en-gb/subscribe.htm). - **Ensure that users have an email address in Tableau Server**: Users can update their email address on [their account settings page](http://onlinehelp.tableau.com/current/pro/desktop/en-gb/useracct.htm). - **Embed database credentials or don't require them**: To email data in a view, Tableau Server needs to access the data without user involvement. This can be accomplished by using a workbook with embedded database credentials, a Tableau Server data source or data that doesn't require credentials (such as a file that's included with the workbook at publish time). - **Ensure that users can access needed workbooks and views**: Access to workbooks and views on the server is controlled by the View permission. To receive images of content in email messages, users also need the Download Image/PDF permission. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#permissioncapabilities). - **Avoid trusted authentication for embedded views**: If you use restricted tickets (the default) to render an embedded view, the Subscribe and Alert buttons don't appear. (Alerts only) Ensure that users can access published data sources with View and Connect capabilities. [Skip to main content](#main-content) # Entity Definitions and Templates You can use the entity definitions and templates with the `tsm settings import` command to configure various Tableau Server settings. ## Other articles in this section [Skip to main content](#main-content) # Environment Down Incidents _Environment Down_ incidents will be logged as critical when we detect that your Tableau Server is offline. Following are couple of use cases where Tableau Server is considered offline by Tableau Resource Monitoring Tool: - Resource Monitoring Tool is unable to get a response from Tableau Server. Resource Monitoring Tool will retry three times before the incident is logged. - If Resource Monitoring Tool detects that a process is down across all the nodes, an environment down incident will be logged. Resource Monitoring Tool polls Tableau Server’s `http://{TableauServerUrl}/admin/systeminfo.xml` page every 30 seconds (by default) to check the status. If the 30 second polling interval is not sufficient, increase the interval to 60 seconds. If the status is offline, or does not reply within the set value for three consecutive polling intervals then a critical incident is created. **Note:** The polling interval cannot be set using the rmtadmin set command. This setting can only be changed by editing the config.json file." An example `config.json` snippet is below: ``` { "background": { "run":true, "loglevel":"Information", "pollRates": { "processStatus": 30000 } } } ``` | Key | Data Type | Required? | Description | | --- | --- | --- | --- | | `processStatus` | Number | Optional | The amount of time in milliseconds to pause between Tableau Server status polling. | ## Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Server/Environment Management** role. [Skip to main content](#main-content) # Example: Install and Configure a Three-Node HA Cluster A multi-node high availability installation of Tableau Server can help to maximise the efficiency and availability of Tableau Server. When configuring a multi-node Tableau Server deployment, the steps you perform are designed to build in redundancy, helping to reduce your potential downtime. In addition to simply improving efficiency by moving or adding server processes to additional nodes, you can create a highly available (HA) installation of Tableau Server by satisfying these requirements: - Add additional nodes for a total of at least three nodes - Deploy a Coordination Service ensemble on at least three nodes - Add an instance of Client File Service (CFS) on at least one additional node (we recommend adding an instance on each node running the Coordination Service) - Add a second instance of the File Store on one of the additional nodes (Data Engine will be installed automatically, if it is not already on the node) - Add a second instance of the Repository (pgsql) on one of the additional nodes A Tableau Server installation that includes these additions will have built-in redundancy and can support failover in the event of a problem with the repository. This example shows how to do this, and more. ## A Single Server System After installing Tableau Server on an initial node, you have a system that is running everything it needs to function. It has at least one instance of all server processes and is the most basic configuration of Tableau Server. It has no redundancy. The server topology looks like this (some TSM-specific processes are not shown): ![A diagram illustrates a single-node server configuration.](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_onenode1_200x1028.png) ## A Three-Node System To build in redundancy, you need to add additional nodes to host instances of the repository and the data engine and file store processes. You can add instances of other processes, including multiple instances of a process on a node. In addition, to reduce the system’s vulnerability, you can run multiple gateways and additional instances of some of the server processes. The fewest number of computers required to achieve this configuration is three. In the diagram below, the file store process has been added to both additional nodes. A second, passive instance of the repository has also been added to one of the other new nodes. Finally, the server processes (shown in blue) have been added to the additional nodes to provide redundancy. ![A diagram illustrates a three-node server configuration.](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_ha_tsm1.png) ## Configuration steps This procedure describes how to configure a three-node HA Tableau Server cluster with two repository instances and two file store/data engine instances on the additional nodes as pictured above. ## Before you begin Before you install Tableau Server on any additional nodes, ensure that each additional node meets the distributed requirements. See [Distributed Requirements](https://help.tableau.com/current/server-linux/en-gb/distrib_requ.htm) for details. **Note:** This operation includes steps that you may need to perform using the TSM command line. ### Step 1: Install the initial node See [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm). ### Step 2: Generate a bootstrap file for the additional nodes 1. Open TSM in a browser: `https://:8850` For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab, and in the Add a Node box, click Download Bootstrap File. ![A list of processes and the number of instances in a Tableau Server deployment.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-linux-generate-bootstrap.png) The bootstrap file is created and copied to your local computer. Embedded credentials are included in the bootstrap file by default. If you don't want credentials embedded in the bootstrap file, clear the Include temporary credentials in file option. If you want to completely disable the ability to include embedded credentials in node bootstrap files, you can set a configuration option for the server. See [features.PasswordlessBootstrapInit](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#pwdlessbootstrap) for more details. ### Step 3: Install and initialise node 2 1. Copy the original installer you used on the first computer along with the bootstrap file you generated and put them in a location accessible from the new computer you are adding Tableau Server to. This could be a mounted network share, or directly on the new computer. 2. If you are running a local firewall, then you need to configure firewall rules for all the nodes in the cluster. For more information, see [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 3. On the new node, run the Tableau Server Setup program: Use the package manager to install the Tableau Server package. You must install the new version to the same location as the existing version. The install location must be the same on all nodes. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, you have the option to install Tableau to a non-default location. - **Default location**—To install to the default location (`/opt/tableau/tableau_server`), run the following commands, where `` is formatted as major-minor-maintenance (ex: `2025-3-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - **Non-default location** – To install to a non-default location, you must use `rpm -i`. You will also need to install all dependent packages. See the note below. Run the following command: sudo rpm -i --prefix /preferred/install/path tableau-server.rpm **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If you want to install to a non-default location, or your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. For information about installing dependent packages, see [Installing Tableau Server on an Air-Gapped Computer Running Linux](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm#InstallAirgap). - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb 4. To initialise communications between your new node and the initial node, run the initialise-tsm script that is installed when you install Tableau Server. Navigate to the `scripts` directory: cd /opt/tableau/tableau\_server/packages/scripts./ 5. Run the initialise-tsm script: ``` sudo ./initialize-tsm -b /path/to/.json --accepteula ``` - Use the `-b` flag to provide the path to the bootstrap file that you copied to the computer. If you have encrypted the bootstrap file, then you must pipe the file as described in [Securing secrets for import and export operations](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm#Securing). - If the bootstrap file was generated without embedded credentials, use the `-u` flag to specify the user name of the administrative user on the initial node. This is the name of an administrative user on the computer, not the Tableau Server administrator. You will be prompted for the user password. For more information, see [tsm topology nodes get-bootstrap-file](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMGetBootstrap). ``` sudo ./initialize-tsm -b /path/to/.json -u --accepteula ``` **Important:** You must enter the credentials of the same user that you used during the installation process on the initial node. - The `--accepteula` flag accepts the Tableau Server End User Licence Agreement (EULA). The EULA is available in the following location: [End User Licence Agreement.](http://www.tableau.com/en-gb/legal/eula) ### Step 4: Install and initialise node 3 Repeat Step 3 above. ### Step 5: Configure the new node with a minimum topology To complete the process of adding new nodes to your cluster, you need to configure them with a minimum topology. With a minimum topology, the only pending change will be the addition of Cluster Controller, which is required on each node. If you want other processes on the nodes you can add most of them at the same time. This example only configures the nodes with Cluster Controller. 1. Open TSM in a browser: `https://:8850` For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab. A message should tell you that new nodes were added. ![Message indicating that a new node was added to a cluster in Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-node-added.png) Click Continue to dismiss the message. 3. Click Pending Changes at the top of the page: ![Tableau Server Manager toolbar indicating that there are pending changes.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-pending-changes-btn.png) If you are configuring a cluster with three or more nodes, a Coordination Service ensemble warning displays. You can continue. You will deploy a Coordination Service ensemble in a separate step. 4. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. When Tableau Server restarts, the nodes are included with the minimum topology necessary. ### Step 6: Deploy a Coordination Service ensemble If you install a total of three or more nodes, you should also deploy a Coordination Service ensemble. If you do not, you will get a warning message every time you make changes to the server configuration or topology. You can ignore this message, but as a best practice you should deploy a multi-node Coordination Service ensemble. When you install Tableau Server, a single instance of the Coordination Service is installed on the initial node. TSM and Tableau Server depend on the Coordination Service to function properly, so to provide redundancy and ensure availability on multi-node installations, configure additional instances of the Coordination Service by deploying a Coordination Service ensemble. Coordination Service ensembles are installed with one, three or five instances of the Coordination Service. In a three-node installation of Tableau Server, the recommended number of Coordination Service instances is three, one on each node. Do not attempt to deploy a Coordination Service ensemble if there are other changes pending. Discard or apply any pending changes before deploying a new Coordination Service ensemble. **Note:** This operation includes steps that you may need to perform using the TSM command line. The following steps illustrate how to deploy a new Coordination Service ensemble on an existing three-node Tableau Server cluster and clean up the old ensemble. 1. On the initial node, open a terminal session. 2. Stop Tableau Server: `tsm stop` If prompted, sign in as a TSM administrator. Some TSM processes will continue to run, including the Administration Controller and Administration Agent. 3. Confirm there are no pending changes: `tsm pending-changes list` If there are pending changes, you need to either discard the changes or apply them. Applying pending changes will take some time: - Discard the changes tsm pending-changes discard or - Apply the changes: tsm pending-changes apply Wait until the command completes and you are returned to the system prompt. 4. Get the node IDs for each node in the cluster: `tsm topology list-nodes -v` 5. Use the `tsm topology deploy-coordination-service` command to add a new Coordination Service ensemble by adding the Coordination Service to specified nodes. You must specify the node(s) that the Coordination Service should be added to, using the actual node ID to identify each node. The command also makes the new ensemble the "production" ensemble (the ensemble in use) and removes the old ensemble, unless the deployment fails. If this happens, see step 6 below. **Note:** A "y/n" prompt displays confirming that a server restart will take place. To run the command without input, include the `--ignore-prompt` option. For example, deploy the Coordination Service to all three nodes of a three-node cluster, where the nodes are node1, node2 and node3: `tsm topology deploy-coordination-service -n node1,node2,node3` Wait until the command completes and you are returned to the system prompt. 6. (Optional) If the deployment fails, you need to run the `tsm topology cleanup-coordination-service` command to remove the unsuccessfully deployed ensemble. For details on running the command, see [tsm topology cleanup-coordination-service](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMCleanupCoordination). 7. Start Tableau Server: `tsm start` For more information and details on deploying a new Coordination Service ensemble, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). ### Step 7: Configure Client File Services (CFS) on additional nodes Add CFS to additional nodes. We recommend you add CFS to every node running the Coordination Service. **Note:** This operation includes steps that you may need to perform using the TSM command line. 1. On the initial node, open a terminal session. 2. Find the node ID for the node you are adding CFS to: `tsm topology list-nodes -v` 3. Add CFS on the node by specifying the node, the process, and a single instance. For example, this command adds an instance of CFS to node2: `tsm topology set-process -n node2 -pr clientfileservice -c 1` If you attempt to add an instance of CFS to a node that already is configured with CFS, an error message will let you know there is already an instance on the node. To add CFS to additional nodes, repeat this step for each node. 4. Apply the changes: `tsm pending-changes apply` ### Step 8: Configure processes for node 2 1. Open TSM in a browser: `https://:8850` For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab. 3. Specify the processes and number of instances that should run on the first additional node. In this example: 1. Select Gateway. 2. Set the Application Server (vizportal) count to 2. 3. Set the VizQL Server count to 2. 4. Set the Cache Server count to 2. 5. Set the Backgrounder count to 2. Adding Backgrounder to a node will also add an instance of Data Engine if one is not already on the node. 6. Set the Data Server count to 2. 7. Select File Store. 8. Select Repository (pgsql). 9. Select Metrics Service. (The legacy Metrics feature was retired in February 2024 for Tableau Cloud and in Tableau Server version 2024.2. For more information, see [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/online/en-gb/metrics_create.htm).) 10. Select Messaging Service. 11. Select Data Source Properties. 12. Select Content Exploration Service. 13. Select Collections Service. 14. Select Search and Index Server. The specific processes and process counts you set will depend on your organisational environment and needs. Some processes are added automatically when you add another process. For more information, see [Configure Nodes](https://help.tableau.com/current/server-linux/en-gb/config_nodes.htm) and [Tableau Server Processes](https://help.tableau.com/current/server-linux/en-gb/processes.htm). **Note:** The TSM Web UI limits you to a maximum of 8 instances of processes that allow you to select the number of instances. To configure more instances than this, use the command line and the `TSM topology set-process` command. For more information, see [tsm topology set-process](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMSetProcess). ### Step 9: Configure processes for node 3 1. In TSM, on the Configuration tab, specify the processes and number of instances that should run on the second additional node. In this example: 1. Select Gateway. 2. Set the Application Server (vizportal) count to 2. 3. Set the VizQL Server count to 2. 4. Set the Cache Server count to 2. 5. Set the Backgrounder count to 2. Adding Backgrounder to a node will also add an instance of Data Engine if one is not already on the node. 6. Set the Data Server count to 2. 7. Select File Store. 8. Select Metrics Service. (The legacy Metrics feature was retired in February 2024 for Tableau Cloud and in Tableau Server version 2024.2. For more information, see [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/online/en-gb/metrics_create.htm).) 9. Select Data Source Properties. 10. Select Content Exploration Service. 11. Select Collections Service. 12. Select Search and Index Server. 2. Click Pending Changes at the top of the page: ![Tableau Server Manager toolbar indicating that there are pending changes.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-pending-changes-btn.png) The Pending Changes list displays. 3. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. ### Step 1: Install the initial node See [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm). ### Step 2: Generate a bootstrap file for the additional nodes To install Tableau Server on additional computers you use the same installer you did for the initial node, along with a "bootstrap" file you generate on the initial node. **Important**: The bootstrap file contains a copy of the master keystore file used for encrypting the configuration secrets. The file can also embedded credentials which are valid for a predetermined amount of time (see [tabadmincontroller.auth.expiration.minutes](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#tabadminctrlrauthexpire)) and serve as a session cookie. We strongly recommend that you take additional measures to secure the bootstrap file. The following command set provides an example method to encrypt the bootstrap file output. This method is similar to the encryption process described in more detail at [Securing secrets for import and export operations](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm#Securing). Note however, the method here must be passed as separate arguments with trailing `&& \` operators as follows: `mkfifo -m 600 /tmp/secure1 && \` `tsm topology nodes get-bootstrap-file --file /tmp/secure1 && \` `gpg --symmetric --batch --yes --passphrase-file ~/.secrets/pgppassphrase.txt --cipher-algo AES256 --output encrypted.enc < /tmp/secure1 && \` `rm /tmp/secure1` 1. After installing Tableau Server on the initial node, generate the node bootstrap file. 2. On the initial node, open a terminal session. 3. Type this command to generate the bootstrap file: `tsm topology nodes get-bootstrap-file --file .json` Embedded credentials are included in the bootstrap file by default. If you don't want the bootstrap file to include credentials, use the `-nec` or `--no-embedded-credentials` option: `tsm topology nodes get-bootstrap-file --file .json --no-embedded-credentials`. If you want to completely disable the ability to include embedded credentials in node bootstrap files, you can set a configuration option for the server. See [features.PasswordlessBootstrapInit](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#pwdlessbootstrap) for more details. ### Step 3: Install and initialise node 2 1. Copy the original installer you used on the first computer along with the bootstrap file you generated and put them in a location accessible from the new computer you are adding Tableau Server to. This could be a mounted network share, or directly on the new computer. 2. If you are running a local firewall, then you need to configure firewall rules for all the nodes in the cluster. For more information, see [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 3. On the new node, run the Tableau Server Setup program: Use the package manager to install the Tableau Server package. You must install the new version to the same location as the existing version. The install location must be the same on all nodes. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, you have the option to install Tableau to a non-default location. - **Default location**—To install to the default location (`/opt/tableau/tableau_server`), run the following commands, where `` is formatted as major-minor-maintenance (ex: `2025-3-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - **Non-default location** – To install to a non-default location, you must use `rpm -i`. You will also need to install all dependent packages. See the note below. Run the following command: sudo rpm -i --prefix /preferred/install/path tableau-server.rpm **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If you want to install to a non-default location, or your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. For information about installing dependent packages, see [Installing Tableau Server on an Air-Gapped Computer Running Linux](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm#InstallAirgap). - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb 4. To initialise communications between your new node and the initial node, run the initialise-tsm script that is installed when you install Tableau Server. On the new node: Navigate to the `scripts` directory: cd /opt/tableau/tableau\_server/packages/scripts./ 5. Run the initialise-tsm script: ``` sudo ./initialize-tsm -b /path/to/.json --accepteula ``` - Use the `-b` flag to provide the path to the bootstrap file that you copied to the computer. If you have encrypted the bootstrap file, then you must pipe the file as described in [Securing secrets for import and export operations](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm#Securing). - If the bootstrap file was generated without embedded credentials, use the `-u` flag to specify the user name of the administrative user on the initial node. This is the name of an administrative user on the computer, not the Tableau Server administrator. You will be prompted for the user password. For more information, see [tsm topology nodes get-bootstrap-file](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMGetBootstrap). ``` sudo ./initialize-tsm -b /path/to/.json -u --accepteula ``` **Important:** You must enter the credentials of the same user that you used during the installation process on the initial node. - The `--accepteula` flag accepts the Tableau Server End User Licence Agreement (EULA). The EULA is available in the following location: ``` /opt/tableau/tableau_server/packages/docs./EULA.rtf ``` ### Step 4: Install and initialise node 3 Install Tableau Server on node 3: 1. Copy the original installer you used on the first computer along with the bootstrap file you generated and put them in a location accessible from the new computer you are adding Tableau Server to. This could be a mounted network share, or directly on the new computer. 2. If you are running a local firewall, then you need to configure firewall rules for all the nodes in the cluster. For more information, see [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 3. On the new node, run the Tableau Server Setup program: Use the package manager to install the Tableau Server package. You must install the new version to the same location as the existing version. The install location must be the same on all nodes. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, you have the option to install Tableau to a non-default location. - **Default location**—To install to the default location (`/opt/tableau/tableau_server`), run the following commands, where `` is formatted as major-minor-maintenance (ex: `2025-3-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - **Non-default location** – To install to a non-default location, you must use `rpm -i`. You will also need to install all dependent packages. See the note below. Run the following command: sudo rpm -i --prefix /preferred/install/path tableau-server.rpm **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If you want to install to a non-default location, or your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. For information about installing dependent packages, see [Installing Tableau Server on an Air-Gapped Computer Running Linux](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm#InstallAirgap). - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb 4. To initialise communications between your new node and the initial node, run the initialise-tsm script that is installed when you install Tableau Server. On the new node: Navigate to the `scripts` directory: cd /opt/tableau/tableau\_server/packages/scripts./ 5. Run the initialise-tsm script: ``` sudo ./initialize-tsm -b /path/to/.json --accepteula ``` - Use the `-b` flag to provide the path to the bootstrap file that you copied to the computer. If you have encrypted the bootstrap file, then you must pipe the file as described in [Securing secrets for import and export operations](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm#Securing). - If the bootstrap file was generated without embedded credentials, use the `-u` flag to specify the user name of the administrative user on the initial node. This is the name of an administrative user on the computer, not the Tableau Server administrator. You will be prompted for the user password. For more information, see [tsm topology nodes get-bootstrap-file](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMGetBootstrap). ``` sudo ./initialize-tsm -b /path/to/.json -u --accepteula ``` **Important:** You must enter the credentials of the same user that you used during the installation process on the initial node. - The `--accepteula` flag accepts the Tableau Server End User Licence Agreement (EULA). The EULA is available in the following location: ``` /opt/tableau/tableau_server/packages/docs./EULA.rtf ``` ### Step 5: Add a process to the additional nodes 1. On the initial node, configure a cluster controller instance on each additional node: `tsm topology set-process -n -pr clustercontroller -c 1` `tsm topology set-process -n -pr clustercontroller -c 1` 2. Apply the node configuration changes: ``` tsm pending-changes apply --ignore-warnings ``` A warning about deploying a Coordination Service ensemble displays because you have deployed a three-node cluster. Use the `--ignore-warnings` option to apply the configuration changes in spite of the warning. You will deploy a new Coordination Service ensemble in the next step. ### Step 6: Deploy a Coordination Service ensemble If you install a total of three or more nodes, you should also deploy a Coordination Service ensemble. If you do not, you will get a warning message every time you make changes to the server configuration or topology. You can ignore this message, but as a best practice you should deploy a multi-node Coordination Service ensemble. When you install Tableau Server, a single instance of the Coordination Service is installed on the initial node. TSM and Tableau Server depend on the Coordination Service to function properly, so to provide redundancy and ensure availability on multi-node installations, configure additional instances of the Coordination Service by deploying a Coordination Service ensemble. Coordination Service ensembles are installed with one, three or five instances of the Coordination Service. In a three-node installation of Tableau Server, the recommended number of Coordination Service instances is three, one on each node. Do not attempt to deploy a Coordination Service ensemble if there are other changes pending. Discard or apply any pending changes before deploying a new Coordination Service ensemble. **Note:** This operation includes steps that you may need to perform using the TSM command line. The following steps illustrate how to deploy a new Coordination Service ensemble on an existing three-node Tableau Server cluster and clean up the old ensemble. 1. On the initial node, open a terminal session. 2. Stop Tableau Server: `tsm stop` If prompted, sign in as a TSM administrator. Some TSM processes will continue to run, including the Administration Controller and Administration Agent. 3. Confirm there are no pending changes: `tsm pending-changes list` If there are pending changes, you need to either discard the changes or apply them. Applying pending changes will take some time: - Discard the changes tsm pending-changes discard or - Apply the changes: tsm pending-changes apply Wait until the command completes and you are returned to the system prompt. 4. Get the node IDs for each node in the cluster: `tsm topology list-nodes -v` 5. Use the `tsm topology deploy-coordination-service` command to add a new Coordination Service ensemble by adding the Coordination Service to specified nodes. You must specify the node(s) that the Coordination Service should be added to, using the actual node ID to identify each node. The command also makes the new ensemble the "production" ensemble (the ensemble in use) and removes the old ensemble, unless the deployment fails. If this happens, see step 6 below. **Note:** A "y/n" prompt displays confirming that a server restart will take place. To run the command without input, include the `--ignore-prompt` option. For example, deploy the Coordination Service to all three nodes of a three-node cluster, where the nodes are node1, node2 and node3: `tsm topology deploy-coordination-service -n node1,node2,node3` Wait until the command completes and you are returned to the system prompt. 6. (Optional) If the deployment fails, you need to run the `tsm topology cleanup-coordination-service` command to remove the unsuccessfully deployed ensemble. For details on running the command, see [tsm topology cleanup-coordination-service](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMCleanupCoordination). 7. Start Tableau Server: `tsm start` For more information and details on deploying a new Coordination Service ensemble, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). ### Step 7: Configure Client File Services (CFS) on additional nodes Add CFS to additional nodes. We recommend you add CFS to every node running the Coordination Service. **Note:** This operation includes steps that you may need to perform using the TSM command line. 1. On the initial node, open a terminal session. 2. Find the node ID for the node you are adding CFS to: `tsm topology list-nodes -v` 3. Add CFS on the node by specifying the node, the process, and a single instance. For example, this command adds an instance of CFS to node2: `tsm topology set-process -n node2 -pr clientfileservice -c 1` If you attempt to add an instance of CFS to a node that already is configured with CFS, an error message will let you know there is already an instance on the node. To add CFS to additional nodes, repeat this step for each node. 4. Apply the changes: `tsm pending-changes apply` ### Step 8: Configure processes for node 2 1. On the initial node, set the topology for node 2. The topology specifies which processes should run on the node, and how many instances of each process should run. For details about configuring nodes, see [Configure Nodes](https://help.tableau.com/current/server-linux/en-gb/config_nodes.htm). Data engine will be added automatically when you add other processes. For details on when data engine is added, see [Tableau Server Processes](https://help.tableau.com/current/server-linux/en-gb/processes.htm). 1. Get the node-id for the new node: `tsm topology list-nodes -v` 2. Specify individual processes that will run on the new node: `tsm topology set-process -n -pr gateway -c 1` `tsm topology set-process -n -pr vizqlserver -c 2` `tsm topology set-process -n -pr vizportal -c 2` `tsm topology set-process -n -pr backgrounder -c 2` `tsm topology set-process -n -pr cacheserver -c 2` `tsm topology set-process -n -pr indexandsearchserver -c 1` `tsm topology set-process -n -pr dataserver -c 2` `tsm topology set-process -n -pr filestore -c 1` `tsm topology set-process -n -pr pgsql -c 1` `tsm topology set-process -n -pr metrics -c 1` `tsm topology set-process -n -pr activemqserver -c 1` `tsm topology set-process -n -pr tdsservice -c 1` `tsm topology set-process -n -pr contentexploration -c 1` `tsm topology set-process -n -pr collections -c 1` 2. Apply the node configuration changes. You will be prompted with a message that Tableau Server will restart. ``` tsm pending-changes apply ``` ### Step 9: Configure processes for node 3 On the initial node, set the topology for node 3. The topology specifies which processes should run on the node, and how many instances of each process should run. Data engine will be added automatically when you add other processes. For details on when data engine is added, see [Tableau Server Processes](https://help.tableau.com/current/server-linux/en-gb/processes.htm). 1. Get the node-id for the new node: `tsm topology list-nodes -v` 2. Specify individual processes that will run on the new node: `tsm topology set-process -n -pr gateway -c 1` `tsm topology set-process -n -pr vizqlserver -c 2` `tsm topology set-process -n -pr vizportal -c 2` `tsm topology set-process -n -pr backgrounder -c 2` `tsm topology set-process -n -pr cacheserver -c 2` `tsm topology set-process -n -pr indexandsearchserver -c 1` `tsm topology set-process -n -pr dataserver -c 2` `tsm topology set-process -n -pr filestore -c 1` `tsm topology set-process -n -pr metrics -c 1` `tsm topology set-process -n -pr tdsservice -c 1` `tsm topology set-process -n -pr contentexploration -c 1` `tsm topology set-process -n -pr collections -c 1` 3. Apply the node configuration. You will be prompted with a message that Tableau Server will restart. ``` tsm pending-changes apply ``` 4. Start the server: `tsm start` ### Step 10: Configure firewall rules (optional) If you are running a local firewall, then you need to configure firewall rules for all the nodes in the cluster. For more information, see [Local firewall configuration](https://help.tableau.com/current/server-linux/en-gb/requ.htm#firewall) and [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). ## Add a Load Balancer At this point, all three nodes have gateways, which are used to route requests to available server processes. All gateways are active, but to further reduce the potential for downtime in the cluster, you can configure a load balancer. For more information, see [Add a Load Balancer](https://help.tableau.com/current/server-linux/en-gb/distrib_lb.htm). [Skip to main content](#main-content) # Example: Scripting Migration Plans **Note:** This topic includes a sample script you can use as the basis for scripting a multi-plan migration that satisfies your needs and environment. This script is intended to be used as a sample only, and not to be run as-is. For detailed instructions on using the console runner, see [Using the Tableau Content Migration Tool Console Runner](https://help.tableau.com/current/server-linux/en-gb/cmt-deployment_console_runner.htm). Tableau Content Migration Tool command line utility for running migrations can be used to automate the running of a migration plan from an external scheduler (such as Windows Task Scheduler) or from a custom script. The console runner only runs one migration plan (stored in a .edt file) at a time. If you have a group of migration plans you want to run as a group, then you can use a custom script in combination with the Content Migration Tool console runner. The example below is written in PowerShell and uses the console runner to execute a list of migration plans as a group. The following example code demonstrates: - Running multiple migration plans as a group using the console runner. - Optionally halting deployment of the group of plans immediately when any single migration in the group fails. - Using the console runner’s exit code to determine whether the migration failed or logged warnings. \# List of migration plans to execute as a group. $planFiles = @( 'customer 1.tcmx', 'customer 2.tcmx' ) # True of false whether to continue with the next plan if a migration fails. $continueOnFailure = $false # Path to the CMT console runner executable $runnerExe = 'C:\\Program Files (x86)\\Tableau\\Tableau Content Migration Tool\\tabcmt-runner.exe' # Store the exit code from the previously run migration plan. $lastResult = -1 # Loop through and run each migration plan one at a time. $planFiles | % { $file = $\_ if ($lastResult -ge 2 -and -not($continueOnFailure)) { Write-Warning "Skipping plan because previous migration failed. \`nSkipped plan: $file" return } Write-Verbose "Running migration plan: $file" & $runnerExe $file $lastResult = $LASTEXITCODE if ($lastResult -ge 2) { Write-Error "Migration failed. See output or log file for error details.\`nPlan: $file" -ErrorAction 'Continue' } elseif ($lastResult -eq 1) { Write-Warning "Migration completed with warnings. See output or log file for warning details.\`nPlan: $file" } } ## Who can do this To script migration plans, you must have all the following: - Administrator permissions on the Content Migration Tool machine. - Tableau site user account with an Explorer role or higher. - View and Download Workbook/Save a Copy permissions on the source site. - Publishing rights for the destination site. [Skip to main content](#main-content) # Example: SSL Certificate - Generate a Key and CSR Important: This example is intended to provide general guidance to IT professionals who are experienced with SSL requirements and configuration. The procedure described in this article is just one of many available methods you can use to generate the required files. The process described here should be treated as an example and not as a recommendation. * * * When you configure Tableau Server to use Secure Sockets Layer (SSL) encryption, this helps ensure that access to the server is secure and that data sent between Tableau Server and Tableau Desktop is protected. Looking for Tableau Server on Windows? See [Example: SSL Certificate - Generate a Key and CSR](https://help.tableau.com/current/server/en-gb/ssl_cert_create.htm "Opens topic in a new browser tab"). Tableau Server uses Apache, which includes [OpenSSL](http://www.openssl.org/). You can use the OpenSSL toolkit to generate a key file and Certificate Signing Request (CSR) which can then be used to obtain a signed SSL certificate. Tableau Server versions 2022.1.17, 2022.3.9, 2023.1.5, through to 2025.1.x run OpenSSL 3.1. **Important:** Beginning with version 2025.2 (Tableau Desktop), 2025.3 (Tableau Server) and June 2025 (Tableau Cloud), Tableau uses OpenSSL 3.4.x and Level-2 security. Level-2 security requires keys of 2,048 bits or longer. Any existing Level-1 security keys will no longer work, and you will need to generate and deploy a new key pair. If you have been generating at least 2,048-bit length keys as recommended, no action is necessary. For more information see [Generate a key](#generate-key). ## Steps to generate a key and CSR To configure Tableau Server to use SSL, you must have an SSL certificate. To obtain the SSL certificate, complete the steps: 1. [Generate a key file](#generate-key). 2. [Create a Certificate Signing Request (CSR)](#generate-csr). 3. [Send the CSR to a certificate authority (CA) to obtain an SSL certificate](#send-csr). 4. [Use the key and certificate to configure Tableau Server to use SSL](#config-server). You can find additional information on the [SSL FAQ page](http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#realcert) on the Apache Software Foundation website. ### Configure a certificate for multiple domain names Tableau Server allows SSL for multiple domains. To set up this environment, you need to modify the OpenSSL configuration file, openssl.conf, and configure a Subject Alternative Name (SAN) certificate on Tableau Server. See [For SAN certificates: modify the OpenSSL configuration file](#san-certs) below. ### Generate a key Generate a key file that you will use to generate a certificate signing request. 1. Run the following command to create the key file: `openssl genrsa -out .key 4096` **Notes:** - This command uses a 4096-bit length for the key. You should choose a bit length that is at least 2048 bits because communication encrypted with a shorter bit length is less secure. If a value is not provided, 512 bits is used. - To create PKCS#1 RSA keys with Tableau Server versions 2021.3.26, 2021.4.21, 2022.1.17, 2022.3.9, 2023.1.5 and later, you must use the additional option `-traditional` when running `openssl genrsa`" command based on the OpenSSL 3.1. For more information about the option, see [https://www.openssl.org/docs/man3.1/man1/openssl-rsa.html](https://www.openssl.org/docs/man3.1/man1/openssl-rsa.html). ### Create a certificate signing request to send to a certificate authority Use the key file you created in the procedure above to generate the certificate signing request (CSR). You send the CSR to a certificate authority (CA) to obtain a signed certificate. **Important:** If you want to configure a SAN certificate to use SSL for multiple domains, first complete the steps in [For SAN certificates: modify the OpenSSL configuration file](#san-certs) below, and then return to here to generate a CSR. 1. Run the following command to create a certificate signing request (CSR) file: openssl req -new -key yourcertname.key -out yourcertname.csr -config /opt/tableau/tableau\_server/packages/apache./conf/openssl.cnf 2. When prompted, enter the required information. **Note:** For **Common Name**, type the Tableau Server name. The Tableau Server name is the URL that will be used to reach the Tableau Server. For example, if you reach Tableau Server by typing `tableau.example.com` in the address bar of your browser, then `tableau.example.com` is the common name. If the common name does not resolve to the server name, errors will occur when a browser or Tableau Desktop tries to connect to Tableau Server. ### Send the CSR to a certificate authority to obtain an SSL certificate Send the CSR to a commercial certificate authority (CA) to request the digital certificate. For information, see the Wikipedia article [Certificate authority](http://en.wikipedia.org/wiki/Certificate_authority) and any related articles that help you decide which CA to use. ### Use the key and certificate to configure Tableau Server When you have both the key and the certificate from the CA, you can configure Tableau Server to use SSL. For the steps, see [Configure External SSL](https://help.tableau.com/current/server-linux/en-gb/ssl_config.htm). ## For SAN certificates: modify the OpenSSL configuration file In a standard installation of OpenSSL, some features are not enabled by default. To use SSL with multiple domain names, before you generate the CSR, complete these steps to modify the **openssl.cnf** file. 1. Navigate to the Apache **conf** folder for Tableau Server. For example: `/opt/tableau/tableau_server/packages/apache./conf` 2. Open **openssl.cnf** in a text editor, and find the following line: `req_extensions = v3_req` This line might be commented out with a hash sign (#) at the beginning of the line. ![The code demonstrates how to set extensions to be added to a certificate request.](/tableau/current/en-gb/server-linux/en-gb/Img/creating-ssl-cert-and-key1.png) If the line is commented out, uncomment it by removing the **#** and **space** characters from the beginning of the line. 3. Move to the **\[ v3\_req \]** section of the file. The first few lines contain the following text: `# Extensions to add to a certificate request basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment` After the **keyUsage** line, insert the following line: `subjectAltName = @alt_names` If you’re creating a self-signed SAN certificate, do the following to give the certificate permission to sign the certificate: 1. Add the `cRLSign` and `keyCertSign` to the **keyUsage** line so it looks like the following: `keyUsage = nonRepudiation, digitalSignature, keyEncipherment, cRLSign, keyCertSign` 2. After the **keyUsage** line, add the following line: `subjectAltName = @alt_names` 4. In the **\[alt\_names\]** section, provide the domain names you want to use with SSL. `DNS.1 = [domain1] DNS.2 = [domain2] DNS.3 = [etc]` The following image shows the results highlighted, with placeholder text that you would replace with your domain names. ![](/tableau/current/en-gb/server-linux/en-gb/Img/creating-ssl-cert-and-key2.png) 5. Save and close the file. 6. Complete the steps in [Create a certificate signing request to send to a certificate authority](#generate-csr) section, above. [Skip to main content](#main-content) # Explanation Types in Explain Data Each time you select a new mark in a viz or dashboard and run Explain Data, Tableau runs a new statistical analysis considering that mark and the underlying data in the workbook. Possible explanations are displayed in expandable sections for the Data Guide pane. For information about how Explain Data analyses and evaluates explanations, see [How Explain Data Works](https://help.tableau.com/current/server-linux/en-gb/explain_data_explained.htm). ## Explore underlying values This section lists explanations for each measure that can be explained (referred to as _target measures_). Each explanation listed here describes a relationship with the values of the target measure that are tested on the analysed mark. Use your real-world, practical understanding of the data to determine if the relationships found by Explain Data are meaningful and worth exploring. ![Explain Data details about an analysed mark, with text highlighted that describes a higher-than-expected trip distance sum value of 8,800.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_targetmeasure.png) In this example, Trip Distance is the target measure ### Underlying Characteristics These explanations describe how underlying records of the marks in the view may be contributing to the aggregated value of the measure being explained. Mark attributes can include [Extreme Values](#MA-Extreme), [Null Values](#MA-Null), [Number of Records](#MA-NR) or the [Average Value](#MA-AVG) of the mark. **Note**: For definitions of common terms used in explanations, see [Terms and concepts in explanations](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm#TermsToKnow "Link to definitions of Tableau terms and concepts used in explanations."). #### Extreme Values This explanation type indicates if one or more records have values that are significantly higher or lower than most records. If the explanation is supported by a model, it indicates the extreme value is affecting the target measure of the analysed mark. When a mark has extreme values, it doesn't automatically mean it has outliers or that you should exclude those records from the view. That choice is up to you depending on your analysis. The explanation is simply pointing out an extreme value in the mark. For example, it could reveal a mistyped value in a record where a banana cost 10 pounds instead of 10 pence. Or, it could reveal that a particular sales person had a great quarter. **Note**: This explanation must be enabled by the author to be visible in viewing mode for a published workbook. For more information, see [Control Access to Explain Data](https://help.tableau.com/current/server-linux/en-gb/explain_data_control_access.htm).

This explanation shows:

  • The number of underlying records in the analysed mark.
  • The extreme value or values contributing to the value of the target measure.
  • The distribution of values in the mark.
  • The record details that correspond to each distribution value.

Exploration options:

  • Hover over a circle in the chart to see its corresponding value.
  • Select the left or right arrow below the details list to scroll through record details.
  • If available, select View Full Data, and then select the Full Data tab to see all records in a table.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • If the number of records is low, examine these values compared to the extreme value.
  • If the extreme value is significantly higher or lower than the other record values, exclude it and consider how it changes the value of the analysed mark.
  • When considering the data with and without the extreme value, use this as an opportunity to apply your practical knowledge about the data.

 

In this example, a single extreme value of 463 hours rented is contributing to the higher than expected sum of Total Time Rented of 613 hours.

In this example, a single extreme value of 463 hours rented is contributing to the higher-than-expected sum of Total Time Rented of 613 hours.

A likely reason for this high value could be that someone forgot to dock the bike when they returned it. In this case, the author might want to exclude this value for future analysis.

 

Visualise the Difference

This section shows:

  • How the analysed mark value changes when the extreme value is excluded.

 

 

 

 

 

 

 

Exploration options:

  • Select the Open Open View icon. icon to see a larger version of the visualisation.
  • Explore the difference with and without the extreme value (or values).
  • Authors can open the view as a new sheet and apply a filter to exclude the extreme value.

Next steps for analysis:

  • If the extreme value is significantly higher or lower than the other record values, exclude it and see how it changes the value of the analysed mark.
  • When considering the data with and without the extreme value, use this as an opportunity to apply your practical knowledge about the data.
 Visualise the Difference header is displayed with a snapshot of a map and explanatory text indicating that when the extreme value is excluded, the value changes from 619.3 to 155.5.

In this example, when the extreme value of 483 is excluded, the analysed mark is no longer high compared to other marks in the view.

In this example, when the extreme value of 483 is excluded, the analysed mark is no longer high compared to other marks in the view. Other marks now stand out. The author might want to explore the other marks to consider why these other locations have higher hours for bike rentals.

#### Null Values The Null Values explanation type calls out situations where there is a higher-than-expected amount of missing data in a mark. It indicates the fraction of target measure values that are null and how the null values might be contributing to the aggregate value of that measure.

This explanation shows:

  • The percentage of values that are null in the target measure for the analysed mark (blue circle).

Exploration options:

  • Hover over each circle in the scatter plot to see its details.
  • Scroll to see more of the chart.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • Optionally exclude null values in the mark for further analysis.
 

A scatter plot with Explain Data text explaining that the percentage of null values may be contributing to the average value.

In this example, the percentage of null values in the target measure is shown as a blue circle.

#### Number of Records This explanation type describes when the count of the underlying records is correlated to the sum. The analysis found a relationship between the number of records that are being aggregated in a mark and the mark's actual value. While this might seem obvious, this explanation type helps you explore whether the mark's value is being affected by the magnitude of the values in its records or simply because of the number of records in the analysed mark.

This explanation shows:

  • The number of records in the target measure for the analysed mark (dark blue bar).
  • The number of records in the target measure for other marks in the source visualisation (light blue bar).

Exploration options:

  • Hover over each bar to see its details.
  • Scroll to see more of the chart.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • Compare whether the individual values of records are low or high, or the number of records in the analysed mark is low or high.
  • Authors, if you are surprised by a high number of records, you might need to normalise the data.
 

A scatter plot showing the relationship between the count and sum of trip distances, with Explain Data text explaining that the sum of trip distance may be high because of the high number of records in August.

In this example, the number of records for Trip Distance is listed for each value of Ride Month, which is a dimension in the original visualisation. August has the highest total trip distance value.

You might explore whether August has the highest value for trip distance because more rides occurred in August, or if it has the highest trip distance because some rides were longer.

#### Average Value of Mark This explanation type describes when the average of a measure is correlated to the sum. Compare whether the average value is low or high, or the number of records is low or high.

This explanation shows:

  • The average of the target measure for each value of a dimension used in the source visualisation.

Exploration options:

  • Hover over each bar to see its details.
  • Scroll to see more of the chart.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • Compare whether the average value is low or high, or the number of records is low or high. For example, are profits high because you sold a lot of items or because you sold expensive items?
  • Try to figure out why the analysed mark has a significantly higher or lower average value.

 

 Average Trip Distance dimension selected with an explanation that the average trip distance is increasing the expected sum of trip distance for the explained mark.

In this example, the average trip distance for August is not significantly higher or lower than most months. This suggests that trip distance is higher for August because there were more rides in August, rather than from people taking longer rides.

### Contributing Single Value Use this explanation to understand the composition of the record values that make up the analysed mark. This explanation type identifies when a single value in an unvisualised dimension may be contributing to the aggregate value of the analysed mark. An unvisualised dimension is a dimension that exists in the data source but isn't currently being used in the view. This explanation indicates when every underlying record of a dimension has the same value, or when a dimension value stands out because either many or few of the records have the same single value for the analysed mark. **Note**: For definitions of common terms used in explanations, see [Terms and concepts in explanations](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm#TermsToKnow "Link to definitions of Tableau terms and concepts used in explanations.").
This explanation shows:
  • The percentage of the number of records for a single value of a dimension for the analysed mark (blue bar) versus all marks (grey bar) in the source visualisation.
  • The percentage of the number of records for all other values of a dimension for the analysed mark (blue bar) versus all marks (grey bar) in the source visualisation.
  • The average of the target measure for the single value of a dimension in the analysed mark (blue bar) versus all marks (grey bar).
  • The average of the target measure for all other values of a dimension for the analysed mark (blue bar) versus all marks (grey bar) in the source visualisation.

Exploration options:

  • Hover over each bar to see its details.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • Use this explanation to understand the composition of the record values that make up the analysed mark.
  • Authors might want to create a new visualisation to explore any unvisualised dimension surfaced in this explanation.
 Explain Data details for a selected mark with bar charts showing records that impact the value.

In this example, the statistical analysis has exposed that many of the rides come from the station neighbourhood of Back Bay. Note that Station Neighbourhood is an unvisualised dimension that has some relationship to Trip Distance in the underlying data for the source visualisation.

### Top Contributors Use this explanation to see the values that make up the largest fraction of the analysed mark. For a COUNT aggregation, the top contributors show dimension values with the most records. For SUM, this explanation shows dimension values with the largest partial sum. ### Contributing Dimensions Use this explanation to understand the composition of the record values that make up the analysed mark. This explanation type shows that the distribution of an unvisualised dimension may be contributing to the aggregate value of the analysed mark. This type of explanation is used for target measure sums, counts and averages. An unvisualised dimension is a dimension that exists in the data source but isn't currently being used in the view. **Note**: For definitions of common terms used in explanations, see [Terms and concepts in explanations](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm#TermsToKnow "Link to definitions of Tableau terms and concepts used in explanations.").
This explanation shows:
  • The percentage of the number of records for all values of a dimension for the analysed mark (blue bar) versus all values of a dimension for all marks (grey bar) in the source visualisation.
  • The average of the target measure for all values of a dimension for the analysed mark (blue bar) all values of a dimension for all marks (grey bar).

Exploration options:

  • Hover over each bar to see its details.
  • Scroll to see more of the chart.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • Use this explanation to understand the composition of the record values that make up the analysed mark.
  • Authors might want to create a new visualisation to explore any unvisualised dimensions surfaced in this explanation.
 Explain Data details for a selected mark and its distribution.

In this example, the statistical analysis has exposed that more rides were taken from South Station and MIT and fewer rides were taken from Charles Circle and Kendall, compared to rides taken for marks overall.

Note that Station Name is an unvisualised dimension that has some relationship to Trip Distance in the underlying data for the source visualisation.

### Contributing Measures This explanation type shows that the average of an unvisualised measure may be contributing to the aggregate value of the analysed mark. An unvisualised measure is a measure that exists in the data source but isn't currently being used in the view. This explanation can reveal a linear or quadratic relationship between the unvisualised measure and the target measure. **Note**: For definitions of common terms used in explanations, see [Terms and concepts in explanations](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm#TermsToKnow "Link to definitions of Tableau terms and concepts used in explanations.").
This explanation shows:
  • The relationship between the sum of the target measure and the average of an unvisualised measure for the analysed mark (blue circle) and all marks (grey circles) in the view.
  • If the sum of the target measure is high or low because the average value of the unvisualised measure is high or low.

Exploration options:

  • Hover over each circle to see its details.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • Authors might want to create a new visualisation to explore any unvisualised measures surfaced in this explanation.
 Explain Data details for a selected measure.

In this example, one possible reason why trip distance is high is because the average total time rented is also high.

## Other things to explore This section provides possible reasons why the analysed mark is unique or unusual. These explanations: - Do not explain why the value of this mark is what it is. - Are not related in any way to the value of the measures in the source visualisation. - Do not take any target measures into account. ### Other Dimensions of Interest Use this explanation to understand the composition of the record values that make up the analysed mark. The distribution of an unvisualised dimension in the analysed mark is unusual compared to the distribution of values for all other marks in the view. An unvisualised dimension is a dimension that exists in the data source but isn't currently being used in the view. **Note**: For definitions of common terms used in explanations, see [Terms and concepts in explanations](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm#TermsToKnow "Link to definitions of Tableau terms and concepts used in explanations.").
This explanation shows:
  • The percentage of the number of records for all values of a dimension for the analysed mark (blue bar) versus all values of a dimension for all marks (grey bar) in the source visualisation.

Exploration options:

  • Hover over each bar to see its details.
  • Scroll to see more of the chart.
  • Select the Open Open View icon. icon to see a larger version of the visualisation.

Next steps for analysis:

  • Use this explanation to understand the composition of the record values that make up the analysed mark.
  • Authors might want to create a new visualisation to explore any unvisualised dimensions surfaced in this explanation.
 Explain Data details for other dimensions of interest.

In this example, a high percentage of records are associated with overcast weather. Because the data is about bike rentals in Boston, and the analysed mark is Trip Distance for August, we can assume that the weather is typically warm and humid. People might have rented bikes more often on overcast days to avoid the heat. It's also possible there were more overcast days in August.

[Skip to main content](#main-content) # Explore Dashboards with Data Guide Have you ever discovered a new Tableau dashboard and wondered what the data means or how to use it? Or, have you ever published a new dashboard and wished that you could include instructions about how to use your dashboard? Data Guide provides helpful information about a dashboard and insights about the data behind it. Data Guide allows dashboard creators to provide more explanatory context for end users – like descriptions and links to resources – directly in the dashboard. And Data Guide automatically surfaces insights powered by [Explain Data](https://help.tableau.com/current/pro/desktop/en-gb/explain_data.htm) to help users find outliers and learn about explanations for a mark. Explain the Viz (powered by Explain Data) identifies outlier measures and potential key drivers behind them. These contextually relevant details can help dashboard users navigate and use new dashboards more easily, allowing users to find insights faster, trust that they’re looking at the right data, provide context for data and establish confidence in their understanding of the viz. Alternatively, if you have a Tableau Cloud site with Tableau+, you can use Tableau Agent’s Dashboard Narratives feature to explore your dashboard using AI. For more information, see [Create Dashboard Narratives with Tableau Agent (Beta)](https://help.tableau.com/current/pro/desktop/en-gb/dashboard-narratives.htm). ## Customise Data Guide as an author 1. From your dashboard, choose the Edit button. 2. Choose Data Guide in the toolbar. 3. In the Data Guide pane, type a description to help your end users understand the purpose of your dashboard. 4. Select Add link, and enter a descriptive label for your link text and the URL. 5. Choose OK. 6. Select a viz (a sheet in the dashboard). Data Guide updates automatically so you can add a description and resources that are relevant to each viz in your dashboard. 7. Type a description, and add links relevant to the viz. 8. Choose OK. > [!TIP] > > To use Data Guide to write custom alt text to improve the accessibility of your vizzes, see [Show more text and make it helpful](https://help.tableau.com/v0.0/pro/desktop/en-gb/accessibility_create_view.htm#show-more-text-and-make-it-helpful). ## Explore Data Guide as a dashboard user 1. From the dashboard, choose Data Guide in the toolbar. 2. Read the description of the dashboard and explore resources provided by the dashboard author. 3. Expand Data in This Dashboard and Detected Outliers to learn more about the underlying data used in the dashboard. 4. Select a viz (an object in the dashboard). 5. Read the description of the viz and explore resources provided by the dashboard author. 6. Expand Data Summary and Detected Outliers to learn more about data in that viz. 7. Select a mark or multiple marks, such as a bar on a chart or a region on a map, to see information about Data in This Mark and Applied Filters. Select a single mark to see possible Explanations for its value. ![Short animation showing how the Data Guide displays different information when you click on a dashboard, viz or mark](/tableau/current/en-gb/server-linux/en-gb/Img/data_guide_ovw.gif) ## Explore Data Guide at different levels By default, Data Guide is closed when you open a workbook. And you can open Data Guide in the toolbar. At the top of the Data Guide pane, you see the name of the dashboard or viz that you selected. As a dashboard author, you can write descriptions for both the dashboard and for individual vizzes that make up your dashboard. ### Understand dashboard-level details At the dashboard level, Data Guide: - Displays the dashboard’s name, author and last published date. - Can include a description written by the dashboard author and links to related resources, such as videos or wiki pages. - Lists the data sources used by the dashboard and details about the data, such as which dimensions and measures are used. - Reveals detected outliers in the dashboard that are identified by Explain Data. For more information, see [Get Started with Explain Data](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm). ![The Data Guide pane at the dashboard level](/tableau/current/en-gb/server-linux/en-gb/Img/data_guide_dashboard_level.png) ### Understand viz-level details When a user selects a specific viz (dashboard object), Data Guide: - Displays the viz’s name. - Can include a description written by the dashboard author and links to related resources, such as videos or wiki pages. - Lists the data sources used by the dashboard, including the dimensions and measures used. - Lists applied filters and data used in the viz, so you can identify how the data is being influenced by filters that users interact with. Only filters that a user can change are shown. - Has a summary of the data used in the viz, including the number of data points and sorting details. - Reveals detected outliers in the viz that are identified by Explain Data. For more information, see [Get Started with Explain Data](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm). ![The Data Guide pane at the viz level](/tableau/current/en-gb/server-linux/en-gb/Img/data_guide_viz_level.png) ### Understand mark-level details When a user selects a mark (or marks) such as region on a map, Data Guide: - Displays the name of the mark. - Lists applied filters and data used in the viz, so you know what’s included and what’s excluded. - Reveals detected outliers in the viz that are identified by Explain Data. For more information, see [Get Started with Explain Data](https://help.tableau.com/current/server-linux/en-gb/explain_data_basics.htm). ![The Data Guide pane at the mark level](/tableau/current/en-gb/server-linux/en-gb/Img/data_guide_mark_level.png) ## Control Data Guide visibility By default, Data Guide is closed when you open a workbook. When you open or close Data Guide, it remains in this state for all workbooks on the site. In 2023.1 or later, a server administrator can hide Data Guide for all users. This removes the Data Guide button from the Tableau toolbar on all workbooks on the site. To hide Data Guide: 1. From the left pane, choose Settings. 2. From the General tab, scroll to Availability of Data Guide. 3. Choose Hide. 4. Choose Save. [Skip to main content](#main-content) # Explore Monitoring Data Using Tableau Data Source Files The Tableau Resource Monitoring Tool includes built-in charts that you can use to monitor and analyse Tableau Server health and performance. The data Tableau Resource Monitoring Tool leverages can be downloaded as Tableau data source (.tds) files for exploration within Tableau Desktop. You can download the .tds files from the **Admin** menu using the Resource Monitoring Tool web interface. This method works for both local and external repository configurations. ![Admin dropdown menu on Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-tds-menu.png) The following is a list of Tableau data source (.tds) files you can download: - **Background Tasks**: Includes information about scheduled backgrounder tasks like extract refreshes, subscriptions and flows. - **Data Queries**: Information about all queries executed by Tableau Server. - **Gateway Requests**: HTTP requests handled by Tableau Server including VizQL Server session details. - **Incidents**: Incidents recorded by the Resource Monitoring Tool . - **Server Performance**: Tableau Server hardware and process information that is gathered by the Resource Monitoring Tool. - **Tableau Entities**: Information about the Tableau Server sites, projects, workbooks and views gathered by the Resource Monitoring Tool. ## Requirements - Encryption used is SCRAM-SHA-256 which is supported by Tableau Desktop 2020.4 and later. ## Enable access to the Resource Monitoring Tool PostgreSQL database The Tableau data source (.tds) file contains a connection to the Resource Monitoring Tool PostgreSQL database. Before you can connect to a downloaded .tds file, you need to enable access for the `readonly` user to the Resource Monitoring Tool PostgreSQL database. Once the `readonly` user has access, you can then use the `readonly` username and password to connect to the Resource Monitoring Tool PostgresSQL database from the .tds file in Tableau Desktop. ### Resource Monitoring Tool versions 2022.3 and later: #### Resource Monitoring Tool with local repository: 1. On the RMT Server machine, enable access to the Resource Monitoring Tool PosgreSQL database for the `readonly` user: `rmtadmin data-access ReadOnly` 2. Restart the Resource Monitoring Tool PostgreSQL database for the configuration change to take effect: `rmtadmin restart --db` 3. Retrieve the password for the `readonly` user: `rmtadmin get db.readOnlyPassword` #### Resource Monitoring Tool with external repository: You must configure the RDS instance to allow access from Tableau Desktop. Retrieve the username and password for the Resource Monitoring Tool PostgreSQL database and use it to download .tds files. For more information, see the [documentation on AWS site](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html). ### Resource Monitoring Tool versions 2022.2 and earlier: 1. Open the `postgresql.conf` file. By default, the file is located at: `/var/opt/tableau/tabrmt/data/postgresql` 2. Update `Listen_addresses = 'localhost'` to `Listen_addresses = '*'`. **Note:** You must remove the '`#`' from this line. 3. Open the `pg_hba.conf` file. This file is also located in the same directory as the `postresql.conf` file. By default the file is located at: `/var/opt/tableau/tabrmt/data/postgresql` 4. Add the following to the end of the `pg_hba.conf` file and then save the file: `host all all 0.0.0.0/0 scram-sha-256` `host all all ::/0 scram-sha-256` 5. Restart the Resource Monitoring Tool PostgreSQL database for the configuration changes to take effect: `rmtadmin restart --db` 6. Retrieve the password for the `readonly` user: `rmtadmin get db.readOnlyPassword` ## Connect to the RMT .tds files from Tableau Desktop After access to the Resource Monitoring Tool PostgreSQL database has been enabled for the `readonly` user, you can then connect to the downloaded .tds files from Tableau Desktop. 1. In Tableau Desktop, go to **File > Open** and select the .tds file downloaded from the Resource Monitoring Tool web interface. **Note**: You might need to install the PostgreSQL database drivers. You can download drivers from [www.tableau.com/en-gb/support/drivers](http://www.tableau.com/en-gb/support/drivers). If Tableau Desktop does not automatically connect to the Resource Monitoring Tool Postgres database after opening the .tds file, you might need to manually enter the `readonly` username and password into the edit connection window in Tableau Desktop. ## Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Download TDS Files** server role. [Skip to main content](#main-content) # Export or Import a Site **Note:** For detailed information about migrating sites from Tableau Server to Tableau Cloud, see our [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). You can provision a new Tableau Server site by importing (migrating) information from another site. You do this by exporting the existing site’s (the _source_ site) information to a file. Then you complete steps to verify and import that information to the _target_ site. ## Site Migration Options You can migrate a site in any of these ways: - To another site on the same Tableau Server instance. - To a site on a separate Tableau Server instance. - From Tableau Server on Windows to Tableau Server on Linux or vice-versa. **Note:** When migrating sites between instances of Tableau Server, the target site must be on a version of Tableau Server that is the equal to or later than the version of Tableau Server for the source site. Both the source and target sites must be from supported versions of Tableau Server. ## Site Migration Limitations ### What information is preserved in a site export - The export file you create preserves workbooks, projects, data sources and users. This includes permissions set on content, user favourites lists and site quotas. - Users’ custom views are preserved; however, depending on the type of site migration, custom view URLs might change in a way that breaks users’ bookmarks to their views. - When you export a site on Tableau Server to import to another Tableau Server site, subscription and extract refreshes schedules are preserved. ### What information isn't preserved in a site export - Usage data, which appears in the site’s administrative views, is not preserved. For example, view and data source counts, user actions and performance data. - Backgrounder jobs that are in-progress while a site is being exported, will not be exported and will not show up on the new site once the import is complete. - OAuth access tokens embedded in data connections are reset. For those data sources, you will need to edit the connections and re-authenticate to the underlying data. - Prep flow schedules and tasks are not included. These will need to be manually migrated. - Content saved to users' Personal Space is not included. - Collections aren’t included in site exports until Tableau Server 2025.3. - When migrating sites between different identity store types (Local to Active Directory/LDAP or Active Directory/LDAP to Local), user filters using Groups will break due to domain declaration differences. After the migration, you must manually recreate these user filters in any impacted workbooks and data sources on the destination site (specifically those using the `ISMEMBEROF()` function). ## Prepare the Source and Target Sites Before you export a site, complete the following checklist to prepare both environments. Some of these instructions depend on whether both sites are on the same server instance or on separate ones. ### Delete stale content Make sure the source site contains only what you want to import to the new site. As a best practice, remove anything from your source site that you do not want to include in your new site, whether these things will be included in an export/import or will need to be manually migrated. Delete unused workbooks, data sources or projects. If you have Prep flows or flow schedules you no longer use, delete these as well. ### Remove obsolete users Confirm that all server users are licensed, and remove accounts that are no longer in use. You can’t remove users during the import process, so if the two sites are on the same server instance, all users you export from the source site are imported to the target site. ### Create or identify the target site You must import a site file to a site that already exists on the target Tableau Server instance. Because the import process removes anything from the target site that is not included in the import file, we recommend that you import to an empty site. For more information, see [Add or Edit Sites](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm). ### Locate site IDs The tsm command you use to export or import a site requires a parameter that takes the site ID. You can get the site ID from the URL when you are signed in to the site from a web browser. If only one site exists on the server, that site is named Default. When you are signed in to the Default site, the browser URL looks something like this: `https://server-name/#/projects` In the URL, the absence of the `/site` parameter indicates that it’s the Default site. The site ID for the Default site is ‘Default’ without the quotation marks. On a multi-site Tableau Server deployment, the browser URL includes `#/site/` followed by the site ID. The following URL would appear if you navigate to the Views page on a site whose site ID is `finance`: `https://localhost/#/site/finance/views` ![A web browser window displaying a Tableau Server address.](/tableau/current/en-gb/server-linux/en-gb/Img/ms_URL.png) ### Check the identity store You can export from and import to sites that do not use the same user identity store type, but you will need to modify the mapping files used for the import. This step is built into the import process and described in [Step 3: Verify that site settings are mapped correctly](#verify-site-mappings). ### Create users on the target server if necessary The site import process assigns users to the target site. If the source site is on a Tableau Server instance other than the target site, you must create users on the target server before you can perform the import. If the two sites are on the same Tableau Server instance, the target site has access to the existing users, and you can skip this step. ### Configure the target server to deliver subscriptions Subscriptions are imported, but you must configure the server to deliver them. For more information, see [Set Up a Site for Subscriptions](https://help.tableau.com/current/server-linux/en-gb/subscribe.htm). ### Check schedules The Schedules page lists the existing schedules for extract refreshes and subscriptions. ![Subscription and Extract Refresh schedule.](/tableau/current/en-gb/server-linux/en-gb/Img/sites_schedule.png) For migrations **from one Tableau Server site to another**, refreshes and subscriptions assigned to default schedules on the source site are mapped to the same schedules on the target site. If the source site has schedules that do not exist on the target site, and the target site is on another Tableau Server instance, you must create the schedules on the target site that you want the source schedules to map to. You can edit the mapping files to make sure this is done as you expect. ## Tips for importing to a target with fewer users or schedules When a target site has fewer users or schedules than the source site, many-to-one importing is not supported. How you can address this depends on whether the source and target sites are on the same Tableau Server instance. You can take any of the following approaches that apply to your site migration use case: - Remove extra users or schedules from the source site before you export. This is the preferred option if the two sites are on the same server instance. - Add missing users or schedules to the target site before beginning the import. This is required if the target site is on another server instance. - Add the missing users or schedules to the target site in the middle of the import process and manually update the mapping files. This is an option only if the sites are on the same instance. - Manually map the users or schedules to different users and schedules in the target site during the import process. This is required if a user name differs between servers – for example, the exported user named _adavis@company.com_ is defined on the target site as _davisa_. ## Migrating a Site You must use the `tsm sites` commands to complete the site migration process. The steps below walk you through exporting information from the source site, mapping site settings and importing the mapped files to the target site. ### Step 1: Export a site On the source Tableau Server machine, type the following command: `tsm sites export --site-id --file ` Tableau Server must be running when you use the `export` command. During the export process, Tableau Server locks the site you are exporting. For example, to export a site with site ID **weather-data** to the file **export-file.zip**, type the following: `tsm sites export --site-id weather-data --file export-file` By default, Tableau Server saves `.zip` to `/var/opt/tableau/tableau_server/data/tabsvc/files/siteexports`. For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm#import-file-location). ### Step 2: Generate the import mapping files To generate import files for the target site, you need the .zip file you created when you completed the steps in [Step 1: Export a site](#export-site-steps). **Note:** The exported file does not give "Others" read permission by default. Depending on who is importing the file, you may need to adjust the permissions on the file to allow a non-owner to read it. 1. On the target Tableau Server machine, copy the exported .zip file to the directory Tableau Server expects to find the files for importing. For example: `/var/opt/tableau/tableau_server/data/tabsvc/files/siteimports` 2. Verify that the target site already exists on Tableau Server, as the import process will not create a new site. For more information, see [Prepare the Source and Target Sites](#before-you-export). 3. Run the following command on the target Tableau Server machine (Tableau Server must be running): `tsm sites import --site-id --file ` This command generates a set of .csv files that show how source site settings will map to the target site. In the steps described in the next section of this article, you confirm these mappings and adjust them where needed. By default, these .csv files are generated to a `mappings` directory created under `siteimports`. For example: `/var/opt/tableau/tableau_server/data/tabsvc/files/siteimports/working/import__/mappings` For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm#import-file-location). ### Step 3: Verify that site settings are mapped correctly The .csv files you generated in the previous section describe how the source site’s resources will be assigned to the target site when the import is complete. Items in the files that Tableau Server was unable to map, and that you need to edit, are indicated by a series of question marks (`???`). Before you can complete the import process, you must replace the question marks with valid assignments on the target site. **Important:** Some requirements apply to mapping users, schedules and published content resources, particularly when the source and target sites are on separate Tableau Server instances. For more information, see [Prepare the Source and Target Sites](#before-you-export) earlier in this article. #### To verify mapping files 1. Navigate to the directory that contains the .csv map files generated by the `tsm sites import` command. By default: `/var/opt/tableau/tableau_server/data/tabsvc/files/siteimports/working/import__/mappings` 2. Use your preferred text editor to open one of the .csv files in the `mappings` directory, and do the following. 1. Confirm that the mappings are correct. 2. If an entry shows a series of question marks (`???`), replace them with a valid value. For descriptions of the settings in each of these files, use the tables in [Mapping File Content Reference](#map-file-reference) later in this article. 3. Save the changes and preserve the CSV file formatting. Repeat this process for the remaining .csv files. ### Step 4: Import the correctly mapped files to the target site After you verify the site mappings in the .csv files, you can import the settings to the new site to complete the migration process. 1. Run the following command on the target Tableau Server machine: `tsm sites import-verified --import-job-dir --site-id ` For example: `tsm sites import-verified --import-job-dir /var/opt/tableau/tableau_server/data/tabsvc/files/siteimports/working/import_ff00_20180102022014457 --site-id new-site` 2. When the success message appears, sign in to the new site and confirm that everything was imported as you expected. **Note**: The `tsm sites import` and `tsm sites export` commands can leave a site in a locked state if an error occurs. To unlock a site, use the `tsm sites unlock` command. ## Mapping File Content Reference The following tables list the columns in each of the mapping files created when you run the `tsm site import` command. ### CSV file name: mappingsDomainMapperForGroups

Column title

Can it be edited?

Description

source_name

No

A user group name on the source site.

source_domain_name

No

The identity store type on the source site: either local (for local identity store) or a domain name (for Active Directory or LDAP external identity store).

target_domain_name

Yes*

The identity store type on the target site: either local for local identity store, or a domain name (such as example.com or example.lan) for Active Directory or LDAP external identity store.

*For the All Users group, keep the target_domain_name value set to local, even if your target server is configured for Active Directory identity store. The All Users group is a special default user group that must exist on every Tableau Server.

### CSV file name: mappingsScheduleMapper

Column title

Can it be edited?

Description

source_name

No

The names of custom and default extract or subscription schedules on the source site.

source_scheduled_action_type

No

The type of schedule, either Refresh Extract, for extract refreshes or Subscriptions, for subscription deliveries on the source site.

target_name

Yes

The names of custom schedules on the target site. You can edit this value. For example, if the schedule is named Friday Update on the source site you can rename it Friday Refresh on the target site.

target_scheduled_action_type

No*

The type of schedule, either Refresh Extract, for extract refreshes or Subscriptions, for subscription deliveries on the target site.

*In the rare case that you see question marks (???) in this column, replace them with either Refresh Extract or Subscriptions, to match the entry you see under source_scheduled_action_type.

### CSV file name: mappingsSiteMapper

Column title

Can it be edited?

Description

source_url_namespace

No

The site ID of the source site.

target_url_namespace

No

The site ID of the target site.

### CSV file name: mappingsSystemUserNameMapper

Column title

Can it be edited?

Description

source_name

No

The user name attribute of a user on the source site.

source_domain_name

No

The identity store type on the source site: either local (for local identity store) or a domain name (for Active Directory or LDAP identity store), or external.

target_name

Yes

The user name attribute for users who will be assigned to the target site upon import.

Confirm that all the user names in the list exist on the target server, and replace question marks (???) with user names that exist on the target server.

You cannot create user names by adding rows to the CSV file. Similarly, you cannot remove user names by deleting rows.

You can edit a user name in the target_name column to be different from its source user name, as long as the user already exists on the target server with that name.

For example, a user can have a source_name value of agarcia@company.com and a target_name value of ashleygarcia@company.com.

You can map a user on the source site to only one user name on the target site.

target_domain_name

Yes

The identity store type on the target site: either local (for local identity store) or a domain name (for Active Directory or LDAP external identity store).

### CSV file name: MappingsScheduleRecurrenceMapperWithAutoCreation This file does not require updates. [Skip to main content](#main-content) # Extension Security - Best Practices for Deployment These best practices are for IT officers and administrators, Tableau server and site administrators, and anyone who’s interested in adopting the use of dashboard and viz extensions with Tableau. Extensions provide vast opportunities to extend and customise the use of Tableau to fit the analytic needs of each customer. This extensibility should always include the appropriate considerations towards the security of their data and business. The best practices are intended for deployments that have a mixture of users who are on Tableau Desktop and Tableau Server or Tableau Cloud. ## Security for extensions in Tableau Extensions are web applications that extend the functionality of the dashboard or add new visualisations to Tableau. These solutions can be handled directly by Tableau or served completely as third-party customised services. These services can be hosted either within your own network, or provided by an external provider outside your network. Extensions interact with other components in the workbook and create an integrated experience for the end user using Tableau analytics content. To provide this integrated experience, extensions access the visible summary data used in the workbook. Under specific configuration, they can also access the underlying data in the workbook if needed. This access and interaction level is enabled by the Tableau Extension API, which is designed and supported as a part of the Tableau platform. Tableau supports two standards for extensions: - [Tableau Trusted Extensions](#Tableau) - [Network-enabled extensions](#Network-) ### Tableau Trusted Extensions To support the broad use of extensions across its community, Tableau manages services to help serve extensions for use at scale. These extensions can be built and maintained by Tableau directly as platform features, or by Salesforce or Tableau partner developers that work closely with Tableau’s product teams to jointly deploy solutions for broad community use through Tableau Exchange. Tableau Trusted extensions are always hosted on Tableau infrastructure, managed and governed by the Tableau product and development team. Tableau tests and reviews each extension before it’s deployed or updated. Tableau has strict requirements to only permit communication between user clients and the access-controlled Tableau extension hosts. With this design, Tableau can provide standards on common extension needs that can be useful for its community. To meet this standard, Tableau employs different solutions: - [Sandboxed extensions](#Sandboxe) - [Tableau-built extensions](#Tableau-) - [Tableau Trusted partner-built extensions (Opt In)](#Trusted) ![A diagram listing the types of Tableau Trusted extensions.](/tableau/current/en-gb/server-linux/en-gb/Img/tableau_trusted_extensions.png) #### Sandboxed extensions Tableau hosts Sandboxed extensions, which run in a protected environment specifically configured to eliminate the risk of data exfiltration. The Tableau Sandboxed extensions host is blocked from any other resource or service on the web. A Sandboxed extension can query data in the workbook using the Extensions API, but it can't send that data anywhere outside the sandbox. The results of the query are on the client computer (in the browser) and can't be sent anywhere. Restricted access ensures that only Tableau employees manage all updates to Sandboxed extensions and are the only ones to access this extension host. Sandboxed extensions are enabled for use by default and enabled for Tableau Public use. #### Tableau-built extensions Tableau-built extensions are hosted by Tableau. Specifically, these extensions are built and maintained by the Tableau development team as platform features. Like other features built by Tableau, Tableau-built extensions undergo Salesforce SDLC standards. These extensions are designed to pass JavaScript to the client computer. This allows the extension to be rendered and processed by the client. These features are supported directly by the Tableau team and deployed through the same Tableau Trusted host infrastructure. Tableau-built extensions are enabled for use by default and enabled for Tableau Public use. #### Tableau Trusted partner-built extensions (Opt In) Tableau Trusted partner-built extensions are developed by third-party partner developers, but reviewed and hosted by Tableau. By managing deployment for partner developers (many of whom are also long-standing community leaders), these new solutions can be delivered jointly between Tableau and the third-party Tableau Exchange Partner. Tableau tests each third-party solution (and each update) before they are deployed for production use. This includes functional and network communication testing, as well as automated code scans for vulnerabilities to address. Like other Tableau Trusted extensions, these extensions only allow communication between the user client and the Tableau host. Direct access to the host is controlled and limited only to Tableau employees. While Tableau can’t directly make changes or apply fixes to these third-party solutions, the service uptime and availability is governed by Tableau. Tableau Trusted partner-built extensions require administrators to enable them for use, but are generally recommended and have been enabled for Tableau Public use. ### Network-enabled extensions Network-enabled extensions are extensions not managed by Tableau. They can be hosted on web servers that are located inside or outside your local network and have full access to the web. This allows Network-enabled extensions to address more specific integration needs or custom deployment goals outside of Tableau’s standards. Network-enabled extensions can connect with other applications and services to offer new integrated capabilities to Tableau. This includes non-Tableau natural language generation or support for write-back scenarios. Network-enabled extensions have full access to the web, which means that they can offer rich features and experiences by being able to connect to outside resources. However, as they might communicate with additional services and aren’t managed by Tableau, we encourage you to evaluate Network-enabled extensions before deploying or adopting at scale. #### Locally deployed Network-enabled extensions Extensions can support deployment flexibility, such as running extensions locally within a local network. This is particularly useful for deployments that have air-gapped network requirements, or for organisations that prefer to manage their own extensions. For example, internal developers can build custom extensions that meet specific deployment needs. Network-enabled extensions support the goal of self-deployment. Because these local extensions run on ‌non-Tableau hosts and undergo their own custom release definitions, we encourage you to work with your developers to plan appropriately on how this internal extension resource and relevant process is managed for users in your deployment. By design, Network-enabled extension architecture allows full access to the web, so it’s incumbent on customers to develop their own review process to ensure that extensions specifically only communicate with allowed web resources and have appropriate cybersecurity safeguards to protect against risk. Local Network-enabled extensions are required to be added to the deployment extension safe list by Tableau administrators before they are allowed for use. These local solutions aren’t used in Tableau Public. #### Third-party provider-managed, Network-enabled extensions Network-enabled extension architecture also allows extensions to be served by a trusted third-party provider, such as directly by a Tableau partner that you’ve established a formal vendor relationship with. In these situations, a Network-enabled extension, not managed by Tableau, lets providers offer direct production support or custom services. When handled in a trusted manner, this can streamline and expand on the customisation for Tableau supported by a reputable provider. We recommend customers work with third-party providers directly for a more thorough understanding of how a provider’s development practices, extension code design and security meets their internal guidelines. These Network-enabled extensions are required to be added to the deployment extension safe list by Tableau administrators before they are allowed for use. On rare occasions, these solutions are enabled to be used in Tableau Public as unique exceptions for community goals. ### Risk considerations with Network-enabled extensions Because extensions are web applications, there's the potential that a Network-enabled extension could be vulnerable to certain types of malicious attacks, which in turn could present a risk to your computer or data. The [Open Web Application Security Project](https://www.owasp.org/) (OWASP) annually identifies the most critical web application security risks. These risks include the following: - SQL injection - Cross-site scripting (XSS) - Sensitive data exposure These risks could compromise the extension if the developers of the extension don't properly validate and handle user inputs, or if they generate dynamic queries to access sensitive databases. As you evaluate the extensions that you want to allow in Tableau, be sure to consider how they manage authentication, data access or user input, and how they mitigate security risks. ### Mitigating security threats with Network-enabled extensions Understanding what an extension does is a first step to identifying the risks for your enterprise. Often, a dashboard or viz extension doesn’t access the underlying data in the workbook and all the JavaScript code runs in the context of the browser running on the user’s computer. In these cases, no data leaves the computer, even though the extension might be hosted on a third-party site outside of your domain. Some extensions allow you to connect Tableau with other applications you have already deployed in your domain. Tableau provides security measures and security requirements for extensions. These requirements are enabled for Tableau Desktop, Tableau Server and Tableau Cloud. - All extensions must use the HTTP Secure (HTTPS) protocol. - By default, anyone using a dashboard with a Network-enabled extension will be prompted and asked to allow the extension permission to run. The extension must request permission if it accesses the underlying data. - To run on Tableau Server or Tableau Cloud, the URL of the Network-enabled extension must be added to a safe list. The server administrator manages this list for Tableau Server; the site administrator manages this list for Tableau Cloud. - On Tableau Server and Tableau Cloud, the server or site administrator (respectively) can control whether the prompt appears for each Network-enabled extension. For more information, see [Manage Dashboard and Viz Extensions in Tableau Server](https://help.tableau.com/current/server-linux/en-gb/dashboard_extensions_server.htm). ## Manage extensions using Tableau Extensions provide a way to add unique features to dashboards and new visualisations to worksheets. You can use extensions to directly integrate the dashboard with applications outside of Tableau. While extensions open up a world of possibilities, there are instances where you need or want to maintain control of how extensions are deployed in your company or enterprise. In this respect, extensions are no different from any other software that you intend to use. Before you deploy software applications in your company you should thoroughly test and verify that the software works as expected and is secure. The same is true for extensions. First, determine what level of access your users should have, and identify the extensions you want to use (or conversely, the extensions you don’t want to use). Then use the controls and features within Tableau to restrict and curate the dashboard and viz extensions users have access to. - Do you need to restrict who can add or use extensions in Tableau Desktop? See [Recommendations for Tableau Desktop](#Recommen) - Do you need to restrict or control the extensions your users have access to? See [Recommendations for Tableau Server and Tableau Cloud](#Recommen2). ## Recommendations for Tableau Desktop You have a range of options for deploying Tableau Desktop in your company. You can allow unrestricted access to extensions, or you can put limits and restrictions on who has access to extensions and under what circumstances. By default, Tableau Desktop users have unrestricted access to Tableau Trusted extensions and Network-enabled extensions. Tableau provides five options that can be used in any permutation during installation to change the default settings. - Turn off all extensions (`DISABLEEXTENSIONS`) - Turn off Network-enabled extensions (`DISABLENETWORKEXTENSIONS`). - Turn off Sandboxed extensions (`DISABLESANDBOXEXTENSIONS`). - Turn off Tableau-built extensions (`DISABLETABTRUSTEDEXTENSIONS`). - Turn off Tableau Trusted Partner-built extensions (`DISABLE3PTRUSTEDEXTENSIONS`). **Note:** You can change these settings after Tableau Desktop installation by editing the Registry (Windows) or running a script (Mac) on each Desktop. See [Turn off dashboard extensions](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_setting_changes.htm#dashboard_extensions). ### Example deployment scenarios Using the installation settings, you can deploy Tableau Desktop in several ways. - **Allow all extensions** – In this deployment scenario, you choose to trust Tableau authors to select the Tableau Trusted extensions and Network-enabled extensions they want to use. If you want to empower your Tableau Desktop users with the greatest flexibility, use the default installation settings. Using the default settings, Tableau Desktop users have unrestricted access to Tableau Trusted and Network-enabled extensions. The default settings are: `DISABLEEXTENSIONS=0` and `DISABLENETWORKEXTENSIONS=0`. See [Install Tableau Desktop from the Command Line](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_automate.htm). **Only allow Tableau Trusted extensions** – In this scenario, you entrust Tableau extension services to appropriately review, deploy and curate extensions that are for broad community use, but you aren’t sure about Network-enabled extensions and want to prevent their use at this time. To turn off support for Network-enabled extensions, set the `DISABLENETWORKEXTENSIONS` property (`DISABLENETWORKEXTENSIONS=1`). Keep the default setting for enabling extensions (`DISABLEEXTENSIONS=0`). See [Install Tableau Desktop from the Command Line](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_automate.htm). - **Only allow Sandboxed extensions** – In this scenario, you might have used Sandboxed extensions before and feel they are safe to use, but you aren’t ready to update your policy to enable broader use for Tableau-built and Tableau trusted partner-built extensions; nor do you want to change policy to allow Network-enabled extensions. You only want to permit Sandboxed extensions to be used as they have been, and you’ll want to prevent the use of all other forms of Tableau Trusted and network-enabled extensions. To turn off support for Network-enabled extensions, Tableau-built extensions and Tableau Trusted partner-built extensions: set the `DISABLENETWORKEXTENSIONS` property (`DISABLENETWORKEXTENSIONS=1`), `DISABLETABTRUSTEDEXTENSIONS` property (`DISABLETABTRUSTEDEXTENSIONS=1`), `DISABLE3PTRUSTEDEXTENSIONS` property (`DISABLE3PTRUSTEDEXTENSIONS=1`). Keep the default setting for enabling extensions (`DISABLEEXTENSIONS=0`). See [Install Tableau Desktop from the Command Line](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_automate.htm). - **No extensions allowed** – In this scenario, you don’t want to allow users to use extensions of any type. In this case, turn support for all extensions off by using the `DISABLEEXTENSIONS` property (`DISABLEEXTENSIONS=1`). See [Install Tableau Desktop from the Command Line](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_automate.htm) . **Use a combination of settings** – You might have some users who need and should have unrestricted access to all extensions, and others for whom access to Sandboxed extensions is sufficient, and then finally a set of users who need no access to extensions at all. Because the extension options are set per desktop, you can configure your deployment for specific users and their use cases. **Web authoring** \- If Tableau Server or Tableau Cloud are available for your users, they can use web authoring to access extensions. In web authoring, the server or site settings for extensions apply. In this scenario, the server and site administrators can determine which extensions to allow users access to. This is managed based on server and site extension settings, which include Tableau Trusted extension options and the extension safe list for explicit Network-enabled extensions. ![A diagram that illustrates the distinction between unrestricted and restricted access to Tableau extensions.](/tableau/current/en-gb/server-linux/en-gb/Img/ext_desktop_deploy3.png) ## Recommendations for Tableau Server and Tableau Cloud If your users have access to Tableau Server or Tableau Cloud, you can use the built-in security controls to put limits and restrictions on the extensions that can be used and under what circumstances. If you’ve turned off extensions on Tableau Desktop, you can still allow users to add extensions in web authoring, but you can limit the number of extensions that can be used to just those that you approve to run. ![A diagram illustrates how Tableau Server and Tableau Cloud settings manage extension access.](/tableau/current/en-gb/server-linux/en-gb/Img/ext_server_deploy3.png) ### Allow Tableau Trusted extensions and the Network-enabled extensions on the safe list Starting with Tableau 2025.3, Tableau allows some Tableau Trusted extensions to run by default. This means that Sandboxed extensions and Tableau-built extensions are elevated for use, whereas Tableau Trusted Partner-built extensions can be enabled by the administrators. While we encourage the use of all Tableau Trusted extensions, as we do with our environments like Tableau Public, we ultimately feel it is critical for administrators to define the policy relevant for their deployments. Network-enabled extensions aren't allowed unless they've been added to the safe list. Administrators can edit the settings and add Network-enabled extensions to the safe list for the site (Settings \> Extensions \> Enable Specific Extensions). **Note**: To make the safe list the default behaviour for extensions in Tableau 2018.2 and Tableau 2018.3, you must change the settings for the site. On the Extensions settings page, under Default behaviour for Extensions, clear the Enable unknown extensions... option. In Tableau Server 2019.1, Tableau 2019.2 and Tableau 2019.3, by default, no extensions are allowed to run unless they've been added to the safe list. #### Checklist for the safe list: - Does the extension come from a source that you know and trust? - Check the URL of the extension. Does the URL look suspicious or contain dubious domain names? - Does the extension require access to full (underlying data) or summary data? See [Understand data access](https://help.tableau.com/current/server-linux/en-gb/dashboard_extensions_server.htm#Understa). - Test the extensions before allowing broad use. See Test extensions for security. See [Test Network-enabled extensions for security](https://help.tableau.com/current/server-linux/en-gb/dashboard_extensions_server.htm#Test). #### Add extensions to the safe list: - See [Add extensions to the safe list and configure the extension](https://help.tableau.com/current/server-linux/en-gb/dashboard_extensions_server.htm#Add). ### Block specific extensions from running on Tableau Server On Tableau Server, you can block specific extensions by adding their URL to the block list. This is useful if you have multiple sites that are configured differently for extensions. For example, if you have a test site where you want to be able to test internal or third-party extensions, you might have enabled the default behaviour for extensions, where unlisted extensions are allowed to run provided they do not access the underlying data in the workbook. Adding an extension to the block list prevents it from inadvertently being used on the test site. - Add the URL of the extensions that you don't want to allow to the block list. This option is only available on Tableau Server. See [Block specific extensions](https://help.tableau.com/current/server-linux/en-gb/dashboard_extensions_server.htm#Block). ### Turn off extensions for a site By default, extensions are enabled on Tableau Server and Tableau Cloud. On Tableau Server, the server administrator can turn off extensions for a site. On Tableau Cloud, the site administrator can turn off extensions for the site. On Tableau Server, the server administrator can turn off extensions completely, which overrides the site settings. You should not have to change this setting on the server or for the site, as you can control the Network-enabled extensions that you want to allow on the safe list. You can also control the settings for Tableau Trusted extensions, where Sandboxed extensions and Tableau-built extensions are allowed by default. - To disable extensions on a site (Tableau Server, Tableau Cloud), change the site settings that enables users to run extensions on the site. See [Control extensions use](https://help.tableau.com/current/server-linux/en-gb/dashboard_extensions_server.htm#Control). ### Show or hide user prompts to run Network-enabled extensions When you add a Network-enabled extension to the safe list, you can configure whether users see prompts by default when they are adding the extension to a dashboard, or when they are interacting with a view that has the extension. The prompt tells users details about the Network-enabled extension and whether the extension has access to full data. The prompt gives users the ability to allow or deny the extension from running. You can hide this prompt from users, allowing the extension to run immediately. When enabled for a site, Sandboxed extensions are allowed by default and do not prompt users. ### Turn off all or some Tableau Trusted extensions Starting in Tableau 2025.3, Tableau allows some Tableau Trusted extensions to run on Tableau Server and Tableau Cloud by default. Sandboxed extensions and Tableau-built extensions are elevated for use, whereas Tableau Trusted Partner-built extensions can be enabled by the administrators. Sandboxed extensions run in a protected environment and are hosted by Tableau. Tableau-built extensions are developed and maintained by Tableau and hosted by Tableau. Tableau Trusted Partner-built extensions are developed and maintained by third-party partner developers, but have their solutions and updates reviewed and hosted by Tableau for availability and scale. Administrators can control whether to let users run all, some or none of the Tableau Trusted extensions on a site. Trusted extensions don’t need to be added to the safe list. When Tableau Trusted extensions are allowed, users are able to freely add Tableau Trusted extensions to workbooks and are able to open and use workbooks that contain Tableau Trusted extensions. If you need to block a Tableau Trusted extension, please contact Tableau to inquire about the specific extension URL to add to the Server block list. Server administrators can add any extension to their deployment global block list. If you need to turn off Tableau Trusted extensions completely, you can change the default setting for the site. If you change the default setting for Tableau Trusted extensions, only the extensions that are on the safe list are allowed to run. [Skip to main content](#main-content) # External Identity Store Configuration Reference Tableau Server supports connecting to an external directory using LDAP. In this scenario, Tableau Server imports users from the external LDAP directory into the Tableau Server repository as system users. This topic provides a description of all LDAP-related configuration options Tableau Server supports. If you are connecting to Active Directory, we strongly recommend that you automatically configure the LDAP connection with Tableau Server as part of Setup, rather than configuring the connection manually. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). The options listed in this reference can be used for any LDAP-compliant directory. If you do not have experience configuring LDAP, then work with your directory administrator, or with an LDAP expert. This is a reference topic. For more information about how Tableau Server stores and manages users, start with [Identity Store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm). ## Configuration methods Configuration parameters that enable Tableau Server to connect to your LDAP directory are stored in .yml files. These files are managed and synchronised by various services in Tableau Server. Updating the .yml files must be done using a Tableau Services Manager (TSM) interface. Do not attempt to update .yml files directly with a text editor. TSM must manage all updates for proper operation. The .yml configuration files are composed of key-value pairs. For example, the key, `wgserver.domain.username`, takes a username as a value. This key defines the username that will be used to authenticate to the LDAP directory during the bind operation. There are four different TSM methods that can set yml key values. The four methods are described here, using the `wgserver.domain.username` key as an example to illustrate the different methods: - configKey key-value pairs – You can update a .yml configuration file key by updating the `wgserver.domain.username` key running [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm), or by including the key in a JSON configuration file under a configKey entity. See [Configuration File Example](https://help.tableau.com/current/server-linux/en-gb/config_file_example.htm). The configKey key-value pairs in a JSON configuration file are the same as those used for `tsm configuration set` but they are set differently. This topic refers to both of these methods as _configKey_. Unlike when using configEntities and native tsm commands that are described below, configKey input is not validated. When you set an option with a configKey, the value that you enter is copied as a literal string to the underlying .yml configuration files. For example, for a key where `true` or `false` are the valid inputs, when you configure the key using a configKey key-value pair, you can enter an arbitrary string value and it will be saved for the key. In such cases, invalid values will undoubtedly lead to LDAP configuration errors. We recommend using configKeys only when no option exists to set the configuration with the other three options listed below (configEntities, a native tsm command or the TSM Web UI). When using configKeys be sure to double-check your values and be sure to mind case-sensitivity. - configEntities JSON – You can update a .yml configuration file by passing the `username` option in a _configEntities_ JSON. When you configure a value using configEntities options in a JSON file, the values are validated before they are saved. Values are case-sensitive. For details on how to configure a value using configEntities, see the [identityStore Entity](https://help.tableau.com/current/server-linux/en-gb/entity_identity_store.htm) example. The JSON file is imported with the [tsm settings import](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm#TSMSet) command. The options available for configEntities are a subset of all the .yml key-value pairs. Validation means that the import command will only succeed if all the values in the JSON file are valid data types. For example, if you enter `no` for a value that only accepts `true` or `false`, then you will receive an error and the configuration is not imported. You can only import JSON configuration files only as part of the initial configuration. If you need to make LDAP changes after you have imported the JSON configuration file and initialised Tableau Server, do not attempt to re-import the JSON file. Instead, make individual key changes with native tsm commands if available, or using configKeys and `tsm configuration set`. - Native tsm commands – You can update a .yml configuration file by passing the `ldapuser` option with the _native tsm command_ `[tsm user-identity-store](https://help.tableau.com/current/server-linux/en-gb/cli_user-identity_tsm.htm)`. As with configEntities, values that you enter with the native tsm command are validated before they are saved. Not all key-value pairs in a .yml file can be set using native tsm commands. - TSM GUI – You can set configuration values during Setup, using the TSM GUI. If you are connecting to Active Directory, and configure the Tableau identity store during Setup, with the GUI, then you are prompted for an account with AD read access. The `wgserver.domain.username` key is set when you enter credentials. This scenario only works if you are connecting to Active Directory. Tableau Server does not support arbitrary LDAP configuration as part of the GUI Setup process. Consider using the [Tableau Identity Store Configuration Tool](https://tagyoureit.github.io/tableau-identitystore-config-tool/) to generate your LDAP json configuration file. The Tableau Identity Store Configuration Tool will also generate a list of key/value pairs that you can set by running [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). The tool itself is not supported by Tableau. However, using a JSON file created by the tool instead of creating a file manually does not change the supported status of your server. ## Configuring Active Directory If you are configuring Tableau Server to use Active Directory, we recommend using the TSM Web UI during installation. The TSM Web UI is optimised to configure Tableau Server for Active Directory with the minimum necessary input. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). ## Configuration reference table

configEntities option

(Options are case sensitive)

Native tsm command

configKey

(Used with tsm configuration set command or in the configKeys section of a JSON file)

Scenario

Notes

typeN/Awgserver.authenticateAD, LDAP, LocalWhere you want to store user identity information. Values: local or activedirectory.

If you want to connect to any LDAP server, enter activedirectory.

sslPortN/Awgserver.domain.ssl_portAD, LDAPUse this option to specify the secure port of the LDAP server. We recommend secure LDAP for simple bind. LDAPS is usually port 636.
N/AN/Awgserver.domain.ldap.starttls.enabledAD, LDAP

Values: true or false.

Beginning with version 2021.2, this key is set to true by default when Tableau Server is configured to connect to Active Directory. As a result, simple bind to LDAP directory is encrypted when a valid SSL/TLS certificate is present in the Tableau key store. For more information, see Configure Encrypted Channel to LDAP External Identity Store.

This key is set to false by default when Tableau Server is configured to connect to a an arbitrary (but not Active Directory) LDAP server.

This key was introduced (but not set) in version 2021.1.

portN/Awgserver.domain.portAD, LDAPUse this option to specify the non-secure port of the LDAP server. Plaintext is usually 389.
domaindomainwgserver.domain.defaultADIn Active Directory environments, specify the domain where Tableau Server is installed, for example, "example.lan".

For non-AD LDAP: the string you enter for this value is displayed in the "Domain" column of user management tools. You can enter an arbitrary string, but the key cannot be blank.

This key is redundant with wgserver.domain.fqdn. The values for both keys must be the same.

Native tsm command: Uses tsm user-identity-store set-connection [options] command.

usernameldapusernamewgserver.domain.usernameAD, LDAPThe user name that you want to use to connect to the directory service.

The account that you specify must have permission to query the directory service.

For Active Directory, enter the username, for example, jsmith.

For LDAP servers, enter the distinguished name (DN) of the user that you want to use to connect. For example, "cn=jsmith,dc=example,dc=lan".

Native tsm command: Uses tsm user-identity-store set-connection [options] command.

passwordldappasswordwgserver.domain.passwordAD, LDAPThe password of the user account that you will use to connect to the LDAP server.

Native tsm command: Uses tsm user-identity-store set-connection [options] command.

directoryServiceTypeN/Awgserver.domain.directoryservice.typeAD, LDAPThe type of LDAP directory service that you want to connect to. Values:activedirectory or openldap.
kerberosPrincipalkerbprincipalwgserver.domain.ldap.principalAD, LDAPThe service principal name for Tableau Server on the host machine. The keytab must have permission for this principal. Do not use the existing system keytab at /etc/krb5.keytab. Rather, we recommend that you register a new service principal name. To see principals in a given keytab, run the klist -k command. See Understanding Keytab Requirements.

Native tsm command: Uses tsm user-identity-store set-connection [options] command.

hostnamehostnamewgserver.domain.ldap.hostnameAD, LDAPThe hostname of the LDAP server. You can enter a hostname or an IP address for this value. The host that you specify here will be used for user/group queries on the primary domain. In the case where user/group queries are in other domains, Tableau Server will query DNS to identify the appropriate domain controller.

Native tsm command: Uses tsm user-identity-store set-connection [options] command.

membersRetrievalPageSizeN/Awgserver.domain.ldap.members.retrieval.page.sizeAD, LDAP

This option determines the maximum number of results returned by an LDAP query.

For example, consider a scenario where Tableau Server is importing an LDAP group that contains 50,000 users. Attempting to import such a large number of users in a single operation is not a best practice. When this option is set to 1500, Tableau Server imports the first 1500 users in the first response. After those users are processed, Tableau Server requests the next 1500 users from the LDAP server, and so forth.

We recommend that you modify this option only to accommodate the requirements of your LDAP server.

N/AN/Awgserver.domain.ldap.connectionpool.enabledAD, LDAPWhen this options is set to true, Tableau Server will attempt to reuse the same connection when sending queries to the LDAP server. This behaviour decreases the overhead of having to re-authenticate with the LDAP server on each new request. Connection pooling only works with simple bind and TSL/SSL bind connections. Connection pooling is not supported for GSSAPI bind connections.
N/AN/Awgserver.domain.accept_listADAllows connection from Tableau Server to secondary Active Directory domains. A secondary domain is one that Tableau Server connects to for user synchronisation, but is a domain where Tableau Server is not installed. To ensure that Tableau Server can connect to other Active Directory domains, you must specify the trusted domains by setting the wgserver.domain.accept_list option with TSM. For more information, see wgserver.domain.accept_list.
N/AN/A

wgserver.domain.allowlist

AD

Important: Deprecated as of version 2020.4.0. Use wgserver.domain.accept_list instead.

Allows connection from Tableau Server to secondary Active Directory domains. A secondary domain is one that Tableau Server connects to for user synchronisation, but is a domain where Tableau Server is not installed. To ensure that Tableau Server can connect to other Active Directory domains, you must specify the trusted domains by setting the wgserver.domain.whitelist option with TSM. For more information, see wgserver.domain.allowlist.

kerberosConfig

kerbconfig

No direct mappingAD, LDAP

The path to the Kerberos configuration file on the local computer. If you are installing into Active Directory, we don't recommend using the existing Kerberos configuration file or keytab file that may already be on the domain-joined computer. See Identity Store

Native tsm command: Uses tsm user-identity-store set-connection [options] command.

kerberosKeytabkerbkeytabNo direct mappingAD, LDAP

The path to the Kerberos keytab file on the local computer. It is recommended that you create a keytab file with keys specifically for Tableau Server service and that you do not share the keytab file with other applications on the computer. For example, on Linux, you might place the keytab file in the /var/opt/tableau/keytab directory.

Native tsm command: Uses tsm user-identity-store set-connection [options] command.

nicknameN/Awgserver.domain.nicknameAD, LDAP

The nickname of the domain. This is also referred to as the NetBIOS name in Windows/Active Directory environments. The nickname option is required for all LDAP entities. The value cannot be null. If your organisation does not require a nickname/NetBIOS, then pass a blank key, for example: "".

rootN/Awgserver.domain.ldap.rootLDAPIf you do not use a dc component in the LDAP root or you want to specify a more complex root you need to set the LDAP root. Use the "o=my,u=root" format. For example, for the domain, example.lan, the root would be "o=example,u=lan".
serverSideSortingN/Awgserver.domain.ldap.server_side_sortingLDAPWhether the LDAP server is configured for server-side sorting of query results. If your LDAP server supports server-side sorting, set this option to true. If you are unsure whether your LDAP server supports this, enter false, as misconfiguration may cause errors.
rangeRetrievalN/Awgserver.domain.ldap.range_retrievalLDAPWhether the LDAP server is configured to return a range of query results for a request. This means that groups with many users will be requested in small sets instead of all at once. LDAP servers that support range retrieval will perform better for large queries. If your LDAP server supports range retrieval, set this option to true. If you are unsure whether your LDAP server supports range retrieval, enter false, as misconfiguration may cause errors.
bindN/Awgserver.domain.ldap.bindLDAPThe way that you want to secure communication to the directory service. Enter simple for LDAP unless you are connecting to an LDAP server with Kerberos. For Kerberos, enter gssapi.
N/AN/Awgserver.domain.ldap.domain_custom_portsLDAP

Note: This key is only supported for Tableau Server on Linux.

Allows you to map child domains and their LDAP ports. Domain and port are separated by a colon (:) and each domain:port pair is separated by a comma (,) using this format: FQDN1:port,FQDN2:port

Example: tsm configuration set -k wgserver.domain.ldap.domain_custom_ports -v childdomain1.lan:3269,childdomain2.lan:3269,childdomain3.lan:389

distinguishedNameAttributeN/Awgserver.domain.ldap.dnAttributeLDAP

The attribute that stores the distinguished names of users. This attribute is optional, but it greatly improves the performance of LDAP queries.

Important: Do not set this option as part of the initial configuration. Only set this after you have validated overall LDAP functionality. You must have a dnAttribute set in your organisation before setting this key.

groupBaseDnN/Awgserver.domain.ldap.group.baseDnLDAP

Use this option to specify an alternative root for groups. For example, if all of your group are stored in the base organisation called "groups," then enter "o=groups".

N/Aclassnameswgserver.domain.ldap.group.classnamesLDAP

By Default, Tableau Server will look for "group", "groupOfNames" or "groupOfURLs". If your LDAP group objects do not fit the default class name, override the default by setting this value. You can provide multiple classnames separated by commas.

If your group names include commas, you must avoid them by using a backslash (\). For example, if you have a group name, groupOfNames, top, then enter "groupOfNames\, top".

Tableau LDAP implementation interprets LDAP objects as either user or group. Therefore, be sure that you are entering the most specific class name. Overlapping class names between users and groups may cause conflicts.

Native tsm command: Uses tsm user-identity-store set-group-mappings [options] command.

groupBaseFilterbasefilterwgserver.domain.ldap.group.baseFilterLDAP

The filter that you want to use for groups of users of Tableau Server. You might specify an object class attribute and an organisation unit attribute. For example:

"(&(objectClass=groupofNames)(ou=Group))"

If "(&(objectClass=inetOrgPerson)(ou=People))" doesn't work in your LDAP implementation, then specify the base filter that works for your Tableau user base.

This is a required key. It cannot be blank.

Native tsm command: Uses tsm user-identity-store set-group-mappings [options] command.

groupNamegroupnamewgserver.domain.ldap.group.nameLDAP

The attribute that corresponds to group names on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-group-mappings [options] command.

groupEmailgroupemailwgserver.domain.ldap.group.emailLDAP

The attribute that corresponds to group email addresses on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-group-mappings [options] command.

groupDescriptiondescriptionwgserver.domain.ldap.group.descriptionLDAP

The attribute that corresponds to group descriptions on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-group-mappings [options] command.

membermemberwgserver.domain.ldap.group.memberLDAP

Specify the LDAP attribute that contains a list of distinguished names of users that are part of that group.

Native tsm command: Uses tsm user-identity-store set-group-mappings [options] command.

N/AN/Awgserver.domain.ldap.group.memberURLLDAPSpecify the name of the LDAP attribute that stores the LDAP query for dynamic groups.
userBaseDnN/Awgserver.domain.ldap.user.baseDnLDAPUse this option to specify an alternative root for users. For example, if all of your users are stored in the base organisation called "users," then enter "o=users".
N/Aclassnameswgserver.domain.ldap.user.classnamesLDAP

By default Tableau Server looks for LDAP user object classes containing the string “user” and “inetOrgPerson”. If your LDAP user objects do not use these default class names, override the default by setting this value. You can provide multiple classnames separated by commas. For example: "userclass1, userclass2".

If your names include commas, you must escape them with a backslash (\). For example, if you have a name, Names, top, then enter "Names\, top".

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

userBaseFilterbasefilterwgserver.domain.ldap.user.baseFilterLDAP

The filter that you want to use for users of Tableau Server. You might specify an object class attribute and an organisation unit attribute.

For example:

"(&(objectClass=inetOrgPerson)(ou=People))"

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

userUsernameldapusernamewgserver.domain.ldap.user.usernameLDAP

The attribute that corresponds to user names on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

userDisplayNamedisplaynamewgserver.domain.ldap.user.displaynameLDAP

The attribute that corresponds to user display names on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

userEmailemailwgserver.domain.ldap.user.emailLDAP

The attribute that corresponds to user email addresses on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

userCertificatecertificatewgserver.domain.ldap.user.usercertificateLDAP

The attribute that corresponds to user certificates on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

N/Athumbnailwgserver.domain.ldap.user.thumbnailLDAP

The attribute that corresponds to user thumbnail images on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

userJpegPhotojpegphotowgserver.domain.ldap.user.jpegphotoLDAP

The attribute that corresponds to user profile images on your LDAP server.

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

memberOfmemberofwgserver.domain.ldap.user.memberofLDAP

Group that the user is a member of.

Native tsm command: Uses tsm user-identity-store set-user-mappings [options] command.

groupClassNamesN/Awgserver.domain.ldap.group.classnamesLDAP

By Default, Tableau Server will look for "group", "groupOfNames" or "groupOfURLs". If your LDAP group objects do not fit the default class name, override the default by setting this value.

For configEntity: This option takes a list of strings, which requires passing each class in quotes, separated by a comma (no space) and within brackets. For example: ["basegroup","othergroup"].

For configKey: Enter each class, separated by a comma (no space) and within double quotes. For example: "basegroup,othergroup”.

userClassNamesN/Awgserver.domain.ldap.user.classnamesLDAP

By default Tableau Server looks for LDAP user object classes containing the string “user” and “inetOrgPerson”. If your LDAP user objects do not use these default class names, override the default by setting this value.

For configEntity: This option takes a list of strings, which requires passing each class in quotes, separated by a comma (no space) and within brackets. For example: ["userclass1",userclass2”].

For configKey: Enter each class, separated by a comma (no space) and within double quotes. For example: "userclass1,userclass2”.

### Calculated configKeys The following Kerberos-related configKeys are calculated and set according to multiple environmental inputs. As such, they must be set by the native tsm command or configEntities. Do not attempt to set these configKeys manually.
Calculated configKeyTo use the native TSM command:To use configEntity json:

wgserver.domain.ldap.kerberos.conf,

cfs.ldap.kerberos.conf

Set the Kerberos configuration file location with the kerbconfig option of tsm user-identity-store set-connection [options] command.

Set the Kerberos configuration file location with the kerberosConfig configEntity option.

wgserver.domain.ldap.kerberos.keytab,

cfs.ldap.kerberos.keytab

Set the Kerberos keytab file location with the kerbkeytab option of tsm user-identity-store set-connection [options] command.Set the Kerberos ketytab file location with the kerberosKeytab configEntity option.
### Unsupported configKeys Some unsupported configKeys are present in underlying .yml configuration files. The following keys are not intended for standard deployments. Do not configure these keys: - wgserver.domain.ldap.kerberos.login - wgserver.domain.ldap.guid - wgserver.domain.fqdn: this key is redundant with wgserver.domain.default. The values for both keys must be the same. Only update wgserver.domain.fqdn if the value does not match wgserver.domain.default. [Skip to main content](#main-content) # External Message Queue Service (RabbitMQ) for Tableau Resource Monitoring Tool The Tableau Resource Monitoring Tool uses RabbitMQ as its message queue service to collect data from Agents and bring them to the RMT Server. This information in the queue is processed and eventually stored in the RMT repository (PostgreSQL database). Before the 2022.3 release, the RabbitMQ message queue service was automatically installed with the RMT Server and this was the only configuration available. Starting in RMT version 2022.3, you can reconfigure RMT Server to use an externally hosted RabbitMQ service. When RMT Server is configured to use an externally hosted message queue service, we refer to it as the external message queue service. With this new option added in version 2022.3, RMT Server can be configured in the following ways: - **Continue to use the locally installed message queue service:** This means that RabbitMQ that is automatically installed with RMT Server on the same machine will be used as the message service for RMT Server, and no further changes are made to this configuration. - **Configure RMT Server to use an external message queue service:** This means that RabbitMQ that RMT uses is hosted external to RMT Server. Currently, only AWS AMQ is supported as the hosting platform for RabbitMQ. Since all messages from the Agents go through RabbitMQ, hosting this externally frees up resources from the machine where RMT Server is installed. To set up and manage the external message queue service, you should have a good understanding of the AWS AMQ platform. We recommend reviewing the [documentation on the AWS site](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html). You will also need to know how to configure and manage the external message queue service for RMT. This topic will provide you with that information in the sections below. ## New installation of Resource Monitoring Tool The instructions provided in this section apply to a new installation of Resource Monitoring Tool. If you have an existing installation and want to move your local RabbitMQ to an externally hosted configuration, see the [Existing installations of Tableau Resource Monitoring Tool](#Existing) section of this topic. Use the following steps to install the Tableau Resource monitoring tool and reconfigure RMT Server to use an external message queue service: 1. **Create Amazon AMQ for RabbitMQ** to host the external message queue service with the following recommendations: - For engine type, use the RabbitMQ engine. For the version of RabbitMQ, see the Product compatibility section. - Use the same default version as the one used when RabbitMQ is installed locally. For more information, see the product compatibility table. - Use a single-instance broker. - Instance specification: mq.m5.large, 2 vCPU/8 GiB RAM. - Create a RabbitMQ username/password. To learn more, see [Working with Amazon MQ for RabbitMQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/working-with-rabbitmq.html) on AWS documentation site. 2. **Test the connection from RMT Server** to the message broker by copying the RabbitMQ web console URL from the AWS MQ page, and paste it into a web browser on RMT Server. Log in via the username and password you created when you set up the broker. 3. Follow the instructions in this topic to **install RMT Server**, but **skip the steps for creating an environment. You will do that later after configuring RMT Server to use the external repository**. 4. Run rmtadmin setup as follows to configure the external RabbitMQ message queue service: `rmtadmin master-setup --mq-config=external --mq-server=aws_amq_servername --mq-vhost='/' --mq-port=5671 --mq-username=aws_amq_username --mq-password='aws_amq_password' --mq-tls-certificate-host=aws_amq_servername` 5. Now create an environment and download the bootstrap file. - Run the following command to create an environment: `rmtadmin create-env --name= --api-username= --api-password=` - Download the bootstrap file to register Agents: `rmtadmin bootstrap-file --env= --filename` The steps are described in full detail in the [Install the RMT Server Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install-cli.htm) topic. 6. Re-register Agents on Tableau Server Nodes using the instructions in [Install the Agent Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install-cli.htm) topic. ## Existing installations of Tableau Resource Monitoring Tool In this release, to configure external messaging service, you will essentially have to start with a new installation of Tableau Resource Monitoring Tool using the steps described in the [above section](#New). ## Upgrade best practices Here are the general steps you need to follow if you want to upgrade to a version 2022.3 or later and migrate to using an external message queue service at the same time. **Migration with environment recreation:** 1. Upgrade RMT Server and all Agents to 2022.3 or later 2. Create an Amazon AMQ broker service. 3. Configure RMT Server to use the external message queue service 4. Recreate environments and re-register all the Agents 5. Recreate any custom configurations. **Note:** You will lose some event and hardware processing data, and you will also need to reconfigure the incident thresholds ### Upgrade steps with enabling TLS for RabbitMQ Since the agents in versions earlier than 2022.3 have been communicating using unencrypted connection to the RabbitMQ message queue service, when upgrading to version 2022.3 or later, those agents need to be updated to use the new secure connection details. The steps to do this are as follows: 1. After completing the upgrade steps described in the above section, stop all agents by running the following command: `rmtadmin stop --agent` 2. Download the bootstrap file for the environment by running the following command: `rmtadmin bootstrap-file --env --filename ` 3. Run the following command on each of the machines where the Agent is installed: `rmtadmin rotate-mq-certificate --username= --password-file=` 4. Restart each Agent machine after successfully running the `rmtadmin rotate-mq-certificate` command. ## Product Compatibility This table lists RMT version 2022.3 and later only, since the external message queue is only available from version 2022.3 and later.
RMT VersionRabbitMQ version shipped with RMTSupport RabbitMQ version for external message queue service
22.33.10.53.10.5
## Who can do this To install Resource Monitoring Tool, you must have all the following: - User account with full sudo access. - Tableau Server Administrator site role. - Resource Monitoring Tool Administrator account. [Skip to main content](#main-content) # External OAuth for Snowflake Starting in Tableau 2024.3, you can use OAuth 2.0/OIDC to federate identity from an external identity provider to Snowflake. Depending on the identity provider, there are different steps needed to configure the integration. This is a high-level overview intended to guide your configuration without providing the necessary details you'll find in your identity provider documentation. It is assumed you are familiar with configuring OAuth and understand the technical details required in setting up authentication with an external identity provider. ## Configure IDP on Snowflake For information on configuring your IDP, see [External OAuth overview](https://docs.snowflake.com/en/user-guide/oauth-ext-overview) in Snowflake's help system. ## Configure the IDP on Tableau 1. Create OAuth clients on the IDP for Tableau Desktop, and for Tableau Cloud or Tableau Server. The Desktop client enables [PKCE](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) and uses `http://localhost` redirects. 2. Create the Tableau OAuth configuration file. For details on how to do this, see [OAuth Configuration and Usage](https://tableau.github.io/connector-plugin-sdk/docs/oauth) on [github](https://tableau.github.io/connector-plugin-sdk/docs/oauth), as well as examples [here](https://github.com/tableau/en-gb/connector-plugin-sdk/tree/master/samples/components/oauth). We welcome additional examples for other IDPs. - Be sure to prefix the Tableau OAuth configuration IDs with ‘custom\_’. **Note:** OAuth config IDs have a maximum limit of 36 characters. IDs longer than this may not generate an error, but they will not work. - If your IDP supports a dynamic localhost port, disable `OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL`. If your IDP does not support this, make sure to add several localhost callback URLs to the allowlist in the configuration file and on the IDP. 3. Install the new Tableau OAuth configuration file in the OAuthConfigs folder associated with each application on desktop hosts (Tableau Desktop, Tableau Prep Builder, Tableau Bridge), and on each Tableau Server and Tableau Cloud site that will be using OAuth via the site settings page. For more details, see [Custom OAuth Configs on Desktop](https://tableau.github.io/connector-plugin-sdk/docs/oauth#custom-oauth-configs-on-desktop) and [Site-Level OAuth Clients](https://tableau.github.io/connector-plugin-sdk/docs/oauth#site-level-oauth-clients). ## Connect to Snowflake When connecting, you must select OAuth and choose the OAuth configuration installed earlier. ![](/tableau/current/en-gb/server-linux/en-gb/Img/snowflake_connect_oauth.png) ## Okta If using Okta, it’s better to use a ‘custom authorisation server’ rather than the ‘org authorisation server’. The custom authorisation servers are more flexible. There’s a custom authorisation server created by default, which is called “default”. The authorisation URL should look like this: `https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize` ![okta dashboard](/tableau/current/en-gb/server-linux/en-gb/Img/athena_okta.png) [Skip to main content](#main-content) # External Repository for Tableau Resource Monitoring Tool The Tableau Resource Monitoring Tool uses a PostgreSQL database as its repository to gather and store Tableau Server monitoring data that is used to provide performance and usage information. This database is separate from the Tableau Server database. Before the 2022.3 release, this PostgreSQL repository was automatically installed with the RMT Server on the same machine as the RMT Server, and this was the only option available. Starting in version 2022.3, you can reconfigure RMT Server to use an externally hosted PostgreSQL database instead of the locally installed database. When RMT Server is configured to use an externally hosted PostgreSQL database, we refer to it as the external repository. The supported platform for hosting the external repository is an AWS RDS instance. Hosting the repository database externally allows you to manage the availability, backups and disaster recovery of the repository component of the RMT Server. With the addition of this option to configure an external repository, RMT Server can be configured in the following ways: - **Continue to use the locally installed repository:** This means that the PostgreSQL database that is automatically installed with RMT Server on the same machine will be used as the repository for RMT Server, and no further changes are made to this configuration. - **Configure RMT Server to use an external repository:** This means that the PostgreSQL database that RMT uses is hosted external to RMT Server. This requires making some configuration changes post installation. Currently only AWS RDS instances are supported as the hosting platform for PostgreSQL database. In order to set up and manage the external repository, you should have a good understanding of the AWS RDS platform and PostgreSQL database. We recommend that you use the [documentation on the AWS site](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) for platform-related instructions. You will also need to know how to configure and manage the external repository configuration for Resource Monitoring Tool. This topic will provide you with that information in the sections below. ## New installation of Resource Monitoring Tool The instructions detailed in this section apply to a new installation of Resource Monitoring Tool. If you have an existing deployment of RMT and want to move to an external repository configuration, see the [Existing Resource Monitoring Tool installation](#Migratin) section of this topic. When you install RMT Server, it automatically installs the repository database on the same machine as the RMT Server. The process to configure the external repository is a post-installation configuration where you will reconfigure RMT Server to use an externally hosted PostgreSQL database. Use the following steps to install Resource Monitoring Tool and reconfigure RMT Server to use an external repository: 1. **Create the external repository:** Create an RDS instance to host the external repository with the following recommendations. - **Minimum recommended PostgreSQL instance specifications:** - db.m6g.2xlarge (8 vcpu, 32 GiB RAM) - SSD Storage with 500 GB disk space - **Instance configuration values:** - Max. Worker Processes: Total Logical Processors - Max. Workers per Gather: Min. (Total Logical Processors / 2, 4) - Max. Parallel Workers: Total Logical Processors - Max. Parallel Maintenance Workers: Min. (Total Logical Processors / 2, 4) - Shared Buffers: Total Memory / 4 - Effective Cache Size: 75% of Total Memory - Maintenance Work Memory: Total Memory / 16 Linux, Max. 2 GB – 1 MB in Windows - Wal Buffers: Derived from Shared Buffers, likely around 16 MB - Work Memory: Derived from Shared Buffers and Max. Workers per Gather To learn how to create and connect to a PostgreSQL DB instance on AWS, see [this page on AWS documentation site](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html). 2. **Install RMT:** Follow the instructions [Install the RMT Server Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install-cli.htm) to install RMT Server, but **skip the steps for creating an environment. You will do that later after configuring RMT Server to use the external repository**. **Note that this will initially install a local PostgreSQL database.** 3. **Test the connection to the external repository:** Test the connection to the new database using psql, a PostgreSQL administrative tool that is installed with the RMT Server; - Navigate to the 'bin' folder of the locally installed PostgreSQL installation directory. `/var/opt/tableau/tabrmt/prerequisites/postgresql/bin` - Run the following command to test the connection. Substitute your own value below for **aws\_rds\_servername** and provide the PostgreSQL password you created in AWS when prompted. `psql -h -p 5432 -d postgres -U postgres` If you receive an error at this point and cannot connect successfully, review the parameter values in the command against the values from the AWS RDS console. - Once the connection has been successfully established, you can close the psql session with the following command: `\q` 4. Run `rmtadmin master-setup` **to configure RMT Server to use the external repository**. Use the following command examples and edit the command to reflect your Resource Monitoring Tool installation path, AWS RDS instance name, port number and the RDS PostgreSQL admin user password: - Navigate to the Resource Monitoring Tool RMT Server installation directory: `sudo /var/opt/tableau/tabrmt/master` - Run the command to configure external repository: `rmtadmin master-setup --db-config=external --db-server= --db-database= --db-port=5432 --db-admin-username=postgres --db-admin-password=` 5. Now **create an environment** and download the bootstrap file: - Run the following command to create an environment: `rmtadmin create-env --name= --api-username= --api-password=` - Download the bootstrap file to register Agents: `rmtadmin bootstrap-file --env= --filename=` The steps are described in full detail here: [Install the RMT Server Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install-cli.htm). 6. Follow the instructions [Install the Agent Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install-cli.htm) to Install and register Agents on Tableau Server Nodes. ## Existing Resource Monitoring Tool installation In this release, to configure external repo, you will essentially have to start with a new installation of Tableau Resource Monitoring Tool using the steps described in the [above section](#New). ## Upgrade best practices Here are the general steps you need to follow if you want to upgrade Tableau Resource Monitoring Tool and migrate to an external repository at the same time: **Migration with environment recreation:** 1. [Upgrade RMT Server and all Agents](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-upgrade.htm) to 2022.3 or later. 2. Steps 2–4 are very similar to the steps you would take to do a new installation – see [New installation of Resource Monitoring Tool](#New) above. This mainly involves: - Creating an AWS PostgreSQL DB instance. - Configure RMT Server to use the external repository. - Recreate environments and re-register all the Agents. 3. Reconfiguring any custom configurations. **Note:** You will lose historical data and also need to reconfigure any custom configurations. ### Upgrading when the new version of RMT requires a major version PostgreSQL upgrade When there is a change in the PostgreSQL major version requirement for Resource Monitoring Tool, it is a best practice to upgrade the external repository PostgreSQL version first before you upgrade Resource Monitoring Tool. More details are provided below. To see if you should upgrade your external repository PostgreSQL version, see the [product compatibility table](#product-compat). Use the following steps to upgrade RMT and the RDS instance when a PostgreSQL major version upgrade is required 1. Make a backup of your RDS instance. You will need this in case you need to roll back the upgrade. For more information, see [Backing up and restoring an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.BackupRestore.htm) topic on the AWS site. 2. Make a copy of the configuration file in the Resource Monitoring Tool directory. The configuration file is located at: `/var/opt/tableau/tabrmt/master/config.json` 3. Upgrade the RDS instance to the new version of PostgreSQL. For more information, see [Upgrading the PostgreSQL DB engine for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.html) topic on the AWS site. 4. Upgrade RMT Server. If the upgrade including the database migration is completed successfully, proceed to the next step. If the upgrade fails, see the instructions in this section on how to recover and roll back the upgrade. 5. Upgrade all the Agents on Tableau Server nodes to the new RMT version. For more information, see [Upgrading Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-upgrade.htm). #### Recovering from a failed upgrade 1. Uninstall the upgraded RMT Server. 2. Restore the AWS RDS instance to the version previous to the upgrade. For more information, see the [Backing up and restoring an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.BackupRestore.htm) topic on the AWS site. 3. Replace the config file that you backed up prior to the upgrade in the following location. You may have to create this folder as it might have been deleted during uninstallation: `/var/opt/tableau/tabrmt/master/config.json` 4. Install RMT Server, which installs a local repository. 5. Configure RMT Server to use the external repository: `rmtadmin master-setup --db-config=external --db-server= --db-database= --db-port=5432 --db-admin-username=postgres --db-admin-password=` ### RMT and PostgreSQL version compatibility This table lists RMT version 2022.3 and later only, because the external repository is only available from version 2022.3 and later.
RMT VersionPostgreSQL Version shipped with RMTSupported PostgreSQL Version for external repository
2022.3 – 2024.213.713.7
2025.0 - 2025.3.215.615.6
2025.3.3 - 2026.x15.1415.14
## Who can do this To install Resource Monitoring Tool, you must have all the following: - User account with full sudo access. - Tableau Server Administrator site role. - Resource Monitoring Tool Administrator account. [Skip to main content](#main-content) # Extract Encryption at Rest Extract encryption at rest is a data security feature that allows you to encrypt .hyper extracts while they are stored on Tableau Server. Tableau Server administrators can enforce encryption of all extracts on their site or allow users to specify to encrypt all extracts associated with particular published workbooks or data sources. ## Limitations Before they can be encrypted, older .tde file extracts must be upgraded to .hyper file extracts. This happens automatically as a part of the encryption job. For more information about the impacts of extract upgrade, see [Extract Upgrade to .hyper Format](https://help.tableau.com/current/server-linux/en-gb/extracting_upgrade.htm). Temporary files and cache files are not encrypted at rest with this feature. Workbooks (.twb) and data source files (.tds) are not encrypted with this feature. These files will contain metadata such a database table column names and formatting instructions. In certain cases, they may contain some row-level data if it is included in filters.  Other data files, such as Excel or JSON files, are not encrypted with this feature unless they are converted to extracts before being published. When extracts are downloaded from the server they are decrypted. ## Performance Overview ### Increase in Backgrounder Load You may see a slight to moderate increase in backgrounder load when you turn on encryption at rest. Encryption and decryption are computationally intensive operations. Encryption at rest alters existing backgrounder jobs and introduces new jobs to run on backgrounder. The overall increase in backgrounder load depends on the number and size of affected extracts and how often the scenarios below apply. - **Initial publishing**: When publishing workbooks or data sources using extracts that should be encrypted, the encryption happens on the server’s backgrounders. - **Extract refreshes from Tableau Server**: Full and incremental refreshes of encrypted extracts on Tableau Server will consume slightly more CPU. - **Extract refreshes from Tableau Bridge and third-party applications (e.g. Informatica, Alteryx)**: These flows will require new encryption jobs, scheduled on the backgrounders for any refreshed extract, resulting in a slight to moderate increase in backgrounder load. - **Encrypting and decrypting extracts in already published workbooks and data sources**: If the site setting for encryption at rest is set to **Enable**, users might choose to encrypt or decrypt extracts in already published workbooks and data sources on Tableau server. Depending on the number and size of extracts, this will add slight to moderate load on the backgrounders. - **Changing a site’s encryption mode**: When switching a site’s setting for encryption at rest to **Disable** or **Enforce**, the backgrounder will, respectively, decrypt or encrypt all existing extracts on the site. Depending on the number and size of extracts, this may significantly increase the load on backgrounders until all extracts are unencrypted or encrypted. - **Rotating encryption keys**: Rotating encryption keys results in the backgrounders re-encrypting all existing extracts published on that site, using fresh encryption keys. Depending on the number and size of extracts, this may significantly increase the load on backgrounders until all extracts are re-encrypted. If running at or over capacity, consider: - Adding additional backgrounder processes and resources. - Letting users encrypt individual workbooks and data sources instead of enforcing encryption for the whole site or disable encryption at rest for sites where it isn't necessary. Note that scheduled and ad hoc extract refreshes will take precedence over encryption and decryption jobs. ### Increase in Viz Load Time and Worker Load Query performance, for example, when loading or interacting with a viz or dashboard, will require the data being decrypted once, when loaded from disk to memory. This will result in a slight increase in viz load time and CPU consumption on worker nodes for the first user loading a workbook. This will not affect other users accessing those workbooks at the same time because the data will already be decrypted in memory. ### Impact on Backup and Restore Encrypted extracts in backups remain encrypted. The size of backup files (.tbks) may increase up to 50-100% due to the ineffectiveness of compression on encrypted extracts. The size increase depends, among other factors, on the number of extracts that are encrypted. The time to restore a backup that contains encrypted extracts might increase slightly due to the time to exchange encryption keys. If your Tableau Server installation has mostly or only encrypted extracts, consider disabling compression during backups to significantly improve the time backups take. To learn more about TSM backup, see [tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm). ## Enforce Encryption at Rest on a Site Tableau Server administrators can enforce encryption of all extracts on their site. 1. In a web browser, sign in to Tableau Server as a server administrator. 2. Go to the site you want to configure. 3. Click **Settings**. 4. Scroll down to the Extract Encryption at Rest section. Click **Enforce** to encrypt all extracts that are published and stored on the site. Encrypting all existing extracts stored on the site may take a while. 5. Click **Save** ## Enable Encryption at Rest on a Site Tableau Server administrators can allow users to specify to encrypt all extracts associated with particular published workbooks or data sources. 1. In a web browser, sign in to Tableau Server as a server administrator. 2. Go to the site you want to configure. 3. Click **Settings**. 4. Scroll down to the Extract Encryption at Rest section. 5. Click **Enable** to allow users to optionally encrypt extracts on the site. Changing to Enable will cancel pending decryption jobs and pending encryption jobs. No encryption jobs are created. 6. Click **Save** ## Disable Encryption at Rest on a Site 1. In a web browser, sign in to Tableau Server as a server administrator. 2. Go to the site you want to configure. 3. Click **Settings**. 4. Scroll down to the Extract Encryption at Rest section. 5. Click **Disable** to not allow encrypted extracts on the site. Changing to Disable will decrypt all existing encrypted extracts. Decrypting all extracts stored on the site may take a while. 6. Click **Save** ## View Extract Encryption Mode for All Sites 1. On a multi-site server, click Manage all sites on the site menu. **Note:** The Manage all sites option only displays when you are signed in as a server administrator. 2. Click Sites. 3. The encryption mode of each site is displayed in the **Extract encryption at rest** column. ## Encrypt or Decrypt Extracts for a Published Workbook or Data Source **Note**: The option to encrypt or decrypt the extracts associated with particular published workbook or data source is only available when the site setting for encryption at rest is set to **Enable**. When a site is set to Disable, all content is not encrypted. When a site is set to Enforce, all content is encrypted. **Note:** You must be the owner or administrator. 1. Go to the published workbook or published data source page. 2. Click the dropdown menu that says **Encrypted Extract** or **Unencrypted Extract**. 3. Select **Unencrypted**. You will see a message that says, “Decrypting extract.” \-or- Select **Encrypted**. An encryption job is started. Alternatively, you can encrypt or decrypt extracts on the card view action menu, list view action menu and action menu in the header section. ## Encrypt or Decrypt Multiple Items 1. Go to the Data Sources page. 2. Tick the box beside one or more data sources. 3. In the upper-left of the Data Sources page, click **Actions**. 4. Click **Encrypt** or **Decrypt**. ## View Encryption Status for a Single Item 1. Sign in to the site. 2. Go to a single data source page. \-or- Go to a single workbook page for a workbook containing embedded data sources. 3. The encryption status is displayed on the page. ## Filter Data Sources by Encryption Status 1. In the site, click **Explore**. 2. At the top-right, click the Explore: Top-level Projects dropdown menu and select **All Data Sources**. 3. Click the filter icon. 4. Scroll down to the “Live or extract” section and select a filtering option: All, Live, Extracts, Unencrypted Extracts, Encrypted Extracts, Currently Encrypting or Currently Decrypting. 5. Tick the box beside “Include .tde and .hyper files” if you want to include “Live to .tde file” and “Live to .hyper file” connections in your filter results. ## Filter Workbooks by Encryption Status 1. In the site, click **Explore**. 2. At the top-right, click the Explore: Top-level Projects dropdown menu and select **All Workbooks**. 3. Click the filter icon. 4. Scroll down to the “Live or extract” section and select a filtering option: All, Live, Extracts, Published, Unencrypted Extracts, Encrypted Extracts, Currently Encrypting or Currently Decrypting. 5. Tick the box beside “Include .tde and .hyper files” if you want to include “Live to .tde file” and “Live to .hyper file” connections in your filter results. Any workbooks that have at least one connection that matches the filter selection will be displayed. ## View Status of Encrypt or Decrypt Extracts Background Tasks 1. In the site, click **Site Status**. 2. Click **Background Tasks for Non Extracts** to see completed and pending background task details. Note: **Background Tasks for Non Extracts** includes all tasks not related to extract refreshes, so it includes encryption jobs. 3. In the Task menu, select **Encrypt Extracts** or **Decrypt Extracts** and click **Apply**. 4. In the Time Range menu, select a range. You see "Encrypt Extracts" or "Decrypt Extracts" background tasks for all of your extract-based published data sources and workbooks. ## The tabcmd Utility The tabcmd command-line utility has commands and options to control extract encryption. For more information, see the [tabcmd](https://help.tableau.com/current/server-linux/en-gb/tabcmd.htm) documentation. ### Specify the extract encryption mode when you create a site `tabcmd createsite --extract-encryption-mode [enforced | enabled | disabled]` ### Specify the extract encryption mode when you edit a site `tabcmd editsite --extract-encryption-mode [enforced | enabled | disabled]` ### Get the extract encryption mode when you list sites `tabcmd listsites --get-extract-encryption-mode` ### Encrypt extracts when you publish a workbook, data source, or extract to the server `tabcmd publish "filename.hyper" –-encrypt-extracts` ### Decrypt all extracts on a site **Note:** Depending on the number and size of extracts, this operation may consume significant server resources. Consider running this command outside of normal business hours. `tabcmd decryptextracts ` ### Encrypt all extracts on a site **Note:** Depending on the number and size of extracts, this operation may consume significant server resources. Consider running this command outside of normal business hours. `tabcmd encryptextracts ` ### Reencrypt all extracts on a site with new encryption keys You must specify a site. **Note:** Depending on the number and size of extracts, this operation may consume significant server resources. Consider running this command outside of normal business hours. `tabcmd reencryptextracts ` For more information, see [reencryptextracts](https://help.tableau.com/current/server-linux/en-gb/tabcmd_cmd.htm#reencryptextracts_tabcmd). ## Tableau Server Rest API With the Tableau Server REST API you can manage Tableau Server resources programmatically. You can use this access to create your own custom applications or to script interactions with Tableau Server resources. To learn more, see [Extract Encryption Methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_extract_and_encryption.htm). [Skip to main content](#main-content) # Extract Failure Incidents _Extract Failure_ incidents will be logged as a warning when there is an extract failure in Tableau. ## Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Server/Environment Management** role. [Skip to main content](#main-content) # Extract Query Load Balancing In Tableau Server version 2020.2 and later, load balancing for extract-based queries has improved and may result in faster load times for extract-based dashboards. Large deployments that are extract heavy and have a high volume of dashboard loads will probably see the most improvement, particularly if they have Hyper running on standalone nodes. Smaller deployments where Hyper is running on nodes that are shared with other server processes may also see performance improvements. Hyper logs a server health metric about the amount of resources Hyper is consuming and also takes into account load from other Tableau processes that may be running on the same server node. Based on this information, extract queries will be sent to a node that has available resources to process the query. In addition to evaluating system resources, the load balancer improves the chance that the node you are routed to has the extract already cached. This reduces the number of duplicate extracts across nodes and improves memory and I/O usage. To use this feature, the Cache Server process must be active. For more information, see [Tableau Server Cache Server](https://help.tableau.com/current/server-linux/en-gb/server_process_cache-server.htm). If Cache Server process is not enabled, load balancing will automatically revert to the previous functionality. This feature is turned on by default. To disable it, use the following tsm commands: `tsm configuration set -k hyper_standalone.consistent_hashing.enabled -v false` `tsm configuration set -k hyper_standalone.health.enabled -v false` Apply the changes using the following tsm command: `tsm pending-changes apply` For more information, see [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). [Skip to main content](#main-content) # Extract Refresh Schedules Tableau Desktop authors and data stewards can create and publish _extracts_. Extracts are copies or subsets of the original data. Because extracts are imported into the data engine, workbooks that connect to extracts generally perform faster than those that connect to live data. Extracts can also increase functionality. ## Before refreshing extracts When an extract refresh is performed on extracts created in Tableau 10.4 and earlier (that is, a .tde extract), the extract is upgraded to .hyper extract automatically. While there are many benefits of upgrading to a .hyper extract, you will be unable to open the extract with previous versions of Tableau Desktop. Tableau 2024.2 is the last version where any .tde-based content can be opened. For more information, see [Extract Upgrade to .hyper Format](https://help.tableau.com/current/server-linux/en-gb/extracting_upgrade.htm). ## Setting up refresh schedules As a server administrator, you can enable scheduling for extract refresh tasks, and then create, change and reassign schedules. General scheduling options you change on the server are available as part of the publishing process when a Tableau Desktop user publishes an extract. Schedules that you create have the following options: Priority The priority determines the order in which refresh tasks are run, where 0 is the highest priority and 100 is the lowest priority. The priority is set to 50 by default. Execution mode The execution mode indicates to the Tableau Server backgrounder processes whether to run refreshes in parallel or serially. Schedules that run in parallel use all available backgrounder processes and serial schedules run on only one backgrounder process. However, a schedule can contain one or more refresh tasks, and each task will only use one backgrounder process, whether in parallel or serial mode. This means that a schedule in parallel execution mode will use all **available** backgrounder processes to run the tasks under it in parallel, but each task will only use one backgrounder process. A serial schedule uses only one backgrounder process to run one task at a time. By default, the execution mode is set to parallel, so that refresh tasks finish as quickly as possible. You might want to set the execution mode to serial (and set a lower priority) if you have a very large schedule that prevents other schedules from running. Frequency You can set the frequency to hourly, daily, weekly or monthly. For information, see [Create or Modify a Schedule](https://help.tableau.com/current/server-linux/en-gb/schedule_manage_create.htm). ## Refreshing extracts manually In the Tableau Server web environment, both server and site administrators can run extract refreshes on-demand on the Schedules page: - Select the schedule and click Actions > Run Now. You can also refresh extracts from the command line using the tabcmd `refreshextracts` command. For more information, see [tabcmd Commands](https://help.tableau.com/current/server-linux/en-gb/tabcmd_cmd.htm). ## Refreshing extracts from Tableau Desktop Tableau Desktop users can refresh extracts they publish and own. They can do this the following ways: - At publish time: When an author publishes a workbook or data source that uses an extract, that author can add it to server refresh schedule. The refresh can be a full or an incremental refresh. Incremental refreshes reference a column in the extract that has a data type of date, date/time or integer; such as a timestamp. Tableau uses this column to identify new rows that need to be added to the extract. For more information, see [Refreshing Extracts](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#extracting_refresh.htm) and [Schedule Extract Refreshes as You Publish a Workbook](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#publish_workbooks_schedules.htm) in the Tableau Help. - **User interface:** In Tableau Desktop, you can use the Refresh from Source, Add Data From File, and Add Data From Data Source commands to upload an addition to or refresh an extract on Tableau Server. A user might want to do this if Tableau Server doesn’t have sufficient credentials to access the underlying data. For more information, see [Updating Extracts on Tableau Server](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#extracting_push.htm) in the Tableau Help. - **Data Extract command line utility:** The Data Extract command line utility installs with Tableau Desktop. You can use it to append to or refresh a published extract. For more information, see [Tableau Data Extract Command Line Utility](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#extracting_TDE.htm) in the Tableau Help. ## Other articles in this section [Skip to main content](#main-content) # Files and Permissions in TSM This topic covers the permissions requirements needed for Tableau Services Manager (TSM) to access and use files. This information is intended for server administrators. This topic does _not_ address permissions used for managing users and content within Tableau Server (permissions for content and users). For information related to these permissions, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). During installation of TSM and Tableau Server, an unprivileged user (_tableau_) is created and added to a server authorised group (_tableau_). This user account enables the work done by TSM and Tableau Server processes. You can change the user and group during installation. For more information, see [Identity Store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm). Permissions requirements for TSM apply to both files, and to the directories in which the files are placed. When TSM creates and manages files, the files get put into specific default locations with the necessary permissions and you don't need to worry about setting permissions. When you create, copy, or move files yourself, or when you put files into non-default locations, you need to be aware of permission requirements so that TSM can properly access the files. Common cases (For information about using non-default locations, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm).) General rules for permissions and TSM are: - Files – If the _tableau_ group has access to a file (if it is the group owner and has read access to the file), the users in the group have access to the file. An alternate approach is to give "other" read access. - Directories – If the _tableau_ group has read and execute access to the directory that contains a file, and any parent directories of that directory, the users in the group have access to the file. Situations that may require you to adjust permissions include server backup files and site import archives that you copy from a different computer or to a non-default location, customisation files such as logos or images, and security certificates such as SSL certificates. For example, if you migrate from Tableau Server on Windows to Tableau Server on Linux, you use a backup created in Windows to restore data to your Linux server. Because this backup file isn't created by TSM, it may not have the correct permissions for the restore process to access it. You need to make sure the backup file and the directory structure you copy it into have the proper permissions. Similarly, if you are copying files like certificates to additional nodes in a cluster, you need to make sure the files and the directories you copy them into have the permissions the _tableau_ user needs in order to access them. ## Setting permissions for individual files If you are using a file you copy to one of the default locations created by TSM, you need to make sure the ownership and permissions on the file allow TSM access by giving the _tableau_ user read access. You can do this in one of two ways: - You can give the _tableau_ user read access by giving the _tableau_ group (in a default installation) read and execute access to a file using the `chgrp` and `chmod` commands. For example: `chgrp tableau .tsbak` `chmod g+rx .tsbak` - Alternately, you can give world read and execute access to the file: `chmod o+rx .tsbak` ## Setting permissions for directories In addition to setting the proper permissions on the files themselves, TSM also needs permissions for the directory that contains the file, as well as any parent directories. If you are using a non-default location for files that TSM will access, you will need to make sure permissions for the parent directory or directories that contain the file allow read and execute access. You can address this issue in a couple of ways: - Change group ownership of the directory to the _tableau_ group, and add group read and execute permission to the directory. Doing this makes files in the directory more available to the _tableau_ user. `chgrp tableau ` `chmod g+rx ` - Alternatively, you can add world read and execute permission to the directory. This makes files in the directory more available to all users on the system. This approach may require additional steps to ensure security of other files in the directory. For example, you may want to make sure other files in the directory are not world readable so other users cannot read them. `chmod o+rx ` **Hint:** You can use `namei -mo` command to list an entire permissions tree. This can make it easier to see what directories need to have permissions adjusted to allow access by the _tableau_ group. You can find more information on the internet. [Skip to main content](#main-content) # FIPS Compliance in Tableau Resource Monitoring Tool This topic introduces the FIPS-compliant version of Tableau Resource Monitoring Tool (RMT). FIPS (Federal Information Processing Standard) compliance was added to RMT in version 2025.3. FIPS 140-2 is a US government computer security standard used to approve cryptographic modules. This compliance ensures that all cryptographic operations within RMT meet rigorous security requirements, providing a more secure environment for your data. ## Supported operating systems RMT is FIPS 140-2 compliant on the following operating systems: - Linux: RMT is FIPS compliant on RHEL 8 distros. If your RHEL 8 os is FIPS-enabled, install RMT with FIPS enabled. If your RHEL 8 OS is not FIPS-enabled, install RMT without enabling FIPS. All other supported distros must be running in non-FIPS mode for RMT to install successfully, and RMT must be installed without FIPS enabled. ## What FIPS compliance means for you The functionality of RMT is largely unchanged from the user’s point of view. FIPS compliance is primarily an under-the-hood enhancement that strengthens the security posture of the RMT. - Enhanced Security: All data in transit and at rest, when protected by cryptographic modules, will use FIPS-validated algorithms. - Installation: For new installations the process is the same as with previous versions. Learn more about installing RMT in the topic [Install the Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-installation.htm). - Upgrades: - If you are installing and do not want to run RMT in FIPS mode, your upgrade process remains the same. See [Upgrading Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-upgrade.htm) for more information. - If you want to install RMT in FIPS mode, you must do a fresh install. For details, see [Upgrading to a FIPS compliant version of RMT](#Upgrading2FIPS) below. ## Installing and upgrading RMT 2025.3.0 or later FIPS compliant RMT (version 2025.3.0 and later) uses a different algorithm for log files than previous versions. You cannot switch modes without uninstalling completely and reinstalling a fresh instance of RMT. The steps you follow to install or upgrade to RMT version 2025.3.0 or later depend on several factors including: - What operating system you are using - Whether that operating system is FIPS-enabled - Whether you want to run RMT in FIPS mode ### Installing RMT 2025.3.0 or later Installing a new instance of RMT 2025.3+ is no different than installing previous versions, except if you are installing on RHEL 8. If you are installing RMT on RHEL 8, you need to decide whether to install in FIPS mode. **Note:** All components of RMT (server and agents) must be installed with the same FIPS setting, either all FIPS enabled or none FIPS enabled. You cannot mix FIPS states in RMT components. #### Installing on Windows There are no special steps you need to take to install RMT on Windows. RMT will run on a FIPS enabled Windows system without error, but is not FIPS compliant. RMT is only FIPS compliant on RHEL 8. #### Installing on Linux - RHEL 8 systems - If the RHEL 8 operating system is FIPS enabled, you must use the `--enable-fips` switch when you install. The install will fail if you don’t use the switch. - If the RHEL 8 operating system is not FIPS enabled, you cannot use the `--enable-fips` switch. The install will fail if you use the switch. - all other Linux distros - You can install RMT as long as you are not installing in FIPS mode. Installing RMT in FIPS mode will fail. ### Upgrading to a FIPS compliant version of RMT When upgrading from a pre-2025.3.0 version of RMT to version 2025.3.0 or later, your process depends on whether or not you want to run RMT in FIPS mode. - No FIPS: if you want to upgrade to 2025.3.0 or later but do not need FIPS, you can follow the steps for a regular upgrade of RMT. - FIPS mode: if you want to run RMT in FIPS mode on RHEL 8, you must do a full uninstall of your existing version, and then install the new version with FIPS enabled. Your configuration and logs are not preserved. When upgrading from 2025.3.x version of RMT to any later version, your process depends on whether or not you want to change the FIPS status. - No FIPS: if you do not need FIPS and the version you are upgrading from is not FIPS enabled, you can follow the steps for a regular upgrade of RMT. - FIPS mode: if you want to run RMT in FIPS mode on RHEL 8 and you are upgrading an installation that is already running in FIPS mode, you can do a regular upgrade. - Changing FIPS mode (going from a FIPS enabled installation to a non-FIPS installation, or from a non-FIPS installation to a FIPS enabled installation): you must do a full uninstall of your existing version, and then install the new version with FIPS enabled. Your configuration and logs are not preserved. [Skip to main content](#main-content) # FIPS Compliance in Tableau Server on Linux This topic introduces the FIPS-compliant version of Tableau Server. FIPS (Federal Information Processing Standard) compliance was added to Tableau Server on Linux in version 2025.3. Tableau Server on Windows is not FIPS compliant. FIPS 140-2 is a US government computer security standard used to approve cryptographic modules. This compliance ensures that all cryptographic operations within Tableau Server meet rigorous security requirements, providing a more secure environment for your data. ## What FIPS compliance means for you For most users, the day-to-day experience of using Tableau Server will remain largely unchanged. The FIPS compliance is primarily an under-the-hood enhancement that strengthens the security posture of the server. - Enhanced Security: All data in transit and at rest, when protected by cryptographic modules, will use FIPS-validated algorithms. - Regulatory Adherence: FIPS compliance in Tableau Server for Linux helps organisations meet specific government and industry regulations that mandate FIPS 140-2 compliance. - User Impact: There is no direct user impact. You do not need to change how you publish workbooks, view dashboards or interact with data. The security enhancements are transparent to the end-user workflow. ## Installing Tableau Server in FIPS mode Installing Tableau Server in FIPS mode means including the `--enable-fips` flag with the `initialize-tsm script`. The documentation to install and initialise Tableau Server is the same as a non-FIPS server except for the `--enable-fips` flag. A Tableau Server instance either is or is not in FIPS mode. Once `initialize-tsm` has been run for the first time for any instance, FIPS mode is set and cannot be changed unless you reinstall Tableau Server. For more information about installing Tableau Server, see [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm). To convert an instance of Tableau Server from non-FIPS to FIPS mode, see [Restoring Data to a FIPS mode Tableau Server](#Restoring) **Note:** FIPS mode has not been tested and is not supported with Tableau Server in a Container. ## Using Tableau Server’s command line tools with FIPS When Tableau Server is installed in FIPS mode, part of the installation process adds a special environment variable, `TABLEAU_SERVER_ENABLEFIPS=true`, to the system startup scripts so that users of the system will automatically have this environment variable set for them then they log in. This ensures that when the user runs either the `tsm` or `tabcmd` CLI tools, those tools will also run in FIPS mode. While running `tsm` and `tabcmd` in FIPS mode is important for FIPS compliance, it is also necessary for correct functionality. **Note:** You cannot use older versions of `tsm` with a server in FIPS mode. ## How to determine if FIPS mode is enabled on Tableau Server FIPS mode impacts some interactions with Tableau Server, including when you can restore a server backup to another instance, and how some database connections require for authentication. There are several methods to determine if your server is running in FIPS mode: - In TSM - Run the `tsm version` command on the command line and look for ‘(FIPS)’ at the end of the version: % tsm version Tableau Services Manager command line version 2025.3.0. (FIPS) Tableau Server version 2025.3.0. (FIPS) - Open the About TSM dialog from the TSM UI: ![](/tableau/current/en-gb/server-linux/en-gb/Img/FIPS-About-TSM.png) - using tabcmd: % tabcmd version Tableau Server Command Line Utility -- 2025.3.0 (FIPS) - opening the About Tableau dialog in Tableau Server: ![](/tableau/current/en-gb/server-linux/en-gb/Img/FIPS-About-Tableau.png) ## Using a FIPS-enabled Linux operating system Tableau Server in FIPS mode has been tested on [RHEL 8 with FIPS enabled](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/security_hardening/switching-rhel-to-fips-mode_security-hardening). Tableau Server should run in FIPS mode on any supported Linux operating systems, but has only been tested on RHEL 8. You do not have to have a FIPS enabled OS to run Tableau Server in FIPS mode, but for complete FIPS compliance, you likely will want to run on a FIPS-enabled OS. You are responsible for understanding and knowing how to configure your operating system to run in FIPS mode. ## Restoring Data to a FIPS mode Tableau Server In order to restore data to a FIPS mode Tableau Server, the backup must be compliant with FIPS. However, if you are running a pre-FIPS compatible Tableau Server version, then that server cannot generate a FIPS-compliant backup and you will need to upgrade that instance before creating a backup that is FIPS-compliant. As a best practice, we strongly encourage all customers to use the Blue/Green approach for upgrading as this provides a way to fall back to your original server if you run into difficulties. For details on Blue/Green upgrades, see [Using a Blue/Green approach for upgrading Tableau Server](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-blue-green.htm). ### Upgrading a non-FIPS installation to FIPS mode To move from a non-FIPS version of Tableau Server to a FIPS mode version: 1. Back up your non-FIPS mode Tableau Server. This backup is a best practice for safety and can be used to restore your original Server install if something goes wrong. 2. Upgrade your non-FIPS mode Tableau Server to the version of Tableau Server that supports FIPS (2025.3.0 or later). 3. Take a backup of the upgraded server. This backup will be used to restore your data to a FIPS-enabled server instance created in the next step. **Note:** The upgraded server will not be in FIPS mode, but it generates a FIPS-compliant backup because it is a version that is FIPS-aware. 4. Create a new Tableau Server instance running in FIPS mode. 5. Restore the backup data to the new FIPS- enabled instance. **Note:** Once you upgrade Tableau Server to a version that supports FIPS, the backup generated by that version will be FIPS-compliant even if the Tableau Server instance isn’t running in FIPS mode. ### Upgrading a FIPS mode installation to non-FIPS mode To convert from a FIPS mode installation to a non-FIPS installation, you can follow similar steps. If you do this, the ultimate non-FIPS installation must still be a FIPS-aware version (2025.3.x or later) with FIPS mode disabled. ## FIPS enforcement mechanisms The job of enforcing FIPS standards is handled by two external libraries, [openssl](https://openssl-library.org/post/2025-03-11-fips-140-3/) and [bouncycastle](https://www.bouncycastle.org/about/bouncy-castle-fips-faq/). The libraries are NIST certified to guarantee FIPS compliance as long as the applications using them rely on them exclusively for cryptographic functions. Tableau Server is designed so that all cryptographic functions go through one of these two libraries. Specifically, the Bouncycastle libraries will not read the standard Java Keystore `cacerts` file as it is not FIPS compliant. In its place, Tableau Server uses the Bouncycastle-specific and FIPS-compliant BCFKS keystore. The use of this keystore is mostly transparent to users except if they are adding their own certificates to the OS truststore in order to communicate securely via (m)TLS to their JDBC data sources as described in the [Tableau Desktop and Web Authoring documentation](https://help.tableau.com/current/pro/desktop/en-gb/jdbc_ssl_config.htm "Link to Desktop Authoring docs"). In addition to following those steps, and after running `update-ca-certificates`, the user should then run the additional script in the Tableau Server install directory named `update-cacerts`, which will convert the contents of the OS truststore `cacerts` file to the FIPS-compliant `cacerts.bcfks` which will be created in the same directory as the OS truststore file. An example of FIPS enforcement is demonstrated connecting via JDBC to a PostgreSQL database. The two most common errors are that the server or the database user is not configured to use `scram-sha-256` [password encryption](https://www.postgresql.org/docs/current/auth-password.html) and instead is using `md5` password encryption, or when the database user’s password is fewer than the Bouncycastle library mandated 112 bits (14 bytes) in length. When connecting to PostgreSQL while Tableau Server is in FIPS mode, a user may encounter one or both errors, depending on their user configuration and credentials. Errors like these are common when running software in FIPS mode and are the difference between running Tableau Server in non-FIPS mode and FIPS mode. ## FIPS boundary Running Tableau Server in FIPS mode on a FIPS-enabled OS means that the software running on the FIPS-enabled OS and the Tableau Server software running directly on that OS are FIPS-enabled and will enforce FIPS standards. However, other software will connect to that Tableau Server, including software written by Tableau and no claims are made about the FIPS compliance of that software. The same is true if the OS is not FIPS-enabled. This includes but is not limited to web browsers and Tableau Desktop. Additionally, the FIPS standard only relates to enforcing the cryptographic algorithms in use. FIPS does not necessarily reflect the overall security posture of the software system. For example, in the above example using PostgreSQL, one option for password encryption is named ‘password’, which means no encryption. That is, passwords are sent in the clear. This is the most insecure password transmission protocol of them all, but is technically FIPS compliant because there are no cryptographic algorithms in play. If a user configures their postgres database to accept passwords in the clear, a Tableau Server in FIPS mode will connect without errors. Users are required to be aware of the security settings they are using. Running Tableau Server in FIPS mode only guarantees that the cryptographic algorithms in use conform to the FIPS standard. [Skip to main content](#main-content) # Format Animations Animate visualisations to better highlight changing patterns in your data, reveal spikes and outliers and see how data points cluster and separate. Animations visually transition between filter, sort and zoom settings, different pages and changes to filter, parameter and set actions. As visualisations animate in response to these changes, viewers can more clearly see how data differs, helping them make better informed decisions. ## Understanding simultaneous and sequential animations When you author animations, you can choose between two different styles: simultaneous or sequential. Here are examples of each type. ### Simultaneous animations The default simultaneous animations are faster and work well when showing value changes in simpler charts and dashboards. ![A Tableau animation.](/tableau/current/en-gb/server-linux/en-gb/Img/animations.gif) Click the image above to replay the animation. ### Sequential animations Sequential animations take more time but make complex changes clearer by presenting them step-by-step. ![A sequential animation.](/tableau/current/en-gb/server-linux/en-gb/Img/animations_sequential.gif) Click the image above to replay the animation. ## Animate visualisations in a workbook When you create a new workbook, Tableau enables animations for your viz by default. You can turn animations on or off at the user and workbook level. 1. Choose Format > Animations. 2. If you want to animate every sheet, under Workbook Default, click On. Then do the following: - For Duration, choose a preset, or specify a custom duration of up to 10 seconds. - For Style, choose Simultaneous to play all animations at once or Sequential to fade out marks, move and sort them and then fade them in. 3. To override workbook defaults for a particular sheet, change the settings under Selected Sheet. **Note:** In the Selected Sheet section, “(Default)” indicates a setting that automatically reflects the related Workbook Default setting. ![Animations pane with options to configure animations at the workbook or sheet level.](/tableau/current/en-gb/server-linux/en-gb/Img/animations_pane.png) To replay an animation, click the Replay button in the toolbar. From the Replay button, you can also choose the speed at which the animation replays: actual speed, 2x speed or 1/2 speed. ![Replay button drop-down menu for choosing replay speed](/tableau/current/en-gb/server-linux/en-gb/Img/replay_speed.png) ## Reset animation settings for a workbook You can reset animations to return an entire workbook to the default animation settings. Be aware that this turns animations off by default. 1. Choose Format > Animations. 2. In the middle of the Animations pane, click Reset All Sheets. ## Completely disable all animations When you create a new workbook, animations are enabled by default. If you find animations distracting while viewing vizzes, you can completely disable them so they never play. (This isn't a system-wide setting; each user needs to apply it separately.) - In Tableau Desktop, choose Help > Settings and Performance, and deselect Enable Animations. - In Tableau Cloud or Tableau Server, click your profile image or initials in the top-right corner of the browser, and choose My Account Settings. Then scroll down to the bottom of the page, deselect Enable animations, and click Save Changes. **Note:** When animations are disabled, you can still choose Format > Animations in authoring mode and adjust settings – but they will have no effect. ## Format decimals for axes animations If the number of decimal places for a measure is set to the default, then the number of decimals shown during the axis animation might fluctuate during the axes animation. To avoid this, format the number of decimal places displayed for a measure. For more information, see [Format Numbers and Null Values](https://help.tableau.com/current/pro/desktop/en-gb/formatting_specific_numbers.htm). ## Why animations won't play ### Server rendering Animations won't play if a viz is server-rendered. To ensure that vizzes render on a client computer or mobile device, use these techniques: - If you're a viz author, [reduce viz complexity](https://help.tableau.com/current/pro/desktop/en-gb/perf_visualization.htm). - If you're a Tableau Server administrator, [increase the complexity threshold for client-side rendering](https://help.tableau.com/current/server/en-gb/browser_rendering.htm). **Note:** On computers with lower processing power, animations may appear choppy, but users can continue to interact with vizzes without any delays in responsiveness. ### Unsupported browsers and features Animations are supported by all web browsers except Internet Explorer. The following Tableau features don't animate: - Maps, polygons and density marks in web browsers - Pie and text marks - Headers - Forecasts, trends and reference lines - Page history trails (If a viz includes these, turn off animations to avoid unexpected behaviour.) [Skip to main content](#main-content) # Format Numbers and Null Values You can specify the format for numeric values that are displayed in your viz, including measures, dimensions, parameters, calculated fields and axis labels. When specifying a number format, you can select from a set of standard formats, such as number, currency, scientific and percentage. You can also define a custom number format with the option to include special characters. When a measure contains null values, you can use formatting to handle the null values in a different way, such as replacing nulls with zeros or hiding them. ## For Tableau Desktop ### Specify a number format 1. Right-click (control-click on Mac) a number in the view and select Format. 2. In the Format pane, click the Numbers drop-down menu. 3. Select a number format. Some formats require additional settings. For example, if you select Scientific, you must also specify the number of decimal places. ![Formatting pane with options to select how many decimal points for scientific numbers.](/tableau/current/en-gb/server-linux/en-gb/Img/numbers1.png) Here are the number formats and associated options available in Tableau.
NUMBER FORMATFORMAT OPTIONS
Automatic: format is automatically selected based on either the format specified by the data source or the data contained in the field.None.
Number (Standard): format is based on locale selected.Locale: number format changes based on the geographical location selected.
Number (Custom): format is customised to your choice.

Decimal Places: the number of decimal places to display.

Negative Values: how negative values are displayed.

Units: the number is displayed using the specified units. For example, if the number is 20,000 and the units are thousands, the number will be displayed as 20K.

Prefix/Suffix: characters that precede and follow each displayed number.

Include thousands separators: whether the number shows separators every thousand (example: 100,000 vs. 100000).

Currency (Standard): format and currency symbol is based on locale selected.Locale: currency format based on the geographical location selected.
Currency (Custom): format and currency symbol is customised to your choice.

Decimal Places: the number of decimal places to display.

Negative Values: how negative values are displayed.

Units: the number is displayed using the specified units. For example, if the number is 20,000 and the units are thousands, the number is displayed as 20K.

Prefix/Suffix: characters that precede and follow each displayed number.

Include thousands separators: whether the number shows separators every thousand (example: 100,000 vs. 100000).

Scientific: numbers are displayed in scientific notation.Decimal: the number of decimal places to display.
Percentage: numbers are displayed as a percentage with the percent symbol. The value of 1 is interpreted as 100% and 0 as 0%Decimal: the number of decimal places to display.
Custom: format is based entirely on what is specified in the format options.Custom: type in the format you want to use, including special characters (optional). See "Define a custom number format" in this topic for details.
### Scale values automatically With the `[scale]` token, you can format custom number strings to dynamically scale values and append the appropriate International System of Unit (SI) suffixes based on their magnitude. This token is ideal when a single field spans multiple magnitudes (such as thousands and millions), which ensures that each value is displayed clearly in a readable format, avoiding the need for a uniform unit across the column. While Display Units (such as Thousands, Millions or Billions) enforce a single fixed unit across all values in a field, the `[scale]` token applies dynamic scaling per individual value. - **Display Units**: Best for enforcing uniform units across all numbers. - **`[scale]` token**: Best for adaptive, value-level formatting within a single field. #### How the `[scale]` token works Applying `[scale]` to a custom format triggers the following process: - Tableau evaluates every data point individually. - Values are divided by powers of 1,000 as appropriate. - The output is appended with a matching SI suffix. #### Scaled value formatting examples Using 0.0`[scale]`: - 12 renders as 12.0 - 1,000 renders as 1.0k - 1,500,000 renders as 1.5M - 2,300,000,000 renders as 2.3G - 0.004 renders as 4.0m #### Use `[scale]` in a custom value string 1. Right-click (or Control-click on macOS) the target number in your view and choose Format. 2. Navigate to the Format pane, open the Numbers drop-down menu and select Custom. 3. Insert the `[scale]` token into the Format input box (for example, `0.0[scale]`). #### Important notes on suffixes and units - `[scale]` utilises standard SI prefixes, including `k`, `M`, `G` and `T` for larger numbers, and `m`, `µ` and `n` for smaller numbers. - SI unit prefixes differ from standard Display Units labels. For instance, 1,000,000,000 is displayed using `G` (giga) rather than `B` (billions). - The `[scale]` tag is typed directly into the custom number formatting text string. ### Define a custom number format To apply a custom number format in your viz: 1. Right-click (control-click on Mac) a number in the view and select Format. 2. In the Format pane, click the Numbers drop-down menu and select Custom. 3. In the Format field, define your formatting preferences using the following syntax: `Positive number format;Negative number format;Zero values`. When defining your number format code, keep in mind that: - You can specify the formatting for up to three types of numbers in the following order: positive numbers, negative numbers and zeros. - Each number type must be separated by a semicolon (;). - If you specify only one number type, the format for that type is used for all numbers. - If you specify two number types, the format for the first type is applied to positive numbers and zeros, while the format for the second type is applied to negative numbers. - If you skip types in your number format code, you must include a semicolon (;) for each of the missing types. #### Custom number format examples Refer to the following table for examples of commonly used custom number format codes that you can use in your viz. The syntax has three portions: `;;` separated by semicolons.
USE CASE

NUMBER CODE SYNTAX

EXAMPLE OUTPUT
Show only positive values

#,##; ;

(note a blank space after the 2nd and 3rd semicolon)

Positive values: 1,234
Negative values: (only the blank space displays)
Zero values: (only the blank space displays)
Show only negative values;-#,##;Positive values: (nothing is displayed)
Negative values: -1,234
Zero values: (nothing is displayed)
Show only zero values;;0;Positive values: (nothing is displayed)
Negative values: (nothing is displayed)
Zero values: 0
Hide zero values#,###;-#,###;;Positive values: 1,234
Negative values: -1,234
Zero values: (nothing is displayed)
Show negative values in brackets#,###;(#,###);;Positive values: 1,234
Negative values: (1,234)
Zero values: (nothing is displayed)
Add a character prefix to a value$#,###.##;-$#,###.##;$0;Positive values: $1,234.56
Negative values: -$1,234.56
Zero values: $0
Add a character suffix to a value#%;-#%;0%;Positive values: 12%
Negative values: -34%
Zero values: 0%
Add text descriptors"$"#,#" Surplus";"$"-##" Shortage"; "$"0;Positive values: $1,234 Surplus
Negative values: $-1,234 Shortage
Zero values: $0
There are several ways to customise your number format to meet your needs. For more code guidance and examples, see [Review guidelines for customising a number format](https://support.microsoft.com/en-gb/office/review-guidelines-for-customizing-a-number-format-c0a1d1fa-d3f4-4018-96b7-9c9354dd99f5) in the Microsoft Knowledge Base. **Note:** There are slight deviations between the options described by Microsoft and those available in Tableau. For example, custom number formats that align text within columns aren't relevant in Tableau. Additionally, custom number formats to colour code text aren't applicable because you can apply colour to text using the Marks card. (For more information on applying colour, see [Control the Appearance of Marks in the View](https://help.tableau.com/current/pro/desktop/en-gb/viewparts_marks_markproperties.htm).) Be sure to only use custom number formats that apply in Tableau. #### Include special characters in a custom number format One of the benefits of custom number formatting is the ability to include special characters or symbols. Symbols can make it easier to quickly understand comparisons between measures and calculations in your viz. For example, let’s say you want to show a month-over-month comparison of profits for three of your company’s top-selling products. Rather than using the standard label to show that the profit for these products changed +5%, -2% and 0% from last month, you can set the custom number format as follows to show these changes as ▲5%,▼2% and ►0. ![Custom number format defined using special characters ](/tableau/current/en-gb/server-linux/en-gb/Img/CustomNumberFormatCode.png) ### Set the default number format for a field Right-click (control-click on Mac) the field in the Data pane and select Default Properties \> Number Format. In the subsequent dialog box, specify a number format to be used whenever the field is added to the view. The default number format is saved with the workbook. It’s also exported when you export the connection information. **Note:** Formatting numbers using the Format pane overrides any number formatting applied elsewhere. ### Format a measure as currency The view in the following image shows profit over time. Notice that the profit figures on the vertical axis aren’t formatted as currency. ![ ](/tableau/current/en-gb/server-linux/en-gb/Img/FormattingNumbersDates_InitialView.png) **To format the numbers as currency:** 1. Right-click the Profit axis and choose **Format**. ![ ](/tableau/current/en-gb/server-linux/en-gb/Img/FormattingNumbersDates_FormatAxis.png) 2. On the Axis tab in the Format pane, under Scale, select the **Numbers** drop-down list, and then select one of the following: **Currency (Standard)** to add a dollar sign and two decimal places to the figures. ![ ](/tableau/current/en-gb/server-linux/en-gb/Img/FormattingNumbersDates_FormatCurrency.png) **Currency (Custom)** to specify the number of decimal places, how to show negative values, the units, whether to include a prefix or suffix, and whether to include a separator character. ### Use locale to specify number formats By default, Tableau uses your computer's locale and language settings to format numbers. But you can explicitly set a different locale in the **Format** pane. The following steps show how to set Swiss German currency, using the same view as in the previous section. 1. Right-click the Profit axis and select **Format**. 2. On the Axis tab, under Scale, select the **Numbers** drop-down list and then select **Currency (Standard)**. 3. In the **Locale** drop-down list, items appear in a **Language (Country)** format. For this example, select **German (Switzerland)**. The view updates to show the sales figures as Swiss Francs, formatted for the German language. **Tip:** You can change the default currency setting so that every time you drag the Profit measure to a view it uses the settings you want. In the Data pane, right-click **Profit** (or other monetary measure) and select **Default Properties** > **Number Format**. Then format the field as shown above. ### Format null values When a measure contains null values, they’re usually plotted in a view as zero. However, sometimes that changes the view and you’d rather just suppress null values altogether. You can format each measure to handle null values in a unique way. **To format null values for a specific field:** 1. Right-click the field in the view that has the null value (Control-click on a Mac) and choose Format. 2. Go to the **Pane** tab. 3. In the Special Values area, specify whether to show the null value using an indicator in the lower right corner of the view, plot it at a default value (such as zero for number fields), hide the value but connect the line, or hide and break the line to indicate that a null value exists. ![Formatting pane with options on how to show null values.](/tableau/current/en-gb/server-linux/en-gb/Img/nullvalues3.png) 4. If you specify text in the **Text** field, it appears in the view for a null value when mark labels are turned on. See [Show and Hide Mark Labels](https://help.tableau.com/current/pro/desktop/en-gb/annotations_marklabels_showhideworksheet.htm#show-and-hide-individual-mark-labels). **Note**: The Special Values area isn’t available for dimensions or discrete measures. ## For Tableau Server or Tableau Cloud ### Specify a number format When authoring a view on the web, you can specify the number format for a field used in the view. 1. In web editing mode, right-click a measure in the view and select **Format Number**. ![Measure context menu with option to format numbers.](/tableau/current/en-gb/server-linux/en-gb/Img/format_numbers_web1.png) 2. In the dialog box that appears, select a number format. Some formats provide additional settings. For example, if you select Currency, you can also specify the number of decimal places, as well as the units, and whether or not to include separators, such as commas. In this example, Sales is formatted as a Currency with zero decimal places and thousand (k) units. Sales numbers in the view update with these settings. Labels and tooltips update as well. ![A dropdown menu with options for formatting numbers as automatic, standard number, custom number, standard currency, custom currency, percentage, scientific or custom.](/tableau/current/en-gb/server-linux/en-gb/Img/format_numbers_web2.png) Here are the number formats and associated options available in Tableau.
NUMBER FORMATFORMAT OPTIONS
Automatic: format is automatically selected based on either the format specified by the data source or the data contained in the field.None.
Number (Custom): format is customised to your choice.

Decimal Places: the number of decimal places to display.

Units: the number is displayed using the specified units. For example, if the number is 20,000 and the units are thousands, the number is displayed as 20K.

Include separators: whether the number shows separators every thousand (example: 100,000 vs. 100000).

Currency (Custom): format and currency symbol is customised to your choice.

Decimal Places: the number of decimal places to display.

Units: the number is displayed using the specified units. For example, if the number is 20,000 and the units are thousands, the number is displayed as 20K.

Include separators: whether the number shows separators every thousand (example: 100,000 vs. 100000).

Percentage (Custom): numbers are displayed as a percentage with the percent symbol. The value of 1 is interpreted as 100% and 0 as 0%Decimal Places: the number of decimal places to display.
Scientific (Custom): numbers are displayed in scientific notation.Decimal Places: the number of decimal places to display.
[Skip to main content](#main-content) # gatewaySettings Entity You must configure the gateway settings for the Tableau Server computer. Use the configuration file template below to create a json file. After you have filled in the options with the appropriate values, pass the json file and apply settings with the following commands: `tsm settings import -f /path/to/file.json` `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ### Gateway settings The gateway settings in the template below specify the HTTP settings for Tableau Server. We recommend using SSL/TLS. Tableau Server is hard-coded to use port 443 for SSL/TLS. Therefore, if you enable SSL, you do not need to update the gatewaySettings entity. ### Configuration template Use this template to configure the gateway settings. **Important:** All entity options are case sensitive. For more explanation about configuration files, entities and keys see [Configuration File Example](https://help.tableau.com/current/server-linux/en-gb/config_file_example.htm). { "configEntities": { "gatewaySettings": { "\_type": "gatewaySettingsType", "port": 80, "sslRedirectEnabled": true, "publicHost": "localhost" } } } ### Configuration file reference This table includes all of the options that can be included with the `"gatewaySettings"` entity set. \_type Required. Value: `"gatewaySettingsType"` Do not change. port Specifies HTTP port. Default is port 80. sslRedirectEnabled Options: `true` or `false`. publicHost Specifies host name for http/s service. trustedIPs Specifies trusted IP addresses that communicate with Tableau Server. Trusted IP addresses include upstream proxy servers and servers that are used for trusted authentication with Tableau Server. See [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm) and [Add Trusted IP Addresses or Host Names to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_trustIP.htm). If you are running Tableau Server in a cluster then all other nodes of the cluster will automatically be included in the corresponding configuration file that this entity updates. Therefore, if you specify a new value for `trustedIPs`, then you must include the IP addresses for the other nodes in the value. This option takes a list of strings, which requires passing each IP or host in quotes, separated by a comma (no space) and within brackets. For example: `["192.168.1.101","192.168.1.102","192.168.1.103"]` or `["webserv1","webserv2","webserv3"]`. trustedHosts Specifies trusted IP addresses that communicate with Tableau Server. Typically, this value contains a list of upstream proxy servers. The values in trustedHosts are used to determine client request targets. If you are running Tableau Server in a cluster then all other nodes of the cluster will automatically be included in the corresponding configuration file that this entity updates. Therefore, if you specify a new value for `trustedIPs`, then you must include the IP addresses for the other nodes in the value. This option takes a list of strings, which requires passing each IP or host in quotes, separated by a comma (no space) and within brackets. For example: `["192.168.1.101","192.168.1.102","192.168.1.103"]` or `["webserv1","webserv2","webserv3"]`. [Skip to main content](#main-content) # General Performance Guidelines ## Hardware and Software **Add more cores and memory**: Regardless of whether you’re running Tableau Server on one computer or several, the general rule is that more CPU cores and more RAM will give you better performance. Make sure you meet the Tableau Server recommended hardware and software requirements. If you are running Tableau Server in a virtual environment, use your VM host's best practices for vCPU allocation in relation to the number of physical CPU cores on the VM host. ## External repository For optimal performance for Tableau Server we recommend isolating the repository on a dedicated node in your deployment. If you have an Advanced Management licence, consider running the repository as an external database. If your organisation has a peak load of more than 1000 VizQL sessions per hour, we also recommend running Tableau Server on Linux. In this scenario, VizQL sessions refer to any user actions that display or generate visualisations from Tableau Server. For more information, see [Tableau Server External Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo.htm). ## Configuration **Schedule refreshes for off-peak hours**: Backup tasks tend to stall other background tasks until the backup is completed. Use the [Background Tasks for Extracts](https://help.tableau.com/current/server-linux/en-gb/adminview_backgrnd.htm) administrative view to see your refresh and backup task schedules. Your refresh tasks should be scheduled for off-peak hours that don't overlap with your backup window. **Look at caching**: Caching helps Tableau Server respond to client requests quickly, especially for views that connect to live databases. Use the [tsm data-access caching list](https://help.tableau.com/current/server-linux/en-gb/cli_data-access.htm#caching-list) command to confirm the caching frequency is set to `low` (this is the default). Tableau Server uses a query cache to store query results. The size of the query cache is automatically set based on the amount of available system memory, as long as you have not set it manually. The query cache consists of the logical query cache, the metadata cache and the native query cache. The default settings are suitable for most situations but it is possible to manually configure them using the TSM command line interface. The TSM settings are: `native_api.InitializeQueryCacheSizeBasedOnWeights`, `native_api.QueryCacheMaxAllowedMB`, `native_api.LogicalQueryCacheMaxAllowedWeight`, `native_api.MetadataQueryCachMaxAllowedWeight`, `native_api.NativeQueryCacheMaxAllowedWeight` and `native_api.QueryCacheEntryMaxAllowedInPercent`. For more information, see [native\_api.InitializeQueryCacheSizeBasedOnWeights](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#querycachesizeadaptiveinit). **Consider changing two session memory settings**: - **VizQL session timeout limit**: The default VizQL session timeout limit is 30 minutes. Even if a VizQL session is idle, it is still consuming memory and CPU cycles. If you can make do with a lower limit, use [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm) to change the `vizqlserver.session.expiry.timeout` setting. - **VizQL clear session**: By default, VizQL sessions are kept in memory even when a user navigates away from a view. This reduces the need to rebuild views but consumes more session memory. To free up memory, you can end sessions when users leave views by changing the value of the `vizqlserver.clear_session_on_unload` setting to `true`. (Regardless of this setting, sessions for the Tableau Mobile app are always kept in memory, improving mobile performance.) **Assess your process configuration**: Tableau Server is divided into six different components called server processes. While their default configuration is designed to work for a broad range of scenarios, you can also reconfigure them to achieve different performance goals. Specifically, you can control on which computers the processes run and how many are run. See [Performance Tuning](https://help.tableau.com/current/server-linux/en-gb/perf_tuning.htm) for general guidelines for one-, two- and three-node deployments. ## Server Resource Manager (SRM) The Server Resource Manager (SRM) monitors the system resources each Tableau process is using as well as tracking the total usage of Tableau Server on the system. If either a specific process or the product as a whole takes up too much system resources, SRM can notify the processes to free the resources or restart those processes. The thresholds that determine when SRM will notify or restart a process are set in the SRM configuration options. The Tableau development team has set the default settings based on internal testing and don’t recommend you change these settings directly. If you are seeing excessive system resource usage, we recommend that you contact Tableau Support to help determine if these configuration options need to be modified to solve the problem or issue that you are seeing. [Skip to main content](#main-content) # Get a Ticket from Tableau Server After you’ve [added trusted IP addresses](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_trustIP.htm) to Tableau Server, you’re ready to configure your web server to get tickets from Tableau Server via POST requests ([Step 2 in the diagram](https://help.tableau.com/current/server-linux/en-gb/trusted_auth.htm)). The POST request must be sent to `http:///trusted`. For example, the POST request must be sent to `http://tabserv/trusted` not `http://tabserv`. **Note:** If SSL is enabled you must use https instead of http. For example:  `https://tabserv/trusted`. Here’s the data you can use in a POST request to Tableau Server: - **`username=`** (required): The username for a licensed Tableau Server user. If you are using Local Authentication the username can be a simple string (for example, `username=jsmith`). If you are using Active Directory with multiple domains you must include the domain name with the user name (for example, `username=MyCo\jsmith`). - **`target_site=`** (required if view not on Default site): Specifies the site containing the view if Tableau Server is running [multiple sites](https://help.tableau.com/current/server-linux/en-gb/sites.htm) and the view is on a site other than the Default site (for example, `target_site=Sales`). The value you use for `` should be the [Site ID](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm) that was provided when the site was created. This value is case sensitive. If the Site ID is `SAles`, then the `target_site=SAles`. - **`client_ip=`** (optional): Used to specifiy the IP address of the computer whose web browser is accessing the view (for example, `client_ip=123.45.67.891`). It is not the IP address of the web server making the POST request of Tableau Server. If you decide to use this parameter, see [Optional: Configure Client IP Matching](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_optional.htm) for more information. Tableau Server’s response to the POST request will be a unique string (the ticket). If Tableau Server isn’t able to process the request, the return will be `-1`. See [Ticket Value of -1 Returned from Tableau Server](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_trouble_1return.htm) for tips on how to correct this. Also, in order for users to successfully authenticate when they click an embedded view, their browsers must be configured to [allow third-party cookies](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_trouble_cookie.htm). The ticket format changed in Tableau Server 10.2. The ticket format is now a string composed of two parts. Each part is a 128 bit string that is encoded before it is returned to the client. The first part is a universally unique ID (UUID v4) that is Base64-encoded. The second part is a 24-character secure random string. The concatenation of these parts can be expressed as Base64(UUIDv4):SecureRandomString. An example of a ticket might look like this: `9D1ObyqDQmSIOyQpKdy4Sw==:dg62gCsSE0QRArXNTOp6mlJ5`. Next, you need to add code that allows the web server to [construct an URL](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_webURL.htm) for the view that includes the view’s location and the ticket. [Skip to main content](#main-content) # Get Eventing Status After you have enabled Tableau Catalogue (or the Tableau Metadata API) in your Tableau Server environment, you can use the Eventing API to gauge indexing performance. The steps described below must be performed by a server admin. ## Step 1: Authenticate using the REST API To access the Eventing API, you must first authenticate against Tableau Server and get a token. You can do this using the Tableau REST API. For more information, see [Signing In and Signing Out (Authentication)](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_auth.htm) in the REST API Help. Alternatively, you can sign in to Tableau Server using your admin credentials. ## Step 2: Make a GET request Make the following GET request or paste the URL into your browser: http://my\_tableau\_server/api/metadata/v1/control/eventing/status ### Status values from the response The following values are returned by the Eventing API. - `contentType` is the content type that was most recently indexed. - `queueSize` is the number of items in the indexing queue. The larger the queue size, the longer it can take for items to show in Catalogue or Metadata API. If the queue size increases over time, you might need to adjust backgrounder capacity to support the non-interactive containers and indexing process. For more information, see [Memory for non-interactive microservice containers](https://help.tableau.com/current/server-linux/en-gb/dm_catalog_enable.htm#Memory). - `checkpointCreatedTime` is the last recorded time, in UTC, an item was indexed. The Eventing API checks for the last indexed item every five minutes. ### Example response The request returns JSON text. To view the JSON in a more readable format, you can use a JSON viewer or browser add-on. { "contentType": "PublishedDatasource", "queueSize": 312, "checkpointCreatedTime": "2020-07-29T23:50:25.763Z" } [Skip to main content](#main-content) # Get Initial Ingestion Status After enabling the Tableau Metadata API using the `tsm maintenance metadata-services` command, you can use the Backfill API to monitor progress of initial ingestion and get status information for content and lineage backfills. The steps described below must be performed by a server admin and recommended to be used in conjunction with [Step 7: Monitor initial ingestion progress and validate its status](https://help.tableau.com/current/server-linux/en-gb/dm_catalog_enable.htm#step7) in the Enable Tableau Catalog topic. ## Step 1: Authenticate using the REST API To access the Backfill API, you must first authenticate against Tableau Server and get a token. You can do this using the Tableau REST API. For more information, see [Signing In and Signing Out (Authentication)](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_auth.htm) in the REST API Help. Alternatively, you can sign in to Tableau Server using your admin credentials. ## Step 2: Make a GET request Make the following GET request or paste the URL into your browser: http://my\_tableau\_server/api/metadata/v1/control/backfill/status The request initially returns information about content backfill. When content backfill is complete, lineage backfill information is returned. - For content backfill, the request returns a status summary and additional status information for each content type depending on what content is available on Tableau Server. Indexing for each content type happens concurrently. - For lineage backfill, the request returns a status summary. ### Status values from the response The following values are returned by the Backfill API. - `contentBackfillTotalDurationSeconds` and `lineageBackfillTotalDurationSeconds` is how much time has progressed, in seconds, on the respective backfill type. When `backfillComplete` is `true`, `contentBackfillTotalDurationSeconds` and `lineageBackfillTotalDurationSeconds` is the total time spent to complete the respective backfill type. For content backfill:  - `contentType` can show the following content types: `PublishedDatasource`, `Database`, `DatabaseTable`, `Metric`, `Workbook` and `Flow`. - `contentId` is the identifier of the last indexed item. - `successfullyIngestedCount` is the number of items successfully indexed. - `failedIngestedCount` is the number of items that could not be indexed. - `durationSeconds` is the time spent, in seconds, to index items for the content type. - `totalCount` is the total number of items to index. - `checkpointCreatedTime` is the last recorded time, in UTC, an item was indexed. The Backfill API checks for the last indexed item every five minutes. - `backfillComplete` is `true` when indexing is complete for all items of the content type. For lineage backfill: - `totalCount` is the total number of lineage relationships to index. - `processedCount` is the number of indexed lineage relationships. - `lastLineageConnection` is the last indexed lineage relationship. - `backfillComplete` is `true` when indexing is complete for all lineage relationships. ### Example response The request returns JSON text. To view the JSON in a more readable format, you can use a JSON viewer or browser add-on. { "contentBackfillTotalDurationSeconds": 362, "lineageBackfillTotalDurationSeconds": 14, "contentBackfillStatuses": \[ { "contentType": "PublishedDatasource", "contentId": "sites/1/datasources/-631379806-1912815680", "successfullyIngestedCount": 20, "failedToIngestCount": 0, "durationSeconds": 312, "totalCount": 20, "checkpointCreatedTime": "2020-07-29T23:50:25.763Z", "backfillComplete": true }, { "contentType": "Database", "contentId": "sites/1/databases/e1331f9d-4d73-ee04-9edf-96fd1c37cb8e", "successfullyIngestedCount": 35, "failedToIngestCount": 0, "durationSeconds": 26, "totalCount": 35, "checkpointCreatedTime": "2020-04-29T23:50:25.769Z", "backfillComplete": true }, { "contentType": "DatabaseTable", "contentId": "sites/1/tables/d946d084-53a8-09b6-2ad2-93301e6b4b15", "successfullyIngestedCount": 64, "failedToIngestCount": 0, "durationSeconds": 49, "totalCount": 64, "checkpointCreatedTime": "2020-04-29T23:50:25.774Z", "backfillComplete": true }, { "contentType": "Metric", "contentId": "sites/1/metrics/metric1", "successfullyIngestedCount": 2, "failedToIngestCount": 0, "durationSeconds": 254, "totalCount": 2, "checkpointCreatedTime": "2020-04-29T23:50:25.779Z", "backfillComplete": true }, { "contentType": "Workbook", "contentId": "sites/1/workbooks/6749399-1501801290", "successfullyIngestedCount": 10, "failedToIngestCount": 0, "durationSeconds": 267, "totalCount": 10, "checkpointCreatedTime": "2020-04-29T23:50:25.784Z", "backfillComplete": true }, { "contentType": "Flow", "contentId": "sites/1/flows/4", "successfullyIngestedCount": 4, "failedToIngestCount": 0, "durationSeconds": 195, "totalCount": 4, "checkpointCreatedTime": "2020-04-29T23:50:25.788Z", "backfillComplete": true } \], "lineageBackfillStatus": { "totalCount": 45, "processedCount": 18, "lastLineageConnection": "CloudFile downstreamWorkbooks Workbook", "backfillComplete": false } } [Skip to main content](#main-content) # Get Process Status as XML To get a machine-readable version of the server process status, that is, a version of the status formatted in XML, use the following URL: http://my\_tableau\_server/admin/systeminfo.xml You must be signed in to Tableau Server to view the machine-readable process status, or have [enabled remote access](https://help.tableau.com/current/server-linux/en-gb/service_remote.htm). The server returns a status report similar to the following: ## Status values in the XML - worker – The name of the node running the process and the port the process is using. - Status – The status of the process on the node. Possible values are: `Active`, `Passive`, `Unlicensed`, `Busy`, `Down`, `ReadOnly`, `ActiveSyncing`, `StatusNotAvailable`, `StatusNotAvailableSyncing`, `NotAvailable`, `DecommisionedReadOnly`, `DecomisioningReadOnly`, and `DecommissionFailedReadOnly` - pendingTransfers – A count of the workbook or data source extracts the node needs to get to be fully synced. These represent items that were published to this file store node, and items that were published to other file store nodes and need to be copied to this node. - failedTransfers – A count of the workbooks or data sources that did not transfer successfully to this file store node during the last automated job. The automated job normally runs about every 15 to 30 minutes, but may take longer when transferring a large number of extracts or large extracts. Failed transfers do not necessarily indicate a problem with Tableau Server. The recurring automated job will normally transfer files that failed during the previous sync. Reasons for failed file transfers are listed in the logs. - syncTimestamp – The time in UTC of the last automated job that ran and synchronised files. [Skip to main content](#main-content) # Get Started with Explain Data Use Explain Data in your flow of analysis as you are exploring the marks in a viz. Explain Data runs automatically when the Data Guide pane is open and updates based on the current selection (dashboard, sheet or mark).

Use Explain Data

Author Workbooks and Control Access

## Run Explain Data on a dashboard, sheet or mark These are the basic steps to run Explain Data in Tableau Desktop, Tableau Cloud and Tableau Server: 1. Open a dashboard or sheet in a workbook. 2. In the view toolbar, select Data Guide ![Data Guide icon](/tableau/current/en-gb/server-linux/en-gb/Img/data_guide_icon.png) to open the Data Guide pane. 3. If you open a dashboard, Explain Data will analyse it for outliers. ![Detected Outliers showing in the Data Guide for a dashboard](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_dg_dashboard.png) If you select a sheet in the dashboard, Explain Data analyses the marks in that sheet for outliers. ![Explain Data detailed explanation for a selected sheet.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_dg_sheet.png) If you select a mark in the dashboard, Explain Data specifically analyses that mark for explanations. ![Explain Data detailed explanation for a selected mark.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_dg_mark.png) The marks that are being explained are highlighted in the viz as you select corresponding explanations. Optionally, you can select a mark in a viz, hover the cursor over the mark. In the tooltip menu, select **Data Guide** ![Data Guide icon](/tableau/current/en-gb/server-linux/en-gb/Img/data_guide_icon.png). ![Image of mark tooltip with Data Guide icon selected](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_tooltip_dg2.png) In Tableau Public, select the lightbulb in the tooltip menu to run Explain Data. ![Click the lightbulb icon in a mark tooltip menu to run Explain Data.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_tooltip_button.png) Possible explanations for the value of the analysed mark are displayed in the Data Guide pane. Select different explanation names to expand the details and start exploring. ### Explain Data permissions required for seeing explanations If you see Detected Outliers with a note to contact the owner of the viz, it is because you need permission to see these types of explanations. Select the owner name to go to their Tableau content page with their email address. Contact the owner to ask them to give you Explain Data permissions for the workbook or view. If you are the owner of the workbook, for more information on setting permissions, see [Control who can use Explain Data and what they can see](https://help.tableau.com/current/server-linux/en-gb/explain_data_control_access.htm#Control). ### Tips for using Explain Data - Multiple marks can't be selected for comparison with each other. - The view must contain marks that are aggregated using SUM, AVG, COUNT, COUNTD or AGG (a calculated field). - When Explain Data cannot analyse the type of mark selected, a message is displayed to indicate why. For more information, see [Situations where Explain Data is not available](https://help.tableau.com/current/server-linux/en-gb/explain_data_requirements.htm#NotAvailable). - The data you analyse must be drawn from a single, primary data source. Explain Data does not work with blended or cube data sources. - For information on what characteristics make a data source more interesting for use with Explain Data, see [Requirements and Considerations for Using Explain Data](https://help.tableau.com/current/server-linux/en-gb/explain_data_requirements.htm). ## Drill into explanations 1. In the Data Guide pane, select an explanation name to see more details. Select an explanation to expand or contract its details. 2. Scroll to see more explanation details. 3. Hover over charts in the explanations to see details on different data points. Select the Open ![Open View icon.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_openviewicon.png) icon to see a larger version of the visualisation. Creators or Explorers who open the view for editing can select the Open ![Open View icon.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_openviewicon.png) icon to open the visualization as a new worksheet and explore the data further. **Note**: Creators and Explorers who have editing permissions can also control Explain Data Settings. For more information, see [Control Access to Explain Data](https://help.tableau.com/current/server-linux/en-gb/explain_data_control_access.htm). 4. Hover over a Help icon ![Explain Data Help icon.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_helpicon.png) to see tooltip help for an explanation. Select the Help icon ![Explain Data Help icon.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_helpicon.png) to keep the tooltip open. Select a **Learn More** link to open the related help topic. ## View analysed fields 1. [Run Explain Data on a dashboard, sheet or mark](#RunExD). 2. In the Data Guide pane, under **Explore underlying values for**, select a target measure name. ![Explain Data details about an analysed mark, with text highlighted that describes a higher-than-expected trip distance sum value of 8,800.](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_viewfields1.png) 3. Select the _number-of-fields_ link at the bottom of the pane. ![Explain Data details about an analysed mark, with text highlighted that reads "14 of 23 fields".](/tableau/current/en-gb/server-linux/en-gb/Img/explaindata_viewfields2.png) Authors have the option to open Explain Data Settings to control which fields are included in the analysis. For more information, see [Change fields used for statistical analysis](https://help.tableau.com/current/server-linux/en-gb/explain_data_lm_status.htm#IncludeExcludeFields). ## Terms and concepts in explanations The following terms and concepts appear frequently in explanations. You may find it helpful to become acquainted with their meaning in the context of using Explain Data. What is a mark? A mark is a selectable data point that summarises some underlying record values in your data. A mark can be made of a single record or multiple records aggregated together. Marks in Tableau can be displayed in many different ways such as lines, shapes, bars and cell text. Tableau gets the records that make up the mark based on the intersection of the fields in the view. The **analysed mark** refers to a mark in a dashboard or sheet that was analysed by Explain Data. For more information on marks, see [Marks](https://help.tableau.com/current/pro/desktop/en-gb/view_parts.htm#Marks). What does expected mean? The expected value for a mark is the median value in the expected range of values in the underlying data in your viz. The expected range is the range of values between the 15th and 85th percentile that the statistical model predicts for the analysed mark. Tableau determines the expected range each time it runs a statistical analysis on a selected mark. If an expected value summary says the mark is _lower than expected_ or _higher than expected_, it means the aggregated mark value is outside the range of values that a statistical model is predicting for the mark. If an expected value summary says the mark is _slightly lower_ or _slightly higher_ than expected or _within the range of natural variation_, it means the aggregated mark value is within the range of predicted mark values, but is lower or higher than the median. For more information, see [What is an expected range?](https://help.tableau.com/current/pro/desktop/en-gb/explain_data_explained.htm#ExpectedRangeLM) What are dimensions and measures? Each column name in a database is a field. For example, Product Name and Sales are both fields. In Tableau, fields like Product Name that categorise data are called dimensions; fields with quantifiable data like Sales are called measures. Tableau aggregates measures by default when you drag them into a view. Some explanations describe how the underlying record values and the aggregations of those values may be contributing to the value of the analysed mark. Other explanations may mention the distribution of values across a dimension for the analysed mark. When you run Explain Data on mark, the analysis considers dimensions and measures in the data source that aren't represented in the view. These fields are referred to as unvisualised dimensions and unvisualised measures. For more information on dimensions and measures, see [Dimensions and Measures](https://help.tableau.com/current/pro/desktop/en-gb/datafields_typesandroles.htm). What is an aggregate or aggregation? An aggregate is a value that is a summary or total. Tableau automatically applies aggregations such as SUM or AVG whenever you drag a measure onto Rows, Columns, a Marks card option or the view. For example, measures are displayed as SUM(Sales) or AVG(Sales) to indicate how the measure is being aggregated. To use Explain Data, your visualisation must use a measure that is aggregated with SUM, AVG, COUNT, COUNTD or AGG. For more information about aggregation, see [Data Aggregation in Tableau](https://help.tableau.com/current/pro/desktop/en-gb/calculations_aggregation.htm). What is a record value? A record is a row in a database table. A row contains values that correspond to each field. In this example, Category, Product Name and Sales are fields (or columns). Furniture, Floor Lamp and $96 are the values.
CategoryProduct NameSales
FurnitureFloor Lamp$96.00
What is a distribution? A distribution is a list of all the possible values (or intervals) of the data. It also indicates how often each value occurs (frequency of occurrence). [Skip to main content](#main-content) # Get Started with Tableau Server on Linux Looking for Tableau Server on Windows? See [Get Started with Tableau Server](https://help.tableau.com/current/server/en-gb/get_started_server.htm "Opens topic in a new browser tab"). For a brief overview, watch the [Getting Started with Tableau Cloud and Tableau Server](https://www.tableau.com/en-gb/learn/tutorials/on-demand/getting-started-tableau-cloudserver?playlist=509087) training video (2 mins). ## Plan ![Add description of the image](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_GetStarted_big.png) - [Tableau Blueprint](https://help.tableau.com/current/blueprint/en-gb/bp_overview.htm) - [Server administrator overview](https://help.tableau.com/current/server-linux/en-gb/admin.htm) - [Before you install...](https://help.tableau.com/current/server-linux/en-gb/requ.htm) - [Infrastructure planning](https://help.tableau.com/current/server-linux/en-gb/server_infrastructure_planning.htm) - [more](https://help.tableau.com/current/server-linux/en-gb/plan.htm) ## Deploy ![Deploy Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_InstallConfigure_big.png) - [Jump-start installation](https://help.tableau.com/current/server-linux/en-gb/jumpstart.htm) - [Install and configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm) - [Install drivers](https://www.tableau.com/en-gb/support/drivers) - [Tableau Server Enterprise Deployment Guide](https://help.tableau.com/current/guides/enterprise-deployment/en-gb/edg_intro.htm) - [more](https://help.tableau.com/current/server-linux/en-gb/install.htm) ## Migrate and Upgrade ![Migrating Tableau Server and upgrading to new versions of Tableau Server](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_Migrate_big.png) - [Technical Considerations for Migrating from Tableau Server to Tableau Cloud](https://help.tableau.com/current/server-linux/en-gb/migrate_server_to_cloud_overview.htm) - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Upgrade](https://help.tableau.com/current/server-linux/en-gb/upgrade.htm) - [more](https://help.tableau.com/current/server-linux/en-gb/migrate.htm) ## Deploy Client Software ![Deploy Tableau mobile and desktop](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_Deploy_big.png) - [Tableau Desktop and Tableau Prep deployment guide](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_welcome.htm) - [Tableau Mobile deployment](https://help.tableau.com/current/mobile/mobile-admin/en-gb/admin_mobile_intro.htm) - [more](https://help.tableau.com/current/server-linux/en-gb/install.htm) ## Manage Server ![Server management.](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_ManageServer_big.png) - [TSM command line reference](https://help.tableau.com/current/server-linux/en-gb/tsm.htm) - [Extract refresh schedules](https://help.tableau.com/current/server-linux/en-gb/publish.htm) - [Add or update sites](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm) - [Add users to the server](https://help.tableau.com/current/server-linux/en-gb/users_add.htm) - [more](https://help.tableau.com/current/server-linux/en-gb/manage_server.htm) ## Manage Sites ![Sites!](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_ManageSites_big.png) - [What is a site](https://help.tableau.com/current/server-linux/en-gb/sites.htm) - [Manage users and groups](https://help.tableau.com/current/server-linux/en-gb/users.htm) - [Manage content access](https://help.tableau.com/current/server-linux/en-gb/permissions_section.htm) - [Manage data](https://help.tableau.com/current/server-linux/en-gb/manage_data_section.htm) - [more](https://help.tableau.com/current/server-linux/en-gb/manage_site.htm) ## Automate and Extend ![Rest API, WDC, developer](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_Embed_big.png) - [Tableau tools and samples on GitHub](https://tableau.github.io/) - [REST API](https://help.tableau.com/current/api/rest_api/en-gb/help.htm) - [Web Data Connector (wdc)](https://tableau.github.io/webdataconnector/docs/) - [Dashboard extensions](https://help.tableau.com/current/server-linux/en-gb/dashboard_extensions_server.htm) - [more](https://www.tableau.com/en-gb/developer) ## Related Products ![Extras](/tableau/current/en-gb/server-linux/en-gb/Img/Help_Spot_Addon_big.png) - [Tableau Advanced Management](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm) - [Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_overview.htm) ## Other articles in this section [Skip to main content](#main-content) # Get Started with Tableau Resource Monitoring Tool This article will help you get started with Tableau Resource Monitoring Tool. It contains links to other articles about information you need to prepare before installing Resource Monitoring Tool, links to upgrade and other useful resources. In an effort to align with our company values of Equality, we have changed non-inclusive terminology where possible. Because changing terms in certain places can cause a breaking change, we maintain the existing terminology. So, you may continue to see the terms in CLI commands and options, installation folders, configuration files and other instances. For more information, see [About Tableau Help](https://help.tableau.com/current/tableau/en-gb/about-tableau-help.htm). ## Pre-Installation ### Product Compatibility with Tableau Server The Resource Monitoring Tool can be installed to monitor supported Tableau Server versions. The table below lists the version compatibility between Resource Monitoring Tool(RMT) and Tableau Server:
RMT VersionOS supportTableau Server Version
2026.2.xWindows, Linux2024.2.x, 2024.3.x, 2025.1.x, 2025.2.x, 2025.3.x, 2026.1.x, 2026.2.x
2026.1.xWindows, Linux2024.1.x, 2024.2.x, 2024.3.x, 2025.1.x, 2025.2.x, 2025.3.x, 2026.1.x
2025.3.xWindows, Linux

2022.3.x, 2023.1.x, 2023.3.x, 2024.2.x, 2025.1.x, 2025.3.x

2025.1.x, 2025.2.xWindows, Linux

2022.3.x, 2023.1.x, 2023.3.x, 2024.2.x, 2025.1.x

2024.2.xWindows, Linux

2022.3.x, 2023.1.x, 2023.3.x, 2024.2.x

2023.3.xWindows, Linux

2022.3.x, 2023.1.x, 2023.3.x

2023.1.xWindows, Linux

2022.3.x, 2023.1.x

2022.3.xWindows, Linux

2022.3.x

### Resource Monitoring Tool Server (RMT Server) and Agent Compatibility Generally, we recommend that you install the same version of RMT Server and Agent to be sure that they are compatible. If you have Agents using versions not compatible with the RMT Server version, a critical incident is logged. For more information, see [Agent Incidents](https://help.tableau.com/current/server-linux/en-gb/rmt-incidents-agents-unlicensed.htm). ### Concepts and Terms Get familiar with the concepts and terms used in the Resource Monitoring Tool topics. For more information, see [Concepts](https://help.tableau.com/current/server-linux/en-gb/rmt-concepts.htm). ### Setup Architecture The Resource Monitoring Tool has two main components: Resource Monitoring Tool Server (RMT Server) and Agent. The RMT Server should be installed on its own machine, and the Agent is installed on each node of your Tableau Server Cluster. For a more details about the setup architecture, see [Install the Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-installation.htm). A high-level view of the Resource Monitoring Tool setup. This diagram shows a three node Tableau Server Cluster. ![Diagram illustrating the relationships between a master server and Tableau server clusters for both production and development/testing.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-setup-architecture.png) ### Minimum Hardware Requirements and Recommendations for Resource Monitoring Tool Resource Monitoring Tool handles all of the processing, aggregation, storage and web interface to the monitoring data collected from your Tableau Server installation. For production use, the machine you install Resource Monitoring Tool on should meet or exceed the minimum hardware recommendations. For more details, see [Minimum Hardware Requirements and Recommendations for Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-min-hardware-req.htm). ### Pre-Installation Checklist for Resource Monitoring Tool Before you install Resource Monitoring Tool, review these action items and complete any necessary steps: [Pre-Installation Checklist – Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-install-checklist.htm) ## Troubleshoot Be sure to check our [Troubleshoot Tableau Resource Monitoring Tool Issues](https://help.tableau.com/current/server-linux/en-gb/rmt-faq.htm) for answers to common questions before contacting support. ## Other articles in this section [Skip to main content](#main-content) # Getting Started with Tableau Content Migration Tool This article will help you get started with the Tableau Content Migration Tool. It contains links to other articles about information you need to prepare before installing the Content Migration Tool and steps to design a migration plan and upgrade existing installations. ## Pre-installation ### Installation requirements The Content Migration Tool can only be installed on Windows operating systems. Before installing, you must be able to connect to the Tableau source site (the site you are migrating from) and the destination site (the site you are migrating to) from the computer where Content Migration Tool is installed. Both the source and destination sites must have a valid [Advanced Management](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm) licence. For more information about installing and upgrading Content Migration Tool, see [Install Tableau Content Migration Tool](https://help.tableau.com/current/server-linux/en-gb/cmt-install.htm). ### Compatibility with Tableau Server The Content Migration Tool supports content migration for Tableau Server versions 2019.3 and later. The table lists compatible versions of Tableau Server based on the installed version of Content Migration Tool. | CMT Version | Tableau Server Version | | --- | --- | | 2025.2x | 2023.3x - 2025.1.x | | 2025.1x | 2023.3x - 2025.1.x | | 2024.3x | 2022.3x - 2024.2.x | | 2024.2x | 2022.3x - 2024.2.x | | 2024.1x | 2022.1x - 2024.1.x | | 2023.3.x | 2021.4.x - 2023.3.x | | 2023.2.x | 2021.3.x - 2023.2.x | | 2023.1.x | 2021.2.x - 2023.1.x | | 2022.4.x | 2021.1.x - 2022.4.x | | 2022.3.x | 2020.4.x - 2022.3.x | | 2022.2.x | 2020.3.x - 2022.2.x | | 2022.1.x | 2020.2.x - 2022.1.x | | 2021.4.x | 2020.1.x - 2021.4.x | | 2021.3.x | 2019.4.x - 2021.3.x | | 2021.2.x | 2019.3.x - 2021.2.x | | 2021.1.x | 2019.3.x - 2021.1.x | | 2020.4.x | 2019.3.x - 2020.4.x | | 2020.3.x | 2019.3.x - 2020.3.x | ### Compatibility with Tableau Cloud Content Migration Tool version 2022.2.1 and later support content migration for all Tableau Cloud deployments. We recommend installing the most recent version from the [Tableau Advanced Management](https://www.tableau.com/en-gb/support/releases/advanced-management) downloads page to take advantage of the latest features and fixes. ### Compatibility with Tableau content The Content Migration Tool supports migrating workbooks and published data sources saved in the eight most recent versions of Tableau. While you can migrate existing data sources, only data sources that use the connection types in the table below can be changed and modified during migration. For more information, see Data Source Transformations in [Migration Plans: Workbooks](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_workbooks.htm) and [Migration Plans: Published Data Sources](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_datasources.htm).

Actian Matrix

Actian Vectorwise

Amazon Athena

Amazon Aurora

Amazon EMR

Amazon Redshift

Apache Drill

Aster Database

Box

Cloudera Hadoop

Delimited Text File

EXASOL

Firebird

Google Analytics

Google BigQuery

Google Cloud SQL

Google Drive

HortonWorks Hadoop Hive

HP Vertica

IBM DB2

IBM Netezza

Map R Hadoop Hive

Microsoft Access

Microsoft Analysis Services

Microsoft Excel

Microsoft Excel Direct

Microsoft OneDrive

Microsoft SQL Server

MySQL

OData

Oracle

Oracle Essbase

Pivotal Greenplum Database

PostgreSQL

Progress OpenEdge

Salesforce

SAP HANA

SAP Sybase ASE

SAP Sybase IQ

Snowflake

Spark SQL

Statistical File

Tableau Extract

Tableau Published Data Source

Teradata

Text File

Web Data Connector

Other Databases (ODBC)

## Post-installation ### Limitations when migrating content Before you start, make sure you understand the limitations when migrating content using the Content Migration Tool. For more information, see [Migration Limitations](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_limitations.htm). ### Create a migration plan The Content Migration Tool walks you through migrating content across projects on a single site, to a new site on the same Tableau Server instance and to sites that exist on different Tableau Server instances. The plan you create can be saved and used again for future migrations. For more information, see [Migration Plan Overview](https://help.tableau.com/current/server-linux/en-gb/cmt-depl_plan_overview.htm). [Skip to main content](#main-content) # Grant Licence on Sign-in Grant licence on sign in (Grant role on sign in) lets unlicensed users in specific groups become licensed when they sign into a Tableau site. This streamlines licence provisioning for administrators and removes the user’s need to request a licence before using Tableau. For more information about site role capabilities and minimum site roles, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). For example, imagine an Active Directory group called Marketing with 100 users, but only 25 users need to access Tableau Server. A site or server administrator can import all users in the Marketing Active Directory group, set the group's minimum site role to Explorer, and select Grant role on sign in. When any of the Tableau users in Marketing sign into their Tableau site, they'll be granted Explorer licences. Users who don't need Tableau Server remain unlicensed unless they sign in. **Note**: For more information about benefits and best practices, see [Grant Role on Sign In](https://help.tableau.com/current/blueprint/en-gb/bp_license_management.htm#grant-role-on-sign-in) in Tableau Blueprint, Tableau's planning tool for data-driven organisations. ## Activate Grant role on sign in You can enable Grant role on sign in on new or existing groups. The following steps walk through how to use Grant role on sign in to add new users that are eligible for a licence but may not consume one. This may be the case when your company has a lot of eligible users, but limited Tableau licences. 1. On a site, click Groups, and then click Add Group. Add new users by importing an Active Directory group. Type the name of the group you want to import, and then select the group name in the resulting list. ![Dialog for importing a group from Active Directory.](/tableau/current/en-gb/server-linux/en-gb/Img/import_AD_group1.png) 2. Select the minimum site role for the users, and select Grant role on sign in. All users in the selected Active Directory group will be imported as unlicensed users. The minimum site role set for the group will only be provisioned to group users who sign into Tableau Server. ![Dialog for importing a group from Active Directory with the Site role dropdown expanded and the Site Administrator Explorer selected.](/tableau/current/en-gb/server-linux/en-gb/Img/import_AD_group2.png) 3. Click Import. **Note:** Grant Site Role on Sign In can also be activated in local groups to provision minimum site roles to group members when they sign in to Tableau Server. For more information, see [Create a Local Group](https://help.tableau.com/current/server-linux/en-gb/groups_create_local.htm). ## Modifying user roles with Grant role on sign-in If a user is part of a group using Grant role on sign in, then that user role can’t be set to unlicensed or downgraded to a role lower than the minimum site role set for the group, whether or not they sign in. Administrators or a user with an admin profile with sufficient capabilities can upgrade a user’s site role manually, however. To downgrade a user’s site role, or unlicense the user from the site, remove the user from the group(s) that have Grant role on sign-in enabled. In accordance with the terms of the [End User Licence Agreement](https://mkt.tableau.com/legal/tableau_eula.pdf), licences granted on an Authorised User basis may be permanently reassigned to new users. Users may only be downgraded to a lower site role (including Unlicensed) when they will permanently discontinue access to Server Software at the higher role. ## Removing users affected by Grant role on sign-in You can remove a user from a site only if the user does not own content. If you attempt to remove a user who owns content, the user site role will be set to Unlicensed and removed from all groups, but the user will not be removed from the site. To remove content owners, remove owners from group with Grant site role enabled, or reassign content ownership to another user. For more information, see Remove users from a site in the [View, Manage or Remove Users](https://help.tableau.com/current/server-linux/en-gb/users_view.htm) Help topic. If the default All Users group has Grant site role enabled, users who own content can't be removed from the site or unlicensed. To remove or unlicense these users, reassign content ownership to another user, then remove or unlicense the user. Tableau REST API can be used to reassign content ownership of a workbook. For more information, see [Update Workbook](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_workbooks_and_views.htm#update_workbook) method in the REST API Help. REST API can also be used to remove users from the site and transfer content ownership to another user. For more information, see [Remove User from Site](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_users_and_groups.htm#remove_user_from_site) method in the REST API Help. For more information on changing content ownership in Tableau Server, see [Manage Content Ownership](https://help.tableau.com/current/server-linux/en-gb/owner.htm#change-the-owner-of-a-content-resource). [Skip to main content](#main-content) # Guest User Core-based licences of Tableau Server include a Guest user option, which you can use to let people access Tableau views without an account on the server. Guest user access is enabled by default when Tableau Server is installed with a core-based licence. It is not available with user-based licensing. If you do not intend to use Guest user access, you should disable it. Guest access allows users only to see and interact with Tableau views. The Guest user cannot browse the Tableau Server interface or see server interface elements in the view, such as user name, account settings, comments and so on. For more information about licences, see [Manage Licences](https://help.tableau.com/current/server-linux/en-gb/license_manage.htm). **Tip:** To share views with Guest users, either provide URL links or embed views into web pages. For more information, [see Tableau User Help](https://help.tableau.com/current/pro/desktop/en-gb/shareworkbooks.htm). ## Guest user permissions A Guest user can have the following maximum capabilities: - **Workbooks and views**: View, Export Image, Summary Data, View Comments, Filter, Full Data, Web Edit, Download (to save a local copy) - **Data sources**: View and Download If you add the Guest user to a group that has a higher level of access to a content resource, the Guest user’s access does not exceed the capabilities listed above. However, the Guest user account will comply with more restrictive permissions settings. The Guest user can only access data with embedded credentials or where credentials are not required. A data source that prompts the user for credentials cannot be accessed by the Guest user. See [Data access for published Tableau data sources](https://help.tableau.com/current/server/en-gb/permissions.htm#data-access-for-published-tableau-data-sources). ## Enable or disable Guest access You must be a server administrator to change Guest account settings at either the server or the site level. **Note:** Enabling the Guest user for a site can increase the number of potential simultaneous viewers beyond the user list you might be expecting. The administrative view Status > Traffic to Views can help you gauge the activity. 1. In the site menu, click **Manage All Sites** and then click Settings \> General. 2. For Guest Access, select or clear **Enable guest access**. 3. Click **Save**. This enables the Guest user on all sites. You can then go to the same setting for a specific site. To disallow Guest access for a site: 1. In the site menu, select a site. 2. Click Settings, and on the General tab, clear the Enable guest access for this site tick box. If the Guest account is enabled on some or all sites, and you turn off Guest access at the server level, it is turned off for all sites as well. Note: You can turn off Guest user access at the server or site level; however, you aren’t able to remove the user. So, although no one can access data or views without signing in to the server, the Guest user still appears in the Site Users list and group lists for groups you’ve added the Guest user to. ## Additional Guest account characteristics The Guest user is unique in the following additional ways: - As a single user account, it represents all unauthenticated users accessing Tableau views. - When enabled, it is a member of the All Users group. - You can add it as a member of other groups on a site. - You cannot edit it or select it as the owner of a content resource. - The account is not allowed to save custom views. - Guest cannot be used in a user filter. - You cannot delete the account; however, you can turn off access to it by clearing the tick box described in the steps above. [Skip to main content](#main-content) # Handle an Unlicensed Server Process There are several status indicators on the Tableau Server Status page that help you understand the state of Tableau Server processes. An orange-colour status box, "Unlicensed", indicates that one of the server processes is unable to retrieve the Tableau Server licence information. In the image below, one of the VizQL processes is unlicensed: ![A table that shows the current state of Tableau Server processes.](/tableau/current/en-gb/server-linux/en-gb/Img/server_status_orange.png) There may be several reasons why a process is unable to access licensing information. For example, there may be network issues preventing a process running on an additional node from communicating with the licensing service on the initial node. Or, the unlicensed process may be getting sent more requests than it can accept at a particular moment and can’t handle the licensing request. The impact to users depends on which process is unable to confirm its licence, and whether there are other instances of the process on one of the server nodes. In the case of the unlicensed VizQL process above, some users may be able to access views while others cannot. To resolve the problem, [stop](https://help.tableau.com/current/server-linux/en-gb/cli_stop_tsm.htm#stop), then [start](https://help.tableau.com/current/server-linux/en-gb/cli_start_tsm.htm#start) Tableau Server. [Skip to main content](#main-content) # Handle Extract Refresh Alerts When Tableau Server cannot complete a scheduled refresh, an alert appears to indicate that the refresh has failed. If a scheduled refresh fails five consecutive times, Tableau Server suspends the refresh. When a refresh is suspended, Tableau Server does not try to run it again until someone takes an action that attempts to correct the cause of the failure. **Note:** The number of consecutive failures for a refresh is set to five by default, but can be changed by a Tableau Server administrator, using the `backgrounder.failure_threshold_for_run_prevention` opti0n. For more information, see [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). ![Alerts menu with three related icons.](/tableau/current/en-gb/server-linux/en-gb/Img/maintenance_alerts.png) You will see the Alerts menu only if an extract refresh failed and you are: - A system or site administrator - The author of the workbook or data source that couldn’t be refreshed - The author of a workbook that connects to a data source that couldn’t be refreshed When you open the Alerts menu you can see more information about the refresh failure(s): ![Details of a maintenance alert for an outdated data source.](/tableau/current/en-gb/server-linux/en-gb/Img/maintenance_alerts_details.png) When a Data source is listed as Embedded it means that the data source definition (which includes things like the data source credentials or the database name) is embedded, or resides, within the workbook itself, originally created in Tableau Desktop. When a data source name or workbook name is listed as the Data source (for example, Data source: sales\_data), it means that the data source is a Tableau Server data source. The data source definition resides on Tableau Server. In the Data pane on Tableau Desktop, you can determine whether the data source is on Tableau Server or is local. If the data source is on the server, a Tableau icon is displayed next to the data source name instead of a database icon : ![A menu with a highlighted option for population data.](/tableau/current/en-gb/server-linux/en-gb/Img/data_source_ts_icon.png) ## Resolving Extract Refresh Problems To resolve refresh issues, you can take any of these actions, based on the cause indicated in the alert: - **Errors related to access token validation or user credentials** You can resolve some extract refresh problems by clicking the Connection Details in the alert. Tick the box next to the problematic data source, click Actions > Edit Connection, and then enter the missing information. Click Save when you're done. After you update the connection information, Tableau Server restarts the refresh schedule. If you originally embedded the credentials or other data connection information when you published the workbook or data source from Tableau Desktop, you can also republish the workbook or data source. As part of the publishing process, you can choose to set a new refresh schedule. If you don't choose a new schedule, Tableau Server restarts the existing schedule. - **Errors that indicate the database was unreachable** Confirm that the database is online and that you can sign in to access the data. You can use the Try again link in the alert to restart the refresh schedule. - **Errors when using user filters or impersonation** See the [Tableau Knowledge Base](https://kb.tableau.com/articles/issue/extract-refresh-unsuccessful-when-using-user-filters?lang=en-gb). If the problem cannot be corrected by editing the data connection, you will need to resolve it in Tableau Desktop and republish the workbook. **Tip:** Administrators can edit data connections at any time on the Data Connections page, accessible from each site by clicking the Content tab and Data Connections [Skip to main content](#main-content) # Hardware Incidents _Hardware_ incidents monitor the server itself. These can be used to help identify server issues that may affect Tableau Server’s performance. You can set thresholds for the following issues: - CPU Usage - Available Memory - Memory Usage - Free Disk Space The following incidents are configured by default when you install a new Tableau Resource Monitoring Tool: - When the available disk space falls below 10 GB for 10 minutes or more a warning incident is logged, and when available disk falls below 5 GB for 10 minutes or more, a critical incident is logged. - When available memory falls below 8 GB for over 10 minutes, a warning incident is logged. - When the CPU usage for the entire server is 80% or more for 5 minutes, a warning incident is logged. **Note:** Memory related incidents are configured in binary multiples of bytes. You can configure thresholds using the RMT Server web interface or by updating the configuration file `config.json`. To set the thresholds for hardware incidents, under the **Admin** menu, select **Configuration**, and go to the **Incidents** tab. For **CPU Usage**, set the following: To set the thresholds for hardware incidents, under the **Admin** menu, select **Configuration**, and go to the **Incidents** tab.
KeyRequired?Description
SeverityRequired

See Incident Severity Level.

ProcessRequiredThe threshold applies to the entire Tableau Server or for a single process as specified.
Start ThresholdRequiredThe CPU usage must surpass the value specified before an incident is created and monitored. Set the percent and the duration for this threshold.
End ThresholdOptionalThe CPU usage that must fall below the value specified before an incident is considered resolved.
For **Available Memory**, set the following:
KeyRequired?Description
SeverityRequired

See Incident Severity Level.

Start ThresholdRequiredThe available memory must fall below the value specified before an incident is created and monitored. Set the percent and the duration for this threshold.
End ThresholdOptionalThe available memory must be above the value specified before an incident is considered resolved.
For **Memory Usage**, set the following:
KeyRequired?Description
SeverityRequired

See Incident Severity Level.

ProcessRequiredThe threshold applies to the entire Tableau Server or for a single process as specified.
Start ThresholdRequiredThe memory usage must be equal to the value specified before an incident is created and monitored. Set the percent and the duration for this threshold.
End ThresholdOptionalThe memory usage must be below the value specified before an incident is considered resolved.
For **Free Disk Space**, set the following:
KeyRequired?Description
SeverityRequired

See Incident Severity Level.

Start ThresholdRequiredThe free disk space must fall below the value specified before an incident is created and monitored. Set the percent and the duration for this threshold.
End ThresholdOptionalThe free disk space must be above the value specified before an incident is considered resolved.
For **Disk Queue Length**, set the following:
KeyRequired?Description
SeverityRequired

See Incident Severity Level.

Start ThresholdRequiredThe disk queue length must be equal to the value specified before an incident is created and monitored. Set the percent and the duration for this threshold.
End ThresholdOptionalThe disk queue length must be below the value specified before an incident is considered resolved.
An example `config.json` snipped defining two hardware incidents: ``` { "monitoring": { "incidents": { "triggers": [ { "counter": "DiskSpaceAvailableKB", "severity": "warning", "threshold": 1048576 }, { "counter": "ProcessorTimePercent", "severity": "warning", "threshold": 0.95, "thresholdDuration": 300000, "endThreshold": 0.90, "endThresholdDuration": 5000 } ] } } } ``` - The **DiskSpaceAvailableKB** incident will trigger a warning once the available disk space falls below 10 GB. - The **ProcessorTimePercent** incident will trigger a warning once the CPU has had at least 95% utilisation for over 5 minutes. The incident will be considered resolved once the CPU is below 90% utilisation for 5 seconds. The default settings may or may not meet your requirements and can be changed based on your environment. As an example, for an environment whose identifier was “staging-environment” to trigger a warning when the available disk space falls below 2 GB, the configuration would look like: ``` { "environments": { "staging-environment": { "monitoring": { "incidents": { "triggers": [ { "counter": "DiskSpaceAvailableKB", "severity": "warning", "threshold": 2097152 } ] } } } } } ```
KeyData TypeRequired?Description
counterStringRequired

The identifier for the hardware incident to monitor. available options are:

  • ProcessorTimePercent
  • DiskSpaceAvailableKB
  • DiskQueueTotalLength
  • MemoryAvailableKB
  • MemoryCommittedKB
severityStringOptional

See Incident Severity Level. Default value: Warning

thresholdNumberRequiredThe threshold that must be surpassed before an incident is monitored.
thresholdDurationNumberOptionalThe amount of time in milliseconds to monitor the situation before triggering an incident. If not specified, an incident will be triggered as soon as the threshold is reached.
endThresholdNumberOptionalThe threshold that must be surpassed before an incident is considered resolved.
endThresholdDurationNumberOptionalThe amount of time in milliseconds to monitor the situation before completing the incident. If not specified, an incident will be resolved as soon as the endThreshold is reached. If endThreshold is not defined, then threshold is used.
## Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Server/Environment Management** role. [Skip to main content](#main-content) # Hardware Changes to RMT Server - Tuning PostgreSQL Database Sometimes you may need to upgrade or change hardware on the machine where RMT Server is installed. Whenever you make any hardware changes, specifically to memory and CPU, it would be beneficial to tune the underlying PostgreSQL database that is installed with the RMT Server. When you install RMT Server, the setup program configures the PostgreSQL database to optimise the use of available hardware on the machine. Example optimisations include managing the buffer and cache size. When you change the hardware on your machine, it may affect the performance. Use the following steps to make sure the configuration is updated to reflect the change in hardware: 1. Connect to the RMT Server as a user with complete sudo access. 2. Navigate to the "master" directory and run the following command: `sudo /opt/tableau/tabrmt/master/tabrmt-master optimize` You should see a message that indicates that the configuration file has been updated. It will also state that a restart of the PostgreSQL service is required for the changes to take effect. The updates to the configuration file does not require downtime of the server. 3. Restart the PostgreSQL database. You can do this outside of working hours when the Resource Monitoring Tool is not in use. [Skip to main content](#main-content) # Tableau Server Helm Chart – Deploy **Important**: This documentation assumes a knowledge of Helm and Helm charts and does not attempt to provide detailed, prescriptive examples. It is designed for customers who are familiar with both Tableau Server and Helm and Helm charts. This topic walks you through the high-level steps of deploying Tableau Server on Kubernetes using a Helm chart. ## Prerequisites Before you begin, ensure you have met the prerequisites. For more information, see [Tableau Server Helm Chart – Prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm). ### Helm Chart Download The Helm charts will be shipped as part of the Tableau Server in a Container setup tool (`tableau-server-container-setup-tool-.tar.gz`) and can be downloaded from the [Tableau Server download](http://tableau.com/en-gb/support/releases/server/latest) page. After extraction, the required Helm chart files are located in the `helm/tableau` directory. ## Quick overview using a Helm chart to deploy Tableau Server **Important**: This is a basic, high-level description of deploying Tableau Server using Helm charts. It is not intended to be a complete procedure. It assumes knowledge of Helm and Helm charts. Before starting, make sure you have met the prerequisites for deploying Tableau Server using Helm charts. See [Tableau Server Helm Chart – Prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm) for details. ### Add your licence key to values.yaml Edit `values.yaml` and set your licence key. ### Deploy a single-node Tableau Server Deploy a single-node instance of Tableau Server by executing these commands at a prompt (substitute your release namespace for ``, for example `tableau` or `default`): helm install tableau-server ./helm/tableau-server \\ -n \\ --create-namespace \\ -f ./helm/tableau-server/values-single.yaml ### Deploy a multi-node Tableau Server Deploy a multi-node instance of Server by executing these commands at a prompt, using the same namespace convention as above: helm install tableau-server ./helm/tableau-server \\ \-n \\ \--create-namespace \\ -f ./helm/tableau-server/values-multinode.yaml ## EKS multi-node runbook (namespace + static bootstrap PV) This section describes the order of operations for EKS: dedicated namespace, EFS CSI add-on, IAM on the node role, static bootstrap PV and Helm. 1. Create a dedicated namespace. This must match `claimFef.namespace` on the bootstrap PV. This example uses `tableau`. kubectl create namespace tableau-server kubectl get namespace tableau 2. Confirm the EFS CSI add-on exists. If the add-on is missing, create it and wait until the status is `ACTIVE`: kubectl get csidriver efs.csi.aws.com aws eks describe-addon \\ --cluster-name \\ --addon-name aws-efs-csi-driver \\ --region \\ --query 'addon.status' 3. Confirm the Storageclass: `efs-bootstrap` Storageclass – apply if not already present. See [Amazon Elastic Kubernetes Service (EKS) prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm#EKS-Prereq-storageclass) for details. kubectl get csidriver efs.csi.aws.com aws eks describe-addon \\ --cluster-name \\ --addon-name aws-efs-csi-driver \\ --region \\ --query 'addon.status' 4. Confirm the Static bootstrap PV. `claimRef` must refer to the same namespace and PVC name the Helm chart creates (`tableau-server-bootstrap`). Replace `fs-...` with your EFS file system ID: cat > /tmp/tableau-bootstrap-pv.yaml <<'EOF' apiVersion: v1 kind: PersistentVolume metadata: name: tableau-bootstrap-pv spec: capacity: storage: 1Gi volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: efs-bootstrap claimRef: namespace: tableau name: tableau-server-bootstrap csi: driver: efs.csi.aws.com volumeHandle: EOF kubectl apply -f /tmp/tableau-bootstrap-pv.yaml kubectl get pv tableau-bootstrap-pv 5. IAM on the node instance role. Attach EFS client and EC2 read-only policies. See [Amazon Elastic Kubernetes Service (EKS) prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm#EKS-Prereq-storageclass) for resolving `` from the node group. `efs-bootstrap` Storageclass – apply if not already present. See [Amazon Elastic Kubernetes Service (EKS) prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm#EKS-Prereq-storageclass) for details. kubectl get csidriver efs.csi.aws.com aws eks describe-addon \\ --cluster-name \\ --addon-name aws-efs-csi-driver \\ --region \\ --query 'addon.status' 6. Values In `values-multinode.yaml` (or an overlay), set manual static PV mode persistence: bootstrap: createPV: false volumeName: tableau-bootstrap-pv storageClass: efs-bootstrap 7. Ensure `image.repository`, `image.tag` and secrets/licence are set as required. 8. Install the Helm chart Install the chart into the same namespace as the PV `claimRef`: helm install tableau-server ./helm/tableau-server \\ -n tableau \\ -f ./helm/tableau-server/values-multinode.yaml 9. Verify storage and pods: kubectl get pv,pvc -n tableau kubectl get pods -n tableau -w 10. Data PVC status Data PVCs may show `Pending` briefly until EBS volumes are attached. All PVCs should transition to `Bound`, then `Running` and eventually `READY 1/1`. 11. Topology (optional) If the post-install hook is disabled, you may need to set node `clustercontroller` and apply pending changes (see Post-Install Topology Automation (Hook) later in this document). The `tsm pending-changes apply` command may result in warnings about Index and Search Server distribution or the Coordination Service ensemble when you have multiple Tableau nodes. Address these warnings as documented in [Index and Search Server](https://help.tableau.com/current/server-linux/en-gb/server_process_index-and-search.htm) and [Tableau Server Coordination Service](https://help.tableau.com/current/server-linux/en-gb/server_process_coordination.htm). ### Custom installation 1. Customise values cp ./helm/tableau-server/values.yaml ./helm/tableau-server/my-values.yaml \# Edit ./helm/tableau-server/my-values.yaml with your configuration 2. Install with custom values helm install tableau-server ./helm/tableau-server -f ./helm/tableau-server/my-values.yaml ## Configuration ### Deployment modes #### Single-node deployment Single-node deployment runs Tableau Server as a monolithic container. Use `values-single.yaml` or set: deploymentMode: "single" primary: replicaCount: 1 worker: replicaCount: 0 #### Multi-node deployment Multi-node deployment runs one primary and one or more workers. Set the worker count with `worker.replicaCount` – use 1, 2 or any higher value that your cluster capacity and Tableau topology allow. The chart creates `tableau-server-worker-0 … tableau-server-worker-(N-1)` for `replicaCount: N`. Use `values-multinode.yaml` (default example uses two workers) or set explicitly: deploymentMode: "multinode" primary: replicaCount: 1 worker: replicaCount: 3 # example: three workers Topology alignment: `values-multinode.yaml` ships with a sample `config.configJson` topology (node IDs such as `node1`, `node2`, `node3`). If you change `worker.replicaCount` or rearrange services, update that topology (and any related Tableau process assignments) so the number and roles of TSM nodes match your deployment – see Tableau Server help for clustering and process layout. ### Key configuration options #### Image configuration image: repository: tableau\_server\_image tag: "latest" pullPolicy: IfNotPresent pullSecrets: \[\] #### Licence and secrets secrets: licenseKey: "YOUR-LICENSE-KEY" tsmRemotePassword: "password" tableauUsername: "admin" tableauPassword: "password" Alternatively, you can set these using environment variables: env: LICENSE\_KEY: "YOUR-LICENSE-KEY" TSM\_REMOTE\_PASSWORD: "password" TABLEAU\_USERNAME: "admin" TABLEAU\_PASSWORD: "password" We recommend using a separate file (for example, `secrets.yaml`) and passing it with the `-f` switch. `secrets.yaml`: secrets: licenseKey: "YOUR-LICENSE-KEY" tsmRemotePassword: "YOUR-TSM-PASSWORD" tableauUsername: "YOUR-ADMIN-USER" tableauPassword: "YOUR-ADMIN-PASSWORD" Install/upgrade example with `secrets.yaml`: helm upgrade --install tableau-server ./helm/tableau-server \\ -n default \\ -f ./helm/tableau-server/values-multinode.yaml \\ -f ./helm/tableau-server/secrets.yaml **Note:** Referencing a pre-existing Kubernetes Secret (for example, s`ecrets.existingSecret`) is not currently supported. The only supported method is using chart values with a separate secrets value file. #### External PostgreSQL Repository The Helm chart does not enable an external repository by default using dedicated values keys. We recommend you take these steps to enable an external repository: 1. Deploy the chart and confirm primary is healthy. 2. Run Tableau `tsm external repository` commands from the primary pod. 3. Apply pending changes. Example workflow (command discovery and apply): \# Discover command syntax for your Tableau version kubectl exec -n default tableau-server-primary-0 -- sh -lc 'tsm topology external-services repository enable --help' \# After enabling external repository with Tableau-supported args/options: kubectl exec -n default tableau-server-primary-0 -- sh -lc 'tsm pending-changes apply -iw --ignore-prompt' kubectl exec -n default tableau-server-primary-0 -- sh -lc 'tsm status -v' Notes: - External repository configuration is Tableau version-specific (SSL mode, failover options, credentials fields). For more information, see [Tableau Server External Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo.htm) and [tsm topology](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm). - For customer deployments, store database credentials in Kubernetes Secrets and avoid plain text in shell history. #### Persistent storage persistence: enabled: true storageClass: "standard" accessMode: ReadWriteOnce size: 100Gi # Bootstrap volume (required for multi-node) bootstrap: enabled: true storageClass: "standard" accessMode: ReadWriteMany size: 1Gi createPV: false For clusters using static EFS CSI (for example with `mounttargetip`), Helm can manage both bootstrap PV and PVC: persistence: bootstrap: enabled: true storageClass: "efs-bootstrap" accessMode: ReadWriteMany size: 1Gi createPV: true permissionsFix: enabled: true pv: name: "tableau-bootstrap-pv" csi: driver: efs.csi.aws.com volumeHandle: "fs-xxxxxxxx" volumeAttributes: mounttargetip: "10.x.x.x" `permissionsFix.enabled` adds an init container like `chown/chmods /docker/config/bootstrap` so the Tableau process (UID/GID 999:998) can write `bootstrap.json` on shared EFS mounts that default to `root:root`. When `createPV: true`, the chart creates the bootstrap PV from values (for example `tableau-bootstrap-pv`) and binds `tableau-server-bootstrap` PVC to it. If you manage bootstrap PV manually, create `tableau-bootstrap-pv` first, then install Helm with `createPV: false` and `volumeName: tableau-bootstrap-pv:` apiVersion: v1 kind: PersistentVolume metadata: name: tableau-bootstrap-pv spec: capacity: storage: 1Gi volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: efs-bootstrap csi: driver: efs.csi.aws.com volumeHandle: fs-xxxxxxxx volumeAttributes: mounttargetip: 10.x.x.x kubectl apply -f tableau-bootstrap-pv.yaml kubectl get pv tableau-bootstrap-pv #### Resource limits primary: resources: limits: cpu: "4" memory: "8Gi" requests: cpu: "2" memory: "4Gi" worker: resources: limits: cpu: "4" memory: "8Gi" requests: cpu: "2" memory: "4Gi" #### Service configuration service: primary: type: ClusterIP # or NodePort, LoadBalancer ports: http: 80 https: 8080 tsm: 8850 #### Ingress ingress: enabled: true className: "nginx" hosts: - host: tableau.example.com paths: - path: / pathType: Prefix tls: - secretName: tableau-tls hosts: - tableau.example.com #### Ingress Setup Runbook (Example: NGINX Ingress Controller) 1. Install an ingress controller in the cluster (required before enabling chart ingress). 2. Set ingress values in your values file: ingress: enabled: true className: "nginx" annotations: nginx.ingress.kubernetes.io/proxy-body-size: "64m" nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" hosts: - host: tableau.example.com paths: - path: / pathType: Prefix tls: - secretName: tableau-tls hosts: - tableau.example.com 3. Create DNS record pointing tableau.example.com to your ingress/load balancer endpoint. 4. Create TLS secret (or use cert-manager) in the release namespace. 5. Deploy/upgrade chart and verify ingress: helm upgrade --install tableau-server ./helm/tableau-server -n default -f ./helm/tableau-server/values.yaml kubectl get ingress -n default kubectl describe ingress tableau-server For more information, see: - [Kubernetes Ingress Concept](https://kubernetes.io/docs/concepts/services-networking/ingress/) - [ingress-nginx Deployment Guide](https://kubernetes.github.io/ingress-nginx/deploy/) - [cert-manager Getting Started](https://cert-manager.io/docs/tutorials/getting-started-aks-letsencrypt/) #### Health Checks The chart supports startup, liveness and readiness probes. The startup probe allows long first-time initialisation (e.g. failureThreshold: 200 × periodSeconds) before liveness/readiness run: healthChecks: startup: enabled: true initialDelaySeconds: 300 periodSeconds: 15 timeoutSeconds: 30 failureThreshold: 200 liveness: enabled: true initialDelaySeconds: 300 periodSeconds: 30 timeoutSeconds: 10 failureThreshold: 3 readiness: enabled: true initialDelaySeconds: 300 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 For multi-node worker pods, the chart defaults `worker.healthChecks.enabled: false` to avoid false probe failures when workers run limited process sets (for example, admin agent + cluster controller only). ### Usage #### Accessing Tableau Server After installation, access Tableau Server based on your service configuration: - **ClusterIP**: Use port-forwarding or Ingress - **NodePort**: Access via `:` - **LoadBalancer**: Access via the external IP provided #### Using TSM commands \# Get pod name POD\_NAME=$(kubectl get pods -l app.kubernetes.io/component=primary -o jsonpath='{.items\[0\].metadata.name}') # Run tabcmd kubectl exec -it $POD\_NAME -- tsm status kubectl exec -it $POD\_NAME -- tsm configuration get #### Using tabcmd \# Get pod name POD\_NAME=$(kubectl get pods -l app.kubernetes.io/component=primary -o jsonpath='{.items\[0\].metadata.name}') # Run tabcmd kubectl exec -it $POD\_NAME -- tabcmd login -u admin -p password kubectl exec -it $POD\_NAME -- tabcmd sites #### Viewing Tableau Server logs \# Primary node logs kubectl logs -l app.kubernetes.io/component=primary -f # Worker node logs (multi-node) kubectl logs -l app.kubernetes.io/component=worker -f # All logs kubectl logs -l app.kubernetes.io/instance=tableau-server -f #### Shell access \# Get pod name POD\_NAME=$(kubectl get pods -l app.kubernetes.io/component=primary -o jsonpath='{.items\[0\].metadata.name}') # Open shell kubectl exec -it $POD\_NAME -- /bin/bash ### Upgrading #### Upgrade the Tableau Server Helm chart helm upgrade tableau-server ./helm/tableau-server -f ./helm/tableau-server/values.yaml #### Upgrade with new values helm upgrade tableau-server ./helm/tableau-server -f ./helm/tableau-server/new-values.yaml ### Post-install topology automation (hook) For multi-node installs, this chart can run a post-install/post-upgrade hook job that: - waits for worker nodes to register in TSM - sets worker `clustercontroller` process assignment - runs `tsm pending-changes apply -iw --ignore-prompt` when changes are pending Configuration: hooks: autoApplyWorkerTopology: enabled: true kubectlImage: "bitnami/kubectl:latest" timeoutSeconds: 3600 Defaults: - disabled in `values.yaml` - in `values-multinode.yaml`, check `hooks.autoApplyWorkerTopology.enabled` (may be `true` or `false` depending on release; enable for hands-off worker `clustercontroller` setup) Verify hook execution: kubectl get jobs -n default kubectl get pods -n default -l job-name=tableau-server-hook-topology kubectl logs -n default job/tableau-server-hook-topology Manual fallback if hook is disabled or fails – run `tsm topology set-process` for each worker TSM node (commonly node2 through to node(1+N) when you have N workers; confirm IDs with `tsm topology list-nodes -v`): kubectl exec -n default tableau-server-primary-0 -- sh -lc ' tsm topology set-process -n node2 -pr clustercontroller -c 1 tsm topology set-process -n node3 -pr clustercontroller -c 1 # Add one line per additional worker node, e.g. for four workers: # tsm topology set-process -n node4 -pr clustercontroller -c 1 # tsm topology set-process -n node5 -pr clustercontroller -c 1 tsm pending-changes apply -iw --ignore-prompt tsm topology list-nodes -v tsm status -v **Note**: Use `-iw` for `tsm pending-changes apply`. The `-ig` option is not valid in this environment. ### Uninstalling helm uninstall tableau-server **Warning**: This will delete all resources including persistent volumes. Make sure you back up your data before uninstalling. #### Validation steps Before release or when changing the chart, run: 1. Lint: helm lint helm/tableau-server -f helm/tableau-server/values-single.yaml helm lint helm/tableau-server -f helm/tableau-server/values-multinode.yaml 2. Template (dry-run): helm template tableau-server helm/tableau-server -f helm/tableau-server/values-single.yaml helm template tableau-server helm/tableau-server -f helm/tableau-server/values-multinode.yaml 3. Install test (optional): 1. In a test namespace, run `helm install` with values-single or values-multinode. 2. Run `kubectl rollout status` (for StatefulSet, wait for pod Ready) and basic smoke checks (e.g. `tsm status` or HTTP to the service). For detailed troubleshooting, see [Tableau Server Helm Chart – Troubleshooting](https://help.tableau.com/current/server-linux/en-gb/server-helm-troubleshooting.htm). ## Additional Resources - [Tableau Server Documentation](https://help.tableau.com/current/server-linux/en-gb/) - [Helm Documentation](https://helm.sh/docs/) - [Helm Chart Upgrade](https://helm.sh/docs/helm/helm_upgrade/) [Skip to main content](#main-content) # Tableau Server Helm Chart – Examples **Important**: This documentation assumes a knowledge of Helm and Helm charts and does not attempt to provide detailed, prescriptive examples. It is designed for customers who are familiar with both Tableau Server and Helm and Helm charts. ## Introduction This document provides examples for deploying Tableau Server using a Helm chart in various configurations and scenarios. ## Helm Chart Download and Distribution The Helm charts will be shipped as part of the Tableau Server in a Container setup tool (`tableau-server-container-setup-tool-.tar.gz`) and can be downloaded from the [Tableau Server download](http://tableau.com/en-gb/support/releases/server/latest) page. After extraction, the required Helm chart files are located in the `helm/tableau` directory. ## Example 1: Single-node with NodePort deploymentMode: "single" service: primary: type: NodePort secrets: licenseKey: "YOUR-LICENSE-KEY" ## Example 2: Multi-node with LoadBalancer (three workers) For multi-node deployments, use `worker.replicaCount ≥ 1` where the number is the count of workers. The example below uses three workers. deploymentMode: "multinode" primary: replicaCount: 1 worker: replicaCount: 3 service: primary: type: LoadBalancer persistence: bootstrap: enabled: true accessMode: ReadWriteMany secrets: licenseKey: "YOUR-LICENSE-KEY" ### Example 3: Production with Ingress and TLS deploymentMode: "single" ingress: enabled: true className: "nginx" hosts: - host: tableau.company.com paths: - path: / pathType: Prefix tls: - secretName: tableau-tls hosts: - tableau.company.com service: primary: type: ClusterIP persistence: storageClass: "fast-ssd" size: 500Gi primary: resources: limits: cpu: "8" memory: "16Gi" requests: cpu: "4" memory: "8Gi" ## Additional Resources - [Tableau Server Helm Chart – Overview](https://help.tableau.com/current/server-linux/en-gb/server-in-container_helm-chart.htm) - [Tableau Server Helm Chart – Prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm) - [Tableau Server Helm Chart – Deploy](https://help.tableau.com/current/server-linux/en-gb/server-helm-deploy.htm) - [Tableau Server Helm Chart – Troubleshooting](https://help.tableau.com/current/server-linux/en-gb/server-helm-troubleshooting.htm) - [Tableau Server Helm Chart – Examples](#) - [Tableau Server Documentation](https://help.tableau.com/current/server-linux/en-gb/) [Skip to main content](#main-content) # Tableau Server Helm Chart – Prerequisites **Important**: This documentation assumes a knowledge of Helm and Helm charts and does not attempt to provide detailed, prescriptive examples. It is designed for customers who are familiar with both Tableau Server and Helm and Helm charts. This topic explains the prerequisites necessary to use a Helm chart for deploying Tableau Server. ## Helm Chart Download and Distribution The Helm charts will be shipped as part of the Tableau Server in a Container setup tool (`tableau-server-container-setup-tool-.tar.gz`) and can be downloaded from the [Tableau Server download](http://tableau.com/en-gb/support/releases/server/latest) page. After extraction, the required Helm chart files are located in the `helm/tableau` directory. ## Required Tools - `kubectl` CLI configured to access your Kubernetes cluster - `helm` CLI version 3.x or later - Access to a Kubernetes cluster (1.19+) ## Cluster Requirements - At least one node with 16 GB RAM and 4 CPU cores (8 cores recommended). - StorageClass configured for dynamic PersistentVolume provisioning. - Ability to create LoadBalancer services or Ingress resources. ## Required Information Make sure you have the following before starting: - Your Tableau Server **licence key** - The **TSM Administrator `username` and** `**password**` for the initial account - The Tableau Server **hostname** for access ## Amazon Elastic Kubernetes Service (EKS) prerequisites ### `efs-bootstrap` StorageClass By default `efs-bootstrap` is not created in EKS. For multi-node bootstrap sharing, create it before Helm install. For multi-node deployment, bootstrap storage must be provisionable before pods can schedule. If your `efs-bootstrap` StorageClass does not dynamically provision EFS volumes, you must either: - Create a static bootstrap PV in advance and bind it to `tableau-server-bootstrap` or - Set `persistence.bootstrap.createPV: true` and provide `valid persistence.bootstrap.pv.csi.volumeHandle` (real EFS ID, fs-...). If this is not done, pods remain in a Pending state with unbound PVCs. 1. Ensure the EFS CSI driver is installed in your cluster. kubectl get csidriver efs.csi.aws.com A `CSIDriver` object can exist even when the EKS managed add-on is not installed. Confirm the add-on explicitly. If you get a `ResourceNotFoundException` error (no add-on), or pods later fail with mount errors such as `driver name efs.csi.aws.com not found in the list of registered CSI drivers`, install the EKS add-on and wait until the status is ACTIVE and then verify the node plugin pods. This is necessary because multi-node bootstrap uses an EFS-backed volume (ReadWriteMany). Without the EFS CSI node plugin on additional nodes, bootstrap PVCs can bind but mounts fail and pods stay in `Init/Pending` states. If EFS mounts fail with: is not authorized to perform: elasticfilesystem:DescribeMountTargets or Failed to resolve "fs-....efs..amazonaws.com" Use one of these remediations: - **IAM fix on EKS node role** (preferred): grant EFS and EC2 read permissions so that mount target and AZ discovery work. Resolve the node instance role name from your node group: aws eks list-nodegroups --cluster-name aws eks describe-nodegroup \\ \--cluster-name \\ \--nodegroup-name \\ \--query "nodegroup.nodeRole" \\ \--output text - **Use the IAM \*\*role name\*\*** (last segment of the ARN) in `attach-role-policy`: aws iam attach-role-policy \\ \--role-name \\ \--policy-arn arn:aws:iam::aws:policy/AmazonElasticFileSystemClientReadWriteAccess aws iam attach-role-policy \\ \--role-name \\ \--policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess - Typical permissions involved: - elasticfilesystem:DescribeMountTargets, elasticfilesystem:DescribeFileSystems - `ec2:DescribeAvailabilityZones` (often needed when `DescribeAvailabilityZones` appears in mount errors) - **explicitly mount target IP**: set `mounttargetip` on the bootstrap PV CSI volume attributes when DNS/discovery is restricted in your environment. - Helm values (`createPV: true` path): persistence: bootstrap: pv: csi: volumeAttributes: mounttargetip: "10.x.x.x" - Manual PV path spec: csi: driver: efs.csi.aws.com volumeHandle: fs-xxxxxxxx volumeAttributes: mounttargetip: 10.x.x.x 2. Create `efs-bootstrap` StorageClass (example): apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: efs-bootstrap provisioner: efs.csi.aws.com reclaimPolicy: Retain volumeBindingMode: Immediate allowVolumeExpansion: true 3. Choose one bootstrap provisioning path (required): - **Dynamic EFS provisioning path**: use an EFS CSI dynamic StorageClass configured for Access Points (for example `provisioningMode: efs-ap, fileSystemId`, and permissions/basePath parameters according to your platform standard). - **Static PV path**: create `tableau-bootstrap-pv` manually with `csi.driver: efs.csi.aws.com` and `csi.volumeHandle: fs-...` then set: - `persistence.bootstrap.createPV: false` - `persistence.bootstrap.volumeName: tableau-bootstrap-pv` - **Helm-created static PV path**: set: - `persistence.bootstrap.createPV: true` - `persistence.bootstrap.pv.csi.volumeHandle: fs-...` ## Non-EKS prerequisite ### `ReadWriteMany` StorageClass For clusters not hosted on EKS (or if not using EFS), the critical requirement for multi-node bootstrap sharing is providing a StorageClass that supports `ReadWriteMany (RWX)` access mode for the bootstrap volume. This is required because bootstrap storage must be provisionable before pods can schedule. Common self-hosted RWX storage backends for Kubernetes include: - NFS (most common, easiest to test) - CephFS - Longhorn (if installed) - GlusterFS - NetApp/other enterprise storage You must ensure the corresponding CSI driver for your chosen backend is installed. To configure Tableau Server to use your custom RWX StorageClass, update your Helm values (e.g. `values-multinode.yaml`) to set `persistence.bootstrap.storageClass` to the name of your StorageClass: persistence: # ... other persistence settings ... # Bootstrap volume (required for multi-node) bootstrap: enabled: true storageClass: "my-rwx-storage" # <--- Replace with your StorageClass name accessMode: ReadWriteMany size: 1Gi createPV: false ## Additional Resources - [Tableau Server Helm Chart – Overview](https://help.tableau.com/current/server-linux/en-gb/server-in-container_helm-chart.htm) - [Tableau Server Helm Chart – Deploy](https://help.tableau.com/current/server-linux/en-gb/server-helm-deploy.htm) - [Tableau Server Helm Chart – Troubleshooting](https://help.tableau.com/current/server-linux/en-gb/server-helm-troubleshooting.htm) - [Helm Documentation](https://helm.sh/docs/) - [Tableau Server Documentation](https://help.tableau.com/current/server-linux/en-gb/) [Skip to main content](#main-content) # Tableau Server Helm Chart – Reference **Important**: This documentation assumes a knowledge of Helm and Helm charts and does not attempt to provide detailed, prescriptive examples. It is designed for customers who are familiar with both Tableau Server and Helm and Helm charts. ## Introduction This topic provides reference information for deploying Tableau Server on Kubernetes using a Helm chart. ### Values property matrix The table below lists all leaf properties from `values.yaml`. - **Value**: dotted key path - **Optional**: whether the property can be omitted for chart rendering - **Expected value(s)**: valid type or allowed values - Range: numeric or semantic range where applicable | Value | Default | Description | Optional | Expected value(s) | Range | | --- | --- | --- | --- | --- | --- | | deploymentMode | single | Deployment pattern selector | true | `single` or `multinode` | N/A | | image.repository | "" | Tableau image repository | false | container image repo string | non-empty string | | image.tag | "" | Tableau image tag | false | image tag string | non-empty string | | image.pullPolicy | IfNotPresent | Image pull policy | true | `Always,IfNotPresent,Never` | N/A | | image.pullSecrets | \[\] | Image pull secret refs | true | string array of secret names | N/A | | serviceAccount.create | true | Create dedicated ServiceAccount | true | boolean | N/A | | serviceAccount.name | "" | ServiceAccount name override | true | string | DNS label | | serviceAccount.annotations | {} | ServiceAccount annotations | true | map\[string\]string | N/A | | securityContext.runAsUser | 999 | Container UID | true | integer | \>=0 | | securityContext.runAsGroup | 998 | Container GID | true | integer | \>=0 | | podSecurityContext.runAsUser | 999 | Pod-level UID | true | integer | \>=0 | | podSecurityContext.runAsGroup | 998 | Pod-level GID | true | integer | \>=0 | | podSecurityContext.fsGroup | 998 | Shared volume FS group | true | integer | \>=0 | | podSecurityContext.fsGroupChangePolicy | OnRootMismatch | FS group ownership policy | true | `OnRootMismatch` or `Always` | N/A | | primary.replicaCount | 1 | Primary StatefulSet replicas | true | integer | \>=1 | | primary.hostname | primary | Primary hostname hint | true | string | non-empty | | primary.resources.limits.cpu | "16" | Primary CPU limit | true | Kubernetes CPU quantity | \>0 | | primary.resources.limits.memory | "64Gi" | Primary memory limit | true | Kubernetes memory quantity | \>0 | | primary.resources.requests.cpu | "8" | Primary CPU request | true | Kubernetes CPU quantity | \>0 | | primary.resources.requests.memory | "32Gi" | Primary memory request | true | Kubernetes memory quantity | \>0 | | primary.nodeSelector | {} | Primary node selector | true | map\[string\]string | N/A | | primary.tolerations | \[\] | Primary tolerations | true | array of toleration objects | N/A | | primary.affinity | {} | Primary affinity rules | true | affinity object | N/A | | worker.replicaCount | 1 | Worker StatefulSet replicas | true | integer | \>=0 | | worker.hostname | worker | Worker hostname hint | true | string | non-empty | | worker.resources.limits.cpu | "16" | Worker CPU limit | true | Kubernetes CPU quantity | \>0 | | worker.resources.limits.memory | "64Gi" | Worker memory limit | true | Kubernetes memory quantity | \>0 | | worker.resources.requests.cpu | "8" | Worker CPU request | true | Kubernetes CPU quantity | \>0 | | worker.resources.requests.memory | "32Gi" | Worker memory request | true | Kubernetes memory quantity | \>0 | | worker.nodeSelector | {} | Worker node selector | true | map\[string\]string | N/A | | worker.tolerations | \[\] | Worker tolerations | true | array of toleration objects | N/A | | worker.affinity | {} | Worker affinity rules | true | affinity object | N/A | | worker.healthChecks.enabled | false | Enable worker probes | true | boolean | N/A | | env.ACCEPTEULA | "1" | Accept Tableau EULA | true | "`1`" or "`0`" | N/A | | env.LICENSE\_KEY | "" | Licence key via env | true | string | non-empty if used | | env.TABLEAU\_HOSTNAME | "" | Explicit Tableau hostname | true | string | DNS name/FQDN | | env.TSM\_ONLY | "0" | Run TSM-only mode | true | "`1`" or "`0`" | N/A | | env.TSM\_REMOTE\_UID | "" | TSM remote UID | true | numeric string | \>=0 | | env.TSM\_REMOTE\_USERNAME | "" | TSM remote username | true | string | N/A | | env.TSM\_REMOTE\_PASSWORD | "" | TSM remote password via env | true | string | non-empty if used | | env.TABLEAU\_USERNAME | "" | Tableau admin username via env | true | string | non-empty if used | | env.TABLEAU\_PASSWORD | "" | Tableau admin password via env | true | string | non-empty if used | | env.ALWAYS\_WRITE\_BOOTSTRAP\_FILE | "0" | Write bootstrap file from primary | true | "`1`" or "`0`" | N/A | | env.BOOTSTRAP\_INSTALL | "0" | Worker bootstrap install mode | true | "`1`" or "`0`" | N/A | | env.WAIT\_FOR\_BOOTSTRAP\_FILE | "0" | Worker bootstrap install mode | true | "`1`" or "`0`" | N/A | | env.HTTP\_PROXY | "" | Wait for bootstrap file | true | URL string | N/A | | env.HTTPS\_PROXY | "" | HTTPS proxy URL | true | URL string | N/A | | env.NO\_PROXY | "" | HTTPS proxy URL | true | comma-separated hosts/CIDRs | N/A | | env.PORT\_RANGE\_MIN | 8600 | Dynamic port range minNo-proxy list | true | numeric string | 1-65535 | | env.PORT\_RANGE\_MAX | 9000 | Dynamic port range max | true | numeric string | 1-65535; >= min | | env.COORDINATION\_SERVICE\_CLIENT\_PORT | "" | ZK client port override | true | numeric string | 1-65535 | | env.COORDINATION\_SERVICE\_PEER\_PORT | "" | ZK peer port override | true | numeric string | 1-65535 | | env.LICENSE\_SERVICE\_VENDOR\_DAEMON\_PORT | "" | ZK leader port override | true | numeric string | 1-65535 | | env.COORDINATION\_SERVICE\_LEADER\_PORT | "" | Licence daemon port override | true | numeric string | 1-65535 | | env.AGENT\_FILE\_TRANSFER\_PORT | "" | Agent file transfer port override | true | numeric string | 1-65535 | | env.CONTROLLER\_PORT | "" | Controller port override | true | numeric string | 1-65535 | | persistence.enabled | true | Enable data PVCs | true | boolean | N/A | | persistence.storageClass | "" | Data PVC storage class | true | string | existing StorageClass | | persistence.accessMode | ReadWriteOnce | Data PVC access mode | true | `ReadWriteOnce,ReadOnlyMany,ReadWriteMany` | N/A | | persistence.size | 100Gi | Data PVC size | true | Kubernetes quantity | \>0 | | persistence.bootstrap.enabled | true | Enable bootstrap PVC (multi-node) | true | boolean | N/A | | persistence.bootstrap.storageClass | "" | Bootstrap PVC storage class | true | string | existing StorageClass | | persistence.bootstrap.accessMode | ReadWriteMany | Bootstrap PVC access mode | true | typically `ReadWriteMany` | N/A | | persistence.bootstrap.size | 1Gi | Bootstrap PVC size | true | Kubernetes quantity | \>0 | | persistence.bootstrap.createPV | false | Let chart create static PV | true | boolean | N/A | | persistence.bootstrap.volumeName | "" | Explicit bootstrap PV name binding | true | string | existing PV name | | persistence.bootstrap.pv.name | "" | PV name when `createPV=true` | true | string | DNS-1123 | | persistence.bootstrap.pv.capacity | 1Gi | PV capacity | true | Kubernetes quantity | \>0 | | persistence.bootstrap.pv.reclaimPolicy | Retain | PV reclaim policy | true | `Retain,Delete,Recycle` | N/A | | persistence.bootstrap.pv.volumeMode | Filesystem | PV volume mode | true | `Filesystem` or `Block` | N/A | | persistence.bootstrap.pv.csi.driver | efs.csi.aws.com | CSI driver for bootstrap PV | true | CSI driver name | N/A | | persistence.bootstrap.pv.csi.volumeHandle | "" | EFS/FileSystem handle | true | provider-specific ID | non-empty if `createPV=true` | | persistence.bootstrap.pv.csi.volumeAttributes | {} | CSI volume attributes map | true | map\[string\]string | N/A | | persistence.bootstrap.permissionsFix.enabled | false | Enable bootstrap permission init | true | boolean | N/A | | persistence.bootstrap.permissionsFix.image | busybox:1.36 | Permission-fix image | true | valid image ref | N/A | | persistence.bootstrap.permissionsFix.runAsUser | 0 | UID for permission-fix init | true | integer | \>=0 | | persistence.bootstrap.permissionsFix.fsOwner | 999 | chown UID for bootstrap dir | true | integer | \>=0 | | persistence.bootstrap.permissionsFix.fsGroup | 998 | chown GID for bootstrap dir | true | integer | \>=0 | | persistence.bootstrap.permissionsFix.dirMode | "2775" | chmod mode for bootstrap dir | true | string octal mode | 0000-7777 | | config.configJson | JSON block | Tableau `config.json` content | true | valid JSON string | N/A | | config.regInfoJson | JSON block | Tableau registration JSON | true | valid JSON string | N/A | | config.tabsvcYml | YAML block | Tableau `tabsvc.yml` content | true | valid YAML string | N/A | |   |   | Licence key via chart secret | true | string | non-empty if used | | secrets.tsmRemotePassword | "" | TSM remote password via secret | true | string | non-empty if used | | secrets.tableauUsername | "" | Tableau admin username via secret | true | string | non-empty if used | | secrets.tableauPassword | "" | Tableau admin password via secret | true | string | non-empty if used | | service.primary.type | ClusterIP | Primary service type | true | `ClusterIP,NodePort,LoadBalancer` | N/A | | service.primary.ports.http | 80 | Primary HTTP port | true | integer | 1-65535 | | service.primary.ports.gateway | 8080 | Primary gateway port | true | integer | 1-65535 | | service.primary.ports.ssl | 8443 | Primary SSL port | true | integer | 1-65535 | | service.primary.ports.tsm | 8850 | Primary TSM port | true | integer | 1-65535 | | service.primary.ports.dynamic.start | 8600 | Dynamic port start | true | integer | 1-65535 | | service.primary.ports.dynamic.end | 9000 | Dynamic port end | true | integer | 1-65535; >= star | | service.primary.annotations | {} | Primary service annotations | true | map\[string\]string | N/A | | service.worker.ports.http | ClusterIP | Worker service type | true | `ClusterIP,NodePort,LoadBalancer` | N/A | | service.worker.ports.http | 80 | Worker HTTP port | true | integer | 1-65535 | | service.worker.ports.gateway | 8080 | Worker gateway port | true | integer | 1-65535 | | service.worker.ports.ssl | 8443 | Worker SSL port | true | integer | 1-65535 | | service.worker.ports.tsm | 8850 | Worker TSM port | true | integer | 1-65535 | | service.worker.ports.dynamic.start | 8600 | Worker dynamic start | true | integer | 1-65535 | | service.worker.ports.dynamic.end | 9000 | Worker dynamic end | true | integer | 1-65535; >= start | | service.worker.annotations | {} | Worker service annotations | true | map\[string\]string | N/A | | ingress.enabled | false | Enable ingress | true | boolean | N/A | | ingress.className | "" | Ingress class name | true | string | existing class | | ingress.annotations | {} | Ingress annotations | true | map\[string\]string | N/A | | ingress.hosts | \[{host: tableau.example.com, paths:\[...\]}\] | Ingress host/path config | true | array of host/path objects | N/A | | ingress.tls | \[\] | Ingress TLS entries | true | array of TLS objects | N/A | | healthChecks.startup.enabled | true | Enable startup probe | true | boolean | N/A | | healthChecks.startup.initialDelaySeconds | 300 | Startup probe delay | true | integer | \>=0 | | healthChecks.startup.periodSeconds | 15 | Startup probe period | true | integer | \>=1 | | healthChecks.startup.timeoutSeconds | 30 | Startup probe timeout | true | integer | \>=1 | | healthChecks.startup.failureThreshold | 200 | Startup failure threshold | true | integer | \>=1 | | healthChecks.liveness.enabled | true | Enable liveness probe | true | boolean | N/A | | healthChecks.liveness.initialDelaySeconds | 300 | Liveness probe delay | true | integer | \>=0 | | healthChecks.liveness.periodSeconds | 30 | Liveness probe period | true | integer | \>=1 | | healthChecks.liveness.timeoutSeconds | 10 | Liveness probe timeout | true | integer | \>=1 | | healthChecks.liveness.successThreshold | 1 | Liveness success threshold | true | integer | \>=1 | | healthChecks.liveness.failureThreshold | 3 | Liveness failure threshold | true | integer | \>=1 | | healthChecks.readiness.enabled | true | Enable readiness probe | true | boolean | N/A | | healthChecks.readiness.initialDelaySeconds | 300 | Readiness probe delay | true | integer | \>=0 | | healthChecks.readiness.periodSeconds | 10 | Readiness probe period | true | integer | \>=1 | | healthChecks.readiness.timeoutSeconds | 5 | Readiness probe timeout | true | integer | \>=1 | | healthChecks.readiness.successThreshold | 1 | Readiness success threshold | true | integer | \>=1 | | healthChecks.readiness.failureThreshold | 3 | Readiness failure threshold | true | integer | \>=1 | | podDisruptionBudget.enabled | false | Enable PodDisruptionBudget | true | boolean | N/A | | podDisruptionBudget.minAvailable | 1 | Minimum pods available | true | integer or percentage string | \>=0 | | labels | {} | Extra common labels | true | map\[string\]string | N/A | | annotations | {} | Extra common annotations | true | map\[string\]string | N/A | | podLabels | {} | Extra pod labels | true | map\[string\]string | N/A | | podAnnotations | {} | Extra pod annotations | true | map\[string\]string | N/A | | hooks.autoApplyWorkerTopology.enabled | false | Enable post-install/upgrade topology hook | true | boolean | N/A | | hooks.autoApplyWorkerTopology.kubectlImage | bitnami/kubectl:latest | Hook job kubectl image | true | valid image ref | N/A | | hooks.autoApplyWorkerTopology.timeoutSeconds | 3600 | Hook timeout while waiting for workers | true integer >=60 | integer >=60 | \>=60 | ## Additional Resources - [Tableau Server Helm Chart – Overview](https://help.tableau.com/current/server-linux/en-gb/server-in-container_helm-chart.htm) - [Tableau Server Helm Chart – Prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm) - [Tableau Server Helm Chart – Deploy](https://help.tableau.com/current/server-linux/en-gb/server-helm-deploy.htm) - [Tableau Server Helm Chart – Examples](https://help.tableau.com/current/server-linux/en-gb/server-helm-examples.htm) - [Tableau Server Helm Chart – Troubleshooting](https://help.tableau.com/current/server-linux/en-gb/server-helm-troubleshooting.htm) - [Tableau Server Documentation](https://help.tableau.com/current/server-linux/en-gb/) [Skip to main content](#main-content) # Tableau Server Helm Chart – Troubleshooting **Important**: This documentation assumes a knowledge of Helm and Helm charts and does not attempt to provide detailed, prescriptive examples. It is designed for customers who are familiar with both Tableau Server and Helm and Helm charts. ## Introduction This topic provides help for you to diagnose and resolve common issues when deploying Tableau Server on Kubernetes using a Helm chart. It covers installation problems, runtime issues and debugging techniques. ## General Troubleshooting Steps When encountering issues with Tableau Server in Kubernetes: 1. Check pod status and events 2. Review container logs 3. Verify resource availability 4. Check persistent volume claims 5. Review Helm release status 6. Examine service and network connectivity ## Pods not starting 1. Check pod status: kubectl get pods -l app.kubernetes.io/instance=tableau-server kubectl describe pod 2. Check logs: kubectl logs 3. Check events: kubectl get events --sort-by='.lastTimestamp' ## Persistent volume issues 1. Check PVC status: kubectl get pvc kubectl describe pvc 2. Verify storage class: kubectl get storageclass ## Licence key issues 1. Verify licence key is set: kubectl get secret tableau-server-secrets -o jsonpath='{.data.LICENSE\_KEY}' | base64 -d 2. Update licence key: \# Edit values.yaml and upgrade helm upgrade tableau-server ./helm/tableau-server -f ./helm/tableau-server/values.yaml ## Health check failures 1. Check health check script: kubectl exec -- /docker/alive-check kubectl exec -- /docker/server-ready-check 2. Adjust health check timing: healthChecks: liveness: initialDelaySeconds: 600 # Increase if server takes longer to start ## Multi-node bootstrap issues 1. Verify bootstrap volume: kubectl get pvc | grep bootstrap 2. Check bootstrap file: kubectl exec -- ls -la /docker/config/bootstrap 3. Verify ReadWriteMany access mode: persistence: bootstrap: accessMode: ReadWriteMany # Required for multi-node 4. Verify bootstrap PV/PVC binding for EFS static provisioning: kubectl get pv tableau-bootstrap-pv kubectl get pvc -n default tableau-server-bootstrap kubectl describe pv tableau-bootstrap-pv kubectl describe pvc -n default tableau-server-bootstrap 5. If mount fails after PVC is Bound, check for EFS CSI/IAM errors: kubectl describe pod -n default tableau-server-primary-0 kubectl get events -n default --sort-by='.lastTimestamp' 6. `driver name efs.csi.aws.com not found` errors: Install and verify the EKS add-on as described in [Amazon Elastic Kubernetes Service (EKS) prerequisites](https://help.tableau.com/current/server-linux/en-gb/server-helm-prerequisites.htm#EKS-Prereq-storageclass). 7. Fix `DescribeMountTargets` authorisation failures - Preferred method: aws iam attach-role-policy \\ --role-name \\ --policy-arn arn:aws:iam::aws:policy/AmazonElasticFileSystemClientReadWriteAccess Then restart affected pods (primary node and all worker nodes). Workers are selected by label so any replica count is covered. - Alternative method Force mount the target IP in bootstrap PV config: Set `persistence.bootstrap.pv.csi.volumeAttributes.mounttargetip` (or manual PV `volumeAttributes.mounttargetip`) and re-apply/upgrade. ## Additional Resources - [Tableau Server Documentation](https://help.tableau.com/current/server-linux/en-gb/) - [Tableau Server Logs Reference](https://help.tableau.com/current/server-linux/en-gb/logs.htm) - [Kubernetes Troubleshooting](https://kubernetes.io/docs/tasks/debug/) - [Helm Troubleshooting](https://helm.sh/docs/faq/troubleshooting/) - [Helm Documentation](https://helm.sh/docs/) [Skip to main content](#main-content) # Help Output for initialise-tsm Script The following help content is the output when you run the following command: `sudo ./initialize-tsm -h` The initialise-tsm script is installed to `/opt/tableau/tableau_server/packages/scripts./`. ## Output REQUIRED --accepteula Indicate that you have accepted the End User License Agreement (EULA). You can find the EULA in /opt/tableau/tableau\_server/packages/docs. OPTIONAL -c config-name Set the service configuration name. If not set, the default is "tabsvc". -d data-directory Set a custom location for the data directory if it's not already set. If not set, the default is "/var/opt/tableau/tableau\_server". -b bootstrap-file Optional. Location of the bootstrap file downloaded from the Tableau Services Manager on existing node. Must be provided to join existing Tableau Server cluster. -u username Name of the user with admin privileges on existing Tableau Services Manager. Required if -b option specified. -p password Password for the Tableau Services Manager admin user. Note: This option was removed beginning in version 2021.3.0 to improve script security. -f Bypass warning messages. -g Do NOT add the current user to the "tsmadmin" administrative group, used for default access to Tableau Services Manager, or to the "tableau" group, used for easier access to log files. -a username The provided username will be used as the user to be added to the appropriate groups, instead of the user running this script. Providing both -a and -g is not allowed. -q Quiet, suppress output except for errors and warnings. -i coordinationservice-client-port Client port for the coordination service -e coordinationservice-peer-port Peer port for the coordination service -m coordinationservice-leader-port Leader port for the coordination service -t licenseservice-vendordaemon-port Vendor daemon port for the licensing service -n agent-filetransfer-port Filetransfer port for the agent service -o controller-port Https port for the controller service -l port-range-min Lower port bound for automatic selection -r port-range-max Upper port bound for automatic selection --disable-port-remapping Disable automatic port selection --unprivileged-user= Name of the unprivileged account to run Tableau Server. Default: "tableau". --tsm-authorized-group= Name of the group(s) that allows authorization to access Tableau Services Manager. Default: "tsmadmin". --disable-account-creation Do not create groups or user accounts for Server and TSM authorization. However, the values in: unprivileged-user and tsm-authorized-group will still be used in TSM configuration. --http\_proxy= Http forward proxy for Tableau Server. Its value should be http://:/ For example, --http\_proxy=http://1.2.3.4:3128/ or --http\_proxy=http://example.com:3128/ --https\_proxy= Https forward proxy for Tableau Server. Its value should be http://:/ For example, --https\_proxy=http://1.2.3.4:3128/ or --https\_proxy=http://example.com:3128/ Take care to use http when you specify the URL for the https\_proxy environmental variable. Do not specify the https protocol for the value of the https\_proxy environmental variable. --no\_proxy= Environment variable that directs certain URLs to bypass the forward proxy. For example, --no\_proxy=localhost,127.0.0.1,localaddress,.localdomain.com --\[no-\]activation-service Specify whether the Tableau authorization-to-run (ATR) service should be used to activate Tableau Server. This option is ideal for cloud-based or virtual environments, but is available to anyone who can activate their copy of Tableau Server online. Selecting ATR for product activation is a permanent choice that cannot be undone later. If no option is specified, the Tableau authorization-to-run (ATR) service will be used to activate Tableau Server. ## Related topics - [Controlling port remapping with initialise-tsm](https://help.tableau.com/current/server-linux/en-gb/ports.htm#PortsAtInitializeTSM) - [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm) - [System user and groups](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm#System) - [Data directory](https://help.tableau.com/current/server-linux/en-gb/requ.htm#Data) [Skip to main content](#main-content) # Help Output for initialize-tsig Script The following help content is the output when you run the following command: `sudo ./initialize-tsig -h` The initialize-tsig script is installed to `/opt/tableau/tableau_tsig/packages/scripts./`. ## Output REQUIRED --accepteula Indicate that you have accepted the End User License Agreement (EULA). You can find a link to the EULA in /opt/tableau/tableau\_tsig/packages/docs. -c The network location of all nodes in the Tableau Server cluster. These may send "housekeeping" requests to the TSIG node. The locations must be one of the forms that are acceptable to Apache httpd mod\_authz\_host "Require" directive as described at https://httpd.apache.org/docs/2.4/mod/mod\_authz\_host.html. Use quotes if there are embedded spaces. OPTIONAL -i A unique identifier for the TSIG instance. Default: The computer name. -p Port listening for external requests. Default: 80. -t Protocol used for external requests. Options are "http" or "https". Default: "http". -k Port listening for housekeeping requests from Tableau Server. Default: 21319. -s Protocol used for housekeeping requests. Options are "http" or "https". Default: "http". -d data-dir Set a custom location for the data directory if it's not already set. If not set, the default is "/var/opt/tableau/tableau\_tsig". -f Bypass warning messages and distribution version checks. -g Do not add the current user to the "tableau-tsig" group. Use this for easier access to log files and runtime files. -a Name of the user to be added to the appropriate groups instead of the current user running the script. You cannot use both -g and -a. -q Quiet, suppress output except for errors and warnings. --unprivileged-user= Name of the unprivileged account to run Tableau Server Independent Gateway. Default: "tableau-tsig". --disable-account-creation Do not create groups or user accounts for Tableau Server Independent Gateway. However, the values in: unprivileged-user will still be used in TSIG configuration. ## Related topics - [Install Tableau Server with Independent Gateway](https://help.tableau.com/current/server-linux/en-gb/server_tsig_new_install.htm) [Skip to main content](#main-content) # Help Output for tableau-server-obliterate Script The following help content is the output when you run the following command: `sudo ./tableau-server-obliterate -h` The ./tableau-server-obliterate script is installed to `/opt/tableau/tableau_server/packages/scripts./`. ## Output Remove Tableau Server from this computer. This script will stop and remove all Tableau Services from this computer. It also removes data and configuration files. It leaves licensing in place. It also preserves logs and backup files, which are moved to a temp directory under the Tableau data folder. You can force removal of these files, and licensing, using optional parameters. This script is destructive and not reversible. It should only be used to clean Tableau Server from a computer. For multi-node installations, you must run the script separately on each node. This script must be run as the root user. -y Required. Yes, remove Tableau Server from this computer. Must be specified three times to confirm. -l Optional. Delete licensing files and data. This command will attempt to deactivate licenses before deleting licensing data. Internet access is required for license deactivation. Offline deactivation is not supported. To deactivate license before removing Tableau Server, run 'tsm licenses deactivate' before running this script. -k Optional. Do not copy backups to logs\_temp directory. -g Optional. Do not copy logs to logs\_temp directory. -a Optional. Do not copy anything to logs\_temp directory. [Skip to main content](#main-content) # Help Output for upgrade-tsm Script The following help content is the output when you run the following command: `sudo ./upgrade-tsm -h` The upgrade-tsm script is installed to `/opt/tableau/tableau_server/packages/scripts./`. ## Output Usage: upgrade-tsm \[optional parameters\] Perform upgrade using the specified parameters. Global Parameters -u, --username TSM administrator user name. Current user will be assumed if not provided. -p, --password TSM administrator password. You will be prompted for a password if upgrading from a version prior to 2019.2 and the password is not provided. -sp,--service-runas-password Service runas user password. You will be prompted for password if not set and non-default runas user is configured. Optional Parameters --trust-admin-controller-cert Do not validate the server certificate. --no-prompt Suppress script prompts. You will only be prompted for missing required parameters, for example, if you specify a user name but not a password. If the script needs to stop or restart Tableau Server it will do so without warning or prompting. Use this if you automate the upgrade, for example, with a script. --skip-preflight-check Skip the preflight check. This option should only be used if you are sure the preflight check is failing in error. --external-repository-config-file= Required if upgrading from a Tableau Server to a version of Tableau Server that uses a later major version of PostgreSQL and is configured to use an external repository. The filename is a configuration file describing a new instance of the external repository. The new repository should use the same type of external service as the current external repository, but with the supported version of PostgreSQL. --external-repository-cert-file= Required if upgrading from a Tableau Server to a version of Tableau Server that uses a later major version of PostgreSQL and is configured to use an external repository. The filename is a SSL certificate file for the new external repository. The new repository should use the same type of external service as the current external repository, but with the supported version of PostgreSQL. [Skip to main content](#main-content) # How Explain Data Works Use Explain Data as an incremental, jumping-off point for further exploration of your data. The possible explanations that it generates help you to see the different values that make up or relate to an analysed mark in a view. It can tell you about the characteristics of the data points in the data source, and how the data might be related (correlations) using statistical modelling. These explanations give you another tool for inspecting your data and finding interesting clues about what to explore next. **Note**: Explain Data is a tool that uncovers and describes relationships in your data. It can't tell you what is causing the relationships or how to interpret the data. **You are the expert on your data.** Your domain knowledge and intuition is key in helping you decide what characteristics might be interesting to explore further using different views. For related information on how Explain Data works, and how to use Explain Data to augment your analysis, see these Tableau Conference presentations: - [From Analyst to Statistician: Explain Data in Practice (1 hour)](https://www.tableau.com/en-gb/events/tc/2019/analyst-statistician-explain-data-practice) - [Leveraging Explain Data (45 minutes)](https://www.tableau.com/en-gb/events/tc/2019/leveraging-explain-data) ## What Explain Data is (and isn’t) Explain Data is: - A tool and a workflow that leverages your domain expertise. - A tool that surfaces relationships in your data and recommends where to look next. - A tool and a workflow that helps expedite data analysis and make data analysis more accessible to a broader range of users. Explain Data is not: - A statistical testing tool. - A tool to prove or disprove hypotheses. - A tool that is giving you an answer or telling you anything about causality in your data. When running Explain Data on marks, keep the following points in mind: - **Use granular data that can be aggregated**. This feature is designed explicitly for the analysis of aggregated data. This means that your data must be granular, but the marks that you select for Explain Data must be aggregated or summarised at a higher level of detail. Explain Data can't be run on disaggregated marks (row-level data) at the most granular level of detail. - **Consider the shape, size and cardinality of your data**. While Explain Data can be used with smaller data sets, it requires data that is sufficiently wide and contains enough marks (granularity) to be able to create a model. - **Don't assume causality**. Correlation is not causation. Explanations are based on models of the data, but are not causal explanations. A correlation means that a relationship exists between some data variables, say A and B. You can't tell just from seeing that relationship in the data that A is causing B, or B is causing A, or if something more complicated is actually going on. The data patterns are exactly the same in each of those cases and an algorithm can't tell the difference between each case. Just because two variables seem to change together doesn't necessarily mean that one causes the other to change. A third factor could be causing them both to change, or it may be a coincidence and there might not be any causal relationship at all. However, you might have outside knowledge that is not in the data that helps you to identify what's going on. A common type of outside knowledge would be a situation where the data was gathered in an experiment. If you know that B was chosen by flipping a coin, any consistent pattern of difference in A (that isn't just random noise) must be caused by B. For a longer, more in-depth description of these concepts, see the article [Causal inference in economics and marketing](https://www.pnas.org/content/pnas/113/27/7310.full.pdf) by Hal Varian. ## How explanations are analysed and evaluated Explain Data runs a statistical analysis on a dashboard or sheet to find marks that are outliers, or specifically on a mark you select. The analysis also considers possibly related data points from the data source that aren't represented in the current view. Explain Data first predicts the value of a mark using only the data that is present in the visualisation. Next, data that is in the data source (but not in the current view) is considered and added to the model. The model determines the range of predicted mark values, which is within one standard deviation of the predicted value. ### What is an expected range? The expected value for a mark is the median value in the expected range of values in the underlying data in your viz. The expected range is the range of values between the 15th and 85th percentile that the statistical model predicts for the analysed mark. Tableau determines the expected range each time it runs a statistical analysis on a selected mark. Possible explanations are evaluated on their explanatory power using statistical modelling. For each explanation, Tableau compares the expected value with the actual value. | value | Description | | --- | --- | | Higher than expected/Lower than expected | If an expected value summary says the mark is _lower than expected_ or _higher than expected_, it means the aggregated mark value is outside the range of values that a statistical model is predicting for the mark. If an expected value summary says the mark is _slightly lower_ or _slightly higher_ than expected, or _within the range of natural variation_, it means the aggregated mark value is within the range of predicted mark values, but is lower or higher than the median. | | Expected Value | If a mark has an expected value, it means its value falls within the expected range of values that a statistical model is predicting for the mark. | | Random Variation | When the analysed mark has a low number of records, there may not be enough data available for Explain Data to form a statistically significant explanation. If the mark’s value is outside of the expected range, Explain Data can’t determine whether this unexpected value is being caused by random variation or by a meaningful difference in the underlying records. | | No Explanation | When the analysed mark value is outside of the expected range and it does not fit a statistical model used for Explain Data, no explanations are generated. | ### Models used for analysis Explain Data builds models of the data in a view to predict the value of a mark and then determines whether a mark is higher or lower than expected given the model. Next, it considers additional information, like adding additional columns from the data source to the view, or flagging record-level outliers, as potential explanations. For each potential explanation, Explain Data fits a new model and evaluates how unexpected the mark is given the new information. Explanations are scored by trading off complexity (how much information is added from the data source) against the amount of variability that needs to be explained. Better explanations are simpler than the variation they explain.
Explanation typeEvaluation

Extreme values

Extreme values are aggregated marks that are outliers, based on a model of the visualised marks. The selected mark is considered to contain an extreme value if a record value is in the tails of the distribution of the expected values for the data.

An extreme value is determined by comparing the aggregate mark with and without the extreme value. If the mark becomes less surprising by removing a value, then it receives a higher score.

When a mark has extreme values, it doesn't automatically mean it has outliers, or that you should exclude those records from the view. That choice is up to you depending on your analysis. The explanation is simply pointing out an interesting extreme value in the mark. For example, it could reveal a mistyped value in a record where a banana cost 10 pounds instead of 10 pence. Or, it could reveal that a particular sales person had a great quarter.

Number of records

The number of records explanation models the aggregate sum in terms of the aggregate count; average value of records models it in terms of the aggregate average. The better the model explains the sum, the higher the score.

This explanation describes whether the sum is interesting because the count is high or low, or because the average is high or low.

Average value of the mark

This type of explanation is used for aggregate marks that are sums. It explains whether the mark is consistent with the other marks because in terms of its aggregate count or average, noting the relation SUM(X) = COUNT(X) * AVG(X).

This explanation describes whether the sum is interesting because the count is high or low, or because the average is high or low.

Contributing Dimensions

This explanation models the target measure of the analysed mark in terms of the breakdown among categories of the unvisualised dimension. The analysis balances the complexity of the model with how well the mark is explained.

An unvisualised dimension is a dimension that exists in the data source but isn't currently being used in the view. This type of explanation is used for sums, counts and averages.

The model for unvisualised dimensions is created by splitting out marks according to the categorical values of the explaining column, and then building a model with the value that includes all of the data points in the source visualisation. For each row, the model attempts to recover each of the individual components that made each mark. The analysis indicates whether the model predicts the mark better when components corresponding to the unvisualised dimension are modelled and then added up, versus using a model where the values of the unvisualised dimension are not known.

Aggregate dimension explanations explore how well mark values can be explained without any conditioning. Then, the model conditions on values for each column that is a potential explanation. Conditioning on the distribution of an explanatory column should result in a better prediction.

Contributing Measures

This explanation models the mark in terms of this unvisualised measure, aggregated to its mean across the visualised dimensions. An unvisualised measure is a measure that exists in the data source but isn't currently being used in the view.

A Contributing Measures explanation can reveal a linear or quadratic relationship between the unvisualised measure and the target measure.

[Skip to main content](#main-content) # How Impersonation Works Here’s an illustration of how database user impersonation works: ![A diagram that illustrates how Tableau Server and SQL Server interact to impersonate workbook viewers.](/tableau/current/en-gb/server-linux/en-gb/Img/impersonate.png) In the above illustration, Jane Smith (MyCo\\jsmith) is a West Coast sales representative and Henry Wilson (MyCo\\hwilson) covers the East. In the SQL Server database, the account permissions for Jane's account, MyCo\\jsmith, only give her access to West Coast data. Henry's account, MyCo\\hwilson, can only access data for the East Coast. A view has been created that displays data for the entire country. It has a live connection to a SQL Server database. Both users sign in to Tableau Server and click the view. Tableau Server connects to SQL Server using a database account with IMPERSONATE permission for each user's database account. This account acts on behalf of each user's database account. When the view displays, it is restricted by each user's individual database permissions: Jane sees only the West Coast sales data, Henry sees only the East Coast data. [Skip to main content](#main-content) # How Mutual SSL Authentication Works Mutual (or two-way) SSL authentication provides a combination of an encrypted data stream, mutual authentication of both server and client, and direct access convenience. To use mutual SSL with Tableau Server, you need the following: - External SSL configured on Tableau Server. - A trusted CA-issued SSL certificate for Tableau Server. The file is a concatenation of CA certificate files. A "CA" is a _certificate authority_ that issues certificates to the client computers that will connect to Tableau Server. The action of uploading the CA certificate file establishes a trust, which enables Tableau Server to authenticate the individual certificates that are presented by the client computers. - A certificate on each client that will connect to Tableau Server. - A Tableau Server configured to use mutual SSL. Tableau Server and the client verify that each other has a valid certificate, and Tableau Server authenticates the user, based on the user name in the client certificate. The following image shows a little more detail about the sequence of events that occurs with mutual SSL. ![A diagram that shows the communication process between a Tableau Server user and the Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/ssl_mutual02.png) 1. The user navigates to Tableau Server. 2. Tableau Server sends its SSL certificate to the client computer. 3. The client computer verifies the Tableau Server certificate. 4. The client computer sends its certificate to Tableau Server. 5. Tableau Server verifies the client certificate. 6. Tableau Server references the user name in the client certificate to authenticate the user. [Skip to main content](#main-content) # How Relationships Differ from Joins Relationships are a dynamic, flexible way to combine data from multiple tables for analysis. You don’t define join types for relationships, so you won’t see a Venn diagram when you create them. Think of a relationship as a contract between two tables. When you are building a viz with fields from these tables, Tableau brings in data from these tables using that contract to build a query with the appropriate joins. - **No up-front join type**. You only need to select matching fields to define a relationship ([no join types](#WhereAreJoins)). Tableau first attempts to create the relationship based on existing key constraints and matching field names. You can then check to ensure they are the fields you want to use, or add more field pairs to better define how the tables should be related. - **Automatic and context-aware**. Relationships defer joins to the time and context of analysis. Tableau automatically selects join types based on the fields being used in the visualisation. During analysis, Tableau adjusts join types intelligently and preserves the native level of detail in your data. You can see aggregations at the level of detail of the fields in your viz rather than having to think about the underlying joins. You don't need to use LOD expressions such as FIXED to deduplicate data in related tables. - **Flexible**. Relationships can be many-to-many and support full outer joins. When you combine tables using relationships, it’s like creating a custom, flexible data source for every viz, all in a single data source for the workbook. Because Tableau queries only tables that are needed based on fields and filters in a viz, you can build a data source that can be used for a variety of analytic flows. For more information, see [Relate Your Data](https://help.tableau.com/current/pro/desktop/en-gb/relate_tables.htm) and [Don’t Be Scared of Relationships.](https://help.tableau.com/current/pro/desktop/en-gb/datasource_dont_be_scared.htm) > [!TIP] > > Joins are still available as an option for combining your data. Double-click a logical table to go to the join canvas. For more information, see [Where did joins go?](#WhereAreJoins) **Watch a video**: For an introduction to using relationships in Tableau, see this 5-minute video. **Note**: The interface for editing relationships shown in this video might differ slightly from the current release but has the same functionality. Also see video podcasts on relationships from [Action Analytics](https://action-analytics.com/library/), such as [Why did Tableau Invent Relationships?](https://action-analytics.com/ep-1-why-did-tableau-invent-relationships/) Click "Video Podcast" in the [Library](https://action-analytics.com/library/) to see more. For related information about how relationship queries work, see these Tableau blog posts: - [Relationships, part 1: Introducing new data modelling in Tableau](https://www.tableau.com/en-gb/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model) - [Relationships, part 2: Tips and tricks](https://www.tableau.com/en-gb/about/blog/2020/5/relationships-part-2-tips-and-tricks) - [Relationships, part 3: Asking questions across multiple related tables](https://www.tableau.com/en-gb/about/blog/2020/6/relationships-part-3-asking-questions-across-multiple-related-tables) ## Characteristics of relationships and joins Relationships are a dynamic, flexible way to combine data from multiple tables for analysis. We recommend using relationships as your first approach to combining your data because it makes data preparation and analysis easier and more intuitive. [Use joins only when you absolutely need to](https://help.tableau.com/current/pro/desktop/en-gb/datasource_datamodel_faq.htm#can-i-use-joins-between-logical-tables). Here are some advantages to using relationships to combine tables: - Make your data source easier to define, change, and reuse. - Make it easier to analyse data across multiple tables at the correct level of detail (LOD). - Do not require the use of LOD expressions or LOD calculations for analysis at different levels of detail. - Only query data from tables with fields used in the current viz. ### Relationships - Are displayed as flexible noodles between logical tables - Require you to select matching fields between two logical tables - Do not require you to select join types - Make all row and column data from related tables potentially available in the data source - Maintain each table's level of detail in the data source and during analysis - Create independent domains at multiple levels of detail. Tables aren't merged together in the data source. - During analysis, create the appropriate joins automatically, based on the fields in use. - Do not duplicate aggregate values (when Performance Options are set to Many-to-Many) - Keep unmatched measure values (when Performance Options are set to Some Records Match) ### Joins Joins are a more static way to combine data. Joins must be defined between physical tables up front, before analysis and can’t be changed without impacting all sheets using that data source. Joined tables are always merged into a single table. As a result, sometimes joined data is missing unmatched values, or duplicates aggregated values. - Are displayed with Venn diagram icons between physical tables - Require you to select join types and join clauses - Joined physical tables are merged into a single logical table with a fixed combination of data - May drop unmatched measure values - May duplicate aggregate values when fields are at different levels of detail - Support scenarios that require a single table of data, such as extract filters and aggregation ## Requirements for using relationships - When relating tables, the fields that define the relationships must have the same data type. Changing the data type in the Data Source page does not change this requirement. Tableau will still use the data type in the underlying database for queries. - You can't define relationships based on geographic fields. - Circular relationships aren't supported in the data model. - You can't define relationships between published data sources. ### Factors that limit the benefits of using related tables - Dirty data in tables (i.e. tables that weren't created with a well-structured model in mind and contain a mix of measures and dimensions in multiple tables) can make multi-table analysis more complex. - Using data source filters will limit Tableau's ability to do join culling in the data. Join culling is a term for how Tableau simplifies queries by removing unnecessary joins. - Tables with a lot of unmatched values across relationships. - In versions 2020.2 to 2024.1: Interrelating multiple fact tables with multiple dimension tables (attempting to model shared or conformed dimensions). In version 2024.2 and later, you can use multi-fact relationships to address these cases. For more information, see [Multi-fact analysis with relationships](https://help.tableau.com/current/pro/desktop/en-gb/datasource_datamodel.htm#multifact-analysis) and [About Multi-fact Relationship Data Models](https://help.tableau.com/current/pro/desktop/en-gb/datasource_mfr_multiple_base_tables.htm). ## Where did joins go? You can still specify joins between tables in the physical layer of a data source. Double-click a logical table to go to the Join/Union canvas in the physical layer and add joins or unions. Every top-level, logical table contains at least one physical table. Open a logical table to view, edit or create joins between its physical tables. Right-click a logical table, and then click Open. Or, just double-click the table to open it. ![Data model with two joins.](/tableau/current/en-gb/server-linux/en-gb/Img/data_model_singletable_joins.gif) When you create a data source, it has two layers. The top-level layer is the logical layer of the data source. You combine data between tables in the logical layer using relationships. The next layer is the physical layer of the data source. You combine data between tables at the physical layer using joins. For more information, see [Logical and physical tables in the data model](https://help.tableau.com/current/pro/desktop/en-gb/datasource_datamodel.htm). ![A data model diagram displays a logical layer with two tables linked by a relationship, and a physical layer that illustrates how the logical tables are constructed from physical tables.](/tableau/current/en-gb/server-linux/en-gb/Img/data_model_layers_sm.png) [Skip to main content](#main-content) # How Scheduled Server Jobs are Prioritised ## Jobs and Tasks In Tableau Server, users can schedule extract refreshes, subscriptions or flows to run periodically. These **scheduled items** are referred to as **tasks**. The Backgrounder process initiates unique instances of these tasks to run them at the scheduled time. The **unique instances of the tasks** that are initiated as a result are referred to as **jobs**. **Jobs** are also created for runs that are initiated **manually**, by clicking the **Run now** option. For example, an extract refresh task is created to run daily at 9 AM. This is an extract refresh task, and every day at 9 AM, a job will be created for the Backgrounder to run. You can assign a priority number to Tasks and Schedules using values from 1 to 100. Lower the number, higher the priority, 1 is the highest priority, and 100 is the lowest. ## Priority Rules for Jobs When processing scheduled extract refreshes, subscriptions and flow runs, Tableau Server prioritises background jobs in this order: 1. Any job already in process is completed first. 2. Any task or schedule that you initiate manually using Run now starts when the next backgrounder process becomes available. Exception to this are the flow tasks and schedules. Flow runs use the assigned task priority to determine the order in when they should run. If there is no task priority assigned it defaults to 0 which is the highest priority. Note: Learn how to restrict Run now settings – [Server Settings (General and Customisation)](https://help.tableau.com/current/server-linux/en-gb/maintenance_set.htm). 3. Jobs with the highest priority (the lowest number) start next, independent of how long they have been in the queue. For extract refreshes and flows, this is the task priority. The task priority is inherited from the schedule priority when the task is first created. The task priority can be subsequently changed but the task priority returns to the default value when the data source is republished. For subscriptions, this is the schedule priority. If you have enabled custom schedules for subscriptions, then the priority of those jobs is set to 50. For example, a job with a priority of 20 will run before a job with a priority of 50, even if the second job has been waiting longer. To change task priority, see [Create or Modify a Schedule](https://help.tableau.com/current/server-linux/en-gb/schedule_manage_create.htm). 4. Jobs with the same priority are executed in the order they were added to the queue. The first job added to the queue starts first; then the second job starts. 5. When multiple jobs with the same priority are scheduled to run at the same time, they start in the order they were created or enabled. Jobs scheduled for the same time are executed by task type with the fastest category of jobs starting first: flow runs, followed by data driven alerts, followed by system jobs, followed by subscriptions, followed by extract creation, followed by incremental extracts and then full extracts. Flows that are scheduled to run as part of a linked task are all assigned the same priority and run in the order they are defined in the linked task. For more information about linked tasks, see [Schedule linked tasks](https://help.tableau.com/current/server/en-gb/prep_conductor_schedule_flow_task.htm#linked_tasks). 6. As the last tie breaking measure, the Backgrounder uses the historical run time. Jobs that have run faster in the previous runs, will be prioritised over jobs that have taken longer historically. **Note:** Setting backgrounder resource limits on a specific site will have an additional queue as these jobs are picked up after other higher priority jobs. For details, see [Tableau Server Backgrounder Resource Limits](https://help.tableau.com/current/server-linux/en-gb/server-backgrounder-resource-limits.htm). The following limitations also impact when the jobs are run: - The number of concurrent jobs is limited to the number of backgrounder processes you have configured for Tableau Server. - Separate refreshes for the same extract or data source cannot run at the same time. - Jobs associated with a schedule that is set to run serially run one at a time. [Skip to main content](#main-content) # How Tableau Server Upgrade Works When upgrading from Tableau Server 2018.2 or later, you do not uninstall the previous version. The upgrade process is designed to install a new version side-by-side with your existing version, and then switch from the earlier version to the later one. When doing a TSM-to-TSM upgrade (version 2018.2.x to later version), you must leave your existing version in place and running until just before you upgrade using the upgrade script. If you uninstall your existing version before upgrading, you will not be able to upgrade. For your end-users, this has the impact of reducing downtime because you install your new version while the existing version is running. The only time the server is not running is during the period the upgrade script is actually upgrading to the new version. After installing the new version and upgrading, you can uninstall the previous version when you choose to do so. You can leave the older version installed indefinitely, though one reason you might choose to uninstall it is to free up disk space used by files specific to the older version. To understand the difference between uninstalling Tableau Server and completely removing all aspects of Tableau Server, see [Uninstall Tableau Server](https://help.tableau.com/current/server-linux/en-gb/uninstall_server.htm). Upgrading Tableau Server requires a stop and start the server as part of the upgrade process. During this stop/restart Tableau Server is unavailable. [Skip to main content](#main-content) # HTTP 401 - Not Authorised If you receive a **401 - Not Authorized error**, it could be for one of the following reasons:  - You may have configured Tableau Server to use Active Directory with SSPI. If your web server uses SSPI, you do not need to set up trusted authentication. You can embed views and your users will have access to them as long as they are licensed Tableau server users and members of your Active Directory. For more information, see [tsm authentication sspi ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#TSMSspi). **Note:** SSPI can only be configured on Tableau Server for Windows. - Or a **302- Redirect error** after you have deployed Tableau Server, then it's likely the trusted ticket code you have written to construct the URL for the client has not been updated to account for the two-part ticket URL format. For more information, see [Get a Ticket from Tableau Server](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_webrequ.htm). [Skip to main content](#main-content) # HTTP 404 - File Not Found You may receive this error if your program code references a Tableau Server URL that does not exist. For example, your web server may construct an invalid URL that cannot be found when the webpage tries to retrieve it. Another cause for this error is if you did not enter the trusted web servers as specified in [Add Trusted IP Addresses or Host Names to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/trusted_auth_trustIP.htm). If you have already entered the trusted web servers, verify that the IP addresses or host names are correct. [Skip to main content](#main-content) # HTTP Response Headers Tableau Server supports some of the response headers specified in the [OWASP Secure Headers Project](https://owasp.org/www-project-secure-headers/#div-headers). This topic describes how to configure the following response headers for Tableau Server: - HTTP Strict Transport Security (HSTS) - Referrer-Policy - X-Content-Type-Options - X-XSS-Protection Tableau Server also supports the Content Security Policy (CSP) standard. CSP configuration is not covered in this topic. See [Content Security Policy](https://help.tableau.com/current/server-linux/en-gb/security_csp.htm). ## Configuring response headers All response headers are configured with the [tsm configuration set](https://help.tableau.com/current/server-linux/en-gb/cli_configuration_tsm.htm#TSMSet) command. When you are finished configuring response headers, run [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ## HTTP Strict Transport Security (HSTS) HSTS forces clients connecting to Tableau Server to connect with HTTPS. For more information see the OWASP entry, [HTTP Strict Transport Security (HSTS)](https://owasp.org/www-project-secure-headers/#div-headers). ### Options gateway.http.hsts Default value: `false` The HTTP Strict Transport Security (HSTS) header forces browsers to use HTTPS on the domain where it is enabled. gateway.http.hsts\_options Default value: `"max-age=31536000"` By default, HSTS policy is set for one year (31536000 seconds). This time period specifies the amount of time in which the browser will access the server over HTTPS. ## Referrer-Policy Beginning in 2019.2, Tableau Server includes the ability to configure Referrer-Policy HTTP header behaviour. This policy is enabled with a default behaviour that will include the origin URL for all "secure as" connections (policy `no-referrer-when-downgrade`). In previous versions, the Referrer-Policy header was not included in responses sent by Tableau Server. For more information about the various policy options that Referrer-Policy supports, see the OWASP entry, [Referrer-Policy](https://owasp.org/www-project-secure-headers/#div-headers). ### Options gateway.http.referrer\_policy\_enabled Default value: `true` To exclude the Referrer-Policy header from responses sent by Tableau Server, set this value to `false`. gateway.http.referrer\_policy Default value: `no-referrer-when-downgrade` This option defines the referrer policy for Tableau Server. You may specify any of the policy value strings listed in the [Referrer-Policy](https://owasp.org/www-project-secure-headers/#div-headers) table on the OWASP page. ## X-Content-Type-Options The X-Content-Type-Options response HTTP header specifies that the MIME type in the Content-Type header should not be changed by the browser. In some cases, where MIME type is not specified, a browser may attempt to determine the MIME type by evaluating the characteristics of the payload. The browser will then display the content accordingly. This process is referred to as "sniffing". Misinterpreting the MIME type can lead to security vulnerabilities. For more information see the OWASP entry, [X-Content-Type-Options](https://owasp.org/www-project-secure-headers/#div-headers). ### Option gateway.http.x\_content\_type\_nosniff Default value: `true` The X-Content-Type-Options HTTP header is set to 'nosniff' by default with this option. ## X-XSS-Protection The HTTP X-XSS-Protection response header is sent to the browser to enable cross-site scripting (XSS) protection. The X-XSS-Protection response header overrides configurations in cases where users have disabled XXS protection in the browser. For more information see the OWASP entry, [X-XSS-Protection](https://owasp.org/www-project-secure-headers/#div-headers). ### Option gateway.http.x\_xss\_protection Default value: `true` The X-XSS-Protection response header is enabled by default with this option. ## Other articles in this section [Skip to main content](#main-content) # Hyper Query Processing (Beta) **Note:** Since Hyper Query Processing is a Beta release, the name can change before general release. The Customer Data Platform (CDP) connector is now powered with the Hyper Query Processing Engine. It supports interactive analytics with fast data query processing and simplifies the connect-to-data experience for faster data exploration. The Hyper query processing engine speeds up query time when querying Customer Data Platform data from Tableau with live connections and Tableau data extracts. > [!IMPORTANT] > > **Beta Feature:** Hyper Query Processing beta feature offers extra functionality at no cost. You can opt to try this service at your sole discretion. Any use of the Beta Service is subject to the applicable Beta Services Terms provided at [Agreements and Terms](https://www.salesforce.com/company/legal/agreements/). ## Enable Hyper Query Processing in Tableau Server Complete the following steps to enable Hyper Query Processing. 1\. Connect to Salesforce CDP. 2\. Follow the directions on the screen to install the hyper JDBC driver. `-Salesforce-cdp-hyper-beta-1.15.0.jar` or download the .jar file from [here](https://github.com/forcedotcom/Salesforce-CDP-jdbc/releases). 3\. Move the downloaded file to any of the following directory paths depending on your system. Windows - `C:\Program Files\Tableau\Drivers` macOS - `/Users/[user]/Library/Tableau/Drivers` 4\. After you’ve moved the driver to the correct path, connect again. Your Customer Data Platform connector is ready to use in Tableau Server. **Note:** The Hyper Query Processing support is a beta release. It’s available for Tableau Server. Tableau Desktop and Tableau Online will be supported from December 2022. These dates are subject to change. ### See Also - Tableau Help: [Connect Tableau Server to the Customer Data Platform](https://help.tableau.com/current/server-linux/en-gb/config_oauth_sfdc_cdp.htm) - Salesforce Help: [Set Up Tableau in Customer Data Platform](https://help.salesforce.com/s/articleView?id=sf.c360_a_set_up_tableau_connected_app.htm&type=5&language=en_GB) - Salesforce Help: [Enable Customer Data Platform in Tableau](https://help.salesforce.com/s/articleView?id=sf.c360_a_enable_tableau_connector.htm&type=5&language=en_GB) - Salesforce Help: [Using Customer Data Platform Data in Tableau](https://help.salesforce.com/s/articleView?id=sf.c360_a_using_customer_360_aud_data_in_tableau.htm&type=5&language=en_GB) [Skip to main content](#main-content) # Hyper Spooling Incidents _Hyper Spooling_ incidents will be logged as a warning when Hyper queries are spooled to disk. Typically, this happens when there is not enough available memory and the Tableau Server Data Engine process shifts to spooling by temporarily writing to disk. The [Tableau Server Data Engine](https://help.tableau.com/current/server-linux/en-gb/data_engine2_intro.htm) topic describes this in more detail in the memory usage section. ## Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Server/Environment Management** role. [Skip to main content](#main-content) # Identity Store Tableau Server requires an identity store to manage user and group information. There are two kinds of identity stores: local and external. When you install Tableau Server you must configure either a local identity store or an external identity store. For information about configuration options for the identity store, see [identityStore Entity](https://help.tableau.com/current/server-linux/en-gb/entity_identity_store.htm) and [External Identity Store Configuration Reference](https://help.tableau.com/current/server-linux/en-gb/ldap_config.htm). For more information about adding more flexibility to the single identity store model, see [Provision and Authenticate Users Using Identity Pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm). ## Local identity store When you configure Tableau Server with a local identity store, all user and group information is stored and managed in the Tableau Server repository. In the local identity store scenario, there is no external source for users and groups. ## External identity store When you configure Tableau Server with an external store, all user and group information is stored and managed by an external directory service. Tableau Server must synchronise with the external identity store so that local copies of the users and groups exist in the Tableau Server repository, but the external identity store is the authoritative source for all user and group data. If you have configured the Tableau Server identity store to communicate with an external LDAP directory, then all users (including the initial admin account) that you add to Tableau Server must have an account in the directory. When Tableau Server is configured to use an external LDAP directory, you must first import user identities from the external directory into the Tableau Server repository as system users. When users sign in to Tableau Server, their credentials are passed to the external directory, which is responsible for authenticating the user; Tableau Server does not perform this authentication. However, the Tableau user names stored in the identity store are associated with rights and permissions for Tableau Server. Therefore, after authentication is verified, Tableau Server manages user access (authorisation) for Tableau resources. Active Directory is an example of an external user store. Tableau Server is optimised to interface with Active Directory. For example, when you install Tableau Server on an Active Directory domain-joined computer using the [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm#tsm-ui-steps), Setup will detect and configure most Active Directory settings. If, on the other hand, you are using TSM CLI to install Tableau Server, you must specify all the Active Directory settings. In this case, be sure to use the [LDAP - Active Directory](https://help.tableau.com/current/server-linux/en-gb/entity_identity_store.htm#LDAP) template to configure identity store. If you are installing into Active Directory, we recommend that you review [User Management in Deployments with External Identity Stores](https://help.tableau.com/current/server-linux/en-gb/users_manage_ad.htm) before you deploy. For all other external stores, Tableau Server supports LDAP as a generic way to communicate the identity store. For example, OpenLDAP is one of several LDAP server implementations with a flexible schema. Tableau Server can be configured to query the OpenLDAP server. To do this, the directory administrator must provide information about the schema. During setup, you must use [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm#tsm-cli-steps) to configure a connection to other LDAP directories. ## LDAP bind Clients that wish to query a user store using LDAP must authenticate and establish a session. This is done by binding. There are multiple ways to bind. Simple binding is authenticating with a username and password. For organisations that connect to Tableau Server with simple bind, we recommend configuring an SSL encrypted connection, otherwise the credentials are sent over the wire in plaintext. Another type of binding Tableau Server supports is GSSAPI binding. GSSAPI uses Kerberos to authenticate. In Tableau Server’s case, Tableau Server is the client and the external user store is the LDAP server. ### LDAP with GSSAPI (Kerberos) bind We recommend binding to LDAP directory with GSSAPI using a keytab file to authenticate to the LDAP server. You will need a keytab file specifically for the Tableau Server service. We also recommend encrypting the channel with the LDAP server using SSL/TLS. See [Configure Encrypted Channel to LDAP External Identity Store](https://help.tableau.com/current/server-linux/en-gb/config_encrypt_ldap.htm). If you are installing into Active Directory, and the computer where you are installing Tableau Server is already joined to the domain, then the computer may already have a configuration file and a keytab file. In this case, the Kerberos files are for the operating system functionality and authentication. Strictly speaking, you can use these files for GSSAPI bind, but we don't recommend using them. Instead, contact your Active Directory administrator and request a keytab specifically for the Tableau Server service. See [Understanding Keytab Requirements](https://help.tableau.com/current/server-linux/en-gb/kerberos_keytab.htm). Assuming your operating system has a properly configured keytab for authentication to the domain, then the Kerberos keyfile for GSSAPI bind is all you need for the base installation of Tableau Server. If you plan to use Kerberos authentication for users, then [configure Kerberos for user authentication](https://help.tableau.com/current/server-linux/en-gb/config_kerberos.htm) and [Kerberos delegation to data sources](https://help.tableau.com/current/server-linux/en-gb/kerberos_delegation.htm) after installation is complete. ### LDAP over SSL By default, LDAP with simple bind to arbitrary LDAP servers is not encrypted. User credentials that are used to establish the bind session with the LDAP server are communicated in plaintext between Tableau Server and the LDAP server. We strongly recommend that you encrypt the channel between Tableau Server and the LDAP server. Beginning with version 2021.2, Tableau Server on Linux requires an encrypted LDAP channel when you use Active Directory as an identity store. You must install a valid SSL/TSL certificate before installing or upgrading to 2021.2 or newer. Although not recommended, you can also disable the default encrypted LDAP channel. For more information about enabling or disabling encryption for Active Directory and other LDAP servers, see [Configure Encrypted Channel to LDAP External Identity Store](https://help.tableau.com/current/server-linux/en-gb/config_encrypt_ldap.htm). ## System user and groups Tableau Server on Linux uses one user, and two groups for proper operation. The user and groups can be local or from an LDAP directory service. ### User Tableau Server requires a service account. This account is an unpriviledged user with normal login privileges. By default, Tableau Server installation will created a local user, `tableau`, for the service account. If you want to use an existing user account for the Tableau Server service account then you must disable account creation during installation. Specifically, you will need to set the `--disable-account-creation` option when you run the initialize-tsm script. You will also need to specify the account name with the `--unprivileged-user` option. If the account that you specify does not exist, then the initialize-tsm script will create it. See [Help Output for initialise-tsm Script](https://help.tableau.com/current/server-linux/en-gb/initialize_tsm-h.htm) for more details. If you want to specify an existing account with the `--unprivileged-user` option, verify that the user account is an unprivileged user with normal login privileges. Configure the account with the following characteristics: - Shell set to `/bin/bash`. - For convenience, consider setting the home directory to the data directory path. The account must have ownership and write privileges to the home directory. If you specify a different unprivileged account during setup, you must manually add that same user to the systemd-journal group. The unprivileged user must be a member of the systemd-journal group so that Tableau Server can collect logs from some services (such as Ask Data) when running the [tsm maintenance ziplogs](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm4ziplogs) command. If the unprivileged user is not a member of the group, ziplogs will not contain logs from the affected services ### Groups Tableau Server requires two groups for operation. In a default installation, the local `tableau` service account belongs to a primary group named `tableau`. However, if you specify an alternate unprivileged user during installation, then the primary group for that alternate account will be used. As a convenience, any account can be added to this group to be able to read the Tableau Server log files (without becoming root). The second group is used to authorise which users are authorised to authenticate to Tableau Services Manager (TSM). Any user in this group will be able to send commands to TSM, so it should be restricted to Tableau Server administrators. By default, this group is named `tsmadmin`. If you are not going to use the default name, you will need to specify the group name with the `--tsm-authorized-group` option when you run initialize-tsm. See [Help Output for initialise-tsm Script](https://help.tableau.com/current/server-linux/en-gb/initialize_tsm-h.htm) for more details. ## Authenticating clients Basic user authentication in Tableau Server is by username and password sign-in for both local and external user stores. In the local case, user passwords are stored as a hashed password in the repository. In the external case, Tableau Server passes the credentials to the external user store and awaits a response as to whether the credentials are valid. External user stores can also handle other kinds of authentication like Kerberos, but the concept is still the same: Tableau Server delegates the credentials or user to the external store and awaits a response. You can configure Tableau Server such that username-password sign-in is disabled. In these scenarios other authentication methods, such as trusted authentication, OpenID, or SAML can be used. See [Authentication](https://help.tableau.com/current/server-linux/en-gb/security_auth.htm). In some cases, you may need to update LDAP external directories to allow bind operations with username + DN format from Tableau Server. See [User binding behaviour on sign-in](https://help.tableau.com/current/server-linux/en-gb/users_manage_ad.htm#User). [Skip to main content](#main-content) # identityStore Entity Tableau Server requires an identity store to store user and group information. Review [Authentication](https://help.tableau.com/current/server-linux/en-gb/security_auth.htm) and [Identity Store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm) topics before configuring the identity store for the first time. After you have installed the identity store on Tableau Server, you cannot change it without reinstalling the server. **Important:** All entity options are case sensitive. ## Before you begin Review the following information: - If you will not be using the local identity store, then you will be using some version of LDAP. In this case, work with your directory/LDAP administrator to configure Tableau Server for your LDAP schema and bind requirements. - Tableau Server configuration is optimised for Active Directory. If you are installing into Active Directory, we recommend configuring the identity store with [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm#tsm-ui-steps). - LDAP bind is independent of user authentication. For example, you can configure Tableau Server to use simple bind to authenticate to the LDAP directory and then configure Tableau Server to authenticate users with Kerberos after installation. - Do not connect to LDAP with simple bind over an unsecured connection. By default, LDAP with simple bind sends data in cleartext. Use LDAPS to encrypt traffic with simple bind. See [Configure Encrypted Channel to LDAP External Identity Store](https://help.tableau.com/current/server-linux/en-gb/config_encrypt_ldap.htm). - To use Kerberos authentication for the LDAP bind with Tableau Server service, then you'll need a keytab file for GSSAPI bind, as described in the sections below. See also, [Understanding Keytab Requirements](https://help.tableau.com/current/server-linux/en-gb/kerberos_keytab.htm). In the context of Kerberos, GSSAPI bind is all you need during the base installation of Tableau Server. After you install the server, you can then [configure Kerberos for user authentication](https://help.tableau.com/current/server-linux/en-gb/config_kerberos.htm) and [Kerberos delegation to data sources](https://help.tableau.com/current/server-linux/en-gb/kerberos_delegation.htm). - In this topic, we make the distinction between _LDAP_ (the protocol for connecting to directory services) and an _LDAP server_ (an implementation of a directory service). For example, `slapd` is an LDAP server that is part of the OpenLDAP project. - Validate the LDAP configuration before initialising the server, see [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). - Import JSON configuration files only as part of the initial configuration. If you need to make LDAP changes after you have imported the JSON configuration file and initialised Tableau Server, do not attempt to re-import the JSON file. Rather, make individual key changes with native tsm commands or with `tsm configuration set`. See [External Identity Store Configuration Reference](https://help.tableau.com/current/server-linux/en-gb/ldap_config.htm). ## Configuration templates The JSON templates in this section are used to configure Tableau Server with different identity store scenarios. Unless you're configuring a local identity store, you will need to select and edit a configuration file template that is specific to your LDAP environment. Consider using the [Tableau Identity Store Configuration Tool](https://tagyoureit.github.io/tableau-identitystore-config-tool/) to help generate your LDAP JSON configuration file. The tool itself is not supported by Tableau. However, using a JSON file created by the tool instead of creating a file manually does not change the supported status of your server. Select an identity store configuration template to edit: - Local - LDAP - Active Directory - OpenLDAP - GSSAPI Bind - OpenLDAP - Simple Bind For more explanation about configuration files, entities and keys see [Configuration File Example](https://help.tableau.com/current/server-linux/en-gb/config_file_example.htm). ### Local Configure local as the identity store type if your organisation does not already have an Active Directory or LDAP server for user authentication. When you select local as the identity store type, you use Tableau Server to create and manage users. An alternative way to configure Tableau Server for local identity store is to run Setup GUI and select "Local" during the installation process. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). { "configEntities": { "identityStore": { "\_type": "identityStoreType", "type": "local" } } } ![](/tableau/current/en-gb/server-linux/en-gb/Img/Road-sign-alert.png) ### Important The LDAP configuration templates below are examples. The templates, as presented, will not configure LDAP connectivity in your organisation. You must work with your directory administrator to edit the LDAP template values for a successful deployment. Additionally, all files that are referenced in configEntities must be located on the local computer. Do not specify UNC paths. ### LDAP - Active Directory Tableau Server configuration is optimised for Active Directory. If you are installing into Active Directory, configure the identity store with [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm#tsm-ui-steps). An encrypted connection to Active Directory is required.See [Configure Encrypted Channel to LDAP External Identity Store](https://help.tableau.com/current/server-linux/en-gb/config_encrypt_ldap.htm). If for some reason you are unable to configure the identity store to communicate with Active Directory with TSM web interface, use this JSON template to configure Tableau Server to connect to Active Directory. This template uses GSSAPI (Kerberos) bind to authenticate Tableau Server service to Active Directory. Tableau Server includes support for Active Directory schema. Therefore, if you set the `"directoryServiceType"` option to `"activedirectory"` then you do not need to provide schema info in the `"identityStoreSchemaType"` option. If you are installing Tableau Server for Linux into Active Directory, and the computer where you are installing Tableau Server is already joined to the domain, then the computer will already have a Kerberos configuration file and a keytab file. Strictly speaking, you can use these files for GSSAPI bind, but we don't recommend using them. Instead, contact your Active Directory administrator and request a keytab specifically for the Tableau Server service. { "configEntities":{ "identityStore": { "\_type": "identityStoreType", "type": "activedirectory", "domain": "your-domain.lan", "nickname": "YOUR-DOMAIN-NICKNAME", "directoryServiceType": "activedirectory", "bind": "gssapi", "kerberosKeytab": "", "kerberosConfig": "/etc/krb5.conf", "kerberosPrincipal": "your-principal@YOUR.DOMAIN" } } } We recommend binding to Active Directory with GSSAPI. However, you can connect with simple bind and LDAPS. To connect with simple bind, change `bind` to `simple`, remove the three Kerberos entities, and add the `port`/`sslPort`, `username`, and `password` options. The following example shows Active Directory with simple bind json. { "configEntities":{ "identityStore": { "\_type": "identityStoreType", "type": "activedirectory", "domain": "your-domain.lan", "nickname": "YOUR-DOMAIN-NICKNAME", "directoryServiceType": "activedirectory", "hostname": "optional-ldap-server", "sslPort": "636", "bind": "simple", "username": "username", "password": "password" } } } ### OpenLDAP - GSSAPI bind Use the template below to configure OpenLDAP with GSSAPI bind. Do not use this template if your organisation is running Active Directory. If you are installing into Active Directory, use the template above, LDAP - Active Directory. In most cases, organisations that use OpenLDAP with GSSAPI (Kerberos) will use a keytab file to store credentials. In the following example, a keytab file is used for authentication credentials. However, you can provide credentials through the `username` and `password` entities. You can also specify both a keytab and a username and password pair. In this case, Tableau Server will attempt to use the keytab, but if authentication fails for any reason it will fallback and use the username and password credentials. { "configEntities":{ "identityStore": { "\_type": "identityStoreType", "type": "activedirectory", "domain": "your-domain.lan", "nickname": "YOUR-DOMAIN-NICKNAME", "directoryServiceType": "openldap", "bind": "gssapi", "kerberosKeytab": "", "kerberosConfig": "/etc/krb5.conf", "kerberosPrincipal": "your-principal@YOUR.DOMAIN", "identityStoreSchemaType": { "userBaseFilter": "(objectClass=inetOrgPerson)", "userUsername": "user", "userDisplayName": "displayname", "userEmail": "email", "userCertificate": "certificate", "userThumbnail": "thumbnail", "userJpegPhoto": "photo", "groupBaseFilter": "(objectClass=groupofNames)", "groupName": "groupname", "groupEmail": "groupemail", "groupDescription": "groupdescription", "member": "member", "distinguishedNameAttribute": "", "serverSideSorting": "", "rangeRetrieval": "", "userClassNames": \["inetOrgPerson","someClass2"\], "groupClassNames": \["groupOfUniqueNames1","groupOfUniqueNames2"\] } } } } ### OpenLDAP - Simple bind { "configEntities":{ "identityStore": { "\_type": "identityStoreType", "type": "activedirectory", "domain": "my.root", "nickname": "", "hostname": "optional-ldap-server", "port": "389", "directoryServiceType": "openldap", "bind": "simple", "username": "cn=username,dc=your,dc=domain", "password": "password", "identityStoreSchemaType": { "userBaseFilter": "(objectClass=inetOrgPerson)", "userUsername": "user", "userDisplayName": "displayname", "userEmail": "email", "userCertificate": "certificate", "userThumbnail": "thumbnail", "userJpegPhoto": "photo", "groupBaseFilter": "(objectClass=groupofNames)", "groupName": "groupname", "groupEmail": "groupemail", "groupDescription": "groupdescription", "member": "member", "distinguishedNameAttribute": "", "serverSideSorting": "", "rangeRetrieval": "", "userClassNames": \["inetOrgPerson","someClass2"\], "groupClassNames": \["groupOfUniqueNames1","groupOfUniqueNames2"\] } } } } ## Configuration template reference ### Shared identity store options type Where you want to store user identity information. Either `local` or `activedirectory`. (If you want to connect to any LDAP server, select `activedirectory`.) domain The domain of the computer where you installed Tableau Server. nickname The nickname of the domain. This is also referred to as the NetBIOS name in Windows environments. The `nickname` option is required for all LDAP entities. If your organisation does not require a nickname/NetBIOS, then pass a blank key, for example: `"nickname": ""`. ### LDAP GSSAPI bind options directoryservicetype The type of directory service that you want to connect to. Either `activedirectory` or `openldap`. kerberosConfig The path to the Kerberos configuration file on the local computer. If you are installing into Active Directory, we don't recommend using the existing Kerberos configuration file or keytab file that may already be on the domain-joined computer. See [Identity Store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm). kerberosKeytab The path to the Kerberos keytab file on the local computer. It is recommended that you create a keytab file with keys specifically for Tableau Server service and that you do not share the keytab file with other applications on the computer. For example, on Linux, you might place the keytab file in the `/var/opt/tableau/keytab` directory. kerberosPrincipal The service principal name for Tableau Server on the host machine. The keytab must have permission for this principal. Do not use the existing system keytab at `/etc/krb5.keytab`. Rather, we recommend that you register a new service principal name. To see principals in a given keytab, run the `klist -k` command. See [Understanding Keytab Requirements](https://help.tableau.com/current/server-linux/en-gb/kerberos_keytab.htm). ### LDAP simple bind options directoryservicetype The type of directory service that you want to connect to. Either `activedirectory` or `openldap`. hostname The hostname of the LDAP server. You can enter a hostname or an IP address for this value. The host that you specify here will be used for user/group queries on the primary domain only. If user/group queries are in other domains (not in the primary domain), Tableau Server will not use this value, but instead will query DNS to identify the appropriate domain controller. port Use this option to specify the non-secure port of the LDAP server. Plaintext is usually 389. sslPort Use this option to enable LDAPS. Specify the secure port of the LDAP server. LDAPS is usually port 636. To use LDAPS you must also specify hostname option. See [Configure Encrypted Channel to LDAP External Identity Store](https://help.tableau.com/current/server-linux/en-gb/config_encrypt_ldap.htm). username The user name that you want to use to connect to the directory service. The account that you specify must have permission to query the directory service. For Active Directory, enter the username, for example, `jsmith`. For LDAP servers, enter the distinguished name (DN) of the user that you want to use to connect. For example, you might enter `cn=username,dc=your-local-domain,dc=lan`. password The password of the user that you want to use to connect to the LDAP server. #### LDAPS and subdomains If you're enabling LDAPS in Active Directory and connecting to subdomains, you'll need to run the following TSM command to configure the LDAPS port (TCP 636) for subdomains. The command takes arguments that specify `subdomainFQDN:port`. Example: `tsm configuration set -k wgserver.domain.ldap.domain_custom_ports -v subdomain1.lan:636,subdomain2.lan:636,subdomain3.lan:636` For more information, see [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). ### Shared LDAP options The following options can be set for generic LDAP, OpenLDAP, or Active Directory implementations. bind The way that you want to authentication communication from the Tableau Server service to the LDAP directory service. Enter `gssapi` for GSSAPI (Kerberos). domain In Active Directory environments, specify the domain where Tableau Server is installed, for example, "example.lan". For non-AD LDAP: the string you enter for this value is displayed in the "Domain" column of user management tools. You can enter an arbitrary string, but the key cannot be blank. root LDAP only. Do not specify for Active Directory. If you do not use a dc component in the LDAP root or you want to specify a more complex root you need to set the LDAP root. Use the "o=my,u=root" format. For example, for the domain, `example.lan`, the root would be `"o=example,u=lan"`. membersRetrievalPageSize This option determines the maximum number of results returned by an LDAP query. For example, consider a scenario where Tableau Server is importing an LDAP group that contains 50,000 users. Attempting to import such a large number of users in a single operation is not a best practice. When this option is set to 1500, Tableau Server imports the first 1500 users in the first response. After those users are processed, Tableau Server requests the next 1500 users from the LDAP server, and so forth. We recommend that you modify this option only to accommodate the requirements of your LDAP server. ### `identityStoreSchemaType` options If you configure an LDAP connection to an LDAP server, you can enter schema information specific to your LDAP server in the `identityStoreSchemaType` object. **Important** If you are connecting to Active Directory (`"directoryServiceType": "activedirectory"`), then do not configure these options. userBaseFilter The filter that you want to use for users of Tableau Server. For example, you might specify an object class attribute and an organisation unit attribute. userUsername The attribute that corresponds to user names on your LDAP server. userDisplayName The attribute that corresponds to user display names on your LDAP server. userEmail The attribute that corresponds to user email addresses on your LDAP server. userCertificate The attribute that corresponds to user certificates on your LDAP server. userThumbnail The attribute that corresponds to user thumbnail images on your LDAP server. userJpegPhoto The attribute that corresponds to user profile images on your LDAP server. groupBaseFilter The filter that you want to use for groups of users of Tableau Server. For example, you might specify an object class attribute and an organisation unit attribute. groupName The attribute that corresponds to group names on your LDAP server. groupEmail The attribute that corresponds to group email addresses on your LDAP server. groupDescription The attribute that corresponds to group descriptions on your LDAP server. member The attribute that describes the list of users in a group. distinguishedNameAttribute The attribute that stores the distinguished names of users. This attribute is optional, but it greatly improves the performance of LDAP queries. serverSideSorting Whether the LDAP server is configured for server-side sorting of query results. If your LDAP server supports server-side sorting, set this option to `true`. If you are unsure whether your LDAP server supports this, enter `false`, as misconfiguration may cause errors. rangeRetrieval Whether the LDAP server is configured to return a range of query results for a request. This means that groups with many users will be requested in small sets instead of all at once. LDAP servers that support range retrieval will perform better for large queries. If your LDAP server supports range retrieval, set this option to `true`. If you are unsure whether your LDAP server supports range retrieval, enter `false`, as misconfiguration may cause errors. groupClassNames By default Tableau Server looks for LDAP group object classes containing the string “group”. If your LDAP group objects do not fit the default class name, override the default by setting this value. You can provide multiple classnames separated by commas. This option takes a list of strings, which requires passing each class in quotes, separated by a comma (no space) and within brackets. For example: `["basegroup","othergroup"]`. userClassNames By default Tableau Server looks for LDAP user object classes containing the string “user” and “inetOrgPerson”. If your LDAP user objects do not use these default class names, override the default by setting this value. You can provide multiple classnames separated by commas. This option takes a list of strings, which requires passing each class in quotes, separated by a comma (no space) and within brackets. For example: `["userclass1",userclass2”]`. ## Importing the JSON file After you have finished editing the JSON file, pass the file and apply settings with the following commands: `tsm settings import -f path-to-file.json` `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). [Skip to main content](#main-content) # Impersonate with a Run As Service Account Impersonating via a Run As service account is the recommended way to perform impersonation. The Run As service account is an Active Directory user account the Tableau Server service can run under on the machine hosting Tableau Server. This same account must have IMPERSONATE permission for the database user accounts in SQL Server. From a data security standpoint, using the Tableau Server Run As service account for impersonation gives the administrator the most control. To set up impersonation with a Run As User account: 1. [Enable Kerberos Service Account Access](https://help.tableau.com/current/server-linux/en-gb/kerberos_runas_linux.htm). 2. Create a workbook in Tableau Desktop. When you create the data connection, select Use Windows NT Integrated security for the workbook's live connection to a SQL Server database: ![SQL Server Connection configuration window with the option to log on to the server using Windows NT Integrated Security selected.](/tableau/current/en-gb/server-linux/en-gb/Img/impers_runas_nt.png) 3. In Tableau Desktop, publish the workbook to Tableau Server (Server > Publish Workbook). 4. In the Publish dialog box, click Authentication, then in the Authentication dialog box, select Impersonate via server Run As account from the drop-down list: ![Authentication dialog box with the “Impersonate via server Run As account" option circled.](/tableau/current/en-gb/server-linux/en-gb/Img/impers_runas_publish.png) 5. Click OK. 6. Test the connection by signing into Tableau Server as a user. When you click a view, you should not be prompted for database credentials and you should only see the data the user is authorised to see. [Skip to main content](#main-content) # Impersonate with Embedded SQL Credentials You can also perform impersonation by having the person who publishes a view embed their SQL Server account credentials in the view. Tableau Server can be running under any type of account, but it will use these credentials, supplied by the publisher, to connect to the database. This may be the right choice for your site if the account that handles the impersonation cannot be an Active Directory (AD) account and if you’re comfortable giving workbook publishers an account with a potentially high permission level on SQL Server. **Note:** To use this approach, [Embedded Credentials](https://help.tableau.com/current/server-linux/en-gb/maintenance_set.htm) must be enabled on the server Settings page in Tableau Server: ![A tick box to enable embedded credentials.](/tableau/current/en-gb/server-linux/en-gb/Img/embedded.png) To impersonate with the workbook publisher’s SQL account: 1. In Tableau Desktop, create a workbook. When you create the data connection, select Use a specific username and password for the workbook's live connection to a SQL Server database: ![SQL Server Connection configuration window with the option to log on to the server using a specific username and password selected.](/tableau/current/en-gb/server-linux/en-gb/Img/impers_SQL_sql.png) 2. Publish the workbook to Tableau Server (Server > Publish Workbook). 3. In the Publish dialog box, click Authentication, then in the Authentication dialog box, select Impersonate via embedded password from the drop-down list: ![Authentication dialog box with the “Impersonate via embedded password" option circled.](/tableau/current/en-gb/server-linux/en-gb/Img/impers_sql_publish.png) 4. Click OK. 5. Test the connection by signing in to Tableau Server as a user. When you click a view, you should not be prompted for database credentials and you should only see the data the user is authorised to see. [Skip to main content](#main-content) # Impersonation Requirements Here’s what you need to use feature: - **Live connections to SQL Server only:** Impersonation can only be used for views that have a live connection to a SQL Server database, version 2005 or newer. - **I**ndividual database accounts:**** Each person who’ll be accessing the view must have an explicit, individual account in the SQL Server database to which the view connects. Members of an Active Directory (AD) group cannot be impersonated. For example, if Jane Smith is a member of the AD group Sales, and her database administrator adds the Sales AD group to the SQL Server database, Jane cannot be impersonated. - **Matching credentials and authentication type:** The credentials of each Tableau user's account and their Tableau user authentication type must match their credentials and authentication type in the SQL Server database. For example, if Jane Smith’s Tableau Server user account is `MyCo\jsmith`, the username on the SQL Server database must also be `MyCo\jsmith`. SQL Server must be using Windows Integrated Authentication. - **SQL Server prerequisites:** In SQL Server you should have a data security table, a view that enforces data security, and you should require that your database users use the view. - **SQL IMPERSONATE account:** You need a SQL Server database account that has IMPERSONATE permission for the above database users. This is either an account with the sysadmin role or one that has been granted IMPERSONATE permission for each individual user account (see the [MSDN article on EXECUTE AS](http://msdn.microsoft.com/en-gb/library/ms181362.aspx)). The SQL Server account must be one of the following: - The Tableau Server Run As service account. See [Enable Kerberos Service Account Access](https://help.tableau.com/current/server-linux/en-gb/kerberos_runas_linux.htm). - The workbook publisher's account. See [Impersonate with Embedded SQL Credentials](https://help.tableau.com/current/server-linux/en-gb/impers_SQL.htm). [Skip to main content](#main-content) # Import Users To automate the process of adding users to a site, you can create a CSV file that contains user information, and then import the file. Site administrators or a user with an admin profile with sufficient capabilities can import users to a particular site; server administrators (Tableau Server only) can import users at the server level, to later add them to multiple sites. **Note:** This topic contains the steps for importing, assuming that you have already created the CSV file. If you have not created the file yet, see [CSV Import File Guidelines](https://help.tableau.com/current/server-linux/en-gb/csvguidelines.htm) for a list of file format requirements and import options. ## Add users from a CSV file The following steps describe how to add users to a site or to the server. The images reflect adding users at the site level. 1. Do one of the following: - To add users at the site level, select Users, and then Add Users. ![Add Users button selected to reveal options for adding users to the site, with the Import from File option selected.](/tableau/current/en-gb/server-linux/en-gb/Img/import_users_csv.png) - To add users at the server level on a **single-site** server, select Users, and then Add Users. - To add users at the server level on a **multi-site** server, open the list of sites, and select Manage All Sites. Select Users, and then Add Users. 2. Click Import Users From File, click Browse and navigate to the file, and then click Import Users. ![A dialog box to import users from a file.](/tableau/current/en-gb/server-linux/en-gb/Img/users_import_local.png) Tableau displays the results of the import process. ![Import Users success dialog.](/tableau/current/en-gb/server-linux/en-gb/Img/users_import_local2.png) 3. Click Done. ## How users’ site roles are assigned or maintained When you import at the site level or on a single-site server using `tabcmd`, you can specify the site role for all users in the CSV file. If a user already exists in the Tableau Server site, the site role assigned during the import process will be applied, even if it is more restrictive than users’ existing site role. The exception is that you cannot affect a server administrator’s site role. For a multi-site server, when you import users in the Server Users page, you create server users with no site affiliation. Because these users do not belong to a site, they cannot have a site role. The only site role a user can have at the server level is Unlicensed or Server Administrator. You can also specify the user’s site role when you assign site membership to a user. For information, see [Manage users’ site membership](https://help.tableau.com/current/server-linux/en-gb/users_view.htm#manage-site-membership). ## Importing at the server level in multi-site environments If the server is running multiple sites and you are a server administrator, you can import a CSV file from two locations. Where existing user accounts are concerned, each location has different capabilities. - The Server Users page appears in a multi-site environment. Only server administrators can access this page. ![A table of server users, including their display names, usernames, site roles, number of groups and last sign-in dates.](/tableau/current/en-gb/server-linux/en-gb/Img/usersimport_srvrusers.png) You can import the CSV file from here if you want to update existing user accounts in addition to adding new ones. For example, if you import a file that has a new password for each existing user, their passwords will be reset. - The Site Users page. ![A table of site users, including their display names, usernames, site roles, number of groups and last sign-in dates.](/tableau/current/en-gb/server-linux/en-gb/Img/usersimport_siteusers.png) Server administrators can add new user accounts with CSV imports. If the CSV file includes existing users, the Password and Display Name fields must either match the existing or be left blank. If new passwords or full names are used, the import will fail. ## Importing to a single-site environment Server and site administrators on a single-site server perform CSV user imports from the Users page in a site. ![A table that lists site users, their usernames, roles, number of groups and last sign-in date.](/tableau/current/en-gb/server-linux/en-gb/Img/userimport_ss_users.png) ## Multi-site versus single-site import Users can belong to more than one site on the same server, but they must use the same credentials for each site. This becomes important when you're adding users to a site and those users might already be members of a different site. If you try to import a user who already exists, and if the user's credentials in the CSV file don’t match the existing credentials, the import fails for that user. If you’re importing users to a site and think the users might already exist on the server, you can try leaving the **Password** field in the CSV file blank (while including the delimiters for the field). If a user who is defined in the CSV already exists in another site, the user is added to the site where you’re importing. However, if the user _doesn’t_ already exist on the server, the user is created, and the CSV import window alerts you that the new user doesn’t have a password. You can then use the server administrator pages to assign a password to any user who doesn’t have one. **Note**: If the server is configured to use Active Directory for authentication, user passwords are managed by Active Directory, and you can leave the password field in the CSV file blank. [Skip to main content](#main-content) # Index and Search Server The Tableau Server Index and Search Server process, based on OpenSearch, handles fast search, filter, retrieval and display of content metadata on your Tableau Server site. Beginning with Tableau Server version 2023.3, Index and Search Server completely replaces the Search and Browse process. ## Server Configuration The Index and Search Server is automatically installed on the initial node. ### Multi-Node Configuration To configure Index and Search Server for high availability, configure the process on multiple nodes. We recommend you configure an odd number of Index and Search Server instances. On Tableau Server Clusters that have 3 or more nodes, you should configure Index and Search Server on at least three different nodes.
Process

Index and Search Server

StatusStatus of the Index and Search Server is visible on the Status Page and can be accessed using the TSM CLI to view. For more information, see View Server Process Status
LoggingLogs generated by the Index and Search Server are located in /var/opt/tableau/tableau_server/data/tabsvc/logs/indexandsearchserver. For more information, see Tableau Server Logs and Log File Locations
**What happens when the Index and Search Server fails?** If Index and Search Server fails, users can still sign in to Tableau Server. However, the different content types (workbooks, projects, data sources and views, for example) will not appear on the Home page, the search bar or the Explore page. Existing workbooks and Views should still be accessible and fully functional if accessed from a bookmarked URL. The content is not actually missing. Rather, the content is not being returned in the search results; it will be displayed again after the Index and Search Server restarts. A failed Index and Search Server is automatically restarted; as long as the computer itself is otherwise healthy, the service will relaunch. If more than one Index and Search Server is configured and running on multiple nodes when the failure occurs, requests made to a failed Index and Search Server will also fail, but subsequent requests will be routed to working Index and Search Server instances. Each Index and Search Server instance indexes across all nodes in the cluster, therefore as long as one Index and Search Server instance is running, results will still be returned across all nodes. ## Performance Tuning The Index and Search Server heap size can be configured by using the `tsm set configuration` command with the `indexandsearchserver.vmopts` option. For more information, see [indexandsearchserver.vmopts](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#indexandsearchserver) ## Re-indexing During restore, the restore process will initiate a full re-indexing of the content and external assets managed by Tableau Server. The re-indexing process consumes CPU resources which may be noticeable during backup and restore. [Skip to main content](#main-content) # Infrastructure Planning Before you install Tableau Server, you should review the disk requirements, recommended configurations, user accounts, security and networking requirements. ## Validating your server deployment plan Before you commit to installing a new Tableau Server deployment in your organisation, be sure to carefully evaluate your options. For most organisations, Tableau Cloud will provide a more reliable, performant and cost-effective analytics solution when compared to self-hosting Tableau Server. For information about the viability of Tableau Cloud for your organisation, review this blog post, [Should I move my analytics to the cloud?](https://www.tableau.com/en-gb/blog/should-i-move-my-analytics-cloud) Already running Tableau Server and want to migrate to Tableau Cloud? See [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). ## Other articles in this section [Skip to main content](#main-content) # Initial Node Installation Defaults By default, the Tableau Server installer configures the number of process instances that Tableau Server runs based on the hardware detected by the installer. The default configuration applies to single-server installations and to the initial server of a multi-node installation. You can calculate the default configuration based on the following rules for each process, where the "number of cores" refers to the number of physical processors: | Process Name | Number of Processes | | --- | --- | | VizQL Server | Equal to the number of cores divided by four, up to a maximum of four process instances. | | Backgrounder | Set to two unless the number of cores is fewer than eight. | | Cache Server | Set to two unless the number of cores is fewer than eight. | | Data Server | Set to two unless the number of cores is fewer than eight. | For all other process types, the number of process instances is set to one, regardless of the hardware. Here's an example default configuration for a computer with 16 cores: | Process Name | Number of Processes | | --- | --- | | VizQL Server | 4 | | Application Server | 1 | | Backgrounder | 2 | | Cache Server | 2 | | Data Server | 2 | | File Store | 1 | | Data Engine | 1 | [Skip to main content](#main-content) # Install and Configure Additional Nodes After you install Tableau Server on one computer (or node), the server is functional and ready for use, but it has no redundancy. If there is a problem with a process or a problem with the computer itself, Tableau Server may be unavailable. In addition, all processes are running on a single computer, so there can be contention for resources on that computer. You can extend your Tableau Server installation by adding Tableau to additional nodes, creating a distributed installation. This article describes the general steps for installing Tableau Server on additional nodes and assumes you have already installed Tableau on an initial node. For more information on installing Tableau on the initial node, see [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm). If you are installing Tableau Server on multiple nodes, you should install and configure one node at a time. This makes it easier to troubleshoot any issues you might run into. **Important**: You should add and configure additional nodes when you can fully complete the process by applying pending changes. Adding a node without finishing by applying pending changes can result in users being unable to log into Tableau Server. ## Installation location Keep in mind the following requirements and limitations: - The installation and data directory locations for Tableau Server must be the same on all nodes in a cluster. - You can specify a non-default install location on RHEL-like distributions but cannot change the location on Ubuntu. For more information, see [Installation directory](https://help.tableau.com/current/server-linux/en-gb/requ.htm#InstallDir). - When you initialise Tableau, you can specify a non-default location for the data directory. For more information, see [Data directory](https://help.tableau.com/current/server-linux/en-gb/requ.htm#Data). ### Generate the node bootstrap file 1. Open TSM in a browser: `https://:8850` For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab, and in the Add a Node box, click Download Bootstrap File. ![A list of processes and the number of instances in a Tableau Server deployment.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-linux-generate-bootstrap.png) The bootstrap file is created and copied to your local computer. Embedded credentials are included in the bootstrap file by default. If you don't want credentials embedded in the bootstrap file, clear the Include temporary credentials in file option. If you want to completely disable the ability to include embedded credentials in node bootstrap files, you can set a configuration option for the server. See [features.PasswordlessBootstrapInit](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#pwdlessbootstrap) for more details. ### Install and initialise an additional node Before you begin, verify that your node bootstrap file is recent. For example, if you have run `[tsm security regenerate-internal-tokens](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm#regenerate-tokens)` after you generated a bootstrap file, then initialisation will fail. 1. Copy the original installer you used on the first computer along with the bootstrap file you generated and put them in a location accessible from the new computer you are adding Tableau Server to. This could be a mounted network share, or directly on the new computer. 2. If you are running a local firewall, then you need to configure firewall rules for all the nodes in the cluster. For more information, see [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 3. On the new node, run the Tableau Server Setup program: Use the package manager to install the Tableau Server package. You must install the new version to the same location as the existing version. The install location must be the same on all nodes. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, you have the option to install Tableau to a non-default location. - **Default location**—To install to the default location (`/opt/tableau/tableau_server`), run the following commands, where `` is formatted as major-minor-maintenance (ex: `2025-3-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - **Non-default location** – To install to a non-default location, you must use `rpm -i`. You will also need to install all dependent packages. See the note below. Run the following command: sudo rpm -i --prefix /preferred/install/path tableau-server.rpm **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If you want to install to a non-default location, or your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. For information about installing dependent packages, see [Installing Tableau Server on an Air-Gapped Computer Running Linux](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm#InstallAirgap). - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb 4. To initialise communications between your new node and the initial node, run the initialise-tsm script that is installed when you install Tableau Server. Navigate to the `scripts` directory: cd /opt/tableau/tableau\_server/packages/scripts./ 5. Run the initialise-tsm script: ``` sudo ./initialize-tsm -b /path/to/.json --accepteula ``` - Use the `-b` flag to provide the path to the bootstrap file that you copied to the computer. If you have encrypted the bootstrap file, then you must pipe the file as described in [Securing secrets for import and export operations](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm#Securing). - If the bootstrap file was generated without embedded credentials, use the `-u` flag to specify the user name of the administrative user on the initial node. This is the name of an administrative user on the computer, not the Tableau Server administrator. You will be prompted for the user password. For more information, see [tsm topology nodes get-bootstrap-file](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMGetBootstrap). ``` sudo ./initialize-tsm -b /path/to/.json -u --accepteula ``` **Important:** You must enter the credentials of the same user that you used during the installation process on the initial node. - The `--accepteula` flag accepts the Tableau Server End User Licence Agreement (EULA). The EULA is available in the following location: [End User Licence Agreement.](http://www.tableau.com/en-gb/legal/eula) ### Configure the additional node with Cluster Controller 1. Open TSM in a browser: https://:8850 For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab. A message should tell you that the new node was added. ![Message indicating that a new node was added to a cluster in Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-node-added.png) Click Continue to dismiss the message. 3. Cluster Controller is part of the minimum topology and is already selected. Each node must run Cluster Controller. If you only want to set the minimum topology for the node, go to Step 4 below. You might do this if you will be adding additional nodes and are not ready to configure this node beyond the minimum. If you want to add additional processes to the minimum topology, specify the processes that should run on the node. Do this by selecting the processes you want, or specifying the number of processes that should run on the node. For example, to add a Gateway and two instances of the Backgrounder on the node: 1. Select Gateway. 2. Set the Backgrounder count to 2. Adding Backgrounder to a node will also add an instance of Data Engine if one is not already on the node. The specific processes and process counts you set will depend on your organisational environment and needs. Some processes are added automatically when you add another process. For more information, see [Configure Nodes](https://help.tableau.com/current/server-linux/en-gb/config_nodes.htm) and [Tableau Server Processes](https://help.tableau.com/current/server-linux/en-gb/processes.htm). **Note:** The TSM Web UI limits you to a maximum of 8 instances of processes that allow you to select the number of instances. To configure more instances than this, use the command line and the `TSM topology set-process` command. For more information, see [tsm topology set-process](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMSetProcess). 4. Click Pending Changes at the top of the page: ![Tableau Server Manager toolbar indicating that there are pending changes.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-pending-changes-btn.png) If you are configuring a cluster with three or more nodes, a Coordination Service ensemble warning displays. You can continue. You will deploy a Coordination Service ensemble in a separate step. 5. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. After Tableau Server restarts, the node is included with the minimum topology necessary and any additional processes you configured. ### Generate the node bootstrap file To install Tableau Server on additional computers you use the same installer you did for the initial node, along with a "bootstrap" file you generate on the initial node. **Important**: The bootstrap file contains a copy of the master keystore file used for encrypting the configuration secrets. The file can also embedded credentials which are valid for a predetermined amount of time (see [tabadmincontroller.auth.expiration.minutes](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#tabadminctrlrauthexpire)) and serve as a session cookie. We strongly recommend that you take additional measures to secure the bootstrap file. The following command set provides an example method to encrypt the bootstrap file output. This method is similar to the encryption process described in more detail at [Securing secrets for import and export operations](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm#Securing). Note however, the method here must be passed as separate arguments with trailing `&& \` operators as follows: `mkfifo -m 600 /tmp/secure1 && \` `tsm topology nodes get-bootstrap-file --file /tmp/secure1 && \` `gpg --symmetric --batch --yes --passphrase-file ~/.secrets/pgppassphrase.txt --cipher-algo AES256 --output encrypted.enc < /tmp/secure1 && \` `rm /tmp/secure1` 1. After installing Tableau Server on the initial node, generate the node bootstrap file. 2. On the initial node, open a terminal session. 3. Type this command to generate the bootstrap file: `tsm topology nodes get-bootstrap-file --file .json` Embedded credentials are included in the bootstrap file by default. If you don't want the bootstrap file to include credentials, use the `-nec` or `--no-embedded-credentials` option: `tsm topology nodes get-bootstrap-file --file .json --no-embedded-credentials`. If you want to completely disable the ability to include embedded credentials in node bootstrap files, you can set a configuration option for the server. See [features.PasswordlessBootstrapInit](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#pwdlessbootstrap) for more details. ### Install and initialise an additional node 1. Copy the original installer you used on the first computer along with the bootstrap file you generated and put them in a location accessible from the new computer you are adding Tableau Server to. This could be a mounted network share, or directly on the new computer. 2. If you are running a local firewall, then you need to configure firewall rules for all the nodes in the cluster. For more information, see [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 3. On the new node, run the Tableau Server Setup program: Use the package manager to install the Tableau Server package. You must install the new version to the same location as the existing version. The install location must be the same on all nodes. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, you have the option to install Tableau to a non-default location. - **Default location**—To install to the default location (`/opt/tableau/tableau_server`), run the following commands, where `` is formatted as major-minor-maintenance (ex: `2025-3-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - **Non-default location** – To install to a non-default location, you must use `rpm -i`. You will also need to install all dependent packages. See the note below. Run the following command: sudo rpm -i --prefix /preferred/install/path tableau-server.rpm **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If you want to install to a non-default location, or your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. For information about installing dependent packages, see [Installing Tableau Server on an Air-Gapped Computer Running Linux](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm#InstallAirgap). - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb 4. To initialise communications between your new node and the initial node, run the initialise-tsm script that is installed when you install Tableau Server. On the new node: Navigate to the `scripts` directory: cd /opt/tableau/tableau\_server/packages/scripts./ 5. Run the initialise-tsm script: ``` sudo ./initialize-tsm -b /path/to/.json --accepteula ``` - Use the `-b` flag to provide the path to the bootstrap file that you copied to the computer. If you have encrypted the bootstrap file, then you must pipe the file as described in [Securing secrets for import and export operations](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm#Securing). - If the bootstrap file was generated without embedded credentials, use the `-u` flag to specify the user name of the administrative user on the initial node. This is the name of an administrative user on the computer, not the Tableau Server administrator. You will be prompted for the user password. For more information, see [tsm topology nodes get-bootstrap-file](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMGetBootstrap). ``` sudo ./initialize-tsm -b /path/to/.json -u --accepteula ``` **Important:** You must enter the credentials of the same user that you used during the installation process on the initial node. - The `--accepteula` flag accepts the Tableau Server End User Licence Agreement (EULA). The EULA is available in the following location: ``` /opt/tableau/tableau_server/packages/docs./EULA.rtf ``` ### Configure the additional node **Note:** This basic example illustrates how to set the topology on a node. For a more detailed, working multi-node example, see [Example: Install and Configure a Three-Node HA Cluster](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_install_3node.htm). On the initial (original) node, set the topology for the newly added node. The topology specifies which processes should run on the node, and how many instances of each process should run. The topology for the node will depend on your environment and organisational needs. The below are just examples of setting the topology. 1. On the initial (original) node, open a terminal session. 2. Get the node-id for the new node: tsm topology list-nodes -v The `-v` option lists the nodes and the processes they are currently running. You can identify the newly added node because it will not have any processes on it. 3. Specify the individual processes that should run on this node. Do this with the following command: `tsm topology set-process -n -pr -c ` You must add an instance of the Cluster Controller to each node. For example, to add the Cluster Controller, two instances of the Backgrounder, and a Gateway to node2: tsm topology set-process -n node2 -pr clustercontroller -c 1 tsm topology set-process -n node2 -pr backgrounder -c 2 tsm topology set-process -n node2 -pr gateway -c 1 The specific processes and process counts you set will depend on your organisational environment and needs. Some processes are added automatically when you add another process. For more information, see [Configure Nodes](https://help.tableau.com/current/server-linux/en-gb/config_nodes.htm) and [Tableau Server Processes](https://help.tableau.com/current/server-linux/en-gb/processes.htm). 4. Apply the node configuration. If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). `tsm pending-changes apply` A warning about deploying a Coordination Service ensemble displays if you have deployed a three- or five-node cluster. If this is the only warning, you can safely override it using the `--ignore-warnings` option to apply the configuration changes in spite of the warning. ``` tsm pending-changes apply --ignore-warnings ``` ## Install drivers You need to install drivers so that Tableau Server can connect to data and run extracts. Install these drivers on nodes that are running any of the following processes: - VizQL Server (vizqlserver) - Application Server (vizportal) - Data Server (dataserver) - Backgrounder (backgrounder) ### Drivers and administrative views If you want to use the built-in administrative views in Tableau Server, you also need to install the PostgreSQL driver on any nodes running any of the above processes. For more information, see [Database Drivers](https://help.tableau.com/current/server-linux/en-gb/dbdriver.htm). [Skip to main content](#main-content) # Install and Configure Tableau Server The topics referenced at the bottom of this page describe the steps to install and configure Tableau Server. If you are installing a distributed deployment (cluster), use the steps in this topic to install the initial node, then, to install additional nodes, see [Distributed and High Availability Tableau Server Installations](https://help.tableau.com/current/server-linux/en-gb/distrib_ha.htm). After you run the installation, you must then continue setup by activating a licence, registering Tableau Server, and configuring various settings including authentication. ## Other installation methods There are a few alternative methods that you can use to install Tableau Server. - If you want a quick start procedure to install Tableau Server in a non-production environment, see [Jump-start Installation](https://help.tableau.com/current/server-linux/en-gb/jumpstart.htm). - For an end-to-end procedure that describes how to deploy an enterprise-ready, four-node, reference architecture in a tiered data centre, see [Tableau Server Enterprise Deployment Guide](https://help.tableau.com/current/guides/enterprise-deployment/en-gb/edg_intro.htm). - If you are installing Tableau Server in an environment without a connection to the internet, see [Install Tableau Server in a Disconnected (Air-Gapped) Environment](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm). - You can also install Tableau Server onto various cloud platforms. See [Self-Host Tableau Server in a Public Cloud Service](https://help.tableau.com/current/server-linux/en-gb/ts_tableau_server_cloud_overview.htm). ## Validating your server deployment plan Before you commit to installing a new Tableau Server deployment in your organisation, be sure to carefully evaluate your options. For most organisations, Tableau Cloud will provide a more reliable, performant and cost-effective analytics solution when compared to self-hosting Tableau Server. For information about the viability of Tableau Cloud for your organisation, review this blog post, [Should I move my analytics to the cloud?](https://www.tableau.com/en-gb/blog/should-i-move-my-analytics-cloud) Already running Tableau Server and want to migrate to Tableau Cloud? See [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). ## Before you begin To install Tableau Server you must have a computer that satisfies the hardware requirements. You will get an informational message if your computer meets the minimum requirements but does not satisfy the recommended minimum requirements. In this case, your computer hardware can handle a trial installation of Tableau but is not adequate for a production environment. For more information, see [Before you install...](https://help.tableau.com/current/server-linux/en-gb/requ.htm). ## Installation steps The following steps describe how to install Tableau Server on a single computer. Use the steps to install Tableau Server in a single server deployment. Use the steps to install the initial node in a multi-node Tableau Server deployment. Run the steps sequentially. 1. [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm) 2. [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm) 3. [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm) 4. [Add an Administrator Account](https://help.tableau.com/current/server-linux/en-gb/startup.htm) 5. [Validate Installation](https://help.tableau.com/current/server-linux/en-gb/validate_install_linux.htm) ## Other articles in this section [Skip to main content](#main-content) # Install and Initialise TSM This topic guides you through the process of installing Tableau Server and initialising Tableau Services Manager (TSM). **Important:** Do not install a beta version of Tableau Server in your production environment. You should also never restore a production Tableau Server installation using a backup of a beta version. ## Prerequisites Before proceeding, review the topic, [Before you install...](https://help.tableau.com/current/server-linux/en-gb/requ.htm). ### Review optional initialisation parameters Before you install and initialise TSM, it is critical that you review the parameters that you may optionally set as part of the initialisation operation. You can only run `initialize-tsm` once, so be sure to run it with all of the options that your organisation needs. Some options, such as non-default system user and group can only be configured as part of the initialisation operation. Other configurations, such as forward proxy and dynamic port settings can be manually set after you run initialisation, but doing this is a much more labour-intensive process. For a complete list of optional parameters, see [Help Output for initialise-tsm Script](https://help.tableau.com/current/server-linux/en-gb/initialize_tsm-h.htm). Some common scenarios where optional initialisation parameters are used : - Configuring Tableau Server to work with a forward proxy server. See [Optional: common initalise-tsm parameters](#optional_parameters), later in this topic, to configure Tableau Server during installation. You can also configure Tableau Server after you install, see [Configuring Tableau Server on Linux to work with a forward proxy](https://help.tableau.com/current/server-linux/en-gb/proxy.htm#Configur3) - Specifying dynamic port mapping. By default, most ports needed by Tableau Server are assigned (mapped) dynamically from a predefined range of ports. The port assignments are made for each service or process during installation. If you want to modify port mapping, we recommend configuring this during installation, see [Controlling port remapping with initialise-tsm](https://help.tableau.com/current/server-linux/en-gb/ports.htm#PortsAtInitializeTSM). - Specifying non-default system user or group This configuration change can only be performed during initialisation. See [System user and groups](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm#System). - Specifying a non-default data directory. This configuration change can only be performed during initialisation. See [Data directory](https://help.tableau.com/current/server-linux/en-gb/requ.htm#Data). - Configuring Tableau Server to run in FIPS mode. See [Optional: common initalise-tsm parameters](#optional_parameters), later in this topic, to configure Tableau Server during installation. You can only configure Tableau Server to run in FIPS mode on initialisation. See [FIPS Compliance in Tableau Server on Linux](https://help.tableau.com/current/server-linux/en-gb/fips-compliance_tsm.htm#Configur3). As a security best practice, do not expose the TSM port (by default, `8850`) to the internet. ## Install Tableau Server Install Tableau Server with your distribution’s package manager, then run a script to initialise TSM. The script is included with the installed package. **Important**: The hostname of the server must not change after you start TSM. For example, this might happen if you use the cloud-init package to initialise a virtual machine, and you install Tableau Server on that virtual machine. ### Install the Tableau Server package By default, Tableau Server is installed in the `/opt` directory. On RHEL-like distributions you can specify a different install location. 1. Log on as a user with `sudo` access to the computer where you want to install Tableau Server. **Note:** To avoid possible complications, we recommend a user account that does not include any special characters (for example, non-ASCII, "+", "-"). These may cause problems, including a failure to fully install Tableau Server, depending on how your environment is configured. 2. Download the `.rpm` or `.deb` installer package from the [Tableau Server Downloads and Release Notes](https://www.tableau.com/en-gb/support/releases/server/) page. 3. Navigate to the directory where you copied the `.rpm` or `.deb` package. 4. Use the package manager to install the Tableau Server package. You must install the new version to the same location as the existing version. The install location must be the same on all nodes. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, you have the option to install Tableau to a non-default location. - **Default location**—To install to the default location (`/opt/tableau/tableau_server`), run the following commands, where `` is formatted as major-minor-maintenance (ex: `2025-3-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - **Non-default location** – To install to a non-default location, you must use `rpm -i`. You will also need to install all dependent packages. See the note below. Run the following command: sudo rpm -i --prefix /preferred/install/path tableau-server.rpm **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If you want to install to a non-default location, or your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. For information about installing dependent packages, see [Installing Tableau Server on an Air-Gapped Computer Running Linux](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm#InstallAirgap). - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb ### Initialise TSM You can specify a separate location for data (extracts and extract metadata) storage, whether or not you install Tableau to the default location. 1. Navigate to the `scripts` directory: cd /opt/tableau/tableau\_server/packages/scripts./ 2. Run the following script to start TSM: `sudo ./initialize-tsm --accepteula --activation-service --` The only required parameter for the `initialize-tsm` script is `--accepteula`. You must include this parameter to accept the Tableau Server End User Licence Agreement (EULA). The EULA is available in the following location: `/opt/tableau/tableau_server/packages/docs./Commercial_EULA.txt` However, review the following common parameters before running the script. Optional: common initalise-tsm parameters There are a number of parameters (also referred to as, _flags_) that you can set when you run `initialize-tsm`. Common flags are listed below. For a complete list, run the command, `sudo ./initialize-tsm -h`, or see [Help Output for initialise-tsm Script](https://help.tableau.com/current/server-linux/en-gb/initialize_tsm-h.htm). - Use the `--activation-service` option to activate Tableau Server using the Tableau authorisation-to-run (ATR) service. As of Tableau Server 2021.4 and later, this option is the default for Tableau Server on Microsoft Windows, Tableau Server on Linux and Tableau Server in containers. Server ATR is for new installations only, not upgrades. This option is ideal for cloud-based or virtual environments, but is available to anyone who can activate their copy of Tableau Server online. Selecting ATR for product activation is a permanent choice that cannot be undone later. For more information, see [Activate Tableau Server using the authorisation-to-run (ATR) service](https://help.tableau.com/current/server-linux/en-gb/atr_service.htm). If you don't want to use Server ATR to activate Tableau Server, use the `--no-activation-service` option. - The `-a` flag to specify a user to be added to the tsmadmin and tableau groups instead of the user running this script. If you are installing with the root account, then you must specify the `-a` flag. - The `--unprivileged-user` flag to set a different service account. By default a new user called `tableau` will be created. This account is an unprivileged service account under which most Tableau process run. We recommend creating a different user only in the case where a `tableau` user account already exists on the computer. - The `-d` flag to specify a non-default location of the "data directory" where Tableau Server stores extracts information about extracts, and more. By default, Tableau Server uses the following location for the directory: `/var/opt/tableau/tableau_server` When you set this flag, the `intialize-tsm` script will create and apply permissions to the directory that you specify. There are important restrictions that apply to changing the default directory path. See [Data directory](https://help.tableau.com/current/server-linux/en-gb/requ.htm#Data). - We recommend configuring Tableau Server for a forward proxy solution during installation. To do so, include the `--http_proxy` and/or `--https_proxy` flags to specify the forward proxy server. Specify the URL with the port, for example: `--http_proxy=http://proxy.exampe.lan:80/` `--https_proxy=http://1.2.3.4:443/` Take care to use `http` when you specify the URL for the `https_proxy` environmental variable. Do not specify the `https` protocol for the value of the `https_proxy` environmental variable. To configure Tableau Server to bypass the forward proxy, include the `--no_proxy` flag. You should also add exceptions to this proxy configuration to guarantee that all communications within a local Tableau Server cluster (if you have one now or will have one later) do not route to the proxy server. For example: `--no_proxy=localhost,127.0.0.1,localaddress,.localdomain.com`. - If you want to manually manage port assignment for TSM and Tableau Server processes, you may need to use one or more port-related switches with `initialize-tsm`. For more information, see [Controlling port remapping with initialise-tsm](https://help.tableau.com/current/server-linux/en-gb/ports.htm#PortsAtInitializeTSM). - The `--enable-fips` flag initialises Tableau Server in FIPS (Federal Information Processing Standard) mode. Once in FIPS mode, the server cannot be switched to non-FIPS mode. This selection must be made at install time and cannot be changed after install. In a multinode configuration, all nodes must all be FIPS enabled or not. Mixed environments are not supported. For more information, see [FIPS Compliance in Tableau Server on Linux](https://help.tableau.com/current/server-linux/en-gb/fips-compliance_tsm.htm). To migrate a non-FIPS Tableau Server to a FIPS-enabled Tableau Server follow the instructions on this page: **Note:** This option was added with version 2025.3.1. - The `--debug` flag for troubleshooting. This option displays each command in the script as it is run and can make it easier to troubleshoot issues. Use of this option results in extensive output to the screen. **Note:** Beginning in version 2021.3, this option has been removed and the script output that would have been displayed is logged to `/var/tmp/`. 3. Log off and log on again to the terminal before you configure Tableau Server. When you log on again, you create a new session in which group membership changes have taken effect. The new session also has access to the environment variables added by the `initialize-tsm` script. ## Next step - [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm) [Skip to main content](#main-content) # Install Switches and Properties for tabcmd (Windows) **Note:** The tabcmd command-line utility version 2.0 is available at [Tableau tabcmd](https://tableau.github.io/tabcmd). This new version allows you to run tabcmd commands on MacOS and Linux, and to authenticate using personal access tokens (PATs). Version 2.0 is built on public endpoints available in the Python-based Tableau Server Client (TSC). This latest version has limited support for Tableau Server. You can use the following switches when installing the Tableau Server Command Line Utility (tabcmd) version 2019.4.0 or later from the command line on Windows. **Note:** There are no equivalent switches for the Linux version of the tabcmd installer.
SwitchDescriptionComments
/install | /repair | /uninstall | /layout "<directory>"

Run Setup to either install, repair or uninstall tabcmd, or with /layout, create a complete local copy of the installation bundle in the directory specified.

Default is to install, displaying UI and all prompts. If no directory is specified on a fresh install, C:\Program Files\Tableau\Tableau Server\<version>\extras\Command Line Utility is assumed.
/passive

Run Setup with minimal UI and no prompts.

 
/quiet | /silent

Run Setup in unattended, fully silent mode. No UI or prompts are displayed.

Note: Use either /silent or /quiet, not both.

/norestart

Run Setup without restarting Windows, even if a restart is necessary.

Note: In certain rare cases, a restart cannot be suppressed, even when this option is used. This is most likely when an earlier system restart was skipped, for example, during installation of other software.

/log "<log-file>"

Log information to the specified file and path.

By default log files are created in the user's %TEMP% folder with a naming convention of Tableau_Server_Command_Line_utility_<version_code>.log.

If no file location is specified, the log file is written to the user's TEMP folder (C:\Users\<username>\AppData\Local\Temp). Check this log file for errors after installation.

Example: <Setup file> /silent /log "C:\Tableau\Logs\tabcmd-Install" ACCEPTEULA=1

PropertiesDescriptionComments
ACCEPTEULA=1|0Accept the End User Licence Agreement (EULA). Required for quiet, silent and passive install. 1 = accept the EULA, 0 = do not accept the EULA.

If not included when using /passive, /silent or /quiet, Setup fails silently.

If included but set to 0, Setup fails.

INSTALLDIR="<path\to\installation\directory>"Install tabcmd to the specified non-default install location.

Specifies the location to install tabcmd. If not used, tabcmd is installed to C:\Program Files\Tableau\Tableau Server\<version_code>\extras\Command Line Utility

Example: <Setup file> /silent INSTALLDIR="C:\tabcmd"

[Skip to main content](#main-content) # Install Tableau Content Migration Tool Installing Tableau Content Migration Tool is straightforward and easy. ## Installation requirements The Content Migration Tool tool is run from a Windows computer and can connect to Tableau Cloud sites and Tableau Server 19.3 and later with a valid Advanced Management licence. For more information about compatible versions, see [Getting Started with Tableau Content Migration Tool](https://help.tableau.com/current/server-linux/en-gb/cmt-getting-started.htm). The computer that you install Content Migration Tool on must meet the requirements below: - Microsoft Windows 10 or newer (x64) - Intel Core i3 or AMD Ryzen 3 (Dual Core) - 4 GB memory or larger - Can connect to the source and destination sites. Both sites must have a valid [Advanced Management](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm) licence to migrate content. - 2 GB HDD or larger. The drive where the `\temp` folder resides must have enough disk space to hold a copy of all content being migrated in a single migration. All content is stored locally on the disk and deleted when the migration is complete. - Have enough free disk space to hold the application and its logs. In addition, confirm that the REST API is enabled on Tableau Server (this is the default). Use the `tsm configuration get -k api.server.enabled` command to confirm this. A return value of `true` means the REST API is enabled. To enable the REST API, use the `tsm configuration set` command. For more information, see [api.server.enabled](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#rest_api_enabled). ## Install Content Migration Tool To install the Content Migration Tool: 1. Download the Content Migration Tool installer (`Tabcmt-64bit-.exe`) for your version of Tableau Server from the [Tableau Advanced Management](https://www.tableau.com/en-gb/support/releases/server-management) downloads page. 2. Run the Content Migration Tool Setup program. **Note:** Running the Content Migration Tool Setup program overwrites the previous version. 3. After reading the EULA, select I agree to the license terms and conditions and click Install. 4. If the User Account Control dialog opens, click Yes to allow the installer to make changes. ## Upgrade Content Migration Tool Upgrading to the latest version of Content Migration Tool ensures that you can take advantage of the latest features and fixes included with each new version. **Important:** - Running the Content Migration Tool Setup program overwrites the previous version. - Content Migration Tool doesn’t support side-by-side installation of previous versions. To upgrade Content Migration Tool: 1. Log on to the machine where Content Migration Tool is installed. If there are instances of Content Migration Tool open, save your migration plan and exit the application. 2. Follow the steps listed in [Install Content Migration Tool](#install-cmt) to download the latest installer and complete the upgrade. ## Install Content Migration Tool from the command line You can install Content Migration Tool from the command line if you're a local administrator on the machine. ### Install switches Specify one or more switches in the command line for the installer. For example: `Tabcmt-64bit-2022-3-0.exe /quiet /norestart`
SwitchDescriptionComments
/install | /repair | /uninstall | /layout "<directory>"

Run Setup to either install, repair or uninstall Content Migration Tool, or with /layout, create a complete local copy of the installation bundle in the directory specified.

Default is to install, displaying UI and all prompts. If no directory is specified on a fresh install, C:\Program Files\Tableau\Tableau Content Migration Tool is assumed. If Content Migration Tool is already installed, Setup assumes the same location as the current installation.
/passive

Run Setup with minimal UI and no prompts.

Content Migration Tool doesn’t start automatically when installed in /passive mode. To start Content Migration Tool, open the application manually.
/quiet | /silent

Run Setup in unattended, fully silent mode. No UI or prompts are displayed.

Content Migration Tool doesn’t start automatically when installed in /silent or /quiet mode. To start Content Migration Tool, open the application manually.

Note: Use either /silent or /quiet, not both.

/norestart

Run Setup without restarting Windows, even if a restart is necessary.

Note: In certain rare cases, a restart cannot be suppressed, even when this option is used. This is most likely when an earlier system restart was skipped, for example, during installation of other software.

## Who can do this A user with Administrator access on the machine. [Skip to main content](#main-content) # Install Tableau Server in a Disconnected (Air-Gapped) Environment You can install Tableau Server in a disconnected environment that has no outside network access of any kind. Such disconnected environments, commonly referred to as air-gapped, are used when high security is needed to prevent data breaches or to guard against hacking. Air-gapped environments have no internet access, no outside network access, no outside wireless access, etc. The only means of getting software and data into or out of an air-gapped environment is by using removable media such as USB sticks or writable optical CDs or DVDs. Installing Tableau Server in an air-gapped environment is an advanced task for IT administrators who are familiar with the security considerations, best practices, and pitfalls of installing software in air-gapped environments. The following Tableau Server features will be unavailable or will have reduced functionality in an air-gapped environment: - **Maps** – Tableau Server uses externally hosted map data by default. Beginning with version 2020.4.0, you can configure Tableau Server to use offline maps. With earlier versions of Tableau, maps are unavailable in an air-gapped environment unless you also install a map server in your air-gapped environment. For more details, see [Displaying Maps in an Air-Gapped Environment](#Maps). - **Licensing** – Tableau Server needs to connect to the internet in order to activate product keys. However, you can [manually activate](#Activati) the product keys. - **External data** – Any data located outside your air-gapped environment is unavailable. ## Prerequisites In order to install Tableau Server in an air-gapped environment, you’ll need the following: - A trusted computer with limited access to the internet that you can use to download the installation packages and resources required by Tableau Server. A trusted computer has been scanned and cleared of any viruses and malware. - Trusted removable media that you can use to transfer the downloaded software to your air-gapped environment. Trusted removable media is removable media that is new and previously unused and comes from a reputable or known source. Trusted removable media has been scanned to verify that it does not contain any viruses or malware. - Air-gapped environment with computers and storage that meet the [requirements](https://help.tableau.com/current/server-linux/en-gb/server_hardware_min.htm) for installing Tableau Server. ## Installing Tableau Server on an Air-Gapped Computer Running Linux The easiest way to install Tableau Server on a computer in an air-gapped environment is to do so before the computer is placed into the air-gapped environment. If that’s not possible, you’ll need to download the required packages to a trusted computer outside the air gap: 1. On a trusted computer outside the air gap with internet access, download the Tableau Server installation package. 2. Extract the list of dependent packages: **On Ubuntu:** `dpkg --field Depends` (where `` is the name of the .deb package you downloaded from Tableau). **Example command:** `dpkg --field tableau-server-linux-1.deb Depends` Example output: `ca-certificates, fontconfig, net-tools, bash-completion, ca-certificates-java, freeglut3, libegl1-mesa, libfreetype6, libgssapi-krb5-2, libxcomposite1, libxrender1, libxslt1.1, lsb-core` **On RHEL and RHEL-like Linux distributions:** `yum -q deplist ` (where `` is the .rpm package you downloaded from Tableau). **Example command:** `yum -q deplist tableau-server-linux_1.rpm` Example output: package: tableau-server-10400.17.0703.1600.x86\_64 10400-17.0703.1600 dependency: /bin/sh provider: bash.x86\_64 4.2.46-21.el7\_3 dependency: bash-completion provider: bash-completion.noarch 1:2.1-6.el7 dependency: ca-certificates provider: ca-certificates.noarch 2017.2.14-70.1.el7\_3 dependency: fontconfig provider: fontconfig.x86\_64 2.10.95-10.el7 provider: fontconfig.i686 2.10.95-10.el7 dependency: freeglut provider: freeglut.x86\_64 2.8.1-3.el7 provider: freeglut.i686 2.8.1-3.el7 dependency: freetype provider: freetype.x86\_64 2.4.11-12.el7 provider: freetype.i686 2.4.11-12.el7 dependency: krb5-libs provider: krb5-libs.x86\_64 1.14.1-27.el7\_3 provider: krb5-libs.i686 1.14.1-27.el7\_3 dependency: libXcomposite provider: libXcomposite.x86\_64 0.4.4-4.1.el7 provider: libXcomposite.i686 0.4.4-4.1.el7 dependency: libXrender provider: libXrender.x86\_64 0.9.8-2.1.el7 provider: libXrender.i686 0.9.8-2.1.el7 dependency: libxslt provider: libxslt.x86\_64 1.1.28-5.el7 provider: libxslt.i686 1.1.28-5.el7 dependency: mesa-libEGL provider: mesa-libEGL.x86\_64 11.2.2-2.20160614.el7 provider: mesa-libEGL.i686 11.2.2-2.20160614.el7 dependency: net-tools provider: net-tools.x86\_64 2.0-0.17.20131004git.el7 dependency: redhat-lsb-core provider: redhat-lsb-core.x86\_64 4.1-27.el7.centos.1 provider: redhat-lsb-core.i686 4.1-27.el7.centos.1 3. Download each of the dependent packages: **On Ubuntu:** `apt-get download …` **On RHEL and RHEL-like Linux distributions:** `yumdownloader …` 4. Transfer the packages to your removable media. 5. On your air-gapped computer, insert the removable media containing the Tableau Server installation package and dependent packages, and then [run the installer](https://help.tableau.com/current/server-linux/en-gb/setup.htm). 6. After installation is complete, you can activate the Tableau Server product keys. For more information, see [Activating Tableau Server in an Air-Gapped Environment](#Activati). ## Activating Tableau Server in an Air-Gapped Environment Because an air-gapped computer is not connected to the internet, you’ll need to perform the Tableau Server activation process manually. ## Offline activation overview Offline activation of Tableau Server depends on your method of activation (with or without the Authorisation-to-Run service, ATR). **Note**: When using ATR and activating a USL licence for Tableau Server, you can use either the Product **Key Name** or the **Offline Activation ID**. We recommend using the Key Name because you do not need to determine the Offline Activation ID. Offline activation _without_ ATR involves the following steps: 1. Generate an offline activation request file. 2. Copy the offline activation request file to a computer with internet access. 3. Upload the offline activation request file to the [Tableau activation website](https://www.tableau.com/en-gb/support/activation). 4. Download the resulting offline activation response file from the website. You'll use this file to activate Tableau Server ### Offline activation file name changes Beginning in Tableau Server version 2023.1, the Tableau licensing system supports two underlying licensing technologies. From an administrative perspective, the only configuration difference between the two systems is the file types that are generated and consumed for offline activation. The licensing technology is determined during the initial installation of Tableau Server and cannot be changed after installation. We refer to the legacy (and still supported) version of licensing technology as FlexNet. The latest version of the technology is referred to as ATR. For more information, see [Activate Tableau Server Using the Authorisation-To-Run (ATR) Service](https://help.tableau.com/current/server-linux/en-gb/atr_service.htm). The following table describes the file naming nomenclature for each technology. The table also includes the generic reference.
Generic file nameServer ATR file namesFlexNet file names
OfflineActivationRequestOfflineActivationRequestFile_yyyyMMdd.hhmmss.jsonTableauOfflineActivationRequest.tlq
OfflineActivationResponseOfflineActivationLicensingAtrs.zipactivation.tlf
**Note:** Since this documentation supports multiple versions of Tableau Server, we will use the generic file name references (OfflineActivationRequest and OfflineActivationResponse) for the rest of this topic. You can identify the licensing technology your Tableau Server installation uses according to the file type generated in the steps that follow. ### Step 1. Log in to Tableau Services Manager - To log in to Tableau Services Manager (TSM), run the following command: `[tsm login](https://help.tableau.com/current/server-linux/en-gb/cli_login.htm) -u ` **What if I can't log in?** The account that you use to configure the rest of the installation must be a member of the `tsmadmin` group that was created during initialisation. To view the user accounts in the `tsmadmin` group, run the following command: `grep tsmadmin /etc/group` If the user account is not in the group, run the following command to add the user to the `tsmadmin` group: `sudo usermod -G tsmadmin -a ` After you have added the user to the `tsmadmin` group, run the `tsm login` command. ### Step 2. Determine your Tableau Server licensing type How you activate Tableau Server will be different depending on which licensing type you are running. Run the following command to determine the licensing type your Tableau Server deployment is configured with: `tsm configuration get -k serverauthorizationtorun.enabled` If this command returns `true`, then your deployment is configured with Server ATR licensing type. If this command returns `false`, then your deployment is configured with legacy licensing type. Go to the step 3 that matches your licensing type. ### Step 3 (Server ATR licensing type) Generate and copy json content to Activation page. Follow these steps if your Tableau Server deployment is configured with Server ATR licensing type. If your server is configured with the legacy licensing type, skip to the following section. 1. On your Tableau Server in the air-gapped environment, use TSM to obtain the offline activation file. At a command prompt: `tsm licenses get-offline-activation-file -k -o ` The `` must exist. You can obtain your product key in the [Tableau Customer Portal](http://customer.tableau.com). 2. Copy the JSON file contents. 3. From the internet connected computer, navigate to the [Tableau Offline Activation](https://www.tableau.com/en-gb/support/activation) website, select Option B - Manually Enter Information from Activation File, copy the JSON contents into the requested fields and then click Submit. 4. The website should say `The activation was successful. Please click here to download your activation file.` Download the OfflineActivationResponse file from Tableau, and proceed to step 4. ### Step 3 (Legacy licensing type) Transcribe data from your air-gapped system into an activation request template. Follow these steps if your Tableau Server deployment is configured with the legacy licensing type. If your server is configured with the Server ATR licensing type, run the above procedure. 1. On your Tableau Server in the air-gapped environment, use TSM to obtain the offline activation file. At a command prompt: `tsm licenses get-offline-activation-file -k -o ` The `` must exist. You can obtain your product key in the [Tableau Customer Portal](http://customer.tableau.com). 2. If you can copy the offline request file (OfflineActivationRequest) from the target directory to a computer that has Internet access, skip to step 5. Otherwise, if you cannot copy the file to another computer due to security reasons, continue with step 3. 3. Download and open the [`server_linux.tlq`](https://help.tableau.com/offline/en-gb/server_linux.tlq) file in an XML text editor such as Notepad++ on a trusted computer that has Internet access. You'll need to write down the values listed in step 4 from the air-gapped computer in order to copy them to the offline template (`server_linux.tlq`). 4. Update the following XML elements in the appropriate `server_linux.tlq` file with the values for the same elements listed below from the air-gapped computer. All the Machine / Hash values in the .tlq files are Hex values. The only valid characters are 0 - 9 and A - F. Use all caps for any letters. Do not add any additional spaces or carriage controls and only modify the “X” characters found in the template. The format of the file must not change. Line 2 - Line 5 - Line 5 - (This value is present in the server\_linux.tlq file.) Line 5 - (This value is present in the server\_linux.tlq file.) Line 11 - (If the value is not present, remove the "X" place holder, leaving .) Line 12 - (If the value is not present, remove the "X" place holder, leaving .) Line 13 - (If the value is not present, remove the "X" place holder, leaving .) Line 15 - Line 61 - 5. Upload the offline request file (OfflineActivationRequest) or edited template file (server\_linux.tlq) to the [Tableau Offline Activation](https://www.tableau.com/en-gb/support/activation) website. 6. The website should say `The activation was successful. Please click here to download your activation file.` Download the OfflineActivationResponse file and transfer it to your Tableau Server. Proceed to step 4. ### Step 4. Initialise or activate your licence 1. Move the OfflineActivationResponse file to your air-gapped computer using trusted removable media. 2. Run the following command: `tsm licenses activate --license-file ` You should see the message "`Activation successful.`", which indicates that Tableau Server is activated. ## Displaying Maps in an Air-Gapped Environment In an air-gapped environment, maps in Tableau Server will be unavailable by default due to the lack of internet access. Instead, you can configure Tableau to use local maps in an air-gapped environment using the steps below. ### Configuring Tableau Server to use offline maps: 1. Open a command prompt as administrator. 2. Configure Tableau to use locally available offline maps: tsm configuration set -k [vizqlserver.force\_maps\_to\_offline](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#vizqlserver_offlinemaps) -v true tsm pending-changes apply [Skip to main content](#main-content) # Install Tableau Server on a Two-Node Cluster When you install Tableau Server on a two-node cluster, you can install server processes on one or both nodes. A two-node cluster can improve the performance of Tableau Server, because the work is spread across multiple machines. Note the following about two-node clusters: - A two-node cluster does not provide failover or support for high availability. - You can't install more than one instance of the repository on a two-node cluster, and the repository must be on the initial node. If you need failover or high availability, or want a second instance of the repository, you must install Tableau Server on a cluster of at least three computers. In a cluster that includes at least three nodes, you can configure two instances of the repository, which gives your cluster failover capability. [Skip to main content](#main-content) # Install Tableau Server on Amazon Web Services ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction When you install Tableau Server on an Amazon Web Services (AWS) virtual machine (VM), you still have the advanced capabilities of Tableau Server in a local environment. Running Tableau Server on an AWS VM is an excellent choice if you want the flexibility of scaling up and scaling out without having to purchase and maintain an expensive fleet of servers. For instance, you can configure Tableau Server to be highly available, and integrate with all the common enterprise applications (for example, Active Directory) that many organisations rely on. Looking for Tableau Server on Windows? See [Install Tableau Server on Amazon Web Services](https://help.tableau.com/current/server/en-gb/ts_aws_welcome.htm "Opens topic in a new browser tab"). Tableau Server can take advantage of many native AWS services: - [Amazon CloudWatch](https://aws.amazon.com/cloudwatch): Monitors the components of your AWS-based soluton. - [Amazon Route53](https://aws.amazon.com/route53): DNS web service for connecting user requests to your AWS infrastructure. - [AWS Certificate Manager](https://aws.amazon.com/certificate-manager): Helps you deploy SSL and TLS certificates for use with AWS. - [AWS CloudFormation](https://aws.amazon.com/cloudformation): Helps you to create and manage related AWS resources in a controlled manner using pre-defined templates. - [Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing): You can use Elastic Load Balancing to spread Tableau requests across multiple Tableau gateways. In addition, you can store the data you use with Tableau Server using any of the following AWS features. Tableau provides native data [connectors](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#exampleconnections_overview.htm) that enable you to connect to data in the following AWS data sources: - [Amazon Athena](https://help.tableau.com/current/pro/desktop/en-gb/examples_amazonathena.htm): Interactive query service that you can use to analyse data in Amazon S3 using SQL. - [Amazon Aurora for MySQL](https://help.tableau.com/current/pro/desktop/en-gb/examples_amazonaurora.htm): High-performance MySQL-compatible database. - [Amazon EMR Hadoop Hive](https://help.tableau.com/current/pro/desktop/en-gb/examples_amazonemr.htm): Managed Hadoop framework for processing large amounts of data. - [Amazon Redshift](https://help.tableau.com/current/pro/desktop/en-gb/examples_amazonredshift.htm): Data warehousing solution for storing and mining large amounts of data. - Amazon Relational Database Service (Amazon RDS): Relational database solution supports [Amazon Aurora for MySQL](https://help.tableau.com/current/pro/desktop/en-gb/examples_amazonaurora.htm), [PostgreSQL](https://help.tableau.com/current/pro/desktop/en-gb/examples_postgresql.htm), [MySQL](https://help.tableau.com/current/pro/desktop/en-gb/examples_mysql.htm), [MariaDB](https://help.tableau.com/current/pro/desktop/en-gb/examples_mariadb.htm), [Oracle](https://help.tableau.com/current/pro/desktop/en-gb/examples_oracle.htm) and [Microsoft SQL Server](https://help.tableau.com/current/pro/desktop/en-gb/examples_sqlserver.htm). - Amazon Simple Storage Service (Amazon S3): Cloud-based storage solution. ## Other articles in this section [Skip to main content](#main-content) # Install Tableau Server on Microsoft Azure ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction When you install Tableau Server on a Microsoft Azure virtual machine (VM), you still have the advanced capabilities of Tableau Server in a local environment. Running Tableau Server on a Microsoft Azure VM is an excellent choice if you want the flexibility of scaling up and scaling out without having to purchase and maintain an expensive fleet of servers. For instance, you can configure Tableau Server to be highly available, and integrate with all the common enterprise applications (for example, Active Directory) that many organisations rely on. Looking for Tableau Server on Windows? See [Install Tableau Server on Microsoft Azure](https://help.tableau.com/current/server/en-gb/ts_azure_welcome.htm "Opens topic in a new browser tab"). Tableau Server can take advantage of many native Azure features: - [Azure SQL Database](https://docs.microsoft.com/en-us/azure/sql-database/): Relational database-as-a-service that uses the Microsoft SQL Server Engine. - [Azure Synapse Analytics](https://docs.microsoft.com/en-gb/azure/sql-data-warehouse/): (formerly Azure SQL Data Warehouse) Massively parallel processing (MPP) cloud-based distributed database system. - [Apache Spark on Azure HDInsight](https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-apache-spark-overview): Open-source parallel processing framework for big-data analytic applications. - [Azure Active Directory](https://docs.microsoft.com/en-gb/azure/active-directory/): Cloud-based directory and identity management service. In addition, you can store the data you use with Tableau Server using any of the following Microsoft features. Tableau provides native data [connectors](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#exampleconnections_overview.htm) that enable you to connect to data in the following Microsoft data sources: - [Azure Synapse Analytics](https://help.tableau.com/current/pro/desktop/en-gb/examples_azure_sql_dw.htm): Cloud data warehouse for enterprises. - [Microsoft Excel](https://help.tableau.com/current/pro/desktop/en-gb/examples_excel.htm): Spreadsheet included in Microsoft Office. - [Microsoft SQL Server](https://help.tableau.com/current/pro/desktop/en-gb/examples_sqlserver.htm): Relational database management system that uses structured query language (SQL). ## Other articles in this section [Skip to main content](#main-content) # Install Tableau Server on the Alibaba Cloud ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction When you install Tableau Server on an Alibaba Cloud Elastic Compute Service (ECS) instance, you still have the advanced capabilities of Tableau Server in a local environment. Running Tableau Server on an ECS instance is an excellent choice if you want the flexibility of scaling up and scaling out without having to purchase and maintain an expensive fleet of servers. For instance, you can configure Tableau Server to be highly available, and integrate with all the common enterprise applications (for example, Active Directory) that many organisations rely on. Looking for Tableau Server on Windows? See [Install Tableau Server on the Alibaba Cloud](https://help.tableau.com/current/server/en-gb/ts_alibaba_welcome.htm "Opens topic in a new browser tab"). You can store the data you use with Tableau Server in the following Alibaba databases: - [Apsara DB RDS for Microsoft SQL Server](https://www.alibabacloud.com/product/apsaradb-for-rds-sql-server): An on-demand database hosting service for Microsoft SQL Server. - [Apsara DB RDS for MySQL](https://www.alibabacloud.com/product/apsaradb-for-rds-mysql): An on-demand database hosting service for MySQL. - [Apsara DB RDS for PostgreSQL](https://www.alibabacloud.com/product/apsaradb-for-rds-postgresql): An on-demand database hosting service for PostgreSQL. You can use the following native data [connectors](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#exampleconnections_overview.htm) to connect to your data in the Alibaba Cloud: - [Microsoft SQL Server](https://help.tableau.com/current/pro/desktop/en-gb/examples_sqlserver.htm): Connect to a Microsoft SQL Server database. - [MySQL](https://help.tableau.com/current/pro/desktop/en-gb/examples_mysql.htm): Conntect to a MySQL database. - [PostgreSQL](https://help.tableau.com/current/pro/desktop/en-gb/examples_postgresql.htm): Connect to a PostgreSQL database. - [Other Databases (JDBC)](https://help.tableau.com/current/pro/desktop/en-gb/examples_otherdatabases_jdbc.htm): Conntect to a database using the Java Database Connectivity (JDBC) standard. - [Other Databases (ODBC)](https://help.tableau.com/current/pro/desktop/en-gb/examples_otherdatabases.htm): Connect to a database using the Open Database Connectivity (ODBC) standard. ## Other articles in this section [Skip to main content](#main-content) # Install Tableau Server on the Google Cloud Platform ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction When you install Tableau Server on a Google Compute Engine (GCE) virtual machine (VM), you still have the advanced capabilities of Tableau Server in a local environment. Running Tableau Server on a GCE VM is an excellent choice if you want the flexibility of scaling up and scaling out without having to purchase and maintain an expensive fleet of servers. For instance, you can configure Tableau Server to be highly available, and integrate with all the common enterprise applications (for example, Active Directory) that many organisations rely on. Looking for Tableau Server on Windows? See [Install Tableau Server on the Google Cloud Platform](https://help.tableau.com/current/server/en-gb/ts_gcp_welcome.htm "Opens topic in a new browser tab"). Tableau Server can take advantage of many native Google Cloud Services: - [Google Persistent Disk](https://cloud.google.com/persistent-disk/): Cloud-based block storage for virtual machines (VMs). - [Google Cloud Storage](https://cloud.google.com/storage/): Cloud-based unified object storage for data archiving. - [Google Cloud Dataflow](https://cloud.google.com/dataflow/): Cloud-based service for stream and batch data processing. - [Google Cloud Dataproc](https://cloud.google.com/dataproc/): Cloud-based service for running Spark and Hadoop clusters. In addition, you can store the data you use with Tableau Server using any of the following Google Cloud Services. Tableau provides native data [connectors](https://help.tableau.com/current/pro/desktop/en-gb/help.htm#exampleconnections_overview.htm) that enable you to connect to data in the following Google data sources: - [Google Analytics](https://help.tableau.com/current/pro/desktop/en-gb/examples_googleanalytics.htm): Web analytics tool for tracking and reporting website traffic. - [Google BigQuery](https://help.tableau.com/current/pro/desktop/en-gb/examples_googlebigquery.htm): Managed enterprise data warehouse for analytics. - [Google Cloud SQL](https://help.tableau.com/current/pro/desktop/en-gb/examples_googlecloudsql.htm): Managed SQL database service. - [Google Sheets](https://help.tableau.com/current/pro/desktop/en-gb/examples_googlesheets.htm): Spreadsheet included in Google Docs. ## Other articles in this section [Skip to main content](#main-content) # Install Tableau Server with External File Store This topic walks you through the process of configuring network share as your Tableau Server File Store for a new installation. If you are trying to do this on an existing installation of Tableau Server that has File Store running locally, see [Reconfigure File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_reconfigure.htm). ## Prerequisites - You must use Tableau Server 2020.1 or later. - You must have network share that you can use as your storage option. For recommendations on the storage solution, see [Performance Considerations for External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_performance.htm). Use **NFS** for Linux installations. Estimating the storage size: You must take into account the amount of storage needed for publishing and refreshing extracts. In addition, you must also take into account the repository backup size unless you specifically choose the option to do your repository backup separately as described in the [Option 2: Back up repository separately](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_backup_restore.htm#backup-repository-separately) topic. - Extracts: - Consider the number of extracts that will be published to Tableau Server and the size of each extract. Test your needs by publishing several extracts to Tableau Server and then checking the disk space used. You can use this amount of disk space to help you figure out how many extracts will be published to Tableau Server over time as well as how each existing extract will increase in size. - Consider the space needed by the temp directory during an extract refresh. The temp directory, which is where an extract is stored to during a refresh, may require up to three times the final file size of the extract. - Repository Backup: - To obtain an estimate of the repository data, check the size of `/pgsql/data/base` directory. - To obtain the exact size of the repository data, open the backup file and use the size of the `workgroup.pg_dump` file. - You must have Advanced Management capabilities enabled on your server. To learn more about Advanced Management, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). ## Install Tableau Server with External File Store You can install Tableau Server with File Store using a network share to store Tableau Server data. This solution replaces the need for running the File Store process locally. To learn more about this solution and its benefits, see [Tableau Server External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm). Use the following steps to install your Tableau Server with External File Store during install: ### Step 1: Configure a network share On your file server: 1. Create and share a directory to use as the Tableau Server External File Store. 2. Make sure the network share is accessible as a directory in the same location on all the Tableau Server nodes. 3. Create the tableau directory in your network share and give full access to **tableau user** and **tableau group**. The tableau user will need read and write permissions to the directory on the network share. We recommend calling the directory '**tableau**'. `/mnt//tableau/` 4. **Validate that the network share is configured properly**: From Tableau Server run a command to write to a network share and confirm that you are able to write to it. ### Step 2: Download and install TSM 1. Download the appropriate installer based on the distribution of Linux you are using. 2. Log on as a user with sudo access to the computer where you want to install Tableau Server. 3. Download the .rpm or .deb installer package. 4. Navigate to the directory where you copied the .rpm or .deb package. 5. Use the package manager to install the Tableau Server. - On **RHEL-like** distributions, including CentOS, you have the option to install Tableau Server to a non-default location. - Default location – To install to the default location (/opt/tableau/tableau\_server), run the following commands: `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - Non-default location – to install to a non-default location, you must use rpm -i. You will also need to install all dependent packages. See the note below. Run the following command: `sudo rpm -i--prefix/preferred/install/path tableau-server.rpm` **Note:** When you use yum to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau Server. If you want to install to a non-default location, or your organisation does not allow you to use yum and you must install using rpm -i, you must also install all dependent packages separately. For information about installing dependent packages, see Installing Tableau Server on an Air-Gapped Computer Running Linux. - On **Ubuntu and Debian**, run the following commands: `sudo apt-get update` `sudo apt-get -y install gdebi-core` `sudo gdebi -n tableau-server-_amd64.deb` ### Step 3: Initialise TSM 1. Run the following script to start TSM: `sudo ./initialize-tsm --accepteula --` The only required parameter for the initialize-tsm script is --accepteula. You must include this parameter to accept the Tableau Server End User Licence Agreement (EULA). The EULA is available in the following location: `/opt/tableau/tableau_server/packages/docs./Commercial_EULA.txt` 2. Log off and log on again to the terminal before you configure Tableau Server. When you log on again, you create a new session in which group membership changes have taken effect. The new session also has access to the environment variables added by the initialize-tsm script. Alternatively, you can run the following command to update your path for the current session (but not to update your group membership): `source /etc/profile.d/tableau_server.sh` ### Step 4: Activate and register Tableau Server Provide the Tableau Server Key and the Advanced Management key in the activate step. You will need to run the following command twice, first with the Tableau Server product key and then with the Advanced Management product key: `tsm licenses activate -k ` ### Step 5. Enable External File Store Configuring Tableau Server with external repository can only be done using TSM CLI. 1. Enable the network storage feature using the following tsm commands: `tsm topology external-services storage enable --network-share /mnt//tableau` The setup program automatically creates the following directory structure in the share: **PostgreSQL data backups:** _tableau\_data/tabsvc/repository\_backup_ **Note:** This directory will be created the first time you create a backup. **Extracts and workbook revisions:** _tableau\_data tabsvc/dataengine/extracts_ tableau\_data/tabsvc/dataengine/revisions ### Step 6: Configure the initial node settings Follow the instructions provided in the [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm) topic. ### Step 7: Complete the install You must create the initial administrative account for Tableau Server. - If you configured a local identity store during setup, then specify a name and password that you want to use. - If you configured a LDAP or Active Directory identity store during setup, then you must specify a user account that is a member of the directory. To create the initial user, run the following tabcmd command: `tabcmd initialuser --server localhost:80 --username ''` After you run the command, the shell will prompt for an administrative password. ### Step 8: Post-installation tasks After you have created the Tableau Server administrator account, continue your deployment by working through the configuration steps described in the [Post Installation Tasks](https://help.tableau.com/current/server-linux/en-gb/config_post_install.htm) topics. ## Who can do this Tableau Server Administrators can install and configure Tableau Server and External File Store. In addition, you must have permissions and access to configure the network share to use with Tableau Server. ## Next [Backup and Restore with External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_backup_restore.htm) [Skip to main content](#main-content) # Install Tableau Server with External PostgreSQL Repository This topic describes how to install and configure Tableau Server to use an external service for Tableau Server Repository. ## Before you install - You must have Advanced Management activated on your Tableau Server. For more information about Advanced Management, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). - Your Tableau Server environment must be one of the following: - Public Cloud Services: - AWS cloud services. For more information on Tableau Server installation on AWS, see [Install Tableau Server on Amazon Web Services](https://help.tableau.com/current/server-linux/en-gb/ts_aws_welcome.htm). - Azure cloud services. For more information on Tableau Server installation on Azure, see [Install Tableau Server on Microsoft Azure](https://help.tableau.com/current/server/en-gb/ts_azure_welcome.htm). - Google Cloud services. For more information on Tableau Server installation on Google Cloud, see [Install Tableau Server for Healthcare on the Google Cloud Platform](https://help.tableau.com/current/server/en-gb/ts_gcp_welcome.htm). - On-premises: This is Tableau Server running on the hardware located in your organisation or company and not on a public cloud. - You must have an instance of PostgreSQL database install and ready. You will also need the endpoint of your PostgreSQL DB instance. - Tableau Server on **AWS** - For a fully managed Server option, using Amazon RDS, follow the guidance detailed in [Create a PostgreSQL DB Instance on AWS Relational Database Service (RDS)](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_RDS.htm). - For a self-managed Server option: Use AWS EC2, and [Create a PostgreSQL Database as a Stand-Alone Installation](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_standalone.htm) - Tableau Server on **Azure**: - For a fully managed Server option using Azure DB, see [Create an Azure Database PostgreSQL Instance on Azure](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_Azure.htm). - For a self-managed Server option, use Azure VM, and [Create a PostgreSQL Database as a Stand-Alone Installation](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_standalone.htm). - Tableau Server on **Google Cloud**: - For a fully managed Server option using Google Cloud PostgreSQL instance, follow the guidance in [Create a PostgreSQL Instance on Google Cloud](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_gcp.htm) - For a self-managed Server option, use Google Cloud VM, and [Create a PostgreSQL Database as a Stand-Alone Installation](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_standalone.htm) - If you are installing this on-premises, see [Create a PostgreSQL Database as a Stand-Alone Installation](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_standalone.htm) - Download the SSL certificate: Secure connections between Tableau Server and the External Repository are **not** required, but recommended. If you want to set up SSL connections for communications between Tableau Server and the External Repository, do the following: - Amazon RDS: See [Using SSL to Encrypt the Connection to a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.SSL). - Azure Database for PostgreSQL: See [Configure TLS connectivity for Azure Database for PostgreSQL](https://docs.microsoft.com/en-gb/azure/postgresql/concepts-ssl-connection-security). - Google Cloud database: See [Configure SSL/TLS certificates](https://cloud.google.com/sql/docs/postgres/configure-ssl-instance#enforcing-ssl). - Stand-alone PostgreSQL database: The CA certificate that you used to configure SSL for the database should be copied to the Tableau Server initial node. For more information on configuring SSL for your PostgreSQL database, see [Configure SSL](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_standalone.htm#configure-ssl). ## Install and Configure Tableau Server ### Step 1: Create a configuration file Create a json file with the following configuration settings: { "flavor":"", "masterUsername":"", "masterPassword":"", "host":"", "port":5432 } - **flavour:** This is the type of external service you are going to use for Tableau Server repository. - Amazon RDS: use “rds” - Azure Database: use "azure" - Google Cloud Database: use "gcp" - Stand-alone PostgreSQL database: use "generic" - **masterUsername:** - Amazon RDS: Use "rails" for the username. This is the user that you specified when creating the RDS instance. > [!IMPORTANT] > > You must use "rails" as the masterUsername. This is required for the external repository to work with Tableau Server properly. - Azure Database, Google Cloud PostgreSQL instance or Stand-alone PostgreSQL Database: Choose a username that meets your requirements. We recommend using **postgres** as the Administrator username. If you choose to use a different username, make sure that the username does not start with **pg** or **azure**. The username also cannot be **rails**, **tblwgadmin**, **tableau**, **readonly** or **tbladminviews**. - **masterPassword:** This is the same password you specified when creating the PostgreSQL database instance. - **host:** This is the endpoint of your PostgreSQL database instance. - **port:** The database port you specified when creating the PostgreSQL DB instance. ### Step 2: Install Tableau Server and Configure the External Repository **Using TSM CLI:** 1. [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm): Follow the "Use the TSM CLI" instructions provided in this topic and complete steps 1–5, which run the setup program and install TSM. 2. [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm): Provide the Tableau Server Key and the Advanced Management key in the activate step. You will need to run the following command twice, first with the Tableau Server product key and then with the Advanced Management product key: `tsm licenses activate -k ` 3. [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm): Follow the "Use the TSM CLI" instructions provided in the topic to configure the initial node settings. > [!IMPORTANT] > > Important! Do not run the **Initialise and Start Tableau Server** step when you configure the initial node. After completing the other steps in the [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm) topic, return to this page and follow the rest of the instructions. 4. Configure Tableau Server to use the external repository by using the following commands: - Specify the external repository settings using the json file that you created in the previous step: `tsm topology external-services repository enable -f .json -c ` The json file is the file that you created in the first step with the configuration settings. **Note:** The SSL certificate is needed only if you are using encrypted connections between Tableau Server and the External Repository. If this is not a must for you, you must specify the --no-ssl option. In this case, the tsm command would look like this: `tsm topology external-services repository enable -f .json --no-ssl` - Apply the changes: `tsm pending-changes apply` ### Step 3: Complete tsm Initialise To initialise and start Tableau Server: `tsm initialize --start-server --request-timeout 1800` ### Step 4: Complete the install [Add an Administrator Account](https://help.tableau.com/current/server-linux/en-gb/startup.htm) and complete the installation. ## Who can do this Tableau Server Administrators can install and configure Tableau Server. [Skip to main content](#main-content) # Install Tableau Server with Independent Gateway This topic walks you through the process of installing Tableau Server Independent Gateway. Following this process will result in an Independent Gateway configuration with a direct connection to the backend Tableau Server deployment. You can learn more about _direct_ vs _relay_ connection modes in the topic, [Configure Tableau Server with Independent Gateway](https://help.tableau.com/current/server-linux/en-gb/server_tsig_configure.htm). ## Prerequisites - You must have a dedicated server with at least 2 cores (4 vCPUs), 8 GB of RAM and 100 GB of free disk space. - You must use Tableau Server 2022.1 or later. - You must use an installer for Tableau Server Independent Gateway with a major version (**2022.1**, for example) that matches the version of Tableau Server. We recommend maintenance versions (2022.1**.1** or 2022.1**.5,** for example) match as well, but this is not a requirement. If "static assets" change between versions and versions do not match, you may see some unexpected image impact. For example, maps may not be up to date if Independent Gateway is an earlier version than Tableau Server. - You must have Advanced Management enabled in Tableau Server. To learn more about Advanced Management, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). - By default, the Independent Gateway must be able to communicate with the backend Tableau Server deployment on ports 80 and 21319 during installation. You can change these default ports during initialisation, as described later in this topic. - Verify that your Tableau Server deployment is complete and healthy before installing and configuring Independent Gateway. - Verify that you are not running any other web-aware applications on the computer where you are installing Independent Gateway. For example if Apache HTTPD is installed on the computer, uninstall it or configure `httpd` so that it is not actively listening on port 80. ## Install Tableau Server and Independent Gateway Installing Independent Gateway is done using a standalone installation package that includes "tsig" as part of the filename to distinguish it from the full Tableau Server installer. We strongly recommend you install Independent Gateway after installing Tableau Server and confirming that it is functioning as expected. To install, you must be the root user (or be able to sudo to root). You can install one or more instances of Independent Gateway, but each instance of Independent Gateway must be installed separately. If you are installing multiple instances for high availability or to distribute a heavy client load, repeat the installation steps for each instance. After installation, you are prompted to run a script called `initialize-tsig` to complete the installation. The script takes information your provide using parameters and configures Independent Gateway. Once Independent Gateway is fully installed, you need to run a TSM command on the initial Tableau Server node to configure the server with details about the instance of Independent Gateway. The IG installation consists of these steps: - Run the platform-specific installer. - Run the post-install script. - Enable the Independent Gateway instance using TSM. ### Step 1: Download and install Tableau Server 1. [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm): Follow the instructions provided in this topic and complete steps 1-5 which runs the setup program and installs TSM. 2. [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm): Provide the Tableau Server Key and the Advanced Management key in the activate step. You will need to run the following command twice, first with the Tableau Server product key and then with the Advanced Management product key: `tsm licenses activate -k ` 3. [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm): Follow the instructions provided in the topic to configure the initial node settings. ### Step 2: Download and install Independent Gateway Install Tableau Server Independent Gateway with your distribution’s package manager, then run a script to initialise Independent Gateway. The script is included with the installed package. Independent Gateway is installed in the `/opt` directory. 1. Log on as a user with `sudo` access to the computer where you want to install Independent Gateway. **Note:** To avoid possible complications, we recommend a user account that does not include any special characters (for example, non-ASCII, "+", "-"). These may cause problems, including a failure to fully install Independent Gateway, depending on how your environment is configured. 2. Download the `.rpm` or `.deb` installer package from the [Tableau Server Downloads and Release Notes](https://www.tableau.com/en-gb/support/releases/server/) page. 3. Navigate to the directory where you copied the `.rpm` or `.deb` package. 4. Use the package manager to install the Independent Gateway package. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. Run the following commands to install Independent Gateway, where `` is formatted as major-minor-maintenance (example: `2022-1-0`). - On RHEL-like distributions, including CentOS: `sudo yum update` `sudo yum install tableau-tsig-.x86_64.rpm` - On Ubuntu: sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-tsig-\_amd64.deb #### Initialise Tableau Server Independent Gateway The next step is to run the `initialize-tsig` script. 1. Navigate to the `scripts` directory: cd /opt/tableau/tableau\_tsig/packages/scripts./ 2. Run the following script to initialise and start Independent Gateway: `sudo ./initialize-tsig --accepteula -c --` The only required parameters for the `initialize-tsig` script are `--accepteula` and `-c`. - **\--accepteula** - You must include this parameter to accept the Tableau End User Licence Agreement (EULA). A link to the EULA is available in the following location: `/opt/tableau/tableau_tsig/packages/docs./` - **\-c** - You must include this parameter to specify the network location of all the nodes in the Tableau Server cluster. These nodes may be sending "housekeeping" requests to the Independent Gateway. Wild cards and subnet masks can be used to specify multiple nodes. To specify multiple addresses, separate addresses by spaces and use quotes around the complete set. Values must be provided in one of the forms acceptable to the Apache `httpd mod_authz_host` "Require" directive. For more information, see [https://httpd.apache.org/docs/2.4/mod/mod\_authz\_host.html](https://httpd.apache.org/docs/2.4/mod/mod_authz_host.html). All other parameters, for example default ports used by HTTP and the housekeeping process, are optional and, if left off, will be given default values. Review the parameters and their default values before running the script: [Help Output for initialize-tsig Script](https://help.tableau.com/current/server-linux/en-gb/server_tsig_initialize-tsig-h.htm). ### Step 3: Enable Independent Gateway in Tableau Server The last step of installing and configuring Independent Gateway is to enable Independent Gateway in Tableau Server. To do this, use the TSM command `tsm topology external-services gateway enable -c ` with a JSON file that identifies the Independent Gateway instance or instances and provides Tableau Server with the details necessary for communication between the server and the Independent Gateway. Tableau Server must be in a stopped state to enable Independent Gateway. #### The Independent Gateway JSON file contents The JSON file that you use to enable the instances of Independent Gateway on Tableau Server needs to contain the following: - **ID** – The ID value must match the `tsig_instance_id` for the particular instance. If you did not provide this, the default is the fully qualified domain name of the Independent Gateway computer, in lowercase. The value in the JSON file must match the output of the `hostname` command. - **host** – The host value must be a DNS-resolvable name for the Independent Gateway computer that can be resolved by the Tableau Server nodes using DNS. - **Port** – The port must match the housekeeping port (`tsig_housekeeping_port`) specified on the Independent Gateway instance. If you did not provide this during initialisation, the default is "21319". - **Protocol** – The protocol must be the same as the housekeeping protocol (`tsig_housekeeping_port_protocol`) specified on the Independent Gateway instance. If you did not provide this during initialisation, the default is "HTTP". - **Authsecret** – The authsecret must match the secret created by the initialisation script on the Independent Gateway instance. #### The Independent Gateway authsecret The initialisation script creates a unique, shared secret on each Independent Gateway computer. You need this secret to enable Independent Gateway in Tableau Server. Copy the secret and include it in your JSON file as the "authsecret". The shared secret is located in the `tsighk-auth.conf` file here: /var/opt/tableau/tableau\_tsig/config/tsighk-auth.conf #### Independent Gateway JSON file example The JSON file should be in the format below. This example JSON file shows default values where there are defaults. Your file should have use the actual values that match your installation of Independent Gateway and your organisation. { "independentGateways": \[ { "id": "", "host": "", "port": "21319", "protocol": "http", "authsecret": "" }, { "id": "", "host": "", "port": "21319", "protocol": "http", "authsecret": "" } \] } ### Enabling Independent Gateway in Tableau Server To complete the installation of Independent Gateway, you need to enable it using TSM. 1. Copy the JSON configuration file to the initial node of Tableau Server. 2. On the initial node, open a command prompt using an account that is a member of the `tsmadmin` group. 3. Run the following commands to stop Tableau Server, enable Independent Gateway using the JSON configuration file, and restart the server: tsm stop tsm topology external-services gateway enable -c tsig.json tsm start ### Step 4: Verify Independent Gateway in Tableau Server You should be able to navigate to the Tableau Server sign-in page by entering the address of the Independent Gateway in a browser. If there is a firewall between the Independent Gateway and the backend Tableau Server deployment, then you will need to open the ports for the Tableau Server processes for direct connection. See [Direct connection](https://help.tableau.com/current/server-linux/en-gb/server_tsig_configure.htm#Direct) for more information. Alternatively, you may choose to minimise port requirements by configuring Independent Gateway for a relay connection. See [Relay connection](https://help.tableau.com/current/server-linux/en-gb/server_tsig_configure.htm#Relay) for more information. [Skip to main content](#main-content) # Install the Agent Using Command Line The Agent is a lightweight process that consumes minimal server resources and sends data to the Resource Monitoring Tool Server (RMT Server). Install the Resource Monitoring Tool Agent on each of your Tableau Server nodes. To install and register an Agent, download the Agent bootstrap configuration file and save it to a location that is accessible from the Resource Monitoring Tool Agent nodes. This topic describes the steps you can use to install the Resource Monitoring Tool Agent using command line. Command line installation is supported on both Windows and Linux operating systems. In an effort to align with our company values of Equality, we have changed non-inclusive terminology where possible. Because changing terms in certain places can cause a breaking change, we maintain the existing terminology. So, you may continue to see the terms in CLI commands and options, installation folders, configuration files and other instances. For more information, see [About Tableau Help](https://help.tableau.com/current/tableau/en-gb/about-tableau-help.htm). ## Before you install - Download the bootstrap file and save it to a location that is accessible to the nodes on which you are going to install RMT Agent. **Bootstrap files are only valid for 24 hours after downloading. You will need to regenerate the bootstrap file if the one you are using is older than 24 hours.** - Agent registration will need to communicate both through an HTTPS endpoint and RabbitMQ to complete. Make sure both ports 443 and 5672 are open for these communications. **To install and configure the Agent:** 1. **Install:** 1. Download the .rpm or .deb Agent Installer and save it to a location that you can access from the machine where you plan to install the Agent. 2. Run the following command to install the Agent where is formatted as major-minor-maintenance: For RHEL like distributions including CentOS: `sudo yum install Tabrmt-Agent-x86_64-.rpm` For Ubuntu: `sudo apt install Tabrmt-Agent-amd64-.deb` 2. Initialise RMT Agent: You must explicitly accept the End User Licence Agreement (EULA) when you initialise RMT Agent. You also have the option to specify non-default configurations. To initialise RMT Agent with a default configuration, run this command : sudo /opt/tableau/tabrmt/agent/install-scripts/initialize-rmt-agent --accepteula The EULA can be found in the `/opt/tableau/tabrmt/agent/docs` folder. Beginning in version 2023.1 you can specify a custom Run As account to be used by RMT, as well as other configuration options. By default RMT creates and uses an account called `rmt-agent` to run under. To specify a custom Run As account to be used by RMT Agent, include the `--unprivileged-user` option when you run the initialisation script. For information about all the available switches for the `initialize-rmt-agent` script, see [RMT Agent Initialisation Script Options](https://help.tableau.com/current/server-linux/en-gb/rmt-install-init-agent-opts.htm#RMTServerInitOpts). 3. **Register:** 1. Log off and log on as the _tabrmt-agent_ user so you can run rmtadmin commands which always require that you run as the _tabrmt-agent_ user. Also, when you log on again, you create a new session in which group membership changes have taken effect. `sudo su --login tabrmt-agent` 2. Run the following command and provide the path where the bootstrap file is located. Provide a description of the node where the Agent is being installed. `rmtadmin register --server-name= --server-description= --username=` You will be prompted for the password of the RMT admin user. **Note:** The `tabrmt-agent` user defaults to run commands from the base working directory: /var/opt/tableau/tabrmt/agent, so you must specify the file path accordingly. For example, if you placed the bootstrap file in the /var/opt/tableau/tabrmt/agent/bootstrap/ folder as recommended, the file path would be `/var/opt/tableau/tabrmt/agent/bootstrap/.` The following table lists the configuration options used to register the Agent:
OptionRequired?DefaultDescription
--bootstrap fileYes<none>The location of the bootstrap file.
--usernameYes<none>This is typically the admin user you created during RMT Server installation.
--passwordYes<none>This is the password for the user account
--password-file

No

Password can be supplied in the command line or a file that contains the password. If neither is provided, you will be prompted for the password.

<none>Path including the file name where the password is stored.
--server-nameNoHost name of machineName of the computer that has the Agent Installed. If no option is provided, this field will default to the host name of the machine.
--server-descriptionNo<none>Description of the computer that has the Agent installed. If no option is provided, this field will remain blank.
**To install and configure the Agent:** 1. Download the bootstrap file to a location that can be accessed from the Tableau Server nodes. `rmtadmin bootstrap-file --env= --filename` 2. Run the Agent setup program: 1. Download the Agent installer and save it to a location that you can access from Tableau Server machines. 2. Open the command prompt as an administrator. 3. Navigate to the location of the Agent installer and run the **exe** file using the following command `Tabrmt-Agent-64bit-.exe /silent ACCEPTEULA=1` > [!TIP] > > **Note:** Use the /silent or /quiet switch to run the setup unattended and without displaying any UI or prompts. The default install folder is usually like this: _C:\\Program Files\\Tableau\\Tableau Resource Monitoring Tool\\agent_. To provide a different install location, run the following command: `Tabrmt-Agent-64bit-.exee /silent ACCEPTEULA=1 InstallFolder="D:\Tableau Resource Monitoring Tool\agent"` 3. Register the Agent: 1. Run the following command to register the Agent: `rmtadmin register --server-name= --server-description=` The following table lists the configuration options used to register the Agent:
OptionRequired?

Default

Description
--bootstrap fileYes<none>The location of the bootstrap file.
--usernameYes<none>This is typically the admin user you created during RMT Server installation.
--passwordYes<none>This is the password for the user account
--password-file

No

Password can be supplied in the command line or a file that contains the password. If neither is provided, you will be prompted for the password.

<none>Path including the file name where the password is stored.
--server-nameNoHost name of machineName of the computer that has the Agent Installed. If no option is provided, this field will default to the host name of the machine.
--server-descriptionNo<none>Description of the computer that has the Agent installed. If no option is provided, this field will remain blank.
### Windows install properties and switches **Switches:** | Switch | Description | Comments | | --- | --- | --- | | `/passive` | Run Setup with minimal UI and no prompts. |   | | `/quiet | /silent` | Run Setup in unattended, fully silent mode. No web interface or prompts are displayed. | Use either /quiet or /silent, not both. | Properties:
PropertyDescriptionComments
InstallFolder=<path\to\installation\directory>Install to the specified non-default install location.

Specifies the location to install RMT. If not used, RMT is installed to C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master.

Example: <Setup file> /silent InstallFolder="D:\Tableau\Tableau Resource Monitoring Tool\agent"

ACCEPTEULA=1|0Accept the End User Licence Agreement (EULA). Required for quiet, silent and passive install on both initial and additional nodes. 1 = true, accept the EULA, 0 = false, do not accept the EULA.If not included when using /passive, /silent or /quiet, Setup fails silently. If included but set to 0, Setup fails.
### Installing Agent on Multi-Node Tableau Server Run the steps described above on each of the nodes of Tableau Server. On the web interface of the RMT Server, you should be able to see all the nodes where the Agent is installed. ## Who can do this To install Resource Monitoring Tool, you must have all the following: **Windows:** - Administrator permissions on the machine you are installing Resource Monitoring Tool. - Tableau Server Administrator site role. **Linux:** - Full sudo access for the user account that is used to install the Agent. ## Next Step [Configure Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-config-index-config.htm) [Skip to main content](#main-content) # Install the Agent Using the Web Interface The Agent is a lightweight process that consumes minimal server resources and sends data to the Resource Monitoring Tool Server (RMT Server). Install the Resource Monitoring Tool Agent on each of your Tableau Server nodes. To install and register an Agent, download the Agent bootstrap configuration file and save it to a location that is accessible from the Resource Monitoring Tool Agent nodes. Installation through the web interface is currently only supported for Windows Installations. If you want to install on Linux, see [Install the Agent Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install-cli.htm). **Note**: Beginning with version 2026.3.4, an update to the Windows installer has changed the installation workflow slightly. ## Before you install - Download the bootstrap file. **Bootstrap files are only valid for 24 hours after downloading. You will need to regenerate the bootstrap file if the one you are using is older than 24 hours.** - Agent registration will need to communicate both through an HTTPS endpoint and RabbitMQ to complete. Make sure both ports 443 and 5672 are open for these communications. ## Steps to download the Agent bootstrap file Use the following steps if you have not yet downloaded the bootstrap file from the RMT Server. 1. Using the web interface (_https://_) on the RMT Server, from the Admin menu, select Environments. 2. The bootstrap file can be downloaded directly from the environment overview tab on the home page. **Note:** If you haven't created an environment as part of the RMT Server setup, follow steps 12–15 described in the [Install the RMT Server Using Web Interface](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install.htm) topic. 3. Save the bootstrap configuration file to a location that is accessible from the Tableau Server nodes where you will be installing Resource Monitoring Tool Agent. ## Steps to install Agent Installation through web interface is currently only supported for [Windows Installations](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install.htm#steps-to-install-agent). If you want to install on Linux, see [Install the Agent Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install-cli.htm). ## Who can do this To install Resource Monitoring Tool, you must have all the following: - Administrator permissions on the machine you are installing Resource Monitoring Tool. - Tableau Server Administrator site role. ## Next Steps [Resource Monitoring Tool Server Configuration](https://help.tableau.com/current/server-linux/en-gb/rmt-config-configGui.htm#post-install-config) [Skip to main content](#main-content) # Install the RMT Server Using Command Line The Resource Monitoring Tool Server (RMT Server) hosts the web application that users interact with. It also does much of the background processing to collate and monitor the data from the Agents. The RMT Server must be installed on dedicated hardware. This topic describes the steps you can use to install the RMT Server using command line. Command line installation is supported on both Windows and Linux operating systems. In an effort to align with our company values of Equality, we have changed non-inclusive terminology where possible. Because changing terms in certain places can cause a breaking change, we maintain the existing terminology. So, you may continue to see the terms in CLI commands and options, installation folders, configuration files and other instances. For more information, see [About Tableau Help](https://help.tableau.com/current/tableau/en-gb/about-tableau-help.htm). **To install the RMT Server:** 1. **Install the RMT Server:** 1. Download the rpm or .deb RMT Server Installer and save it to a location that you can access from the machine where you plan to install the RMT Server. 2. Log in to the machine where you want the RMT Server installed as a user that has sudo access. 3. Run the following command to install the RMT Server, where is formatted as major-minor-maintenance: For RHEL like distribution including CentOS: `sudo yum install /Tabrmt-Master-x86_64-.rpm` For Ubuntu distributions: `sudo apt install .//Tabrmt-Master-amd_64-.deb` This installs the package and the prerequisites including RabbitMQ, Erlang and a PostgreSQL database. The PostgreSQL database is used to store usage data gathered from Tableau Server. It will then proceed to install the RMT Server. 2. **Initialise RMT Server:** You must explicitly accept the End User Licence Agreement (EULA) when you initialize RMT Server. You also have the option to specify non-default configurations. To initialise RMT Server with a default configuration, run this command : sudo /opt/tableau/tabrmt/master/install-scripts/initialize-rmt-master --accepteula The EULA can be found in the `/opt/tableau/tabrmt/master/docs` folder. Beginning in version 2023.1 you can specify a custom Run As account to be used by RMT, as well as other configuration options. By default, RMT creates and uses an account called `rmt-master` to run under. To specify a custom Run As account to be used by RMT Server, include the `--unprivileged-user` option when you run the initialisation script. For information about all the available switches for the `initialize-rmt-master` script, see [RMT Server Initialisation Script Options](https://help.tableau.com/current/server-linux/en-gb/rmt-install-init-server-opts.htm#RMTServerInitOpts). 3. **Configure the RMT Server:** 1. Run the following command as the `tabrmt-master` user: `sudo su --login tabrmt-master` `rmtadmin master-setup [options]` The configuration options can be supplied either through the command prompt, a configuration file. If you do not supply the options, the default values will be applied except for the administrator password. The administrator username will be set to admin and you will be prompted to provide the password. Example command including the required password parameter: `rmtadmin master-setup --admin-username= --admin-password=` The following table lists the required and some commonly used options to configure the RMT Server. For a full list of the configurations options, see [rmtadmin Command Line Utility](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-cmdline.htm). **Note:** Require HTTPS option ensures secure communications between the RMT Server and users. When you require HTTPS for communications, you must also select a mode for the certificate that should be used for these communications. The table below includes the various options. To learn more about these modes and certificates, see [SSL Certificate Mode and Requirements](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-installation.htm#SSL-Linux)
OptionRequired?

Default

Description
admin-password

Yes

Password can be supplied in the command line or provide a file with the password to use. If neither is provided, you will be prompted for the password.

n/aThe password for the administrator user.
admin-password-file

No

Password can be supplied in the command line or provide a file with the password to use. If neither is provided, you will be prompted for the password.

n/a

The file where the password for the administrator user is stored.

Note: tabrmt-master user must have access to this file.

admin-usernameNoadminThe username for the administrator user.
http-portNo80 
require-httpsNoTrueRedirect http traffic to HTTPS.
https-certificate-modeNo

"Default"

Available options:

Default

Local

The type of certificate search to perform for the HTTPS certificate.

Default: This mode uses the default self-signed certificate supplied by the installer.

Local: Allows you to specify a file-based certificate in the /var/opt/tableau/tabrmt/master/config folder.

https-certificate-local-name

No

Note: If not specified, the Resource Monitoring Tool is installed with a self-signed certificate and will use that certificate for HTTPS communications.

NullThe name of the HTTPS certificate file without the file extension.
https-certificate-local-passwordNoNullThe password to use for the HTTPS certificate.
https-certificate-local-password-fileNoNullThe path to the file containing the password to use for the HTTPS certificate.
4. **Create an environment:** 1. Run the following command to create an environment: `rmtadmin create-env --name= --api-username= --api-password=` Configure the environment using the options available for this command. Here are some key configuration options to consider: - The Tableau Server REST API and the Tableau Server Repository configurations are used to communicate with Tableau Server. The Tableau Server Repository configuration is optional, but is a preferred method to access Tableau Server. - You have the option to configure secure encrypted connection when RMT connects to Tableau Server Repository. In order to use SSL connections between RMT and Tableau Server Repository database, Tableau Server must be configured to use SSL. For more information, see [Configure SSL for Internal Postgres Communication](https://help.tableau.com/current/server-linux/en-gb/ssl_config_postgres.htm). The following table lists some of the common options. To see a full list of options, see [rmtadmin Command Line Utility](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-cmdline.htm).
OptionRequired?DefaultDescription
--nameYesn/aThe name of the environment.
--gateway-url

Yes

 

n/a

URL used to access the Tableau Server gateway.

--versionYesn/aTableau Server version that this environment will be monitoring.
--api-usernameNoNullUsername of the account used to connect to Tableau Server APIs. The user account should be a Tableau Server administrator with access to all Tableau Server sites.
--api-password

No

(If you specify the Tableau API username, you will either provide the password or specify the file path and file that has the password)

Null

Password of the Tableau Server API user account used to connect to Tableau Server APIs.

--api-password-fileNoNullThe path to the file and the name of the file containing the password of the Tableau Server API user account.
--repository-serverYes

Null

This is the server name for the PostgreSQL database that is installed with Tableau Server
--repository-portYesNullThe port number of the Tableau Server Repository database.
--repository-usernameYesNull

Username used to connect to PostgreSQL database installed with the Tableau Server Repository.

Resource Monitoring Tool accesses the Tableau Server Repository database directly for performance reasons. For this to work, access to the repository must be enabled, with a password set for the readonly database user. For details, see Enable access to the Tableau Server repository.

--repository-passwordYesNull

Password for the user account used to connect to the PostgreSQL database that is installed with the Tableau Server.

Resource Monitoring Tool accesses the Tableau Server Repository database directly for performance reasons. For this to work, access to the repository must be enabled, with a password set for the readonly database user. For details, see Enable access to the Tableau Server repository.

--repository-password-fileNoNullThe path including the filename where the password for the user account used to connect to the PostgreSQL database that is installed with Tableau Server.
--repository-ssl-mode

No

Prefer

Tableau Server Repository SSL Mode:

Prefer SSL or Require SSL to configure SSL connections to Tableau Repository.

Disable to never use SSL to make Tableau Server Repository connections.

--repository-ssl-thumbprint

No

NullYou can choose to either supply the thumbprint that was generated by Tableau Server, or copy the server.crt file to the Resource Monitoring Tool Server (RMT Server) machine. If you choose to copy the certificate file, you don't have to supply the thumbprint. For more information, see Configure Postgres SSL to Allow Direct Connections from Clients.
2. Download the bootstrap file to a location that can be accessed from the Tableau Server nodes. `rmtadmin bootstrap-file --env= --filename=` 5. **Optional step - only if not using SSD:** The Resource Monitoring Tool is optimised for SSD by default. If you are not using SSD hardware, run the command: `sudo /opt/tableau/tabrmt/master/tabrmt-master optimize --no-ssd` **To install the RMT Server:** 1. **Run the RMT Server setup program:** 1. Download the RMT Server installer and save it to a location that you can access from the machine where you plan to install the RMT Server. 2. Open the command prompt as an administrator. 3. Navigate to the location of the RMT Server installer and run the exe file using the following command `Tabrmt-Master-64bit-.exe /silent ACCEPTEULA=1` > [!TIP] > > **Note:** Use the /silent or /quiet switch to run the setup unattended and without displaying any UI or prompts. The default install folder is usually like this: _C:\\Program Files\\Tableau\\Tableau Resource Monitoring Tool\\master_. To provide a different install location, run the following command: `Tabrmt-Master-64bit-.exe /silent ACCEPTEULA=1 InstallFolder="D:\Tableau Resource Monitoring Tool\master"` Full list of all the install command properties and switches can be found in [this section](#Windows-install-switches) below. This installs the package and the prerequisites including RabbitMQ, Erlang and a PostgreSQL database. The PostgreSQL database is used to store usage data gathered from Tableau Server. It will then proceed to install the RMT Server. 2. **Configure the RMT Server:** 1. Run the following command and provide the options: `rmtadmin master-setup [options]` The configuration options can be supplied either through the command prompt, a configuration file. If you do not supply the options, the default values will be applied except for the administrator password. The administrator user name will be set to admin and you will be prompted to provide the password. Example command including the required password parameter: `rmtadmin master-setup --admin-username= --admin-password=` The following table lists the required and some commonly used options used to configure the RMT Server. For a full list of the configurations options, see [rmtadmin Command Line Utility](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-cmdline.htm). **Note:** Require HTTPS option ensures secure communications between the RMT Server and users. When you require HTTPS for communications, you must also select a mode for the certificate that should be used for these communications. The table below includes the various options. To learn more about these modes and certificates, see [Install the Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-installation.htm#ssl-win)
OptionRequired?DefaultDescription
admin-password

Yes

Password can be supplied in the command line or provide a file with the password to use. If neither is provided, you will be prompted for the password.

n/aThe password for the administrator user.
admin-password-file

No

Password can be supplied in the command line or provide a file with the password to use. If neither is provided, you will be prompted for the password.

n/aThe file where the password for the administrator user is stored.
admin-usernameNoadminThe username for the administrator user.
http-portNo80 
require-httpsNoTrueRedirect http traffic to HTTPS.
https-certificate-modeNo

Default

Available options:

  • Default
  • Store
  • Local

The type of certificate search to perform for the HTTPS certificate.

Default: This mode uses the default self-signed certificate supplied by the installer.

Store: This allows you to enter the thumbprint of a certificate in the Windows certificate store.

Local: Allows you to specify a file-based certificate <installation directory>\config folder. By default this is C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\config.

https-certificate-store-thumbprintNoNullThe HTTPS certificate hash/thumbprint to search for in 'store' certificate mode.
https-certificate-local-nameNo

Null

Note: If not specified, the Resource Monitoring Tool is installed with a self-signed certificate and will use that certificate for HTTPS communications.

The name of the HTTPS certificate file without the file extension.
https-certificate-local-passwordNoNullThe password to use for the HTTPS certificate.
https-certificate-local-password-fileNoNullThe path to the file containing the password to use for the HTTPS certificate.
3. **Create an environment:** 1. Run the following command to create an environment: `rmtadmin create-env --name= --api-username= --api-password=` Configure the environment using the options available for this command. Here are some key configuration options to consider: - The Tableau Server REST API and the Tableau Server Repository configurations are used to communicate with Tableau Server. The Tableau Server Repository configuration is optional, but is a preferred method to access Tableau Server. - You have the option to configure secure encrypted connection when RMT connects to Tableau Server Repository. In order to use SSL connections between RMT and Tableau Server Repository database, Tableau Server must be configured to use SSL. For more information, see [Configure SSL for Internal Postgres Communication](https://help.tableau.com/current/server-linux/en-gb/ssl_config_postgres.htm). The following table lists some of the common options. To see a full list of options, see [rmtadmin Command Line Utility](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-cmdline.htm).
OptionRequired?DefaultDescription
--nameYesn/aThe name of the environment.
--gateway-url

Yes

 

n/a

URL used to access the Tableau Server gateway.

--versionYesn/aTableau Server version that this environment will be monitoring.
--api-usernameNoNullUsername of the account used to connect to Tableau Server APIs. The user account should be a Tableau Server administrator with access to all Tableau Server sites.
--api-password

No

(If you specify the Tableau API username, you will either provide the password or specify the file path and file that has the password)

Null

Password of the Tableau Server API user account used to connect to Tableau Server APIs.

--api-password-fileNoNullThe path to the file and the name of the file containing the password of the Tableau Server API user account.
--repository-serverYes

Null

This is the server name for the PostgreSQL database that is installed with Tableau Server
--repository-portYesNullThe port number of the Tableau Server Repository database.
--repository-usernameYesNull

Username used to connect to PostgreSQL database installed with the Tableau Server Repository.

Resource Monitoring Tool accesses the Tableau Server Repository database directly for performance reasons. For this to work, access to the repository must be enabled, with a password set for the readonly database user. For details, see Enable access to the Tableau Server repository.

--repository-passwordYesNull

Password for the user account used to connect to the PostgreSQL database that is installed with the Tableau Server.

Resource Monitoring Tool accesses the Tableau Server Repository database directly for performance reasons. For this to work, access to the repository must be enabled, with a password set for the readonly database user. For details, see Enable access to the Tableau Server repository.

--repository-password-fileNoNullThe path including the filename where the password for the user account used to connect to the PostgreSQL database that is installed with Tableau Server.
--repository-ssl-mode

No

Prefer

Tableau Server Repository SSL Mode:

Prefer SSL or Require SSL to configure SSL connections to Tableau Repository.

Disable to never use SSL to make Tableau Server Repository connections.

--repository-ssl-thumbprint

No

NullYou can choose to either supply the thumbprint that was generated by Tableau Server, or copy the server.crt file to the Resource Monitoring Tool Server (RMT Server) machine. If you choose to copy the certificate file, you don't have to supply the thumbprint. For more information, see Configure Postgres SSL to Allow Direct Connections from Clients.
2. Download the bootstrap file to a location that can be accessed from the Tableau Server nodes. `rmtadmin bootstrap-file --env= --filename=` ### Windows install properties and switches Switches:
SwitchDescriptionComments
/install | /uninstallRun Setup to either install or uninstall Resource Monitoring Tool.

Default is to install, displaying UI and all prompts. If no directory is specified using the InstallFolder property on a fresh install, C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master is assumed. If Resource Monitoring Tool is already installed, Setup will assume the same location as the current installation.

To completely remove Resource Monitoring Tool, including the data directory, use, /uninstall DELTEDATADIR=1

/passiveRun Setup with minimal UI and no prompts. 
/quiet | /silentRun Setup in unattended, fully silent mode. No web interface or prompts are displayed.Use either /quiet or /silent, not both.
/norestartRun Setup without restarting Windows, even if a restart is necessary.In certain rare cases, a restart cannot be suppressed, even when this option is used. This is most likely when an earlier system restart was skipped. For example, if restart was skipped during installation of other software.
/log <log-file>Log information to the specified file and path. By default log files are created in %TEMP% with a naming convention of Tableau_Resource_Monitoring_Tool_<version_code>.

If no file location is specified, the log file is written to the TEMP folder - C:\Users\<username>\AppData\Local\Temp. Check this log file for errors after installation.

For example: <Setup file> /quiet /log="C:\Tableau\Logs\RmtInstall

Properties:
PropertyDescriptionComments
InstallFolder=<path\to\installation\directory>Install to the specified non-default install location.

Specifies the location to install RMT. If not used, RMT is installed to C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master.

Example: <Setup file> /silent InstallFolder="D:\Tableau\Tableau Resource Monitoring Tool\master"

ACCEPTEULA=1|0Accept the End User Licence Agreement (EULA). Required for quiet, silent and passive install on both initial and additional nodes. 1 = true, accept the EULA, 0 = false, do not accept the EULA.If not included when using /passive, /silent or /quiet, Setup fails silently. If included but set to 0, Setup fails.
## Who can do this To install Resource Monitoring Tool, you must have all the following: **Windows** - Administrator permissions on the machine you are installing Resource Monitoring Tool. - Tableau Server Administrator site role. - Resource Monitoring Tool Administrator account. Linux - Full sudo access for the user account that is used to install the Agent. - Resource Monitoring Tool Administrator account ## Next Step [Install the Agent Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install-cli.htm) [Skip to main content](#main-content) # Install the RMT Server Using Web Interface The Resource Monitoring Tool Server (RMT Server) hosts the web application that users interact with. It also does much of the background processing to collate and monitor the data from the Agents. The RMT Server must be installed on dedicated hardware. Installation through web interface is currently only supported for Windows Installations. If you want to install on Linux, see [Install the RMT Server Using Command Line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install-cli.htm). **Note**: Beginning with version 2025.3.4, an update to the Windows installer has changed the installation workflow slightly. **To install the RMT Server:** There are three main steps to installing the RMT Server: - Installing the Server software - Configuring the RMT Server - Creating a new environment. The detailed step by step process is described below: 1. **Installing the Server software:** 1. Run the RMT Server setup program. 2. After reading the EULA, select I agree to the license terms and conditions and click Install. 3. If the User Account Control dialog opens, click Yes to allow the installer to make changes. 4. The RMT Server installer will first install certain prerequisites as the first step. The prerequisites include RabbitMQ, Erlang and a PostgreSQL database. The PostgreSQL database is used to store usage data gathered from Tableau Server. It will then proceed to install the RMT Server. 5. At the end of the installation, a **Server Configuration** web page opens. 2. **Configure the RMT Server:** 1. The page should already be filled in. Make any updates to the values if needed. **Note:** Make a note of the **Host Name**. The web interface used to access the RMT Server uses this format: _https://_. 2. By default, Resource Monitoring Tool uses a self-signed certificate to use for the HTTPS communications with the RMT Server. To leverage your own certificate, replace the thumbprint value with the one for the certificate you want to use. Check the Require HTTPS option if you want to mandate secure HTTPS communications. Checking the Require HTTPS option will also require you to choose a certificate mode and provide additional details if necessary. Mainly there are three options to choose from: 1. **Default:** This mode uses the default self-signed certificate supplied by the installer. 2. **Local:** This mode allows you to specify a file-based certificate in the Resource Monitoring Tool**/config** folder. When **Local** mode is selected, the **Certificate Name** field becomes available. The options listed will correspond with the certificate file groups located in the **/config** folder. 3. **Store:** This mode allows you to enter the thumbprint of a certificate in the Windows certificate store. The **Password** field will only be used if the selected certificate requires a password. 3. Test the Server Configuration by clicking **Test Server Configuration**. 4. The **Password** section allows you to configure the password requirements that will apply to the user accounts and will be applied to the Administrative user account you will create a little later. 5. In the **Authentication** section, you can configure the timeout period for the sessions. If the user does not access the session for the set timeout period then the session will expire and they will need to log in again. By default, this is set to 240 minutes. You can also enable the **Sliding Expiration** option to reset the time out period when a session is accessed within the time out period. 6. Click Save and Restart Server. 7. When the server has restarted, you are prompted to create an administrative user and password. 8. After signing in using the administrative credentials you just created in the previous step, the Resource Monitoring Tool you will see a message that no Environment has been created. Click **Add an environment** to setup a new environment. 3. **Create a New Environment:** 1. Create a new environment: Fill in the details of the environment, like the name an identifier. The Tableau Server REST API and the Tableau Server Repository configurations are used to communicate with Tableau Server. The Tableau Server Repository configuration is optional, but is a preferred method to access Tableau Server. You have the option to configure secure encrypted connection when RMT connects to Tableau Server Repository. In order to use SSL connections between RMT and Tableau Server Repository database, Tableau Server must be configured to use SSL. For more information, see [Configure SSL for Internal Postgres Communication](https://help.tableau.com/current/server-linux/en-gb/ssl_config_postgres.htm). 2. Tableau Repository Configuration: In the Tableau Repository Configuration section: 1. In the SSL Mode drop-down box, select Prefer SSL or Require SSL to configure SSL connections to Tableau Repository. Choosing Disable means SSL will never be used to make Tableau Server Repository connections. In the Prefer SSL mode, the Resource Monitoring Tool will use SSL in the first attempt, and if that fails, the subsequently attempts a non-encrypted connection. In the Require SSL mode, if the SSL connection fails, the connections to Tableau Server Repository will fail entirely. In this case, Tableau Server REST API connections will be used to communicate with Tableau Server. 2. You can choose to either supply the thumbprint that was generated by Tableau Server, or copy the **server.crt** file to the Resource Monitoring Tool Master Server machine. If you choose to copy the certificate file, you don't have to supply the thumbprint. For more information, see [Configure Postgres SSL to Allow Direct Connections from Clients](https://help.tableau.com/current/server-linux/en-gb/ssl_config_direct_cx.htm). 4. Click **Save**. You will see a new section added to the page - **Agent Configuration**. This section allows you to download the bootstrap file needed to install and configure Agents. > [!IMPORTANT] > > **Note:** If you make any updates to the Environment configurations, you must click **Save** before downloading the Bootstrap file. ![A form with fields to input Tableau server and agent configuration settings.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-new-envrionment-agent-bootstrap.png) ## Who can do this To install Resource Monitoring Tool, you must have all the following: - Administrator permissions on the machine you are installing Resource Monitoring Tool. - Tableau Server Administrator site role. - Resource Monitoring Tool Administrator account. ## Next Step [Install the Agent Using the Web Interface](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install.htm) [Skip to main content](#main-content) # Install the Tableau Resource Monitoring Tool The Tableau Resource Monitoring Tool has two components: RMT Server and Agent. Resource Monitoring Tool prerequisites and the RMT Server must be installed on dedicated hardware to guarantee they have the necessary resources, and that there is no contention for machine resources with other programs or software. These should not be installed on your Tableau Server computer, except in exceptional cases (for example, for limited demonstration purposes in non-production environments). Agents are installed on all nodes of Tableau Server that you want to monitor. The installer for installing Resource Monitoring Tool can be found on the [Advanced Management Download site](https://www.tableau.com/en-gb/support/releases/server-management). Download all the files that start with **Tabrmt**. In an effort to align with our company values of Equality, we have changed non-inclusive terminology where possible. Because changing terms in certain places can cause a breaking change, we maintain the existing terminology. So, you may continue to see the terms in CLI commands and options, installation folders, configuration files and other instances. For more information, see [About Tableau Help](https://help.tableau.com/current/tableau/en-gb/about-tableau-help.htm). ## Installation version history This section calls out significant changes to the installation process. Use this section to understand what changes have been made depending on your current version and the version you are upgrading to. - Starting in version **2022.3**, you have the option to configure RabbitMQ messaging service and the PostgreSQL database used by Resource Monitoring Tool on a cloud platform. Currently, the AWS AMQ for RabbitMQ and Amazon RDS for PostgreSQL databases are supported. With this addition, you can choose to install the repository and message queue service with RMT Server on the same machine or separately on the AWS platform. - Starting in version **2020.4**, the Resource Monitoring Tool can be installed on Linux machines. Previously, Resource Monitoring Tool installation was only supported on Windows machines. ## Before Installing the Resource Monitoring Tool - Review the following requirements and instructions: - [Minimum Hardware Requirements and Recommendations for Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-min-hardware-req.htm) - [Pre-Installation Checklist – Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-install-checklist.htm) - The following OS is supported: - AlmaLinux: Version 2023.3.1 and later: AlmaLinux 8.x, AlmaLinux 9.x - Amazon Linux: Version 2023.3.1 and later: Amazon Linux 2, Amazon Linux 2023 Version 2023.3.0 and earlier: Amazon Linux 2 - CentOS: Version 2023.3.1 and later: Stream 8.x, Stream 9.x - Oracle: Version 2023.3.1 and later: Oracle 8.x, Oracle 9.x - Red Hat Enterprise Linux (RHEL): Version 2023.3.1 and later: 9.x, 8.3+ Version 2023.3.0: 9.x, 8.3+ Version 2023.1.x and earlier: 8.3+ - Rocky Linux: Version 2023.3.1 and later: Rocky Linux 8.x, Rocky Linux 9.x - Ubuntu: Version 2023.1.1 and later: the latest versions of Ubuntu 16.04 LTS, 18.04 LTS (not 17.04), 20.04 LTS, 22.04 Version 2023.1.0: the latest versions of Ubuntu 16.04 LTS, 18.04 LTS (not 17.04), and 20.04 LTS Version 2022.3 and earlier: the latest versions of Ubuntu 16.04 LTS and 18.04 LTS (not 17.04) **Additional notes on Linux distributions:** - Red Hat Enterprise Linux (RHEL), CentOS, and Amazon Linux distributions are collectively referred to in this documentation as RHEL-like. - Previous versions of CentOS and Ubuntu are not supported because Tableau Server requires systemd for process management. - The version of the installer with the file suffix, .deb, installs on Ubuntu distributions. As of July 2022, Debian distributions are no longer supported. For more information, see [this Tableau Community post](https://community.tableau.com/s/news/a0A4T0000011xDOUAY/debian-end-of-life). - Custom kernels are not supported. - Make sure the Tableau Server installation you are going to be monitoring is licensed with the Advanced Management licence. You must have a valid Advanced Management licence to use the Resource Monitoring Tool. - Review the size of Tableau Server logs. Once Agent is installed and configured, the Resource Monitoring Tool processes relevant historical data from Tableau Server logs before data is displayed. If there is a large amount of historical log data, it may take a while to process the information which in turn might result in a delay of processing newer events on the Server. If you are concerned about the delay, and not having historical information does not concern you, you can do the following to clean up the existing files: - [Remove Unneeded Files](https://help.tableau.com/current/server-linux/en-gb/maintenance_cleanup.htm), and consider [Log File Snapshots (Archive Logs)](https://help.tableau.com/current/server-linux/en-gb/logs_archive.htm) before you remove log files. **Note:** Performance data like CPU usage and memory usage are not gathered using historical log data and are collected after Agent is installed and configured so cleaning up historical data does not affect performance data. - Enable the read only built-in user for Tableau Server Repository. This user is used when installing the Resource Monitoring Tool Agent. **This is required starting in version 2022.3.** For more information, see [Collect Data with the Tableau Server Repository](https://help.tableau.com/current/server-linux/en-gb/perf_collect_server_repo.htm#enable-access-to-the-tableau-server-repository). - Determine if you want to configure the repository and message queue service external to Resource Monitoring Tool. ### Setup Architecture A high-level view of the Resource Monitoring Tool setup. This diagram shows two Tableau Server clusters monitored by the RMT Server. ![Diagram illustrating the relationships between a master server and Tableau server clusters for both production and development/testing.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-setup-architecture.png) A detailed view of the Resource Monitoring Tool components installed on the RMT Server and Agent. ![Diagram of service names for a master server and an agent.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-setup-architecture-details-linux.png) ## Installation Overview The RMT Server can be installed on either operating system and does not depend on the operating system that Agent is installed on. This means you can install RMT Server and Agent on different operating systems. However, Agent is installed on the Tableau Server Cluster nodes, so the operating system choice for the Agent depends on the Tableau Server installation. You can monitor multiple Tableau Server clusters using the same Resource Monitoring Tool. Each Tableau cluster should be set up as a separate environment. ### External Configuration The repository and the message queue service can both be hosted external to RMT Server on the AWS platform. For hosting the repository, use the AWS RDS instance, and for message queue, use AWS AMQ. For more details on the configuration, step-by-step instructions and other details, see: - [External Repository for Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-external-repo.htm) - [External Message Queue Service (RabbitMQ) for Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-external-messagequeue.htm) ### Installation on Linux You can install RMT Server and Agent using the command line on Linux operating systems. Here are the steps to installing Resource Monitoring Tool: 1. Install the RMT Server [using command line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install-cli.htm). When you start the Resource Monitoring Toolinstaller, the setup program will install certain programs required to run Resource Monitoring Tool first. The programs installed are RabbitMQ, Erlang and a dedicated PostgreSQL database. It will then proceed to install the RMT Server. 2. Install the Agent [using command line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-agent-install-cli.htm). Install the Agent on every one of your Tableau Server nodes. The Agent sends information about Tableau Server usage and performance to the RMT Server for reporting. ### HTTPS As a best practice, you should use HTTPS to protect sensitive information and user credentials. The **Require HTTPS** setting in the Server configuration is used for communications between the users and the RMT Server. It is also used when you register an Agent. Regular agent communications between Agent and RMT to collect data are done through Rabbit MQ. Initially, the RMT Server is installed with a self-signed certificate and will use that certificate for HTTPS communication, which includes communication during Agent registration. You can use your own certificate to replace the self-signed certificate. This can be done during RMT Server installation in the Server Configuration page or after the installation is complete. #### SSL Certificate Mode and Requirements The resource monitoring tool supports the following modes of using SSL Certificates: - **Default:** This mode uses the default self-signed certificate supplied by the installer. - **Local:** This mode allows you to specify a file-based certificate in the `/var/opt/tableau/tabrmt/master/config` folder. Follow these guidelines and requirements for your certificate: - You must have an HTTPS certificate (like X.509) for the appropriate domains. This depends on your local security policies and certificate requirements. For example, if the Resource Monitoring Tool is using a CName or SSL passthrough proxy, you might need to use a SAN certificate. For multiple sub-domains, wildcard certificates are supported. - The Resource Monitoring Tool supports only PKCS #12 and PEM formats. - The Resource Monitoring Tool web server requires a certificate and a private key, and optionally, a chain-of-trust. The private key can be either RSA or DSA. These can be provided in a single file or grouped files. - Single file examples: - PKCS #12: A single file with the .pfx or .p12 file extensions. - PEM: PEM-encoded certificate + private key (plus optionally intermediate CAs chaining up to root CA), in a single file with the .pem extension. The items in the file does not have to be in any specific order. - Grouped file examples: - PEM-encoded certificate in a .crt or .cer file PLUS - PEM-encoded private key in a .key file PLUS (optionally) - PEM-encoded certificate authority in one or more .ca files ### Default File and Directory locations: #### RMT Server: - Installation directory: `/opt/tableau/tabrmt/master` - Configuration file: `/var/opt/tableau/tabrmt/master/config.json` - Logs: `/var/opt/tableau/tabrmt/master/logs` #### Agent: - Installation directory: `/opt/tableau/tabrmt/agent` - Bootstrap: `/var/opt/tableau/tabrmt/agent/bootstrap` - Logs: `/var/opt/tableau/tabrmt/agent/logs` ## Who can do this To install Resource Monitoring Tool, you must have all the following: - User account with full sudo access. - Tableau Server Administrator site role. - Resource Monitoring Tool Administrator account. ## Next Step Install the RMT Server: - [Using web interface](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install.htm) - [Using command line](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-master-install-cli.htm) ## Other articles in this section [Skip to main content](#main-content) # Integrate Tableau with a Slack Workspace Beginning with version 2021.3, Tableau Server and Tableau Cloud support integration with the Tableau App for Slack, so your team can collaborate – share Tableau snapshots, search for Tableau content and receive notifications about Tableau data – right where they’re working in a Slack workspace. The Tableau App for Slack lets you connect your Tableau site with a Slack workspace. After it’s enabled, Tableau users can: - See notifications in Slack when team mates share content with them, when they're mentioned in a comment or when data meets a specified threshold in a data-driven alert. If a site administrator in Tableau Cloud or a server administrator in Tableau Server enables notifications on a site, users can control which notifications they receive in Slack by configuring their [Account Settings](https://help.tableau.com/current/pro/desktop/en-gb/useracct.htm). - See a preview of a viz when a Tableau URL is pasted into Slack, allowing users to share data-related content with context directly in Slack. - Search for Tableau views or workbooks in Slack DMs and channels. - Access Recents and Favourites from the Tableau App for Slack. For more information, see [Receive Notifications, Search and Share Using the Tableau App for Slack](https://help.tableau.com/current/pro/desktop/en-gb/slack_tableau.htm). **Note:** Some notifications preferences might not be available if the features are turned off for your site. For example, if the User Visibility setting is set to Limited, notifications are turned off. For more information, see [Site Settings Reference](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm) and [Manage Site User Visibility](https://help.tableau.com/current/server-linux/en-gb/user_visibility.htm#user). To integrate Slack with your Tableau site, there are a few necessary configuration steps, including some in your Tableau site and some in the Slack workspace you want to connect. This overview outlines these steps for both Tableau site administrators on Tableau Cloud or a Tableau Server Administrator on Tableau Server and Slack workspace administrators. **Requirements** Enabling Tableau in Slack requires both a Slack workspace administrator and either a Tableau site administrator in Tableau Cloud or a Tableau server administrator in Tableau Server. ## Connect a Tableau Server site to a Slack workspace A Tableau Server administrator can connect a Slack workspace to one Tableau Server site. Connecting your Tableau site to a Slack workspace consists of three tasks: - **Slack workspace administrator**: Create a private Slack application on the Slack API platform. - **Tableau server administrator**: Use the app information to add an OAuth client. - **Tableau server administrator**: Connect your Tableau site to Slack. Each Tableau site can connect to one Slack workspace per Tableau site. For information about creating Slack apps, see Slack's [Best practices and guidelines for Slack platform](https://api.slack.com/start). Note: If using a proxy server, make sure you've followed proxy settings guidance in [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm) before you begin. Additionally, for **Windows**: - Make sure that the Windows environment variables already have `http_proxy` and `https_proxy` specified. For more information and instructions on specifying environment variables, see [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm). - Add the Slack domains [in this list](https://slack.com/help/urls) to the allowlist. For more information, see [Communicating with the Internet](https://help.tableau.com/current/server-linux/en-gb/plan_network.htm). ### Step 1: Create a Tableau App for Slack **Slack workspace administrator:** 1. Go to Slack's [API documentation](https://api.slack.com/apps) and select Create New App 2. Select **From Scratch**, then add an app name and the workspace for the app to exist within. Select Create New App. 3. Give your app a name and select a Slack workspace. 4. You'll be taken to the app's basic information settings. From here, you can modify the app's privileges, description and more. 5. Select **Bots** from the Add features and functionality section, then select **Review Scopes to Add**. 6. Under Bot Token Scopes, add these scopes: - `chat:write` - `files:read` - `files:write` - `users:read` - `users:read.email` 7. Select OAuth & Permissions from the navigation menu. > [!IMPORTANT] > > Important: Opting in to token rotation for your Tableau App for Slack will cause notifications to stop working in Slack. Token rotation can't be removed after it's added. 8. Select Add New Redirect URL. 9. Add a fully qualified URL `https:///auth/add_oauth_token` 10. Select **Basic Information** from the navigation menu. 11. Give the Client ID, Client Secret and Redirect URL to the Tableau server administrator. 12. Add the Tableau App for Slack into the Slack workspace by selecting Basic Information from the Settings menu, then **Install**. **Note**: Administrators can share their app with other Slack workspaces by activating a distribution option. For more information, see [Manage Distribution](https://app.slack.com/app-settings/T7KUQ9FLZ/A028CVA4MK9/distribute) in Slack's documentation. ### Step 2: Add an OAuth client to the Tableau site **Tableau server administrator:** The Tableau server administrator will add the OAuth client from the Slack workspace administrator, then connect the Tableau site to Slack. 1. Sign in to the site you’d like to connect to Slack. On the Settings page of your site, select the **Integrations** tab. ![Integrations tab in Tableau site settings](/tableau/current/en-gb/server-linux/en-gb/Img/slack_settings.png) 2. Under Slack Connectivity, select Add OAuth Client. 3. Add the Client ID, Client Secret and Redirect URL from the Slack workspace administrator, then select Add OAuth Client in the dialog. 4. The connection type and Client ID will appear in the table. ### Step 3: Finalise the connection **Tableau server administrator:** When the OAuth client is added under Slack Connectivity: 1. Select **Connect to Slack**. 2. Follow the prompt to sign in to your Slack workspace. 3. Select **Allow** to give your Tableau site access to the Slack workspace. The Tableau site and Slack workspace are now connected. In the Slack workspace, licensed Tableau users can receive Slack notifications when someone shares Tableau content, when a data-driven alert is triggered or when someone is @mentioned in a comment on a view or workbook. ## Disconnect a Tableau site from Slack As a site admin, you can disconnect a Tableau site from a Slack workspace by selecting **Disconnect from Slack** in the **Integrations** tab of site settings. Users continue to receive notifications for some time. The OAuth client information you added in Step 2 is retained and can be used to connect to a new workspace if needed. As a Slack user, you can disconnect from Slack by selecting **Disconnect from Tableau** from the **Home** tab in the Tableau App for Slack. ## Update your Tableau App for Slack When a new version of the Tableau App for Slack is available, Tableau recommends updating the application to maintain app performance and use new features. To update the Tableau App for Slack: 1. From the **Settings** page of your site, select the **Integrations** tab. ![Integrations tab in Tableau site settings](/tableau/current/en-gb/server-linux/en-gb/Img/slack_settings.png) 2. Under **Slack Connectivity**, select **Connect to Slack**. 3. Select **Update**. **Note:** App updates applied by any Tableau admin affect all Tableau sites connected to the same workspace. ## Troubleshoot the Tableau App for Slack It’s a best practice to [Manage app approvals for your Slack workspace](https://slack.com/help/articles/222386767-Manage-app-approval-for-your-workspace). However, if your Slack workspace allows users who aren’t admins to remove apps, it’s possible that a user can remove the Tableau App for Slack for the site. In this scenario, other users will see the Tableau App for Slack, but its features won’t work as expected. To resolve this issue, have your Slack admin uninstall and reinstall the Tableau App for Slack. Then, have your admin follow the steps to connect Slack with your Tableau site. If the preview of your Tableau link isn't unfurling in Slack, confirm that the **files:read** token allows **Bots** in the Tableau app for [Slack Permissions Scopes](https://api.slack.com/scopes). [Skip to main content](#main-content) # Interact with Data in Tableau This tutorial walks you through some of the basics of viewing and interacting with data visualisations, or views, in Tableau Server. Tableau is a tool that lets you interact with published visualisations to explore insights, ask questions and stay on top of your data. Here’s how to get started. ## Go ahead. It’s safe to click around Tableau is built for interaction. What you do to a visualisation changes how it looks for you, just for now. Others will still see the visualisation as it originally appeared. And the data used to build it stays the same, too. ## 1: What is a Tableau Site? A Tableau Site is a place for your team to share data and data visualisations with each other. You can explore what they’ve published and made available to you. When you sign in to your Tableau site, you’ll land on the home page. ![Viewer login page on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Viewer_sign_in.gif) ## 2: Search for a viz Tableau calls visualisations on a site Views. Use search to find views or workbooks (a package of views in a single file). Search results will show all the different content types relevant to your query. ![A viewer can search for views and workbooks on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Viewer_search.gif) You can select See All for all search results if the views in the quick search aren’t what you were looking for, or use the Explore page to browse. There you’ll see all the different types of content a Tableau site can host. ## 3: Interact with Content A published view is a canvas for you to interact and understand your data. Remember, you won’t hurt or change the underlying data, or change what others see. Here are some of the tools in your toolbox to find data insights. ### See Details and Sort Data Now that you know you can click on the data, let’s check it out. As you move the mouse across a view, you might see tooltips that reveal details about each data point, or mark. You can also select multiple marks. ![A viewer hovering over marks on a published viz.](/tableau/current/en-gb/server-linux/en-gb/Img/Viewer_details.gif) Sort tables alphabetically or numerically by hovering over a column header and clicking the sort icon. ![A viewer can sort data on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/viewer_sort.gif) ### Filter Data Trim or limit the visible data to a specific area, date or category. ![A viewer can filter the data on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Viewer_filter.gif) ### Undo/Revert Maybe you didn’t mean to exclude everything but one area. Click Undo to remove the last change, or use Revert to undo all your selections. ![Undo button on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Viewer_undo.gif) ## 4: Keep up This view can automatically update with new data, so you don’t need to go searching for new charts to get the latest information. Keep it handy by clicking the star icon to add it to your favourites. ![Favourite a view on Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Viewer_favorites.gif) All favourites are added to the Favourites page in the navigation panel. And any recent dashboard or view you explored also appears in the Home page, waiting for you next time. ![Access favourited workbooks on the Home tab in Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/Viewer_favoriteshome.gif) There’s a lot you can do in Tableau Server, and this just explored some of the basics. For more information, see What Can I Do with a Tableau Web View? Happy exploring! [Skip to main content](#main-content) # Interpret a Performance Recording Create a recording to evaluate the performance of your workbook. After you have completed the recording, you can download the resulting workbook and open it in Tableau Desktop for analysis. A performance recording workbook contains two main dashboards: Performance Summary and Detailed Views. The Performance Summary dashboard provides a high-level overview of the most time-consuming events. The Detailed Views dashboard provides a lot more detail and is intended to be used by advanced users when building workbooks. The **Detailed Views** dashboard is only visible when the performance recording workbook is opened using Tableau Desktop. For information on how to create a performance recording in Tableau Server, see [Create a Performance Recording](https://help.tableau.com/current/server-linux/en-gb/perf_record_create_server.htm). ## Performance Summary The **Performance Summary** dashboard contains three views: **Timeline**, **Events** and **Query**. ### Timeline The uppermost view in the performance summary recording dashboard shows the events that occurred during recording, arranged chronologically from left to right. The bottom axis shows elapsed time since Tableau started, in seconds. In the Timeline view, the **Workbook**, **Dashboard** and **Worksheet** columns identify the context for events. The **Event** column identifies the nature of the event, and the final column shows each event’s duration and how it compares chronologically to other recorded events: ![Workbook performance timeline, showing events while recording timeline.](/tableau/current/en-gb/server-linux/en-gb/Img/PerformanceTimeline.png) ### Events The middle view in a performance summary dashboard shows the events, sorted by duration (greatest to least). Events with longer durations can help you identify where to look first if you want to speed up your workbook. ![A horizontal bar chart displaying the duration of various events, arranged by time, with the lengthiest event positioned at the top.](/tableau/current/en-gb/server-linux/en-gb/Img/PerformanceEvents.png) Different colours indicate different types of events. The range of events that can be recorded is: - Computing layouts If layouts are taking too long, consider simplifying your workbook. - Connecting to data source Slow connections could be due to network issues or issues with the database server. - Compiling query This event captures the amount of time spent by Tableau in generating the queries. Long compile query times indicate that the queries generated are complex. The complexity may be due to too many filters, complex calculations or generally due to a complex workbook. Examples of complex calculations include, lengthy calculations, LOD calculations or nested calculations. Try simplifying the workbook, using action filters or moving calculations to the underlying database. - Executing query - For live connections, if queries are taking too long, it could be because the underlying data structure isn’t optimised for Tableau. Consult your database server’s documentation. As an alternative, consider using an extract to speed performance. - For extracts, if queries are taking too long, review your use of filters. If you have a lot of filters, would a context filter make more sense? If you have a dashboard that uses filters, consider using action filters, which can help with performance. - Generating extract To speed up extract generation, consider only importing some data from the original data source. For example, you can filter on specific data fields, or create a sample based on a specified number of rows or percentage of the data. - Geocoding To speed up geocoding performance, try using less data or filtering out data. - Blending data To speed up data blending, try using less data or filtering out data. - Server rendering You can speed up server rendering by running additional VizQL Server processes on additional machines. ### Query **Note**: Beginning in Tableau Desktop version 2024.2.x, performance recordings from a workbook connected to a published data source in Tableau Cloud do not include the `Executing query` event. This is replaced by `executeQueries` and is by design. If you click on an **Executing Query** event in either the **Timeline** or **Events** section of a performance summary dashboard, the text for that query is displayed in the Query section. If you are connected to a published data source, the query text is displayed in XML. If you are connected to the data source directly, the query is displayed in SQL like shown below: ![SQL query for selecting state data.](/tableau/current/en-gb/server-linux/en-gb/Img/PerformanceQuery.png) If it makes sense, you can use the query text to work with your database team on optimising at the database level. Sometimes the query is truncated and you’ll need to look in the Tableau log to find the full query. Most database servers can give you advice about how to optimise a query by adding indexes or other techniques. See your database server documentation for details. Sometimes for efficiency, Tableau combines multiple queries into a single query against the data. In this case, you may see an Executing Query event for the Null worksheet and zero queries being executed for your named worksheets. ## Detailed Timeline This view is the detailed version of the **Timeline** view that shows all events and separating individual items that were grouped in the **Timeline** view. It is intended to be used by advanced users during workbook designs. ## Detailed Views The **Detailed Views** dashboard contains **Depth**, **Exclusive CPU**, **Inclusive CPU** and **Elapsed Time** views. ### Depth The **Depth** view is the uppermost view in the **Detailed Views** dashboard and provides insight into what happens when a request is made. This view is the most useful when filtered to a single user request. Examples of user requests are: loading a view, selecting a mark or changing a filter. ![A chart displaying activities by depth and commencement time.](/tableau/current/en-gb/server-linux/en-gb/Img/performance-depth.png) Each bar on the depth view represents a single activity. An activity is a unit of work that is done as part of processing a user request. A single user request results in multiple activities. The length of each bar on the depth view is proportional to the elapsed time for the activity that the bar represents. High level activities appear at the top of the view. Activities lower down are child activities generated by high level activities. Hovering over each bar provides additional details about the activity and also highlights the corresponding row in the **CPU** and **Elapsed Time** view described in the next section. In order to narrow down on what parts of the request took the most time, investigate long running activities at the highest levels. ### CPU and Elapsed Time The **CPU** and **Elapsed Time** views appear lowermost in the **Detailed Views** dashboard. You can toggle between **Exclusive CPU**, **Inclusive CPU** and **Elapsed Time** views by clicking on the radio buttons. ![A menu with three options: Exclusive CPU, Inclusive CPU and Elapsed Time. Each option is accompanied by a description of its use.](/tableau/current/en-gb/server-linux/en-gb/Img/performance-cpu-elaspsedTime.png) While the **Depth** view can help in quick visual identification of long running activities, it may not necessarily highlight activities that happen multiple times with each instance taking a small amount of time. The **Exclusive CPU**, **Inclusive CPU** and the **Elapsed Time** views provide aggregate statistics for each activity. The number of times an activity took place is shown in the **Count** column and the total amount of time taken by a single activity is shown using the bar chart. Sometimes for efficiency, Tableau combines multiple queries into a single query against the data. In this case, you may see an **Executing Query** event for the Null worksheet and zero queries being executed for your named worksheets. [Skip to main content](#main-content) # Invalid User (SharePoint or C#) You may encounter this error if you’ve configured Tableau Server for trusted authentication. The example code for the SharePoint .dll references the following GET request: SPContext.Current.Web.CurrentUser.Name The above request will return the display name of the current Windows Active Directory user. If you want to use the login ID, then you will need to change the code to: SPContext.Current.Web.CurrentUser.LoginName After you make the change, recompile the SharePoint .dll. [Skip to main content](#main-content) # Investigating Slow View Load Requests The **Slow View Load Requests** chart on the performance page is a useful metric for understanding the performance of views and the resulting impact on user interactions on Tableau Server. The Slow View Load Requests chart shows when views are rendering more slowly than normal on Tableau Server. To do this, the chart uses a **baseline** that is established for each view and then uses it to compare the time it takes to render that view to determine if the view is taking longer than expected. **In version 2021.4**, the baseline is established by calculating the median value of the first 10 times a specific workbook is rendered successfully. **In version 2021.4.1** and later, the baseline is established by calculating the 95th percentile of 50 times a specific workbook is rendered successfully. Once the baseline is established, every time that same workbook is rendered in the future, the time taken for a workbook to load is then compared to its baseline. Depending on whether the time taken to render the view falls within the expected range or at varying degrees outside of the expected range, they are categorised as follows: - **Normal:** <=2x baseline - **Long:** >=2x baseline - **Very Long:** >=4x baseline - **Failed:** Failed to load or resulted in an error **Note**: This baseline and the comparisons only apply to initial rendering of the view. It does apply to subsequent actions like filter selections. Also, when you publish a new version of the workbook, it triggers a recalculation of the baseline. The chart shows the percentage of view loads that are outside of the normal range for the selected time range. So, if you see yellow (Long) or red (Very Long) spikes on this chart, that is the first indication that there is likely a problem. **Tip:** Selecting the “Past 48 hours” time range might be a good place to start as it will give you some context on activity in the past versus current. ![A bar chart that illustrates slow view load requests.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-slow-view-loads-chart.png) The **Concurrent Users** and the **Total View Load Requests** charts on the same page can be used to see the scope of the impact resulting from slow view loads in the same time range. You can also use the **Tableau Processes** chart to identify any correlations between the slow view load performance and resource usage – for example, you might see high VizQL Server resource usage on specific nodes during the same time that you are seeing spikes in the **Slow View Load Requests** chart. If you see a spike in the slow view load request chart, you can then start to drill down further to identify what might be causing the issue – whether the problem is due to a single view or a much broader issue. To do this, within the **Slow View Load Requests** chart, select a range to include a large portion of the slow views. This will take you to the **View Loads** activity page, showing you view load requests for the same time frame. Filter by **Load Time Severity Category** and select the appropriate category for the view loads you want to investigate. ![A dropdown menu lists filtering options: Duration, Load Time, Severity Category, Site, User and View.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-slow-view-loads-activity.png) The list should indicate which views might have caused the chart results and can be understood in the following ways: **Multiple views:** If the list shows multiple views, this is likely a broader issue with Tableau Server. Go back to the performance page, and have a look at the **Performance** and **Tableau Server Processes** chart to investigate the resource usage. The **Status** tab on the performance page will show the status of the processes whether they are active, busy or down. Look for the VizQL Server, Data Server and the Data Engine processes on this list. **Same view:** If the list is mostly one single view, this could mean that there is an issue with that view or workbook. Further investigation might be needed to see what might be causing the problem. Click on the **view name** in the list to see more information about load times, related data queries and VizQL sessions. ![A line chart showing load times from 17 November to 1 December.](/tableau/current/en-gb/server-linux/en-gb/Img/rmt-slow-view-loads-view-load-time-chart.png) > [!IMPORTANT] > > **Important!** On the **Load Times** chart, if the average load time is consistent even when adjusting the date range to span just before and after the spike began, it means that the baseline calculation was likely created when view loads were heavily cached, causing subsequent view loads to be considered 'slow'. This scenario does not reflect an issue with Tableau Server or the view. If this is the case, you can trigger a recalculation of the baseline by publishing a new version of the workbook. Here are some resources to help with performance troubleshooting for a specific view: - [Optimise Workbook Performance](https://help.tableau.com/current/pro/desktop/en-gb/performance_tips.htm) - [Record and Analyse Workbook Performance](https://help.tableau.com/current/pro/desktop/en-gb/perf_record_create_desktop.htm) ## Who can do this Any Resource Monitoring Tool user can view the charts. [Skip to main content](#main-content) # Jump-start Installation This topic provides all of the steps required to perform a basic, quick-start installation of Tableau Server using the command line. The purpose of the configuration described here is to provide the quickest, simplest path to a Tableau Server installation on a computer running a supported CentOS or Ubuntu distribution of Linux. Use this procedure as practice, to try out the Tableau Server installation, management and user experience before your actual server deployment. **Important**: Do not use this procedure as a stand-alone resource for deploying Tableau Server into a production environment. To deploy Tableau Server into a production environment, refer to the content at [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm). The procedures in this topic will install an instance of Tableau Server for Linux with the following characteristics: - Operating system: Supported RHEL-like Linux distribution or Ubuntu. (As of July 2022, Tableau no longer supports Debian distributions. For more information, see [this Tableau Community post](https://community.tableau.com/s/news/a0A4T0000011xDOUAY/debian-end-of-life).) - Identity store: local authentication - Gateway port: 80 - Tableau Server administrator account: admin ## Before you begin Review the topic, [Before you install...](https://help.tableau.com/current/server-linux/en-gb/requ.htm). The procedure below assumes that you have installed Linux on conforming hardware and according to the environmental requirements specified in that topic. Note that the computer you install on must meet the minimum hardware requirements specified in [Minimum Hardware Requirements and Recommendations for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/server_hardware_min.htm). The setup program will not install Tableau Server onto systems that do not meet the minimum hardware requirements. ## Step 1: Install Tableau Server package and start Tableau Services Manager Install Tableau Server with your distribution package manager, then run a script to initialise Tableau Services Manager (TSM). Tableau Services Manager is a the management toolset used to install, configure and manage Tableau services. The initialise script is included with the installed package. For more details, see [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm). 1. Log on as a user with `sudo` access to the computer where you want to install Tableau Server. 2. Navigate to the directory where you copied the Tableau Server installation package. 3. Use the package manager to install the Tableau Server package. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb 4. Navigate to the `scripts` directory: cd /opt/tableau/tableau\_server/packages/scripts./ 5. Run the following script to start TSM: `sudo ./initialize-tsm --accepteula` 6. After initialisation is complete, close the terminal session: `exit` or `logout` ## Step 2: Activate and register Tableau Server Before you can configure Tableau Server, you must activate a licence and register. For more details, see [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm). 1. Open a Bash session and sign in with the same account that you previously used to run `initialize-tsm`. 2. Activate the Tableau Server licence. Run the following command: `[tsm licences](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm) activate -k ` 3. Register Tableau Server. Generate a template that you can edit by running the following command: `[tsm register](https://help.tableau.com/current/server-linux/en-gb/cli_register_tsm.htm) --template > /path/to/registration_file.json` 4. Open a text editing program, fill in the registration file, save it, then pass it with the following command: `[tsm register](https://help.tableau.com/current/server-linux/en-gb/cli_register_tsm.htm) --file /path/to/registration_file.json` ## Step 3: Configure local identity store You must configure the identity store settings. This procedure simplifies installation setting identity store to local authentication. Workbook examples are installed by default. For more details on customising these defaults, see [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). - Pass the configuration file with the following command: ``[tsm settings](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm) import -f `/opt/tableau/tableau_server/packages/scripts./`config.json`` ## Step 4: Finalise installation The final steps of installation are to apply changes, initialise and start TSM, and then to create the administration account. More details about these steps are at [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). 1. Apply the configurations you made in the previous steps. Run the following command: `[tsm pending-changes](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm) apply` 3. Initialise and start Tableau Server. Run the following command: `[tsm initialise](https://help.tableau.com/current/server-linux/en-gb/cli_initialize_tsm.htm) --start-server --request-timeout 1800` 5. Create the Tableau Server administrator account. Run the following command: `tabcmd [initialuser](https://help.tableau.com/current/server-linux/en-gb/tabcmd_cmd.htm#initialu) --server 'localhost:80' --username 'admin' --password ''` Where `''` is a strong password. Enclose the password and other arguments in single quotes. Use the `admin` account that you created to access the Tableau Server admin web pages. See [Sign in to the Tableau Server Admin Area](https://help.tableau.com/current/server-linux/en-gb/sign_in_server_admin.htm). ## Step 5: Install PostgreSQL drivers To validate that Tableau Server is installed and running properly and to review the built-in administrative views, you must install the PostgreSQL driver. 1. Download PostgreSQL drivers from the [Driver Download page](https://www.tableau.com/en-gb/support/drivers). 2. Copy the .jar file to this folder (you may have to create it manually): `/opt/tableau/tableau_driver/jdbc`. 3. Restart TSM: `tsm restart` 4. To validate that the drivers installed, navigate to the [Administrative Views](https://help.tableau.com/current/server-linux/en-gb/adminview.htm) in Tableau Server. [Skip to main content](#main-content) # Keep Data Fresh The topics in this section describe how to manually refresh data, as well as schedule data refreshes. ## Other articles in this section [Skip to main content](#main-content) # Kerberos Kerberos is a three-way authentication protocol that relies on the use of a trusted third-party network service called the Key Distribution Center (KDC) to verify the identity of computers and provide for secure connections between the computers through the exchange of _tickets_. These tickets provide mutual authentication between computers or services, verifying that one has permission to access the other. Tableau Server supports Kerberos authentication in an Active Directory Kerberos environment, with authentication to Tableau Server being handled by Kerberos. **Notes**:  - The Kerberos support in Tableau Server is for user authentication. It does not handle internal permissions and authorisation related to Tableau Server content, such as workbooks. - Identity pools, which is a tool designed to complement and support additional user provisioning and authentication options you might need in your organisation, supports OpenID Connect (OIDC) authentication only. For more information, see [Provision and Authenticate Users Using Identity Pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm). ## How Kerberos works When you configure Tableau Server for Kerberos in an Active Directory (AD) environment, the AD domain controller also serves as the Kerberos Key Distribution Center (KDC) and issues Ticket Granting Tickets to the other nodes in the domain. Users authenticated by the KDC do not have to authenticate further when connecting to Tableau Server. The following is a diagram of the authentication workflow. ![A diagram illustrating the authentication process for a Tableau Server user.](/tableau/current/en-gb/server-linux/en-gb/Img/kerb_client_server.png)
A blue circle with a white number 1 in the centre.User logs into their Active Directory domain.A blue circle with a white number 2 in the centre.The Kerberos KDC authenticates the user and sends a Ticket Granting Ticket (TGT) to the user's computer.
A blue circle with a white number 3 in the centre.The user connects to Tableau Server in Tableau Desktop or in a web browser.A blue circle with a white number 4 in the centre.

Tableau Server authenticates the user.

## Other articles in this section [Skip to main content](#main-content) # Kerberos Requirements You can configure Kerberos authentication for Tableau Server running in Active Directory environments. ## General requirements - External Load Balancer/Proxy Server: If you are going to use Tableau Server with Kerberos in an environment that has external load balancers (ELBs) or proxy server, you need to set these up before you configure Kerberos in the Tableau Server Configuration utility. See [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm). - iOS Browser Support: An iOS user can use Kerberos authentication with mobile Safari if a Configuration Profile specifying the user's Kerberos identity is installed. See [Configuring an iOS Device for Kerberos Support](https://help.tableau.com/current/mobile/mobile-admin/en-gb/admin_mobile_sso.htm) in the Tableau Mobile Help. For more information about browser support for Kerberos SSO, see [Tableau Client Support for Kerberos SSO](https://help.tableau.com/current/server-linux/en-gb/kerberos_browser.htm). - Tableau Server supports constrained delegation for authentication to data sources. In this scenario, the Tableau data access account is specifically granted rights to the target database SPNs. Unconstrained delegation is not supported. - The supported data sources (SQL Server, MSAS, PostgreSQL, Hive/Impala and Teradata) must be configured for Kerberos authentication. - A keytab file that is configured with the service provider name for the Tableau Server for user authentication. For more information, see [Understanding Keytab Requirements](https://help.tableau.com/current/server-linux/en-gb/kerberos_keytab.htm#kerb). - Beginning in Tableau Server 2021.2.25, 2021.3.24, 2021.4.19, 2022.1.15, 2022.3.7 and 2023.1.3 (or later), ensure keytab files are created with AES-128 or AES-256 ciphers. RC4 and 3DES ciphers are no longer supported. For more information, see ["Tableau Server could not authenticate you automatically"](https://kb.tableau.com/articles/Issue/tableau-server-could-not-authenticate-you-automatically-error-occurs-when-attempting-to-automatically-login-using-kerberos-sso-after-tableau-server-upgrade?lang=en-gb) in the Tableau Knowledge Base. ## Active Directory requirements You must meet the following requirements to run Tableau Server with Kerberos in an Active Directory environment: - Tableau Server must use Active Directory (AD) for authentication. - The domain must be an AD 2003 or later domain for Kerberos connections to Tableau Server. - Smart Card Support: Smart cards are supported when users sign into their workstations with a smartcard and this results in a Kerberos TGT being granted to the user from Active Directory. - Single-Sign On (SSO): Users must be granted a Kerberos Ticket Granting Ticket (TGT) from Active Directory when they sign into their computers. This is standard behaviour for domain-joined Windows computers and standard for Mac computers that use AD as their network account server. For more information on using Mac computers and Active Directory, see [Join your Mac to a network account server](https://support.apple.com/guide/mac-help/join-your-mac-to-a-network-account-server-mh27627/mac) in the Apple Knowledge Base. ### Kerberos delegation For Kerberos delegation scenarios the following are required: - If the domain is AD 2003 or later, single domain Kerberos delegation is supported. The users, Tableau Server and backend database must be on the same domain. - If the domain is AD 2008, there is limited cross domain support. Users from other domains can be delegated if the following conditions are met. Tableau Server and the backend database must be on the same domain, and a two way trust is required between the domain where Tableau Server resides and the user’s domain. - If the domain is 2012 or later, full cross-domain delegation is supported. AD 2012 R2 is preferred because it has a dialog for configuring constrained delegation, while 2012 non-R2 requires manual configuration. [Skip to main content](#main-content) # kerberosSettings Entity Before you configure Kerberos authentication, review [Kerberos Requirements](https://help.tableau.com/current/server-linux/en-gb/kerberos_requ.htm). Use the configuration file template below to create a json file. After you have filled in the options with the appropriate values, pass the json file and apply settings with the following commands: `tsm settings import -f /path/to/file.json` `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ## Configuration template Use this template to configure Kerberos settings. **Important:** All entity options are case sensitive. For more explanation about configuration files, entities and keys see [Configuration File Example](https://help.tableau.com/current/server-linux/en-gb/config_file_example.htm). After you have finished with the initial configuration of Kerberos authentication, use the [tsm authentication kerberos ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#TSMKerb) sub-category to set additional values. { "configEntities": { "kerberosSettings": { "\_type": "kerberosSettingsType", "enabled": "true", "keytabFile": "/path/to/keytab\_file" } } } ## Configuration file reference The following list includes all of the options that can be included with the `"kerberosSettings"` entity set. Option Value enabled Options: `true` or `false`. Enables Kerberos authentication. keytabFile Required. Path to valid Kerberos keytab file. dBClasses Comma-separated list of database classes for global credentials. May be required for connecting to Cloudera data sources. [Skip to main content](#main-content) # Labels with Custom Categories > [!WARNING] > > As of 14 October 2025, Data Cloud has been rebranded to Data 360. During this transition, you may see references to Data Cloud in our application and documentation. While the name is new, the functionality and content remains unchanged. Tableau offers several data labels – certification, quality warnings and sensitivity labels – that cover a wide variety of ways to classify data. Still, there may be times that users need other labels and categories that match other use cases. Starting in Tableau Cloud October 2023 and Tableau Server 2023.3, users can classify assets using labels with custom categories that an administrator has defined. For example, an administrator could create a category called "Department" with labels for the sales, service and operations departments ready to be applied to assets. Labels with custom categories require a Data Management licence with Tableau Catalogue enabled, and can be attached to the same kinds of assets that other data labels can. However, labels with custom categories don't show on downstream assets the way that data quality warnings and sensitivity labels do. Note: If you're an administrator who wants to create custom categories and labels, see [Manage Data Labels](https://help.tableau.com/current/server-linux/en-gb/dm_labels_manage.htm). ## Attach labels with custom categories to an asset Note: Starting in Tableau Cloud February 2024 and Tableau Server 2024.2, you add and remove labels with custom categories using the consolidated Data Labels dialog instead of separate dialogs for each type of label. For information on the Data Labels dialogue, see [The Data Labels dialog](https://help.tableau.com/current/server-linux/en-gb/dm_labels.htm#data-labels-dialog). To attach a label with a custom category to an asset: ### In Tableau Cloud and Tableau Server 2024.2 and later 1. Search for or navigate to the asset. The steps to navigate depend on the type of asset you want to add the label to: - Data source or virtual connection – on the Explore page, select All Data Sources or All Virtual Connections. - Virtual connection table – on the Explore page, select All Virtual Connections, and select the virtual connection that contains the virtual connection table you want to certify. Then select the virtual connection table. - Database or table – on the Explore page, navigate to the database or table. Or on the External Assets page, select Databases and Files or Tables and Objects. - Column – on the Explore page, navigate to the table. Or on the External Assets page, select Tables and Objects and navigate to the table. Then find the column in the list. 2. Select the actions menu (...) next to the asset, and then select Data Labels > All Data Labels. 3. Select the vertical tab on the left side of the dialog that corresponds to the custom label category. Optionally, if you know the name of a label, you can search for it at the top of the dialog. 4. Select the tick box beside labels you want attached to the asset. 5. If desired, enter a message to display to users. You can format the text in a message with bold, underline and italics, and include a link or an image. To see text formatting tips, hover over the information (i) icon above the Save button. 6. Repeat steps 3 to 5 for each label you want to add. 7. Select Save. ![Data Labels dialog on custom category tab](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_data_labels_dialog_custom_category.png) ### In Tableau Server 2023.3 1. Select the actions menu (...) next to the asset, and then select Data Labels > More Data Labels. 2. Select the Labels drop-down. The label names are arranged by label category, and you can scroll through them. ![Selecting a label in the More Data Labels dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_custom_category_add_1_246.png) 3. Select the label to attach, then select Add next to the Labels dropdown. The label appears in the Applied Labels list on the right side of the dialog. 4. To add an optional label message on this specific asset, select the pencil in the Messages (Optional) column, then select Save. ![Adding a message in the More Data Labels dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_custom_category_add_2_246.png) 5. Repeat steps 2 to 5 for each label you want to add. 6. When you're finished adding labels, close the dialog. (Select the X in the dialog box's upper right corner or select something outside of the dialog box to close it.) ## Remove labels with custom categories from an asset Note: Starting in Tableau Cloud February 2024 and Tableau Server 2024.2, you add and remove labels with custom categories using the consolidated Data Labels dialog instead of separate dialogs for each type of label. For information on the Data Labels dialogue, see [The Data Labels dialog](https://help.tableau.com/current/server-linux/en-gb/dm_labels.htm#data-labels-dialog). To remove a label with a custom category from an asset: ### In Tableau Cloud and Tableau Server 2024.2 and later. 1. Search for or navigate to the asset. The steps to navigate depend on the type of asset you want to add the label to: - Data source or virtual connection – on the Explore page, select All Data Sources or All Virtual Connections. - Virtual connection table – on the Explore page, select All Virtual Connections, and select the virtual connection that contains the virtual connection table you want to certify. Then select the virtual connection table. - Database or table – on the Explore page, navigate to the database or table. Or on the External Assets page, select Databases and Files or Tables and Objects. - Column – on the Explore page, navigate to the table. Or on the External Assets page, select Tables and Objects and navigate to the table. Then find the column in the list. 2. Select the actions menu (...) next to the asset, and then select Data Labels > All Data Labels. 3. Select the vertical tab on the left side of the dialog that corresponds to the custom label category. Optionally, use the Selected Labels vertical tab to see all the labels attached to the asset. Or, if you know the name of a label, you can search for it at the top of the dialog. 4. Deselect the tick box beside labels you want removed from the asset. 5. Repeat steps 3 and 4 for each label you want to remove. 6. Select Save. ### In Tableau Server 2023.3 1. Select the actions menu (...) next to the asset, and then select Data Labels > More Data Labels. 2. In the Applied Labels section of the dialogue, select the trash icon in the row for the label to remove. ![Removing a label in the More Data Labels dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_custom_category_remove_246.png) 3. Repeat step 2 for each label you want to remove. 4. When you're finished removing labels, close the dialog. (Select the X in the dialog box's upper right corner or select something outside of the dialog box to close it.) ## Where labels with custom categories appear Custom labels appear on assets when navigating Tableau Cloud and Tableau Server. ![Label with custom category appearing on table page](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_custom_category_masthead.png) In web authoring, you can select a data source or a column and then select Catalogue Details to see all its labels. Unlike quality warnings and sensitivity labels, labels with custom categories don't appear downstream from assets they're attached to. For example, suppose your organisation has a custom label category named "Department" to which a custom label named "Sales" belongs. If you attach the "Sales" label to a table called "Orders", the label only appears on the "Orders" table and not on workbooks downstream from it. ## Who can add custom category labels To add a label with a custom category to an asset (or to remove one from an asset), you must either - be a server or site administrator, or - have the Overwrite capability for the asset. ## Customise a label with a custom category For information on how administrators can create or edit custom categories and labels that appear in the More Data Labels dialogue, see [Manage Data Labels](https://help.tableau.com/current/server-linux/en-gb/dm_labels_manage.htm). [Skip to main content](#main-content) # Language and Locale for Tableau Server Tableau Server is localised into multiple languages. Server language and locale settings impact how this affects users. The Language setting controls user interface (UI) items such as menus and messages. The Locale setting controls items in views such as number formatting and currency. Administrators can configure language and locale on a server-wide basis and individual users can configure their own settings (see [Your Account Settings](https://help.tableau.com/current/pro/desktop/en-gb/useracct.htm)) . If a user configures their own language and locale, their settings override the server settings. ## Supported Languages Tableau Server is localised into multiple languages. See the "Internationalisation" section of the [Tableau Server Technical Specification](https://www.tableau.com/en-gb/products/techspecs#server) page for more information. ## Default Settings The default language for Tableau Server is determined during Setup. If the host computer is configured for a language Tableau Server supports, Tableau Server installs with that language as its default. If computer is configured for a language that is not supported, Tableau Server installs with English as its default language. ## How Language and Locale are Determined Another influence on which language and locale display when a user clicks a view is the user’s web browser. If a server user has not specified a Language setting on their User Account page, and their web browser is set to a language that Tableau Server supports, the browser’s language will be used – even if Tableau Server itself is set to a different language. Here’s an example: Assume that Tableau Server has a system-wide setting of English as the Language for all users. Server user Claude does not have a language specified on his Tableau Server User Account page. Claude’s browser uses German (Germany) for its language/locale. When Claude signs in to Tableau Server, the server UI displays in German and when he clicks a view, the view uses the Germany locale for numbers and currency. If Claude had set his user account Language and Locale to French (France), the UI and view would have been displayed in French. His user account setting supersedes those of his web browser, and both of those have precedence over the Tableau Server system-wide setting. Another setting to be aware of is the Locale setting in Tableau Desktop (File \> Workbook Locale). This setting determines the locale of the data in the view, such as which currency is listed or how numbers are formatted. By default, Locale in Tableau Desktop is set to Automatic. However, an author can override that by selecting a specific locale. Using the above example, if the author of View A set Locale to Greek (Greece), certain aspects of the data in View A would display using the Greek (Greece) locale. Tableau Server uses these settings, in this order of precedence, to determine language and locale: 1. Workbook locale (set in Tableau Desktop) 2. Tableau Server User Account language/locale settings 3. Web browser language/locale 4. Tableau Server Maintenance page language/locale settings 5. Host computer’s language/locale settings [Skip to main content](#main-content) # Let Site Users Request Access to Content Permissions determine whether a user has viewing access to a workbook, data source or other content inside a project. If a user clicks on content or a project they don’t have access to, they can send a request for access to the owner who controls permissions for that content. ![Request access dialog](/tableau/current/en-gb/server-linux/en-gb/Img/request_access.png) When someone requests access, the owner who controls permissions for that content (either at the project or workbook level) receives an email with the name and email of the requester, the content or project requested, and a link to grant access to the content. In Tableau Server version 2022.3 and earlier, the owner receives a link to the content to manage permissions instead of a link to directly grant access. 1. On the email notification, select Grant Access. 2. On the dialog that appears, to grant the view permissions template, select Grant Access. To grant permissions other than the view template, select Manage Permissions. ![Grant access dialog](/tableau/current/en-gb/server-linux/en-gb/Img/grant_access.png) If a user requests access to a workbook and content permissions are locked to the project, then the project owner receives the request. Likewise, if a user requests access to a workbook and project permissions are managed by the workbook owner, then the workbook owner receives the request. After permission is granted, the owner can email the requester to let them know they have view capability to the project or workbook. ## Default settings The Request Access setting is enabled by default on a new site. To enable the setting if it's been disabled: 1. Go to the General tab of the Settings page for your site. - If you have a single site, on the side navigation, click Settings and General. - If you have multiple sites, select the site you want to configure and click Settings and General. 2. On the General tab, scroll down to Request Access and select Let users request access to projects, workbooks and views. 3. Click Save. ## Configure project permissions You can control who receives the access request by adjusting the project’s content permissions. If content permissions are: - Locked to the project: the project owner receives the request. - Customisable: The workbook owner receives the request. To manage content access using projects, see [Use Projects to Manage Content Access](https://help.tableau.com/current/server-linux/en-gb/projects.htm) and [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#lock-project-permissions). For more information about how permission rules are evaluated, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#evaluate-permission-rules): Evaluate permission rules. ## Change project permissions _For administrators and project leaders_ Permissions can be set at the project level for both the project itself and for any content in the project. For example, if workbook permissions are configured at the project level, all workbooks published into that project inherit those default permissions. However, the Creator can choose to change the permissions during publishing, or certain users can change the permissions on published content. To enforce the permissions established at the project level, **Content Permissions** can be locked to the project. For more information, see [Lock asset permissions](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm#LockProject). To set permissions at the project level: 1. Navigate to the project 2. Open the Actions menu (...) and click **Permissions**. The permissions dialog box opens. This dialog box has two main areas: permission rules at the top and the effective permissions grid below. Use the tabs to navigate between types of content. ![Project permissions window with the Group row highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_projectwrkbkperms.png) With a row selected at the top, the effective permissions grid populates. Use this to verify permissions. Hovering over a capability indicator provides information about why the capability is allowed or denied for that specific user. 6. To modify an existing permission rule, select the rule and click the capability boxes to toggle through allowed/denied/unspecified. 7. To create a new rule, 1. Select \+ Add Group/User Rule. 2. Select a group or user from the drop-down box. This creates a row where you can configure the permission rule. 8. In the row for the permission rule 1. choose an existing permission role template from the drop-down box for each content type tab. ![Permission rules window with the Explore option selected from the Custom template menu.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_projwkbk_templates.png) 3. Or create a custom rule by navigating to a content type tab and clicking the capabilities. One click sets the capability to **Allowed**, two clicks sets it to **Denied** and a third click clears the selection (**Unspecified**). 9. When finished, click **Save**. ## Change content permissions _For administrators, project leaders and content owners_ If project permissions are customisable, permissions for individual pieces of content can be modified. > [!WARNING] > > Tableau recommends locking permissions to the project. These steps are relevant only for content in projects where permissions are customisable. ### Set permissions on content 1. Navigate to the content (workbook, data source, flow, data role) 2. Open the Actions menu (...) and click **Permissions**. The permissions dialog box opens. This dialog box has two main areas: permission rules at the top and the effective permissions grid below. ![Table of user permissions and site roles.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_workbook_siteroles.png) With a row selected at the top, the effective permissions grid populates. Use this to verify permissions. Hovering over a capability square provides information about why the capability is allowed or denied for that specific user. 6. To modify an existing permission rule, open the Actions menu (...) for that row and click **Edit**. 7. To create a new rule, 1. Select \+ Add a user or group rule. 2. If necessary, use the drop-down box on the right to change between groups and users. 3. Select a group or user from the drop-down box. This creates a row where you can configure the permission rule. 8. In the row for the permission rule, choose an existing permissions role template from the drop-down box or create a custom rule by clicking the capabilities. One click sets the capability to **Allowed**, two clicks sets it to **Denied** and a third click clears the selection (**Unspecified**). 10. When finished, click **Save**. ### Set permissions on a view In some situations, it may be valuable to specify permissions on a view independently from the workbook that contains it. To set permissions on a published view, navigate to the view within a published workbook and follow the steps above. > [!WARNING] > >  While it is possible to set view-level permissions within a workbook, we strongly recommend managing permissions at the project (or workbook) level as much as possible. For views to inherit permissions, the project must be locked or the workbook must be published with **Show Sheets as Tabs**. See [Let Site Users Request Access to Content](#sheettabs) for more information. [Skip to main content](#main-content) # Leverage User Attribute Functions (UAF) with Tableau Lightning Web Components You can leverage User Attribute Functions (UAF) with your Tableau View and Pulse Lightning web components (LWC) to surface specific data based on the attributes of the user looking at a visualisation. [User attribute functions](https://help.tableau.com/current/pro/desktop/en-gb/functions_functions_user.htm) provide row-level security so that people viewing your visualisation only see data relevant to them. For more information about UAFs, see [Unlock the Power of Personalised Analytics with User Attribute Functions](https://www.tableau.com/en-gb/blog/unlock-power-personalized-analytics-user-attribute-functions). Prerequisites - Single Sign-On (SSO) with Token Authentication is configured for Tableau Lightning Web Components. See [Configure Tableau Lightning Web Components and Single Sign-On (SSO) with Token Authentication](https://help.tableau.com/current/server/en-gb/lwc_seamless_auth.htm). - Tableau is configured to capture user attributes in authentication workflows. See [Allow capture of user attributes](https://help.tableau.com/current/server/en-gb/lwc_seamless_auth.htm#allow-capture-of-user-attributes). - Tableau content to be embedded includes [user attribute functions](https://help.tableau.com/current/pro/desktop/en-gb/functions_functions_user.htm). For an example of how to use user attribute functions in a Tableau workbook, see [Ensure the content author includes user attribute functions](https://help.tableau.com/current/api/embedding_api/en-gb/docs/embedding_api_user_attributes.html#4-ensure-the-content-author-includes-user-attribute-functions). ## Tableau UAF Claims Definitions in Salesforce Tableau UAF claim definitions allow you to include claims for user attributes in the JWT. The values for these attributes can be pulled from Account, User, Opportunity or Case objects in Salesforce. When used in conjunction with user attribute functions in Tableau content, only data matching the specified attributes is displayed. For example, a Tableau dashboard may be configured to only show sales data where the value in its \[State/Province\] data column matches one of the values in the JWT claim for the attribute 'state'. **Syntax**: USERATTRIBUTEINCLUDES('attribute\_name', expected value) **Example**: USERATTRIBUTEINCLUDES('state', \[State/Province\]) Creating a claim definition in Salesforce can include the appropriate user-specific information in the JWT. In this example, the attribute 'state' may be populated with values from Accounts where the current user is the Account Owner by pulling values from the Billing State/Province field. **Example Claim Definition** - Definition Name: state\_Account\_BillingState - Attribute Name: state - Target Object: Account - Target Object Field: Billing State/Province - Viewer Target Object Relationship: Current Viewer is the Account Owner In the case of a sales representative who owns accounts in Washington, Oregon and California, the JWT will include a claim for 'state' with the values \[WA, OR, CA\]. The Tableau dashboard would then only show data with \[State/Province\] values matching WA, OR or CA. ## Support for External Users in Experience Cloud User Attribute Functions (UAF) and Host Mapping are supported for **external users** accessing Tableau through Experience Cloud sites. This allows Salesforce attributes associated with the logged-in external user to be included in the JWT, enabling personalised Tableau views based on that user’s data. External users include authenticated Experience Cloud users such as Partner and Customer Community users. **Guest users are not supported.** To ensure proper functionality: - External users must have access to the relevant records used by UAF and Host Mapping. - The following objects must be configured to allow external access (for example, Public Read Only): - Analytics User Attribute Function Token - Host Mapping - UAF claims must be created and configured by an internal Salesforce user with Setup access. With the appropriate sharing configuration in place, UAF and Host Mapping will function the same for external users as they do for internal users. ## Create a definition To create a user attribute definition, follow these steps: 1. From your Salesforce app, select the gear in the top-right corner, and then select Setup. 2. On the left navigation pane, enter “Tableau” in the Quick Find search bar. 3. Select the Tableau UAF Claims Definition settings page. 4. Select Create New. 5. Fill in the definition values: 1. Definition Name: Enter a unique name. (Example: state\_Account\_BillingState) 2. Attribute Name: Enter the attribute name specified by the user attribute function in Tableau. (Example: state) 3. Target Object: Select the target object from which you want to pull the values. Tableau LWCs currently support the User and Account objects. 4. Target Object Field: Select the field on the target object from which you want to pull the values. (Example: Billing State/Province) 5. Viewer Target Object Relationship: Select the relationship between the current viewer and the Target Object. (Example: Current Viewer is the Account Owner). 6. Select Save. Or if you want to return to the Tableau UAF Claims Definition settings page without saving, select Cancel. ## Add a definition to a Tableau Lightning web component page ### Home, App and Record Lightning pages To add a definition: 1. Select Select…. 2. Use the arrows to move available definitions to the Selected field. 3. Select OK. 4. Repeat for all Tableau Lightning web components on the same page. For more information, see [Considerations for multiple components on the same page](#Consider). ### Experience Cloud pages and the Utility Bar Enter a comma-separated list of UAF claim definition names. To copy definition names, from the Salesforce app, navigate to the Tableau UAF Claims Definition setup page and select Copy. ### Considerations for multiple components on the same page If multiple Tableau View or Tableau Pulse Lightning web components are added to the same page, each component must have the same set of UAF Definition Names. Only one of the components authenticates to Tableau, and that session will be used to load both components. This means that the relevant user attribute information for both components must be present in that session, no matter which component does the authentication. For example: - If you have two Tableau View components and one needs user attribute information from Definition A and the other needs the user attribute information from Definition B, both components must include both Definitions A and B. - If a Tableau View component needs Definition A but the Tableau Pulse component on the same page doesn’t need any user attribute information, both components must include Definition A. ## Delete a definition To delete a user attribute definition, follow these steps: 1. From your Salesforce app, select the gear in the top-right corner, and then select Setup. 2. On the left navigation pane, enter “Tableau” in the Quick Find search bar. 3. Select the Tableau UAF Claims Definition settings page. 4. Select Delete for the definition that you want to delete. ### Home, App and Record Lightning pages If you delete a definition that is already added to a Tableau LWC, refresh the page in Lightning App Builder to update the available definitions. Deleted definitions are automatically removed. ### Experience Cloud pages and the Utility Bar Deleted definitions are not automatically removed from the Tableau LWC component field. Deleted definitions in the UAF Definition Names component field won’t cause problems but will create unnecessary and confusing clutter. To remove definitions from the Tableau LWC component field, select the UAF Definition Names field and manually delete any names that are no longer in use. [Skip to main content](#main-content) # Licence Data Management **Important:** As of 16 September 2024, Data Management is no longer available as an independent add-on option. Data Management capabilities are only available if you previously purchased Data Management, or if you purchased certain licence editions: Tableau Enterprise, Tableau Cloud+ or Tableau+ Bundle (available for Tableau Cloud), or Tableau Enterprise or Tableau Server+ (available for Tableau Server). Data Management includes Tableau Catalog, Tableau Prep Conductor, virtual connections and data policies and is available when you purchase Tableau Enterprise. Contact your account manager (or go to the Tableau [pricing](https://www.tableau.com/en-gb/pricing/teams-orgs) page) for more information. Data Management can only be activated on a licensed Tableau Server Deployment. A Deployment includes a licensed production Tableau Server installation and licensed non-production Tableau Server installations that support the production installation. For more information on Deployment, see the [EULA Documentation](http://www.tableau.com/en-gb/legal/Documentation). ## Tableau Prep Conductor When you purchase Tableau Enterprise, you must enable Prep Conductor on Tableau Server. For more information, see [Enable and Configure Tableau Prep Conductor on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_config_server_overview.htm). - When Data Management is active and enabled, you can schedule flows in Tableau Server or Tableau Cloud and monitor flows. - When Data Management is removed or deactivated, or if the Data Management licence expires, then the ability to schedule flows is disabled. - If your Tableau Server or Tableau Cloud licence is still active and valid, you can download the flows using the Tableau Server REST API. For more information, see [Flow Methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_flow.htm). ## Tableau Catalog When you purchase Tableau Enterprise, you must enable Catalog on Tableau Server. For more information, see [Enable Tableau Catalog](https://help.tableau.com/current/server-linux/en-gb/dm_catalog_enable.htm). - When Data Management is active and enabled, you can use Tableau Catalog to discover data, curate data assets, perform impact analysis and trace the lineage of data used in Tableau content. - When Data Management is removed or deactivated, or the licence expires, the information remains on the server. The Tableau Catalog-specific information is then only accessible using the Tableau Metadata API; it no longer appears in the product. For more information, see the [Metadata API](https://help.tableau.com/current/api/metadata_api/en-gb/index.html). - When Data Management is removed or deactivated, or the licence expires, the write APIs for all new Tableau Catalog information (for example, table descriptions, data quality warnings, column descriptions) are disabled. You can still read information using the Metadata API, however permissions on tables and databases can’t be explicitly managed in the product. ## Virtual connections and data policies When you purchase Tableau Enterprise, and enable Data Management for Tableau, virtual connections and data policies are automatically enabled on Tableau Server. After you purchase and license Data Management for Tableau, virtual connections and data policies are automatically enabled. - When Data Management is active and enabled, you can use virtual connections to create sharable resources that provide a central access point to data. You can also create data policies that enable you to filter data for users using centralised row-level security. - When Data Management is removed or deactivated, or the licence expires, the information remains on the server but is not accessible. - When Data Management is reactivated, the information is restored on the server and becomes accessible. ## How Data Management licensing works A Tableau Server Deployment may be user-based or core-based, depending on which licence you purchase. ### User-Based A User-Based licence metric allows you to deploy Tableau Server on a single computer or on multiple computers in a cluster. Each user that accesses Tableau Server must be licensed. Administrators add users and license them. The first Creator or Explorer product key that you add to Tableau Server activates Tableau Server and will be used by a Server Administrator. The Data Management product key enables the included features at the deployment level, and those features are licensed for all the users that are already licensed for Tableau Server. ### Core-Based A Core-Based licence metric imposes no constraints on the number of user accounts in Tableau Server. Instead, the licence specifies the maximum number of computer cores on which you can run Tableau Server. **Note:** When you purchase and use core-based licensing, you must apply both the Data Management product key and the Resource Core product key to your Tableau Deployment. The first key allows flows to be run on Tableau Server though the Tableau Prep Conductor and the second key adds the additional cores for the Tableau Prep Conductor nodes. All product keys are available through the [Customer Portal](http://customer.tableau.com/). Typically, the total number of cores in all the computers should not exceed the total number that the Tableau Server licence allows. When you activate the Data Management product key on your Tableau Server deployment, it includes a specific number of Tableau Prep Conductor cores. In this scenario, the total number of cores on all computers should not exceed the total number that the Tableau Server licence and the Data Management licence together allow. In this topic, we will refer to the cores licensed through Tableau Server licence as Tableau Server cores, and the cores licensed through Data Management as Tableau Prep Conductor cores. Here are some concepts that apply to how licensing is applied in a Core-Based metric: - A node can be licensed by only one of type – Tableau Server Cores or Tableau Prep Conductor cores. - The Tableau Prep Conductor cores are applied to any node that is dedicated to running Tableau Prep Conductor and when the Backgrounder on that node is set to run only flow background jobs. In this case, the total number of cores on this node cannot exceed the number of cores that the Data Management licence allows. If this node has any other licensed process besides Tableau Prep Conductor, Backgrounder and Data Engine enabled, then this node will require and use a Tableau Server core licence. - As mentioned above, the Backgrounder node role also affects which licence is used by a node. For example, if the Backgrounder node role is set to run jobs of all types (this is the default), then this node will be licensed through the Tableau Server cores. For more information on node roles, see [Node Roles in Tableau Server](https://help.tableau.com/current/server/en-gb/server_node_roles.htm). See the following table and decision flow to understand how a node is licensed:
If a node has...the core on the node is counted towards...the node is licensed using...

one of the following processes enabled:

  • Application Server
  • Backgrounder (node role is set to run all jobs)
  • File Store
  • Data Server
  • VizQL Server
Total count of Tableau Server cores.Tableau Server cores.

only the following processes enabled:

  • Tableau Prep Conductor
  • Backgrounder (node role is set to run only flows)
  • Data Engine

Total number of Tableau Prep Cores purchased through Data Management.

Note: If there are no Tableau Prep Conductor cores available, but Tableau Server cores are available, then Tableau Server cores are used.

Tableau Prep Cores included in Data Management.

Note: If there are no Tableau Prep Conductor cores available, but Tableau Server cores are available, then Tableau Server cores are used.

![licensing decision flow](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_licensing_flow_chart.png) For more information about licensed processes, see [Tableau Server Processes](https://help.tableau.com/current/server/en-gb/processes.htm). To learn more about Tableau Server licensing, see [Tableau Server Licensing Overview](https://help.tableau.com/current/server/en-gb/license_server_overview.htm). [Skip to main content](#main-content) # Licensing Overview An important administrative role in a Tableau Server deployment is the Tableau portal administrator. The portal administrator manages licensing and the associated keys for the Tableau deployment. As the portal administrator, your first step is to purchase licences on the [Tableau Customer Portal](http://customer.tableausoftware.com/). When you purchase licences, the portal will return corresponding product keys. To renew your licence, visit the [Tableau renewal](https://www.tableau.com/en-gb/support/renew) web page. Tableau has a number of products (Desktop, Server, Prep Builder and more). Each of the Tableau products require that you activate licences by updating the Tableau software with the product keys that are purchased and stored on the Tableau Customer Portal. As the administrator who is tasked with activating Tableau licences, it important that you understand the relationship between licences and keys. See [Understanding Licence Models and Product Keys](https://help.tableau.com/current/server-linux/en-gb/license_product_keys.htm). ## Activation Activation is the process of uploading and saving Tableau product keys to Tableau Server. This operation is done with Tableau Services Manager (TSM). TSM is a tool that makes changes to the local operating system and file system and therefore requires administrative access to the local computer. A TSM administrator requires different permissions and access than a Tableau Server administrator, which is the administrative role for day-to-day operation of Tableau Server tasks, such as adding users, sites, managing projects and permissions, etc. See [Administrative roles](https://help.tableau.com/current/server-linux/en-gb/admin.htm#Admin) for more information about various Tableau Server administrative roles. The following topics describe how to connect to TSM: - [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm) - [tsm Command Line Reference](https://help.tableau.com/current/server-linux/en-gb/tsm.htm) ### Online activation If your Tableau Server installation is able to communicate with the internet, then we recommend using the default online activation method. - To understand how to activate during the installation process, see [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm). - To understand how to activate product keys after you have refreshed your subscription, see [Refresh Expiration Date and Attributes for the Product Key](https://help.tableau.com/current/server-linux/en-gb/license_refresh.htm). - To understand how to activate product keys after you have added purchased new features or user licences, see [Add Capacity to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/capacity_add.htm). ### Offline activation If Tableau Server is running in an offline environment, where it is not possible to access the Tableau licence servers on the internet, then you must activate licences according to the Tableau offline activation process: - To understand how to activate offline, see [Activate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/activate_off.htm). - To understand how to deactivate a product key that you activated using offline activation, see [Deactivate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/deactivate_off.htm). ### Lost activation In some cases licence activations can fail after the licence has been activated. These failures can occur due to connection failures with local processes or when a change has occurred with the VM or hardware configuration. For example, proxy changes, port blocking, network changes or altering a machine hardware can cause the licensing activation to fail. If Tableau Server is unable to verify the licence, operation may be interrupted and the server will be in an “unlicensed” state. To view the product keys and the Tableau Server licence state, run `tsm licenses list` and `tsm status -v`. Depending on the product key that is unverified, Tableau Server may operate in a degraded state until the product key is in a valid state. See [Troubleshoot Licensing](https://help.tableau.com/current/server-linux/en-gb/unlicensed.htm). ### Deactivate You can activate the same Tableau Server product key on up to three environments. This allows you to test Tableau Server (in a sandbox or QA environments, for example), as well as use Tableau in production. To maximise your activations, you should deactivate your product key when you remove Tableau Server from a computer or close down a VM, unless you will be reinstalling Tableau on the same computer. Doing this gives you the opportunity to use the activation on a different computer. For example, if you move Tableau Server from one computer to another, deactivate the product key, then remove Tableau from the original computer. When you install Tableau on the new computer, you can activate the key there without any conflict. If you are removing Tableau Server to reinstall it on the same computer, you don't need to deactivate the key. Tableau will use the key when reinstalled unless an obliterate command was performed with the “-l” option See [Deactivate Product Key](https://help.tableau.com/current/server-linux/en-gb/license_deactivate.htm). ### Tableau Server licensing and virtual machines (VMs) If you run Tableau Server on VMs, either locally or in the cloud, be aware of the potential for complications related to licensing. If you are simply upgrading Tableau Server on the VM, you do not need to take any extra action related to licensing. If you plan to clone the VM to create either a new production or test environment to upgrade, you need to deactivate any Tableau Server licences before cloning. If you do not do this, the new VM environment will end up with untrusted licences, and any attempts to upgrade or start Tableau Server will fail. You may also end up hitting the maximum number of activations for the licences when trying to activate the product keys on the new VM. To avoid issues with licensing on VMs, deactivate all Tableau licences before cloning a VM or allowing it to be permanently shut down. ## Login-based Licence Management Login-based licence management helps you manage licensing for users with Creator roles on Tableau Server and Tableau Cloud. Users with Explorer or Viewer roles cannot use this feature. If you’re using Role-Based Subscriptions with Tableau Server or Tableau Cloud, you can simplify your licence management using login-based licence management to eliminate separate Tableau Desktop and Tableau Prep Builder product keys. You only need to manage one or more product keys for on-premises Tableau Server, or in the case of Tableau Cloud, you don’t need to manage any product keys at all. See [Login-based Licence Management](https://help.tableau.com/current/server-linux/en-gb/license_lblm.htm). ## Adding users Each user who accesses resources on Tableau Server must be licensed. - To understand user roles and licensing, see [Understanding Licence Models and Product Keys](https://help.tableau.com/current/server-linux/en-gb/license_product_keys.htm). - To understand how to add users, see [Add Users to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/users_add.htm). - To understand how to activate product keys after you have added purchased new user licences, see [Add Capacity to Tableau Server](https://help.tableau.com/current/server-linux/en-gb/capacity_add.htm). [Skip to main content](#main-content) # Local Authentication If the server is configured to use local identity store, then Tableau Server authenticates users. When users sign-in and enter their credentials, either through Tableau Desktop, tabcmd, API or web client, Tableau Server verifies the credentials. Tableau user names stored in the identity store are associated with rights and permissions for Tableau Server. After authentication is verified, Tableau Server manages user access (authorisation) for Tableau resources. To use local authentication, you must configure Tableau Server with a local identity store during Setup. You cannot use local authentication if your Tableau Server has been configured with an external identity store (LDAP, Active Directory, etc). **Note:** Identity pools, which is a tool designed to complement and support additional user provisioning and authentication options you might need in your organisation, supports OpenID Connect (OIDC) authentication only. For more information, see [Provision and Authenticate Users Using Identity Pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm). ## Password storage When local authentication is used, the user’s salted and hashed password is stored in the repository. Passwords are never stored directly, rather, the result of salting and hashing the password is stored. Server uses the PBKDF2 derivation function with the HMAC SHA512 hashing function. ## Configure password settings After you install Tableau Server with local authentication, you can use Tableau Server Manager (TSM) to configure a number of password-related settings: - Password policies: these policies define the requirement for password structure, such as length, character types and other requirements. - Password expiration: enable and specify password expiry. - Login rate limit: Tableau Server throttles the time between sign-in attempts after users enter 5 incorrect passwords. Users will need to wait a few seconds before attempting another sign-in. If users continue to enter incorrect passwords, then they must wait for exponentially longer periods of time in between sign-in attempts. By default, the maximum time between sign-in attempts is 60 minutes. Lock out account access after too many failed attempts. You can specify how many failed attempts users are allowed to enter before they are locked out. For information on how to unlock access to a locked account, see [View and manage users on a site](https://help.tableau.com/current/server-linux/en-gb/users_view.htm#ViewEditSiteUser). - User password reset: Enable users to reset passwords. Enabling password reset will configure Tableau Server to display a link on the sign-in page. Users who forget passwords or want to reset a password can click the link to initiate a reset-password workflow. Password reset must be configured using TSM CLI, as described below. 1. Open TSM in a browser as a server administrator: https://:8850. For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click on User Identity & Access on the Configuration tab and then click Authentication Method. 3. Select Local authentication from the drop-down menu to display the password settings. 4. Configure the password settings and then click Save Pending Changes. 5. Click Pending Changes at the top of the page: ![Tableau Server Manager toolbar indicating that there are pending changes.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-pending-changes-btn.png) 6. Click Apply Changes and Restart. For the initial configuration of password policies, we recommend that you use the configuration file template below to create a json file. You can also set any single configuration key listed below with the syntax described in [tsm configuration set](https://help.tableau.com/current/server-linux/en-gb/cli_configuration_tsm.htm#TSMSet). 1. Copy the following json template to a file. Fill in the key values with your password policy configuration. See the reference section that follows for more information about key options. { "configKeys": { "wgserver.localauth.policies.mustcontainletters.enabled": `false`, "wgserver.localauth.policies.mustcontainuppercase.enabled": `false`, "wgserver.localauth.policies.mustcontainnumbers.enabled": `false`, "wgserver.localauth.policies.mustcontainsymbols.enabled": `false`, "wgserver.localauth.policies.minimumpasswordlength.enabled": `false`, "wgserver.localauth.policies.minimumpasswordlength.value": `8`, "wgserver.localauth.policies.maximumpasswordlength.enabled": `false`, "wgserver.localauth.policies.maximumpasswordlength.value": `255`, "wgserver.localauth.passwordexpiration.enabled": `false`, "wgserver.localauth.passwordexpiration.days": `90`, "wgserver.localauth.ratelimiting.maxbackoff.minutes": `60`, "wgserver.localauth.ratelimiting.maxattempts.enabled": `false`, "wgserver.localauth.ratelimiting.maxattempts.value": _5_, "vizportal.password\_reset": `false` } } 2. Run the `tsm settings import -f file.json` to pass the json file with the appropriate values to Tableau Services Manager to configure Tableau Server. 3. Run the `tsm pending-changes apply` command to apply the changes. See [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ### Configuration file reference This section lists all of the options that can be used to configure password polices. wgserver.localauth.policies.mustcontainletters.enabled Default value: `false` Require at least one letter in passwords. wgserver.localauth.policies.mustcontainuppercase.enabled Default value: `false` Require at least one upper-case letter in passwords. wgserver.localauth.policies.mustcontainnumbers.enabled Default value: `false` Require at least one number letter in passwords. wgserver.localauth.policies.mustcontainsymbols.enabled Default value: `false` Require at least one special character in passwords. wgserver.localauth.policies.minimumpasswordlength.enabled Default value: `false` Enforce minimum-length passwords. wgserver.localauth.policies.minimumpasswordlength.value Default value: `8` The minimum number of characters passwords must have. Enter a value between `4` and `255`, inclusive. You must set `wgserver.localauth.policies.minimumpasswordlength.enabled` to `true` to enforce this value. wgserver.localauth.policies.maximumpasswordlength.enabled Default value: `false` Enforce maximum-length passwords. wgserver.localauth.policies.maximumpasswordlength.value Default value: `255` The maximum number of characters passwords may have. Enter a value between `8` and `225`, inclusive. You must set `wgserver.localauth.policies.maximumpasswordlength.enabled` to `true` to enforce this value. wgserver.localauth.passwordexpiration.enabled Default value: `false` Enforce password expiry. wgserver.localauth.passwordexpiration.days Default value: `90` The number of days before a password expires. Enter a value between `1` and `365`, inclusive. You must set `wgserver.localauth.passwordexpiration.enabled` to `true` to enforce this value. wgserver.localauth.ratelimiting.maxbackoff.minutes Default value: `60` Maximum time between sign-in attempts after a user enters multiple incorrect passwords. Enter a value between `5` and `1440`, inclusive. wgserver.localauth.ratelimiting.maxattempts.enabled Default value: `false` Enforce account lock out after 5 incorrect passwords are entered. To change the number of incorrect passwords that will trigger account lock out, you set `wgserver.localauth.ratelimiting.maxattempts.value`. wgserver.localauth.ratelimiting.maxattempts.value Default value: `5` The number of incorrect passwords that a user may enter to trigger account lock out. Enter a value between `5` and `100`, inclusive. You must set `wgserver.localauth.ratelimiting.maxattempts.enabled` to `true` to enforce this value. vizportal.password\_reset Default value: `false` Enable users to reset passwords. Tableau Server must be configured to send email for this feature to operate. See [Configure SMTP Setup](https://help.tableau.com/current/server-linux/en-gb/config_smtp.htm). [Skip to main content](#main-content) # Log File Snapshots (Archive Logs) Tableau Server includes functionality to generate a snapshot of log files for archival purposes. If you plan to clean up and delete old log files as part of regular server maintenance, you may consider archiving log files to an off-server storage location before deleting them. Or, if you are working with Tableau Support on a case, the support engineer may request a server log file snapshot. This topic describes: - How to generate a log file snapshot - How to send the snapshot directly to Tableau Support from the Tableau Server administration tools - How to download the snapshot - How to delete archived logs 1. Open TSM in a browser: https://:8850. For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Maintenance. 3. Generate a log file snapshot. 1. On the Server Maintenance page, under Log Files, click Generate Log File Snapshot. An options dialog displays: ![A dialog box with form fields to generate a snapshot of log files.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-log-snapshot-linux.png) 2. On the Options page, enter or select the options you want, including a Description, time Range of log files to be included and the optional types of logs to be included (Include Postgres Data, Include Recent Crash Dumps), then click Generate Log File Snapshot. The log file snapshot is saved to a fixed location on the computer where TSM and Tableau Server are installed. If you have a multi-node installation, the snapshot is saved to the initial node of the cluster. The location is specified by the `basefilepath_log_archives` variable. By default the snapshot is saved to: `/var/opt/tableau/tableau_server/data/tabsvc/files/log-archives` You can find the current location by querying the `basefilepath.log_archives` setting and change the location by specifying a new value for `basefilepath.log_archive`. For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). 4. After you generate the snapshot, you can select it and upload it to Technical Support, download it to your local machine or delete it: ![A table with generated log files and options to Generate, Download, Upload or Delete log files.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-maint-gen-snapshot-actions.png) 5. To download a local copy of the snapshot or to delete it, select the snapshot under Log Files and then select the appropriate Action. ### Uploading log snapshots for Tableau Support 1. Click the Maintenance tab. 2. Select the snapshot you want to send. ![A table with generated log files and options to Generate, Download, Upload or Delete log files.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-maint-gen-snapshot-actions.png) 3. Click Upload to Technical Support Case. 4. In the dialog that displays, enter the Support Case Number and your Contact Email Address, then click Upload Snapshot. ![Upload to Technical Support Case window with fields for providing details about a log file snapshot to send to Tableau Technical Support.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-maint-snapshot-upload.png) For additional methods to send log archives to Tableau Support, see [Sending Large Files to Tableau](https://help.salesforce.com/s/articleView?id=001537676&type=1) in Salesforce Help. You create a snapshot archive of Tableau Server log files using the [`tsm maintenance ziplogs`](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm4ziplogs) command. By default, this command creates a zip file containing all of the log files. If you are running a distributed installation of Tableau Server, perform this step from the initial node. Logs from all nodes will be included in the zip file. **Note:** If you cannot run the ziplogs command successfully, you can manually zip the Tableau Server logs. For more information, see [Troubleshoot Tableau Server on Linux](https://help.tableau.com/current/server-linux/en-gb/troubleshoot_linux.htm#ManuallyGatherLogs). To create a log file snapshot: 1. On the initial node, open a terminal session. 2. Type the following command: `tsm maintenance ziplogs -l -f ` where `` is name of the zipped archive file you want to create. Choose a unique name with no spaces. If an existing ziplog with the same file name already exists the creation of the file will fail unless you include the `-o` option to force an overwrite, delete the existing file, or specify a different name in the command. You can specify a time range for the snapshot and the types of logs to include. For example, if you know when an error occurred, use the `--startdate` and `--enddate` options to capture logs from a few hours before and after the error: `tsm maintenance ziplogs -f --startdate "" --enddate ""` For more information, see [tsm maintenance ziplogs](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm4ziplogs). The log file snapshot is saved to a fixed location on the computer where TSM and Tableau Server are installed. If you have a multi-node installation, the snapshot is saved to the initial node of the cluster. The location is specified by the `basefilepath_log_archives` variable. By default the log file snapshot is saved to: `/var/opt/tableau/tableau_server/data/tabsvc/files/log-archives` You can find the current location by querying the `basefilepath.log_archives` setting: tsm configuration get -k basefilepath.log\_archive and change the location by specifying a new value for `basefilepath.log_archive`: tsm configuration set -k basefilepath.log\_archive -v ":/new/directory/path" For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). ### Sending log archives to Tableau Support You can send log files to Tableau Support as a part of a customer support case (a customer support case number is required). Before sending a log file, use `tsm maintenance ziplogs` command to combine the log files into a single zip file archive. - In a terminal session, type the following command: `[tsm maintenance send-logs](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsmSendLogs) -f -c -e ` where `` is your support case number, `` is your contact email for this support case, and `` is the file name of your archive with .zip file extension. For additional methods to send log archives to Tableau Support, see [Sending Large Files to Tableau](https://help.salesforce.com/s/articleView?id=001537676&type=1) in Salesforce Help. [Skip to main content](#main-content) # Login-based Licence Management Login-based licence management helps you manage licensing for users with Creator roles on Tableau Server and Tableau Cloud. Users with Explorer or Viewer roles cannot use this feature. If you’re using Role Based Subscriptions with Tableau Server or Tableau Cloud, you can simplify your licence management using login-based licence management to eliminate separate Tableau Desktop and Tableau Prep Builder product keys. You only need to manage one or more product keys for on-premises Tableau Server, or in the case of Tableau Cloud, you don’t need to manage any product keys at all. You only need one Tableau Server or Tableau Cloud site to authorise an individual Tableau Desktop or Tableau Prep Builder. Login-based licence management is enabled per production instance of your Tableau Server deployment. You can assign Creator roles to users who use Tableau Server, Tableau Desktop, and Tableau Prep Builder for licence activation and centralised licence management. In addition, login-based licence management gives you more visibility into licence usage. You can use administrative views on Tableau Server and Tableau Cloud to see the assignment and use of Creator seats in one place. Administrative views provide information about who is using your Creator licences, and shows the most recent licence lease and version of both Tableau Desktop and Tableau Prep Builder, which helps you to monitor your Tableau deployments. The following Tableau products support login-based licence management: - Tableau Cloud - Tableau Server - Tableau Desktop - Tableau Prep Builder If your Tableau Server is not enabled for login-based licence management, contact your Tableau sales representative to obtain a special login-based licence management\-enabled product key. ## How login-based licence management works When login-based licence management is in use, Tableau Desktop or Tableau Prep Builder periodically contacts Tableau Server or Tableau Cloud in order to verify that the user is a Creator and to obtain an authorisation to run. Tableau Server or Tableau Cloud contacts the Tableau-hosted authorization-to-run (ATR) service to verify that the Tableau Desktop client is allowed activation. The ATR service, hosted on AWS, verifies and manages the licence and the length of the authorisation window. The diagrams below show the communication process between the client, Tableau Server or Tableau Cloud, and the licensing service. Tableau uses common ports (80 and 443) to make internet requests. In most cases, the computer where Tableau Desktop or Tableau Prep Builder is installed and the network it is running on are already configured to allow the necessary access. For more information about the ports used by Tableau, see [Tableau Services Manager Ports](https://help.tableau.com/current/server-linux/en-gb/ports.htm). #### Login-based licence management with Tableau Cloud ![A diagram showing the communication process between the client and licensing components for login-based licence management with Tableau Cloud.](/tableau/current/en-gb/server-linux/en-gb/Img/virtual_desktop_online_lblm.png) #### Login-based licence management with Tableau Server ![A diagram showing the communication process between the client and licensing components for login-based licence management with Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/virtual_desktop_server_lblm.png) 1. You install Tableau Desktop or Tableau Prep Builder and select **Activate with your credentials**. You sign into your Tableau Cloud or Tableau Server site. 2. Tableau Cloud or Tableau Server verifies that you are a Creator. If not, you get an error. If yes, Tableau Cloud or Tableau Server communicates with the ATR service. 3. The ATR service returns an ATR lease to Tableau Cloud or Tableau Server. 4. Tableau Cloud or Tableau Server provides an ATR lease to Tableau Desktop or Tableau Prep Builder to finalise activation. ## Use login-based licence management To use login-based licence management, you either need to use Tableau Cloud or you need to install Tableau Server and activate it with a login-based licence management\-enabled product key. The end user needs to be assigned the Creator role on either Tableau Cloud or Tableau Server and that user will need to install Tableau Desktop. Although the user can activate Tableau Desktop on up to two machines, only one Creator seat needs to be allocated. **Note**: As of Tableau Server version 2023.1, LBLM is supported in offline deployments. To deploy Tableau Server with LBLM enabled, you must configure Tableau Server to use Authorisation-To-Run (ATR) Service. For more information, see [Activate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/activate_off.htm). ### Step 1: Install Tableau Server If you already have Tableau Server installed, skip to [(Optional) Step 2: Change login-based licence management settings](#Step_2). Otherwise, you'll need to install Tableau Server: 1. Refer to the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) chapter to install Tableau Server. 2. During activation, you must enter a Tableau Server product key that supports role-based subscription and login-based licence management. 3. Add users to your Tableau Server and set them to one of the three Creator roles: Server Administrator, Site Administrator Creator or Creator. This assigns a Creator licence to these users on Tableau Server. For more information, see [Set User’s Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). > [!IMPORTANT] > > If you're using connected clients and login-based licence management, do not [disable automatic client authentication](https://help.tableau.com/current/server-linux/en-gb/devices_connected_credentials.htm). In addition, do not sign out of Tableau Server using the connected desktop user interface after enabling login-based licence management. Otherwise, login-based licence management cannot automatically refresh the licence activation or provide current data to the LBLM Usage report on Tableau Server or Tableau Cloud. For more information about connected desktop, see [Automatically keep Tableau Desktop connected to Tableau Server or Online](https://help.tableau.com/current/pro/desktop/en-gb/sign_in_server.htm#automatically-keep-tableau-desktop-connected-to-tableau-server-or-online). ### (Optional) Step 2: Change login-based licence management settings Login-based licence management is enabled by default for Tableau Cloud, Tableau Server and Tableau Desktop. You can, however, change some login-based licence management settings. Disable login-based licence management on Tableau Server Although login-based licence management is the preferred method of activation for Tableau Desktop and Tableau Prep Builder, you may have Tableau Server installations in your organisation used for testing that don't need to use login-based licence management. On Tableau Server, you use the Tableau Services Manager (TSM) command line utility to turn off login-based licence management. To turn off login-based licence management at a command prompt, type: `tsm configuration set -k licensing.login_based_license_management.enabled -v false` `tsm pending-changes apply` Change login-based licence management settings on Tableau Desktop or Tableau Prep Builder at install To change login-based licence management settings at the command line, you can run the installer .exe file from your computer's command line as an administrator. If you need to extract the .msi files, follow the instructions to [Extract and run the Windows (MSI) installer](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_automate.htm#msi). To use a duration length other than the default of 14 days/1209600 seconds, include the `ATRREQUESTEDDURATIONSECONDS` switch. For example: `tableauDesktop-64bit-2024-2-0.exe /quiet /norestart ACCEPTEULA=1 ATRREQUESTEDDURATIONSECONDS=43200` You must run the command from the directory where the .exe file is located or specify a full path to the location of the .exe file on the computer. Do not run the setup program from a shared directory on your network. Instead, download the .exe file to a directory on the computer where you're installing. The following example shows the Windows installer command that disables login-based licence management: `tableauDesktop-64bit-2024-2-0.exe /quiet /norestart ACCEPTEULA=1 LBLM=disabled` or `tableauPrepBuilder-64bit-2024-2-0.exe /quiet /norestart ACCEPTEULA=1 LBLM=disabled` To set the default URL for the Tableau Server you want users to use for activation when using login-based licence management, add the `ACTIVATIONSERVER` or `WorkGroupServer` option. To update the exe: `tableauDesktop-64bit-2021-4-0.exe /quiet /norestart ACCEPTEULA=1 ACTIVATIONSERVER=http://` To update the registry: `reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Tableau\Tableau 2024.2\Settings /f /v WorkGroupServer /d https://` **Note:** The `ACTIVATIONSERVER` option is only intended for first time activation. If you have previously signed in to this version of Tableau, you use the `WorkGroupServer` (Windows) or `WorkgroupServer` (macOS) option. For example, if you are using Tableau Desktop on Windows and have previously signed-in successfully, you would use the `WorkGroupServer` option to specify an activation server. On Tableau Desktop on macOS, you would use the `WorkgroupServer` option. On macOS, this option is case sensitive and uses a lowercase "g". Change login-based licence management settings on Tableau Desktop by editing the registry If Tableau Desktop is already installed, you can change login-based licence management settings by editing the Windows registry. To turn off login-based licence management: `reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Tableau\ATR /f /v LBLM /d disabled` To make login-based licence management the only login option: `reg.exe add HKEY_LOCAL_MACHINE\SOFTWARE\Tableau\ATR /f /v LBLM /d required` Or, you can enable, disable or require login-based licence management by editing the registry directly: 1. As an administrator on the computer running Tableau Desktop, make a backup of the registry file before you make any changes to it. 2. Edit the registry, and in `HKEY_LOCAL_MACHINE\SOFTWARE\Tableau`, find the hive named ATR and modify the LBLM value to reflect the desired setting: 1. Name: LBLM. 2. Data: enabled, disabled or required. 3. Restart Tableau so the changes take effect. Change login-based licence management settings on Tableau Desktop on macOS To change login-based licence management settings on macOS, run the following commands in a terminal window to update the preferences file, and then install or restart Tableau Desktop. To turn off login-based licence management: `sudo defaults write /Library/Preferences/com.tableau.ATR LBLM "disabled"` To make login-based licence management the only login option: `sudo defaults write /Library/Preferences/com.tableau.ATR LBLM "required"` To set the default URL for the Tableau Server you want the user to use for activation when using login-based licence management on macOS. First-time activation: `sudo defaults write /Library/Preferences/com.tableau.ATR LBLM "required"` Subsequent activations: `sudo defaults write /Library/Preferences/com.tableau.Tableau- Settings.WorkgroupServer "https://"` **Note:** On Tableau Desktop on macOS, you would use the `WorkgroupServer` option. On macOS, this option is case sensitive and uses a lowercase "g". #### Login-based licence management settings You use the following settings to change login-based licence management, set the ATR duration, and set the activation server URL.
SettingValueDescription
LBLMenabled, disabled or required

Set to enabled (the default), the licensing screens will present the two options for activation (product key, or credentials).

Set to disabled, login-based licence management will not appear on the licensing screens.

Set to required, login-based licence management is the only way to activate the Tableau Desktop (when the licensing screen appears, it will offer only the credentials option for activation).

Note: When LBLM is set to enabled or required, reporting is also enabled.

ATRREQUESTEDDURATIONSECONDS1209600

Sets the authorisation to run (ATR) duration (in seconds), which is the length of time that an instance of Tableau Desktop and Tableau Prep Builder is authorised to run. The default is 1209600 seconds (14 days). Do not use commas as separators in the value.

ACTIVATIONSERVER

http://<tableau_server_url>

For first-time activation, sets the default URL for the Tableau Server you want users to use for activation.
WorkGroupServer (Windows) WorkgroupServer (macOS)

http://<tableau_server_url>

For updates to the Windows registry or macOS plist, sets the default URL for the Tableau Server you want users to use for activation.

Note: On Tableau Desktop on macOS, you would use the WorkgroupServer option. On macOS, this option is case sensitive and uses a lowercase "g".

REPORTINGFREQUENCYSECONDS3600Sets the default (in seconds) for how often the login-based licence management report is sent to Tableau Server or Tableau Cloud. The minimum setting is 60 seconds, and the default is 3600 seconds (one hour). Change this setting to reduce the load on Tableau Server or to reduce network traffic. No matter what the authorisation-to-run (ATR) lease duration is set to, REPORTINGFREQUENCYSECONDS sets the time interval that the Tableau Desktop or Tableau Prep Builder client report login-based licence management activations back to Tableau Server or Tableau Cloud.
Additional configuration for virtual deployments Tableau Desktop and Tableau Prep Builder periodically contact Tableau Cloud or Tableau Server to verify that Tableau is authorised to run, based on its licence. Tableau Cloud or Tableau Server then contacts the ATR service to verify the licence and the length of the authorisation window. When configuring a virtual (non-persistent) deployment of Tableau Desktop or Tableau Prep Builder, the duration time should be set to one of the lower values such as 4 or 8 hours in order to avoid an over-use activation error message. After the virtual machine (VM) is returned, the ATR service will handle the activation monitoring. The following flags should be used on a source image prior to publishing Tableau Desktop to end users. Each end user will be activating the software by logging into Tableau Server or Tableau Cloud with each new VM delivered. No product keys need to be entered if the end user is a Tableau Creator on Tableau Server or Tableau Cloud. If you are using login-based licence management for Tableau Desktop or Tableau Prep Builder on a VM, you may get an error message that your licence information has changed whenever you launch a new VM for Tableau Desktop or Tableau Prep Builder. This error forces a restart, which then asks you to activate Tableau Desktop again. This error occurs because the ATR service sends a new token that doesn’t match the licence cache. #### Microsoft Windows To prevent the error from occurring on Microsoft Windows, you can use the `SYNCHRONOUSLICENSECHECK` and `SILENTLYREGISTERUSER` options with the Windows installer. For example: `tableau-setup-std-tableau-2024 SYNCHRONOUSLICENSECHECK="true" SILENTLYREGISTERUSER="true" ATRREQUESTEDDURATIONSECONDS=14400` or `tableauDesktop-64bit-2024-2-0.exe /quiet /norestart ACCEPTEULA=1 ATRREQUESTEDDURATIONSECONDS=14400 ACTIVATIONSERVER=http:// SYNCHRONOUSLICENSECHECK="true" SILENTLYREGISTERUSER="true"` If Tableau Prep Builder and Tableau Desktop are being delivered on one Virtual Desktop, `ATRREQUESTEDDURATIONSECONDS` only needs to be set during Tableau Desktop installation. However, if you plan to install Tableau Prep Builder as a stand-alone, you'll need to set `ATRREQUESTEDDURATIONSECONDS` during Tableau Prep Builder installation. Or, you can edit the following registry keys on the source image: `Reg key path: HKLM\SOFTWARE\Tableau\\Settings\` `Reg key (String value, need to set to true to make that feature enabled)` `SynchronousLicenseCheck` `SilentlyRegisterUser` #### macOS To prevent the error from occurring on macOS, run the following command to set the `LicenseCache.Desktop` flag to `'false'`. `sudo defaults write ~/Library/Preferences/com.tableau.Tableau-.plist LicenseCache.Desktop false` ### (Optional) Step 3: Change the authorisation to run (ATR) duration The login-based licence management default settings for the authorisation to run (ATR) duration are appropriate for most environments, but you can change these default settings if needed. Login-based licence management uses the default authorisation to run (ATR) duration of 1209600 seconds (14 days), which is the length of time that an instance of Tableau Desktop and Tableau Prep Builder is authorised to run. This means that after the initial authorisation, you could use Tableau without any network connection for 14 days before the activation expired. The default duration value for login-based licence management is not appropriate for delivering a non-persistent VM delivery solution to end users. The ATR duration should be lowered to 4 or 12 hours depending on VM use. When a new VM is delivered to an end user, a new authority to run token will be created. When the VM is returned, this token is also returned and is able to be used on the new VM authorisation to run request. **Note:** Login-based licence management uses the following hierarchy when determining ATR duration. 1. **ATR Service** – Establishes the minimum (4 hours/14400 seconds) and maximum (90 days/7776000 seconds) ATR durations applicable to all users/installations. It specifies the default ATR duration (14 days/1209600 seconds) if nothing is specified by Tableau Server or Tableau Desktop. 2. **Tableau Server** – Can optionally specify a maximum or default ATR duration (`licensing.login_based_license_management.max_requested_duration_seconds` or `licensing.login_based_license_management.default_requested_duration_seconds`) for all Tableau Desktop installations. Using these ATR duration settings, you can globally set the default ATR duration and maximum ATR duration for all Tableau Desktop clients, which eliminates the need to individually sign in to each Tableau Desktop client to set the ATR duration. The ATR Service maximum setting can be between the minimum of 4 hours (14400 seconds) and maximum of 180 days (15552000 seconds). 3. **Tableau Desktop** – Can optionally specify the ATR duration (`ATRREQUESTEDDURATIONSECONDS`) for the computer on which it is installed. If necessary, you can change the default ATR duration (14 days/1209600 seconds) to a setting within the ATR Service minimum (4 hours/14400 seconds) and maximum (90 days/7776000 seconds). This local ATR duration overrides any durations set by the ATR Service or Tableau Server. However, this default ATR duration cannot be more than the maximum ATR duration set on Tableau Server. Change the ATR duration for Tableau Desktop or Tableau Prep Builder using Tableau Server On Tableau Server, you use the Tableau Services Manager (TSM) command line utility to set the ATR duration. To set the ATR duration, at a command prompt, type: `tsm configuration set -k licensing.login_based_license_management.default_requested_duration_seconds -v ` `tsm pending-changes apply` To set the ATR maximum duration, at a command prompt, type: `tsm configuration set -k licensing.login_based_license_management.max_requested_duration_seconds -v ` `tsm pending-changes apply` Change the ATR duration on Tableau Desktop by editing the registry To use a duration length other than the default of 14 days/1209600 seconds, update the `ATRRequestedDurationSeconds` registry setting. For example: 1. As an administrator on the computer running Tableau Desktop, make a backup of the registry file before you make any changes to it. 2. Edit the registry, and in `HKEY_LOCAL_MACHINE\SOFTWARE\Tableau\ATR`, update the ATRRequestedDurationSeconds as follows (0 uses the default setting): 1. Name: Find the string value named `ATRRequestedDurationSeconds`. 2. Data: Update the number of seconds the duration should last. For example, add 43200 to set a duration of 12 hours. 3. Restart Tableau so that the changes take effect. Change the ATR duration on Tableau Desktop on macOS To use a duration length other than the default of 14 days/1209600 seconds, include the `ATRRequestedDurationSeconds` preferences setting. For example: `sudo defaults write /Library/Preferences/com.tableau.ATR ATRRequestedDurationSeconds -string "43200"` ### Step 4: Activate Tableau Desktop 1. Run Tableau Desktop setup. 2. The Activate Tableau screen will include the Activate by signing in to a server option. ![Tableau licence activation window.](/tableau/current/en-gb/server-linux/en-gb/Img/license_lblm.png) 3. Click Activate by signing in to a server and then do one of the following: - If you're using Tableau Cloud, click the Tableau Cloud link. - If you're using Tableau Server, enter the Tableau Server URL, and then click Connect. When prompted, enter valid credentials for a user with a Creator role subscription, and then click OK. ## View login-based licence usage You can view login-based licence usage for Tableau Cloud or Tableau Server. The report shows users, hosts, user role, product, version, activations, Creator seats in use, Creator seats not in use and when a Creator seat was last used. You can view data for the past 30 days up to a maximum of 183 days. To view the Login-based licence management Licence Usage administrative view: 1. In Tableau Cloud or Tableau Server, in the navigation pane, click Site Status. ![Site Status page that displays a list of dashboards that monitor site activity.](/tableau/current/en-gb/server-linux/en-gb/Img/lblm.png) 2. On the Site Status page, click Login-based Licence Usage. 3. Optional. On the report screen, you can change the time window to show when seats were last used, filter on actions, filter on user name and sort by columns. ![Example of a login-based licence management usage report.](/tableau/current/en-gb/server-linux/en-gb/Img/lblm_usage_report.png) ## Troubleshooting You may encounter one of the following error messages while using login-based licence management. Use the information below to resolve the issue. ### Login-based licence management is not enabled on Tableau Server If login-based licence management is available as an activation option on Tableau Desktop, but not enabled on Tableau Server, or if Tableau Server does not have a login-based licence management capable licence, the following error message may be displayed: _Login-based licence management is not enabled on the server you connected to. Select a different server to connect to, use a product key to activate your licence or start a trial to begin working immediately._ Contact your administrator to ensure that you’re using a Tableau Server product key that’s enabled for login-based licence management. To verify that you have activated the appropriate product key, in the TSM web UI click Configuration, and then click Licensing. For guidance on activating licences, see [tsm licences activate](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMActivate). Login-based licence management should be enabled by default unless it was previously turned off by the server administrator. ### Login-based licence management is not enabled on Tableau Desktop If login-based licence management is not enabled on Tableau Desktop, you will not have the option to activate Tableau using your credentials. If the login-based licence management option has been turned off during installation or with an update, see [Step 2: Enable login-based licence management](#Step_2). ### Product key expiry date doesn't change after purchasing a year subscription After purchasing a renewal of Tableau Server, and the new subscription term is reflected in Tableau Server, it may take up to 24 hours before the new expiry date appears in Manage Product Keys on Tableau Desktop. ### You do not have a Creator licence When attempting to activate from Tableau Desktop, the following error message may be displayed: _You do not have a Creator licence. Contact your administrator to obtain one._ This error is displayed if you have not been assigned a Creator role. If you belong to multiple sites on Tableau Cloud or Tableau Server, you need to sign in to the site where you have the Creator role when using login-based licence management. Otherwise you'll get this error. To verify that the product key you have activated on the server includes Creator licences, open the TSM web UI and click Configuration, and then click Licensing. ### You have activated the maximum number of computers When attempting to activate from Tableau Desktop, the following error message may be displayed: _You have activated Tableau the maximum number of times allowed under your account. You must wait for the licence activation on another computer to expire before you can activate Tableau again._ This error is displayed when you activated Tableau from multiple computers with the same Creator user credentials and exceeded the maximum number of activations. You must wait until the authorisation-to-run (ATR) token expires on one of the existing computers before attempting to activate a new computer. If you are using non-persistent virtual machines (VMs), you can shorten the ATR duration to prevent this error from occurring again. #### To shorten the ATR token duration for maximum activation If you encounter this maximum use error when using a non-persistent virtual deployment, it is possible to shorten the ATR duration to 4 hours (14400) seconds to avoid the error in the future. Alternatively, instead of changing the duration on an individual desktop, you can set the default duration on Tableau Server to affect all users. The following steps shorten the lease on a computer previously activated with login-based licence management that will no longer be used, in order to free up a seat to be activated on a new computer: 1. Open a Command Prompt as an administrator on a Tableau Desktop computer that will no longer be used. 2. Navigate to the Tableau binaries (\\bin) directory, using the following command. Windows: `cd Program Files\Tableau\Tableau \bin` Mac: `cd /Applications/Tableau\ Desktop\ .app/Contents/MacOS` 3. Run the following command to set the duration to 4 hours, in seconds (e.g. 14400). Windows: `atrdiag.exe -setDuration 14400` Mac: `sudo ./atrdiag -setDuration 14400` 4. Delete the previous ATR token using the following command: Windows: `atrdiag.exe -deleteAllATRs` Mac: `./atrdiag -deleteAllATRs` 5. Next, overwrite the existing ATR token. Open Tableau Desktop. Tableau displays the “Licence has Changed” message. Click Exit to automatically close and reopen Tableau Desktop. 6. In the registration dialog box, click Activate, and then reactivate Tableau Desktop through Tableau Server using login-based licence management, which will overwrite the existing token. 7. Close Tableau Desktop and wait for the ATR duration to elapse (e.g. 4 hours) so that the ATR token expires and frees-up a user seat. Do not open Tableau Desktop before the ATR duration has elapsed. Check to make sure the ATR duration has elapsed. The ATR token TTL End should show a date and time in the future (e.g. 4 hours from now). Windows: `atrdiag.exe` Mac: `./atrdiag` 8. After the ATR token expires and you can successfully sign in to Tableau Server on a new computer. #### To return your computer to an unlicensed state 1. Open a Command Prompt as an administrator. 2. Navigate to the Tableau binaries (\\bin) directory, using the following command: `cd Program Files\Tableau\Tableau \bin` 3. Run the following command: Windows: `atrdiag.exe –deleteAllATRs` Mac: `./atrdiag.exe –deleteAllATRs` **Note:** This removes only the ATR token from the computer. It does not free-up any of the user seats. The user seat is only freed-up after the deleted ATR token expires. ### Your Tableau credentials are invalid When attempting to activate from Tableau Desktop, the following error message may be displayed: _Your Tableau credentials are invalid. Contact your administrator to reset your account._ This error is displayed when your Tableau licence is not recognised. Contact your administrator. ### Your computer’s clock is not synchronised to the current time When attempting to activate from Tableau Desktop, the following error message may be displayed: _Your computer’s clock is not synchronised to the current time. Synchronise your computer’s clock to the current time and then try to activate Tableau._ This error is displayed when your computer's clock is not synchronised with the current time. Synchronise your computer’s clock with a time server on the internet or enable automatic time synchronisation. ### Unable to activate with your credentials When attempting to activate Tableau, the following error message may be displayed: _Tableau Server cannot verify your licensing information over the internet. Contact your administrator to check your internet connection._ This error is displayed when the port `atr.licensing.tableau.com:443` is not open on all Application Server (VizPortal) nodes, or you have a proxy that is not configured properly to forward traffic to Tableau's licensing server. To diagnose connectivity to Tableau's licensing server, paste the following URL (`https://atr.licensing.tableau.com/_status/healthz`) into a browser or at a curl command prompt. [Skip to main content](#main-content) # Login-based Licence Usage **Note:** This view is only available to site administrators and server administrators when login-based licence management is enabled on Tableau Server. For information about how to navigate to administrative views, see [Administrative Views](https://help.tableau.com/current/server-linux/en-gb/adminview.htm) . The Login-based Licence Usage view lets server administrators view login-based licence activation usage for Tableau Cloud or Tableau Server. The Login-based Licence Usage view can help you manage licences efficiently and determine if you need more or fewer licences. This view can help you answer the following questions: - Who is using a Tableau Desktop or Tableau Prep Builder licence in my enterprise? - Has a Creator role been shared or transferred? - Has any activation activity occurred on a computer where it should not be? - On which host is the activation being used? - Which role is assigned to the user? - On which Tableau product is the licence in use? - On which Tableau version is the licence in use? - Did the Creator role activate through Tableau Desktop or Tableau Prep Builder? - Has the Creator seat been activated? - How many Creator seats are in use? - How many Creator seats are not in use? - When was a Creator seat was last used? ![Example of a login-based licence management usage report.](/tableau/current/en-gb/server-linux/en-gb/Img/lblm_usage_report.png) In addition to using the login-based licence usage administrative view, you can also access login-based licence usage data ([`identity_ based_activation_reporting`](https://tableau.github.io/tableau-data-dictionary/2020.1/data_dictionary.htm#identity_based_activation_reporting_anchor), [`identity_based_activation_user_role_change`](https://tableau.github.io/tableau-data-dictionary/2020.1/data_dictionary.htm#identity_based_activation_user_role_change_anchor) and [`identity_based_activation_admin_view`](https://tableau.github.io/tableau-data-dictionary/2020.1/data_dictionary.htm#identity_based_activation_admin_view_anchor)) in the "workgroup" PostgreSQL database of the Tableau Server repository. Before you can access this data, you must [enable access to the Tableau Server repository](https://help.tableau.com/current/server/en-gb/perf_collect_server_repo.htm#enable-access-to-the-tableau-server-repository). ### Filters On the report screen, you can change the time window to show when seats were last used, filter on actions, filter on user name and sort by columns. - **Time Window in Days**. Enter the number of days for which to view login-based licence management activated client usage data. You can view data for the past 30 days up to a maximum of 183 days. - **(All)**. Apply all filters to the view. - **Activated**. Show Creator users that have activated using login-based licence management. - **in use**. Show Creator users who activated using login-based licence management whose seats are in use. - **last used**. Show when the login-based licence management client was last used. - **unassigned**. Show which login-based licence management activated Creator seats are currently unassigned. - **user name**. Show login-based licence management activations in use by the specified user. When you hover over the filter card, a drop-down icon appears. Click the icon to specify whether the view should include data that matches the filter (the default) or exclude data that matches the filter: ![A dropdown menu with two options: Include values and Exclude values.](/tableau/current/en-gb/server-linux/en-gb/Img/filter_include_exclude.png) ## **Which creator seats are in use in the last  days?** This area of the dashboard shows a list of three types licences (activated, in use and unassigned). Hovering over an activated, in use or unassigned mark gives you information including the registered user of the copy of Tableau. Click a column head to sort the list. ## **Which creator seats have not been used in the last days** This area of the dashboard shows a list of licences that have not been used during the specified time period. A timeline shows the last use date. Hovering over a last use mark gives you information including the registered user of the copy of Tableau. [Skip to main content](#main-content) # Maintain a Distributed Environment After you set up an initial node and one or more additional nodes for a distributed installation, you can perform all subsequent configuration and updates from the initial node, using the TSM CLI or from any computer using a browser and the TSM Web interface. When you install additional nodes, they are added by computer name. If the computer name of a node changes, you will need to remove and reinstall the node. For details on removing a node, see [Remove a Node](https://help.tableau.com/current/server-linux/en-gb/distrib_worker_remove.htm). You can monitor the status of the Tableau Server cluster on the TSM Status page. See [View Server Process Status](https://help.tableau.com/current/server-linux/en-gb/service_viewstatus.htm) for details. Additional actions you may need to maintain your distributed environment include: ## Other articles in this section [Skip to main content](#main-content) # Maintain Content with Custom Views As a content creator, it's important to understand how updates you make to workbooks and data sources can impact the end user. Custom views are a popular way to personalise how vizzes are consumed, but custom views can break if their source content changes. Avoid making changes known to impact custom views, if possible. When changes need to be made, follow the steps outlined later in this topic. In general, there are some best practices when working with content known to use custom views. - Advise end users to only create custom views on stable content. - Use projects or naming systems to identify workbooks that are being modified and recommend users don't create custom views on them. - Test changes in a staging or development environment. Test custom views that are representative of the expected filters, user actions, parameter settings and other customisations. - Proactively notify users before publishing changes that may break custom views. (Retrieve a list of all custom views applied to a workbook [using the custom views methods in Tableau's REST API](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_workbooks_and_views.htm#list_custom_views).) ## Changes known to impact custom views While it's best to test any changes to verify their impact on custom views, there are some updates that are known to impact custom views. This list isn't comprehensive and is intended for guidance only. ### Workbook changes - **Name changes**. Changing the name of the workbook (or the sheet the custom view is associated with) breaks the custom views. - **Parameters**. Adding or removing a parameter may cause a custom view to break or fail to update as expected. - If a parameter is added to the original content, the custom view may break. - If a parameter control is removed, calculated fields that used its input retain their last value and are no longer adjustable. - **Filters**. Removing a filter removes the filter control but leaves the data in a filtered state. - In general, if a filter is deleted in the original content, a custom view that used that filter continues to work. However, the data remains filtered with no filter control present. This means users can't change the filter selection from the custom view. - Changing the filter control from slider to relative date doesn't adjust the filter to accurately reflect the relative date as expected. - If custom views are used to control filter selections, consider using embedding filter parameters in a shared URL instead. - **Hiding sheets**. Setting a sheet to hidden, even if it's later unhidden, breaks custom views on that sheet. - **Republishing**. Deleting and republishing a workbook breaks its custom views. - **Default values**. If a custom view is defined by a default value (such as for a parameter, set or filter) and the default value changes, the custom view updates to reflect the new value. If the custom view needs to be tied to a specific value, use it rather than relying on . ### Data source changes - **Data source changes**. Replacing a data source using the Replace data source functionality or replacing an embedded data source with a published copy of the same data source breaks the custom views. - **Data type**. Changing the data type of a field relevant to the custom view breaks the custom view. - **Removing fields**. Removing fields, calculations, groups or sets that custom views are based on breaks the custom view. ## Update content safely The following is a set of best practices to minimise the risk of breaking existing custom views. - Edit the workbooks and changes to the data sources separately. - Don't republish a workbook that has a replaced data source. - Edit a local version of the workbook or data source and republish it with the same name. ### Modify a workbook These steps assume the workbook uses a live connection to a separately published data source and has existing custom views. #### Modify a workbook with web editing Web editing is the preferred method for modifying a workbook. Only use Tableau Desktop if necessary. 1. Edit a workbook in the browser, avoiding the items addressed earlier that are known to break custom views. - If changes need to be made to the data, don't make them now. See the section on modifying a data source. 2. Publish the workbook to the same location with the same name, saving over the existing version. #### Modify a workbook with Tableau Desktop When possible, modify workbooks in the browser. Only use Tableau Desktop if necessary. 1. Open a local version of the workbook (download the workbook first if necessary). 2. Edit the workbook, avoiding the items addressed earlier that are known to break custom views. - If changes need to be made to the data, don't make them now. See the section on modifying a data source. 3. Publish the workbook to the same location with the same name, replacing the existing version. - _Don't_ check the option to "Update the workbook to use the published data source". ### Modify a data source 1. Open a local version of the data source in Tableau Desktop by downloading the workbook and creating a local copy of the data source: 1. Download the workbook and open it in Tableau Desktop. 2. Right-click the data source and select "Create Local Copy". 3. Right-click the new data source and select "Replace Data Source…" 4. Swap the existing connection to the published data source with the newly created local copy. **Note**: Using a local version in a workbook is the preferred method because it allows you to verify data source changes directly in the workbook. Alternatively, you can download the data source or use a locally stored copy. 2. Edit to the data source, avoiding the items addressed earlier that are known to break custom views. 3. Publish the data source. 1. Use the same name and save over the existing data source. 2. Don't check the option to "Update the workbook to use the published data source". 3. Don't publish the workbook with the modified data source. If changes need to be made to the workbook contents, see the section on modifying workbooks. ## Investigate broken custom views **Note**: This section assumes familiarity with XML and basic command-line interactions. In a .twb workbook file, the XML of a workbook contains identifying tags for elements of the workbook. When a custom view is created, a snapshot is taken of the interactive elements (such as filter or set values, parameters or selected marks) and their values. When a custom view is accessed, Tableau applies the attribute values stored with the custom view to the relevant element IDs. If the element IDs are changed or the attribute values can't be loaded, the custom view breaks. It may be possible to identify what changed to break a custom view by comparing a .twb from before and after the change. 1. You need a .twb of the workbook when the custom view is functioning (save a copy of content before making any changes). 2. In another copy of the workbook, make the change thought to cause the custom view to break and save it as a different .twb. 3. In the command line, run the following command (substituting the files from step one as file1.twb and from step two as file2.twb). vimdiff file1.twb file2.twb 4. The results highlight changes between the files. Some IDs or attribute values (in **\[brackets\]**) that are known to break custom views if changed: ``` ``` [Skip to main content](#main-content) # Maintenance You should perform regular maintenance on Tableau Server, such as creating backups, synchronising Active Directory groups and removing unneeded files. ## Other articles in this section [Skip to main content](#main-content) # Manage a Flow Once you publish a flow to Tableau Server or Tableau Cloud, you can manage your flows and make changes to them as necessary. This topic describes the various actions you can take to manage your flows. **Note**: The content in this topic applies to both Tableau Server and Tableau Cloud, exceptions are called out specifically. ## Managing your flows **Following is a list of actions you can take to manage your flows:** - **Create flows:** Starting in version 2020.4, as a Creator you can create flows directly on the web. From the Home page, click Create > Flow or from the Explore page, click New > Flow. For more information, see [Tableau Prep on the Web](https://help.tableau.com/current/server-linux/en-gb/prep_web_auth.htm). - **Edit flows:** Starting in version 2020.4, as a Creator you can edit flows directly on the web. Navigate to the list of flows, select Actions and click Edit Flow, or open a flow and click the Edit button. When you edit a flow, your changes are moved to a draft state. When you're finished, publish your flow to commit your changes and create a new version of the flow. For more information, see [Autosave and working with drafts](https://help.tableau.com/current/server-linux/en-gb/prep_web_auth.htm#autosave). You can edit the data connection using the Edit Connection menu option from the Connections view, Actions (…) menu for the data source. The new connection is saved and used the next time the flow runs in Tableau Prep Conductor. However, when you open the flow to view it, the original connection persists and won't be updated until you edit the flow, update the connector and republish it. If you open, edit and republish the flow without changing the original connection, any connection changes made using the Edit Connection menu will be overridden and replaced with the original connection. - **Upload flows** (version 2026.2.4 and later) As a Creator, you can upload a flow file into Tableau Cloud from the Home or Explore pages, just like Tableau workbooks. Embedding credentials is not currently supported. After the flow is uploaded, you can either edit the connection or edit the flow, and republish it with the embedded credentials. If you upload a flow that outputs to a different server, after you upload it, you’ll need to edit the output to point to the correct project on the new server before running the flow. - **Run flows:** As a Creator, you can manually run a flow in addition to creating scheduled flow tasks that run at a specific time. Explorer (can publish) users can also run flows if the Server Administrator has granted this permission. - **Note**: The Data Management is not required to manually run flows, but is required to schedule flows to run. - Navigate to the list of flows, select one or more flows you want to run, select Actions and click Run Now. - **Tag:** Tags are keywords you can create for flows to help you find, filter and categorise content. Authors can add tags to flows when they publish it. But you can also add tags to any workbook, view, or data source that you are allowed to access and you can delete any tags you have added. You can add a tag to a list of flows. Navigate to the list of flows, select one or more items you want to tag, select Actions and click Tag. To add a tag to a specific flow you can do it from the list of flows as described above. Open the Flow, from the Overview tab, select Actions, and click Tag. - **Change Owner:** Administrators and flow owners can change owners to any Creator on their site. In versions 2025.1 and earlier, they could only change the owner to themselves. For more information, see [Manage Content Ownership](https://help.tableau.com/current/online/en-gb/owner.htm?). - **Permissions:** You can set permissions for users and specify if they can perform edit actions like save, download, move to a different project and delete. In addition, you can specify who can view and run the flow. - **Download:** You can download a flow to view or modify it using Tableau Prep Builder. To download a flow, you need download permissions. You’ll have that by default if you are the owner, but you might need to add it for other users. - **Revision History:** When you make a change to the flow, and republish it to the same project with the same name, a new version of the flow is created. You can view the revision history by selecting revision history from the actions menu. Flow owners have permissions to restore a previous version of a flow. - **Move:** You can move flows between projects. To move a flow, users need Move permission. You’ll have that by default for flows you own, but you might need to add it for other users. - **Rename:** You can rename a flow. To rename a flow, users need the Save permission. You'll have that by default for flows you own, but you might need to add it for other users. - **Delete:** You can delete a flow. To delete a flow, users need the Delete permission. You’ll have that by default for flows you own, but you might need to add it for other users. Starting in version 2025.3, you can now retrieve deleted flows from the Recycle Bin. For more information, see [Recover deleted flows](https://help.tableau.com/current/prep/en-gb/prep_save_share.htm#recover-deleted-flows). ### Who can do this Tableau Server Administrator **Can do the following tasks across all the sites:** - Create flows - Edit published flows - Upload flows - View a list of all draft flows - Run flows - Delete flows - Turn on and configure Recycle Bin - Recover deleted flows - Download flows - Change Owner - Change Permissions - Change Project - Add/Remove Tags - Change Description - Change Name - Update Flow Task - Delete Flow Task - Create a Flow Task\* - Version Management\* \*Some additional conditions apply to these actions: - To create a flow task: - A flow schedule must be available. In Tableau Server, only Server Administrators can create a schedule. In Tableau Cloud, users with permissions to schedule flow tasks can create a custom schedule. For more information, see [Schedule Flow Tasks](https://help.tableau.com/current/online/en-gb/prep_conductor_schedule_flow_task.htm). - The flow must have at least one output step. - The flow version must be compatible with the Tableau Server version. - Version management: - Revision history must be enabled on the site. - User role is allowed to publish to the project. Tableau Site Administrator **Can do the following tasks on flows published to the sites that they are site administrator for:** - Create flows - Edit published flows - Upload flows - View a list of all draft flows - Run flows - Delete flows - Turn on and configure Recycle Bin - Recover deleted flows - Download flows - Change Owner - Change Permissions - Change Project - Add/Remove Tags - Change Description - Change Name - Update Flow Task - Delete Flow Task - Create a Flow Task\* - Version Management\* Some additional conditions apply to these actions: - To create a flow task: - A flow schedule must be available. In Tableau Server, only Server Administrators can create a schedule. In Tableau Cloud, users with permissions to schedule flow tasks can create a custom schedule. For more information, see [Schedule Flow Tasks](https://help.tableau.com/current/online/en-gb/prep_conductor_schedule_flow_task.htm). - The flow must have at least one output step. - The flow version must be compatible with the Tableau Server version. - Version management: - Revision history must be enabled on the site. - User role is allowed to publish to the project. Project Leader **Can do the following tasks on flows published to the projects where they have project leader permissions:** - Create flows - Edit published flows - Upload flows - Run Flows - Delete - Download - Change Permissions - Change Project - Add/Remove Tags - Change Description - Change Name - Update Flow Task - Delete Flow Task - Create a Flow Task\* - Version Management\* \*Some additional conditions apply to these actions: - To create a flow task: - A flow schedule must be available. In Tableau Server, only Server Administrators can create a schedule. In Tableau Cloud, users with permissions to schedule flow tasks can create a custom schedule. For more information, see [Schedule Flow Tasks](https://help.tableau.com/current/online/en-gb/prep_conductor_schedule_flow_task.htm). - The flow must have at least one output step. - The flow version must be compatible with the Tableau Server version. - Version management: - Revision history must be enabled on the site. - User role is allowed to publish to the project. Project Owner **Can do the following tasks on flows published to the projects that they own:** - Create Flows - Edit published flows - Upload flows - Run Flows - Delete - Download - Change Permissions - Change Project - Add/Remove Tags - Change Description - Change Name - Update Flow Task - Delete Flow Task - Create a Flow Task\* - Version Management\* \* Some additional conditions apply to these actions: - To create a flow task: - A flow schedule must be available. In Tableau Server, only Server Administrators can create a schedule. In Tableau Cloud, users with permissions to schedule flow tasks can create a custom schedule. For more information, see [Schedule Flow Tasks](https://help.tableau.com/current/online/en-gb/prep_conductor_schedule_flow_task.htm). - The flow must have at least one output step. - The flow version must be compatible with the Tableau Server version. - Version management: - Revision history must be enabled on the site. - User role is allowed to publish to the project. Flow Owner **Can do the following tasks on flows that they own:** - Create Flows - Edit Draft (flows they own) and Published Flows - Upload flows - Run flows - Delete flows - Recover deleted flows (with Recycle Bin turned on by administrator) - Download flows - Change Owner - Change Permissions - Change Project - Add/Remove Tags - Change Description - Change Name - Update Flow Task - Delete Flow Task - Create a Flow Task\* - Version Management\* \*Some additional conditions apply to these actions: - To create a flow task: - A flow schedule must be available. In Tableau Server, only Server Administrators can create a schedule. In Tableau Cloud, users with permissions to schedule flow tasks can create a custom schedule. For more information, see [Schedule Flow Tasks](https://help.tableau.com/current/online/en-gb/prep_conductor_schedule_flow_task.htm). - The flow must have at least one output step. - The flow version must be compatible with the Tableau Server version. - Version management: - Revision history must be enabled on the site. - User role is allowed to publish to the project. User with Creator Licence **Can do the following tasks:** - Create Flows - Edit Draft (flows they own) and Published Flows - Upload flows - Run Flows (with Run flow permissions) - Delete (with delete permissions) - Recover deleted flows (with Recycle Bin turned on by administrator) - Download (with download or Save as, and read permissions) - Change Permissions (with Change Permissions) - Change Project (with move permissions, and write permissions on the destination project) - Add/Remove Tags (with read permissions) - Change Description (with Save permissions) - Change Name (with Save permissions) - Update Flow task (with Execute permissions) - Delete Flow Task (with Execute permissions) - Create a Flow Task\* (with Execute permissions) - Version Management\* (with view, read, save as, download permissions) \* Some additional conditions apply to these actions: - To create a flow task: - A flow schedule must be available. In Tableau Server, only Server Administrators can create a schedule. In Tableau Cloud, users with permissions to schedule flow tasks can create a custom schedule. For more information, see [Schedule Flow Tasks](https://help.tableau.com/current/online/en-gb/prep_conductor_schedule_flow_task.htm). - The flow must have at least one output step. - The flow version must be compatible with the Tableau Server version. - Version management: - Revision history must be enabled on the site. - User role is allowed to publish to the project. User with Explorer Licence **Can do the following tasks:** **Note**: Starting in version 2020.4, Explorer license users can no longer run flows on Tableau Server, even if the Server Administrator assigns the Run Flow: Allowed permissions. - Explorer (can publish) license users with Run Flow: Allowed permissions can run flows on Tableau Server and Tableau Cloud. - Delete (with delete permissions) - Recover deleted flows (with Explorer (can publish) permissions and Recycle Bin turned on by administrator) - Download (with download or Save as, and read permissions) - Change Permissions (with Change Permissions) - Change Project (with move permissions and write permissions on the destination project) - Add/Remove Tags (with read permissions) - Change Description (with Save permissions) - Change Name (with Save permissions) - Update Flow task (with Execute permissions) - Delete Flow Task (with Execute permissions) - Create a Flow Task\* (with Execute permissions) - Version Management\* (with view, read, save as, download permissions) \*Some additional conditions apply to these actions: - To create a flow task: - A flow schedule must be available. In Tableau Server, only Server Administrators can create a schedule. In Tableau Cloud, users with permissions to schedule flow tasks can create a custom schedule. For more information, see [Schedule Flow Tasks](https://help.tableau.com/current/online/en-gb/prep_conductor_schedule_flow_task.htm). - The flow must have at least one output step. - The flow version must be compatible with the Tableau Server version. - Version management: - Revision history must be enabled on the site. - User role is allowed to publish to the project. User with Viewer Licence Viewers cannot manage flows, they can however view the flow and the different versions of the flow. For more information about the full capabilities you can set on flows, see [Permission capabilities](https://help.tableau.com/current/server/en-gb/permissions.htm). [Skip to main content](#main-content) # Manage Content Access You can manage who can access content on your site and set the permissions that govern content ownership. ## Other articles in this section [Skip to main content](#main-content) # Manage Content Ownership When you publish a data source, workbook or flow on Tableau Server or when you create a project, you become its _owner_. A content owner, a project leader with an appropriate site role, or an administrator can change ownership of a content asset. After ownership is reassigned, the original owner has no special connection to the content item, and their ability to access it is determined by their permissions on the project or that specific item. ## Who can change or be given ownership, by content type Whether you can change or be given ownership depends on your permissions and your relationship to the content asset, as described in the following table. **Note:** Full project leader access is available only with some site roles. For information, see [Project-level administration](https://help.tableau.com/current/server-linux/en-gb/projects.htm#project-admin).
Content asset typeWho can change ownershipWho can be given ownership

Top-level projects

  • Server administrator1
  • Site administrator
  • Server administrator
  • Site administrator
  • Creator
  • Explorer (can publish)

Child (nested) projects

  • Server administrator
  • Site administrator
  • Project owner

Any administrator or owner, excluding Explorer and Viewer.

Workbooks and data sources

 

 

 

  • Server administrator
  • Site administrator
  • Workbook or data source owner
  • Project leader or owner of the project that contains the item
  • Server administrator
  • Site administrator
  • Creator
  • Explorer (can publish)
Metrics (The legacy Metrics feature was retired in February 2024 for Tableau Cloud and in Tableau Server version 2024.2. For more information, see Create and Troubleshoot Metrics (Retired).)
  • Server administrator
  • Site administrator
  • Metric owner
  • Project leader or owner of the project that contains the item

Any administrator or user of the site, excluding Explorer and Viewer.

Flows

 

 

 

  • Server administrator
  • Site administrator
  • Flow owner (2025.2 and later)
  • Server administrator

  • Site administrator

  • Creator

Note: In versions 2025.1 and earlier, server and site administrators can only change the owner to themselves.

Data Roles

 

 

 

  • Server administrator
  • Site administrator
  • Data role owner
  • Project leader or owner of the project that contains the item

Any administrator or user of the site, excluding Explorer and Viewer.

Collections
  • Server administrator
  • Site administrator
  • Collection owner
  • Server administrator
  • Site administrator
  • Creator
  • Explorer
  • Viewer
Virtual Connections2
  • Server administrator
  • Site administrator
  • Virtual connection owner
  • Server administrator
  • Site administrator
  • Creator
1 The Server Administrator site role applies to Tableau Server only; not Tableau Cloud. 2 Virtual connections require Data Management. See [About Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_overview.htm) for details. Note that to edit a virtual connection, you must have the database credentials. ## Considerations for changing content ownership - Before you remove a user from Tableau Server, make sure they do not own any content assets. - If the user does own content, you must first reassign ownership of those assets before you can delete the user. Otherwise, their site role is set to Unlicensed, but they are not deleted, and only an administrator can take certain actions on that content. Reassign ownership of workbooks or data sources with embedded credentials before you set the user's site role to Unlicensed or delete the user. - If you change the ownership of a workbook, data source or flow that includes embedded credentials to connect to underlying data, the embedded credentials will be deleted and you’ll need to reauthenticate to connect. **Note:** This doesn’t apply to embedded credentials that use a managed keychain. In those cases, the credentials are preserved even after the ownership change. Connections to published data sources are authenticated using the original flow owner and authorised based on their permissions. The new owner would need the necessary read/write permissions to that data source. Otherwise, the flow would fail when trying to connect to or write to the data source. - Ownership of input or output data sources to a flow may also need to be transferred to the new owner or their permissions to the data source may need to be updated. - You can update the embedded credentials by editing the connection information on Tableau Server. For more information, see [Edit Connections](https://help.tableau.com/current/server-linux/en-gb/connections_modify.htm). For flows, you can open and edit the flow in Tableau Prep web authoring and republish the flow with the new credentials. - You can only transfer ownership on published flows. You can’t change the ownership on flow drafts. - If you do not lock permissions to projects, make sure users you give content ownership to know your permissions guidelines, or you account for permissions as you change ownership. In unlocked projects, by default, content owners can set permissions on their content. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#LockProject). - While it is possible to change the owner of a metric to a user with a site role of Viewer or Explorer, it is not recommended, because doing so will cause the metric refresh to be suspended. A site role of Creator or Explorer (can publish) is required to refresh, overwrite or delete a metric. ## Change the owner of a content resource 1. Sign in to the Tableau Server web environment, and from the navigation menu, select Explore. 2. Navigate to the content you want to assign to someone else. - If you want to reassign multiple of the same type of content, for example, multiple workbooks, select the content type from the drop-down menu. - If you want to reassign multiple items within the same project, navigate to the project. If you’re not sure where to find a child project, display filters, and select Show all projects. - If you want to reassign multiple content items with the same owner, find the user on the Users page. 3. Select the items you want to reassign, and then select Actions > **Change Owner**. The other menu commands you see will depend on the content type. ![](/tableau/current/en-gb/server-linux/en-gb/Img/owner_wkbks_change.png) 4. Type the name of a user or select a user from the list. ![A form for changing the owner of selected workbooks and flows.](/tableau/current/en-gb/server-linux/en-gb/Img/owner_change_256.png) 5. Select **Change Owner**. [Skip to main content](#main-content) # Manage Saved Credentials for Data Connections Saved credentials enable you to connect to a data source without being prompted for your credentials. The credentials saved for your connection can be OAuth access tokens, or other credentials, such as user name and password. You can manage saved credentials on your account settings page. On Tableau Server, if your server administrator has allowed you to save credentials, you can find and manage them in the Saved Credentials section on your My Account Settings page. If you don’t see the Saved Credentials section, consult with your admin about allowing saving credentials. For more information, see [Allow Saved Access Tokens](https://help.tableau.com/current/server/en-gb/allow_saved_tokens.htm). **Note:** When editing Tableau Prep flows on the web, you may still be prompted to re-authenticate. ## Test connections using saved credentials If the connector supports test functionality, you can test the connection using saved credentials. 1. While you’re signed in to Tableau Server or Tableau Cloud, display your Account Settings page. 2. In the Saved Credentials section, select the Test link next to the stored connection that you want to test. This test confirms that Tableau Cloud or Tableau Server can access your account using this corresponding saved credential. If the test succeeds, but you can’t access your data through this managed connection, confirm that the credentials you provided for this connection can access your data. For example, if you accidentally created the connection using your personal Gmail account, but you use a different account to access a Google Analytics database, you’ll need to delete the saved credentials and sign in to the data using the appropriate Gmail account. ## Update saved credentials To help ensure uninterrupted data access from existing Tableau content after a custom OAuth client has been configured for your site, we encourage you to update your saved credentials. To update saved credentials, you can delete the previous saved credentials for a particular connector and then add them again. When you add saved credentials again, both new and existing Tableau content will access the data using the custom OAuth client configured by your server administrator. For more information about custom OAuth clients, see [Configure a custom OAuth for a site](https://help.tableau.com/current/server-linux/en-gb/protected_auth.htm#custom_oauth_server). 1. Sign in to Tableau Server and navigate to your My Account Settings page. 2. Under Saved Credentials for Data Sources, do the following: 1. Click Delete next to the saved credentials for a connector. 2. Next to the same connector, click Add and follow the prompts to 1) connect to the custom OAuth client that your site admin notified you about and 2) save the latest credentials. ## Clear all saved credentials When you select Clear All Saved Credentials, the following items are removed from your user account: - All saved credentials for connections that are stored in your account. **Caution:** If any of these saved credentials are stored with published workbooks or data sources, deleting them also removes access to the data source from those locations. Effectively, this is like "changing the locks" anywhere the affected saved credentials are used. - Passwords you’ve used to access published data extracts or workbooks that connect to them. ## Remove saved credentials To remove Tableau access to data, delete the associated saved credentials for that data from your account. After you delete the credentials, you’ll need to sign in to the data the next time you access it. This creates new saved credentials. Your administrator might choose for all users to use the same shared credentials for connecting to a data source. If this is the case, the saved credential is associated with the data connection for all users, and it doesn’t appear under Saved Credentials on your Account Settings page. **Note:** If you're a Tableau Server user and can't delete saved credentials, ask your administrator if they've cleared the Allow users to save data source access tokens option in the server settings. [Skip to main content](#main-content) # Manage Dashboard and Viz Extensions in Tableau Server Tableau Extensions are web applications that can help extend the analytics delivered in a Tableau workbook. Extensions integrate seamlessly to interact with the rest of the Tableau workbook, using the [Tableau Extensions API](https://tableau.github.io/extensions-api). Dashboard extensions run in custom dashboard zones and can interact with the rest of the dashboard. Dashboard extensions give users the ability to interact with other applications directly in Tableau. Viz extensions run in worksheets and give users the ability to use custom viz types. Tableau users access dashboard extensions as dashboard objects and access viz extensions through the worksheet Marks card. **Note:** Server administrators have the ability to enable dashboard and viz extensions on the server, or to block specific extensions from running. Administrators can add extensions to the safe list and to control the type of data the extensions can access. The server administrator can also configure whether users on the site see prompts when they add or view extensions. Server administrators additionally have the ability to block specific extensions from being used across all sites. For information about extension security and recommended deployment options, see [Extension Security - Best Practices for Deployment](https://help.tableau.com/current/server-linux/en-gb/security_extensions.htm) For information about using dashboard extensions in Tableau, see [Use Dashboard Extensions](https://help.tableau.com/current/pro/desktop/en-gb/dashboard_extensions.htm). For information about using viz extensions, see [Add Viz Extensions to Your Worksheet](https://help.tableau.com/v0.0/pro/desktop/en-gb/viz_extensions.htm). Looking for Tableau Cloud? See [Manage Dashboard Extensions in Tableau Cloud.](https://help.tableau.com/current/online/en-gb/dashboard_extensions_server.htm "Opens topic in a new browser tab") ## Before you run extensions on Tableau Server Extensions are an open platform, but in general there are two standards to consider: - Tableau Trusted extensions, which are extensions that have been specifically reviewed and deployed on Tableau managed hosts. These extensions include solutions built and managed by Tableau; solutions built by Tableau Exchange Partners that deploy with Tableau review and host service, and solutions hosted in the protected environment of our legacy Sandboxed extensions. - Network-enabled extensions, which are extensions that are hosted on any third-party host. Network-enabled extensions can be useful when developers choose to manage the delivery of their extensions without the involvement of Tableau. This includes extensions that partners manage directly to provide better production support; extensions that are hosted and deployed within your own local network, or extensions that require communication with third-party services outside of Tableau. Network-enabled extensions have full access to the web. **Note:** Tableau supports integration with Salesforce Einstein Discovery through the Einstein Discovery Dashboard extension. This is a special extension that has access to data in Salesforce.com and is allowed by default. It’s not considered a Network-enabled extension or a Sandboxed extension. For more information on Einstein Discovery integration, see [Tableau Server Release Notes](https://help.tableau.com/current/server-linux/en-gb/whatsnew_server.htm#2021-1-einstein-predictions). ### Tableau Trusted extensions Starting in 2025.3, Tableau Trusted extensions represent the subset of extensions from Tableau Exchange that have been elevated for use. Trusted extensions are hosted on Tableau hosts and are required to limit communication between user clients and Tableau. These extensions have been tested for network communications and scanned for vulnerabilities before deployment. This extension standard is used to deliver a more governed access to extensions. This standard includes: - Sandboxed extensions are hosted by Tableau and employ W3C standards, such as Content Security Policy (CSP), to ensure the extension can’t make network calls outside of the Tableau Sandbox host. A Sandboxed extension can query data, but the sandbox environment explicitly blocks communicating that data elsewhere. Sandboxed Extensions are supported in Tableau 2019.4 and later. By default, Sandboxed extensions are allowed to run if extensions are enabled for the site. - Tableau-built extensions are solutions developed and actively maintained by the Tableau development team. Tableau-built extensions are explicitly designed to direct communications toward the user client, rather than to query user data out. By design, this limits the risk of data exfiltration and data retention. Tableau Built Extensions also undergo Salesforce Software Development Life Cycle (SDLC) standards. By default, Tableau-built extensions are allowed to run if extensions are enabled for the site. - Tableau Trusted partner-built extensions are solutions developed and actively maintained by accredited Tableau and Salesforce Partners that contribute to Tableau Exchange. Tableau developers validate these third-party solutions through manual testing before they are deployed as Tableau Trusted extensions. Tableau developers conduct functional and network communication testing, and automated code scans of the extensions before they are deployed to a dedicated Tableau host. Tableau Trusted partner-built extensions can be enabled for use by your Tableau administrator. ### Network-enabled extensions Network-enabled extensions are web applications and could be running on any computer set up as a web server. This includes local computers, computers in your domain and third-party web services. Because Network-enabled extensions could be hosted on third-party servers and could have access to the data in the workbook, you want to only allow the extensions you trust. See [Test Network-enabled extensions for security](#Test). ### Default Extensions Settings Administrators can use the settings for extensions on Tableau Server to control and limit the extensions that are allowed to run. - By default, extensions are enabled to run unless explicitly disabled. This is managed either by the Server Administrator across all sites, or can be disabled for any given site by the Site Administrator. - We recommend allowing the use of Tableau Trusted extensions. By default, Sandboxed extension and Tableau-built extensions are enabled to run if extensions are enabled for the site; Tableau Trusted partner-built extensions can be enabled by Administrator. - By default, no Network-enabled extensions are allowed unless they've been explicitly added to the safe list. Only extensions that use the HTTPS protocol are allowed, which guarantees an encrypted channel for sending and receiving data (the only exception is for `http://localhost`). Some extensions require full data permissions (access to the underlying data). These extensions can’t run on Tableau Server unless you explicitly add the extension to the safe list and grant the extension access to full data. ## Control extensions use Server administrators can control a global setting to allow extensions for all sites on the server. Server administrators can also put extensions, including Sandboxed extensions, on a global block list to prevent them from running (see [Block specific extensions](#Block)). By default, all Sandboxed extensions are enabled on the server, but site administrators can choose to override the default and prohibit Sandboxed extensions for the site. ### Change the global setting enabling extensions on the server 1. To change this setting for the server, go to Manage All Sites > Settings > Extensions. If the server just has a single site, the global controls appear on the settings page for the site. 2. Under Dashboard and Viz Extensions, select or untick the Allow extensions to run on this server box. If this option is not selected, extensions are not allowed to run. This global setting overrides the Allow extensions to run on this site settings for each site. ### Change the default settings for a site Server administrators can control whether to enable extensions for the site and whether to allow Tableau-Trusted extensions on the site. That is, if extensions are enabled on the server, the default site settings allow the use of Sandboxed and Tableau-built extensions on the site, provided the extensions are not specifically blocked on the server. The default site settings allow Network-enabled extensions to run when registered on the safe list for the site. Any extension can be explicitly added to the safe list, which then enables that extension for use on the site. 1. To change these settings for the site, go to Settings > Extensions. 2. Under Dashboard and Viz Extensions, configure these options: - Allow extensions to run on this site - Allow Trusted extensions to run on this site Server administrators can add or remove extensions from the safe list for a site. When you add an extension to the safe list, you can configure permissions that allow the extension to have access (if needed) to full data. See [Add extensions to the safe list and configure the extension](#Add). ## Using the safe list Use the safe list to allow specific extensions to run on a site. The safe list is used primarily for Network-enabled extensions. Unlike Tableau-Trusted extensions, which are served from known Tableau hosts and allowed to run by default, Network-enabled extensions are not allowed unless they have been explicitly added to the safe list. The safe list also lets you control whether users are asked to grant permission to allow the extension to run and whether the extension has access to full data (underlying data) in the workbook. By default, Tableau-Trusted extensions are allowed to run, which includes Sandboxed and Tableau-built extensions. You do not need to add them to the safe list unless the default settings have changed and they are no longer allowed. The same holds true for Tableau trusted partner-built extensions, if they are allowed you do not need to explicitly add them to the safe list. ### Identifying the URL of an extension As a web application, an extension is associated with a URL. You can use this URL to test and verify the extension. You also use the URL to add the extension to the safe list to allow full data access, or to the block list to prohibit any access. To allow Network-enabled extensions or other extensions, you need to find the URL of the extension and then add the URL to the safe list. By adding the URL to the safe list you are approving communication with the web application. There are several ways to determine the URL of the extension. #### From Tableau Exchange When you use an extension that you’ve downloaded from the Tableau Exchange, you can find the URL for the extension on the Exchange listing page. Open the tile for the extension, and under Tech Specifications, look for the URL under the heading Hosted at. ![A Tableau Exchange tile for an extension showing where to find the ‘hosted at’ URL](/tableau/current/en-gb/server-linux/en-gb/Img/gallery_ext_url_350x187.png) #### From the manifest file If you have the extension manifest file (`.trex`), an XML file that defines properties for the extension, you can find the URL from the `` element. You can retrieve the manifest file if you download the extension from Tableau Exchange using your web browser. Open the manifest file in a text editor. ``` https://www.example.com/myExtension.html ``` #### Identifying a dashboard extension using the About dialog box For dashboard extensions, you can find the URL from the extension properties found in the dashboard extension context menu. From the More Options menu, click About. ![A context menu with options including About, Reload, Debug Options, Floating, Fix Width, Edit Width, Select Layout Container, Deselect and Remove from Dashboard.](/tableau/current/en-gb/server-linux/en-gb/Img/about_extension_menu_224x217.png) The About dialog box lists the name of the extension, the author, the website of the author and the URL of the extension. ![A dialog box with details on the data source sample extension, such as its URL, version number and instance ID.](/tableau/current/en-gb/server-linux/en-gb/Img/about_extension_url_281x209.png) ### Add extensions to the safe list and configure the extension To allow users to access to Network-enabled extensions, add the extension to the safe list for the site. By default, when you add an extension to the safe list, the extension only has access to the summary (or aggregated) data. You can also control whether users see a prompt asking them to allow the extension access to data. You might want to add an extension to the safe list (for example, a Sandboxed extension) so that you can configure whether users see the prompts. When you hide the prompt from users, the extension can run immediately. 1. Go to Settings > Extensions. 2. Under Enable Specific Extensions, add the URL of the extension. See [Identifying the URL of an extension](#Identify). **Tip:** You can use a full stop and asterisk (`.*`) as a wildcard in the URL to allow all extensions in a certain domain or location. For example, to allow all extensions in the domain under example.com that use port 8080, you would add the URL: `https://example.com:8080/.*` . For more information, see [Using regular expressions in the safe list URL](#RegEx). 3. Choose to Allow or Deny the extension Full Data Access. Full data access is access to the underlying data in the view, not just the summary or aggregated data. Full data access also includes information about the data sources, such as the names of the connection, fields and tables. Usually, if you are adding an extension you want to use to the safe list, you will also want to allow the extension to have access to full data, if the extension requires it. Before adding extensions to the safe list, be sure to [Test Network-enabled extensions for security](#Test). 4. Choose to Show or Hide the User Prompts. Users see the prompts by default when they are adding a dashboard extension to a dashboard, or a viz extension to a worksheet, or when they are interacting with a view that has an extension. The prompt tells users details about the extension and whether the extension has access to full data. The prompt gives users the ability to allow or deny the extension from running. You can hide this prompt from users, allowing the extension to run immediately. ### Make sure that the extension has permissions to access the workbook or view A dashboard or viz extension requires access to the visible data in the view. The visible data is summary aggregated data presented in a worksheet or dashboard. Make sure the workbook or view allows permission to Download Summary Data. The extension doesn't download the data. The extension just requires permission so it can interact with the data in the view. ## Block specific extensions The default global policy allows the use of extensions in Tableau. By default, Sandboxed and Tableau-built extensions are allowed to run. Sites are allowed to enable Trusted Partner-built extensions and any Network-enabled extensions that appear on the safe list. Server administrators can prevent specific extensions from running by adding them to the block list for the server. If an extension is on the global block list it overrides any settings for the extension on the safe list for a site. 1. To add an extension to the blocked list for the server, go to Manage All Sites > Settings > Extensions. On single-site installations, the block list is on the site Extensions settings page. 2. Under Block Specific Extensions, add the URL of the extension. See [Identifying the URL of an extension](#Identify). ### Using regular expressions in the safe list URL In general, when you add an extension to the safe list, you should use the specific URL of the extension. However, there are times when you might want to allow multiple extensions that are hosted from the same domain and location. In this case, it’s convenient to use a wildcard in the URL. The extension settings support the use of regular expressions.
Regular expressionDescription
.A full stop (.) is a wildcard you can use to match any character. If you need to specify a full stop (.) in the URL instead of a wildcard, you can escape the character with a backslash (\.).
*An asterisk (*) is a quantifier that specifies one or more instances of the previous character.
Use care if you use wildcards so that you don’t make the safe list too permissive, and inadvertently allow access to extensions that shouldn’t have access. The following table shows some examples of using regular expressions in the URL. Note that these examples do not show the protocol and the full URL of the extension. Only extensions that use the HTTPS protocol are allowed (with the exception of http://localhost).
To specify...ExampleSpecifies
Range of domains.*\.example.comAll subdomains under example.com.
All portsexample.com:.*Extensions are allowed access from all ports on example.com.
All extensions under domain, port and pathexample.com:8080/xyz/.*

All extensions under the domain example.com that use port 8080 and are located in xyz, are allowed access.

All ports for a range of domains.*\.example.com:.*Allows access to extensions on all ports on all subdomains under example.com.
All extensions under a domain and path that match the patternexample.com/t.c/.*Allows access to extensions running on example.com under folders that match the pattern t.c. For example, tic, tac, toc.
## Test Network-enabled extensions for security Extensions are web applications that interact with data in Tableau using the Extensions API. If you choose to allow Network-enabled extensions that are not directly reviewed and managed by Tableau, users should be aware that these extensions could make network calls and have access to resources on the Internet. Tableau recommends testing and understanding Network-enabled extensions before they are rolled out for broad adoption. ### Examine the source files Extensions include various HTML, CSS and JavaScript files, and an XML manifest file (\*.trex) that defines the properties in the extension. When reviewing a network-enabled extension, we recommend contacting the extension developer directly for access and permission to review. Tableau does not distribute or provide access to other developer’s source files. If the code for an extension is publicly available on GitHub, it can be examined there or downloaded. In the manifest file (`*.trex`), you can find the source location, or URL indicating where the extension is hosted, the name of the author and the web site of the author or company to contact for support. The `` element specifies the URL, the `` element, specifies the name of the organisation and the web site to contact for support (`website="SUPPORT_URL"`). The web site is the Get Support link user see in the About dialog box for the dashboard extension. Extensions reference external JavaScript libraries, such as the jQuery library or API libraries for third parties. Validate that the URL for external libraries points to a trusted location for the library. For example, if the extension references the jQuery library, make sure that the library is on a site that is considered standard and safe. All extensions are required to use the HTTPS protocol (`https://`) for hosting their extensions. You should examine the source files for the extension to ensure that any reference to external libraries is also using HTTPS or is hosted on the same website as the extension. The one exception to the requirement of HTTPS is if the extension is hosted on the same computer as Tableau (`http://localhost`). To the extent possible, make sure you understand what the code is doing. In particular, try to understand how the code is constructing requests to external sites, and what information is being sent in the request. In particular, check if any user-supplied data is validated to prevent cross-site scripting. ### Understand data access Tableau extensions primarily work with the summary aggregated data presented in a worksheet or dashboard. However, the Tableau Extensions API provides methods that can access the underlying data when the extension declares it needs full data access. These methods can access the names of the active tables and fields in the data source, the summary descriptions of the data source connections and the underlying data in a worksheet. If an extension uses any of these methods in a view, the extension developer must declare that the extension requires full data permission in the manifest file (`.trex`). The declaration looks like the following. ``` full data ``` Tableau uses this declaration to provide a prompt to users at run time that gives them the option of allowing this access. If the extension uses any one of these methods, without declaring full data permission in the manifest file, the extension loads but the method calls fail. For information about how an extension accesses data from the dashboard, and the JavaScript methods used, see [Accessing Underlying Data](https://tableau.github.io/extensions-api/docs/security/trex_data_access) in the Tableau Extensions API. To get a better understanding about what the extension can find out about the data, you can use the [DataSources](https://github.com/tableau/extensions-api/tree/master/Samples/Dashboard/DataSources) sample dashboard extension (available from the [Tableau Extensions API GitHub repository](https://github.com/tableau/extensions-api)) to see what data is exposed when the `getDataSourcesAsync()` method is called. ### Test the extension in an isolated environment If possible, Tableau recommends testing the extension in an environment that is isolated from your production environment and from user computers. For example, add a dashboard or viz extension to a safe list on a test computer or virtual machine that's running a version of Tableau Server that is not used for production. ### Monitor traffic created by the dashboard extension To assess potential network calls used by a Network-enabled extension, use web debugging tools like [Fiddler](http://www.telerik.com/fiddler), [Charles HTTP proxy](http://www.charlesproxy.com/) or [Wireshark](https://www.wireshark.org/) to examine the requests and responses that the extension makes. Make sure that you understand what content the extension is requesting. Examine the traffic to be sure that the extension is not reading data or code that is not directly related to the purpose of the extension. [Skip to main content](#main-content) # Manage Data You can connect to and manage the data you that you use in Tableau. ## Other articles in this section [Skip to main content](#main-content) # Manage Data Labels Starting in Tableau Cloud October 2023 and Tableau Server 2023.3, if you have a Data Management licence and are an administrator, you can use the label manager to create or edit label names and label categories. These customisations affect the way that labels appear throughout Tableau when users interact with labels. Note: You can also use the REST API's labelValues methods and labelCategories methods to create and edit labels and label categories. (Tableau Cloud administrators have been able to create and modify label names and descriptions using the labelValues methods since Tableau Cloud June 2023.) For more information, see the Metadata Methods in the [REST API Reference](https://help.tableau.com/v0.0/api/rest_api/en-gb/REST/rest_api_ref_metadata.htm). ## Label Manager To use the label manager, log in as an administrator and select Data Labels from the left navigation pane. ![Use the Data Labels menu item to reach the Data Labels page](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_manager_data_labels_menu_item.png) Alternatively, if you're logged in as an administrator and you open the Data Labels dialogue to label an asset, a Manage labels link shows in the lower-left corner. The Manage labels link leads to the Data Labels page. (In Tableau Server 2023.3 and earlier, the Manage labels link shows in the label selection drop-downs of the individual certification, data quality warning, sensitivity label and custom label dialogs instead.) ![Use the Manage labels link to reach the Data Labels page](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_manager_alt_entry_point_248.png) The label manager page shows a row for each label, sorted by label category. Each row includes the label category, name (here known as the value), an Actions menu (...) to perform actions on that label, visibility and description. ![The Data Labels page and list of labels](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_manager_label_list_246.png) Use the label manager to: - **Edit built-in labels** - Example: You change the name of the built-in "Under maintenance" quality warning to "Maintenance mode". - Example: You change the visibility of extract refresh monitoring labels from standard visibility to high visibility so that they show in views. - **Create new labels for the existing, built-in categories** - Example: You add a new sensitivity label called "Confidential". - **Revert a built-in label to its default name, description and visibility** - Example: You previously changed the "Stale data" quality warning name to "Outdated", and you want to revert it to its default name. - **Create custom categories** - Example: You create a new label category called "Department" with the intention of adding labels for different business units. - **Create new labels in custom categories** - Example: You create new "Sales", "Service" and "Operations" labels for your newly created "Department" category. ## Properties of Data Labels A label has a name, a category and a description. Labels with a Quality Warning or Sensitivity category also have a visibility level. ### Name The label name is the common name for the label as it appears in various places. For example, here the label name "Deprecated" is selected in the Quality Warning tab of the Data Labels dialog. ![Label name in Data Quality Warning dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_value_name.png) Here the label name "Warning" shows at the top of the "Batters" table page, and again in the label details. ![Label name at the top of table page](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_value_name_on_sticker.png) ### Category The label category affects where and how the label appears, whether it appears on assets that are downstream from the one it's attached to, and which parts are customisable, among other things. For example, quality warnings and sensitivity labels appear on downstream assets, but other labels with other categories don't. Another example: You can change the description of a certification label, but not the name. The built-in categories are certification, quality warning and sensitivity. For custom categories, users see the category name in the vertical category tabs of the Data Labels dialog, among other places. For example, here the category name "Department" appears in the vertical category tabs, the top of the label name list and other places. ![Category selection in More Data Labels dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_category_in_data_labels_dialog_248.png) ### Description The label description appears in various places, including in the Data Labels dialog, and helps the user understand what the label is used for. For example, the label description for this quality warning says "This asset is no longer maintained and shouldn't be used." ![Label description in Data Quality Warning dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_value_description.png) ### Visibility The visibility of a label determines its appearance. High-visibility labels appear in more places and may appear more urgent to the user. You can only set the visibility level on Quality Warning or Sensitivity labels. Furthermore, if a label has a category of Quality Warning, users with permissions can override the default visibility on each asset that they attach a Quality Warning label to. For more information, see the [Set a Data Quality Warning](https://help.tableau.com/current/server-linux/en-gb/dm_dqw.htm#high_visibility) and [Sensitivity Labels](https://help.tableau.com/current/server-linux/en-gb/dm_labels_sensitivity.htm#visibility) topics. ## Create a data label To create a label: 1. From the Data Labels page, select New Label. 2. Select a category from the Label category drop-down. 3. Enter the label name in the Label value field. 4. Enter the label description in the Label description field. You can format the text with bold, underline and italics, and include a link or an image. To see text formatting tips, hover over the information (i) icon above the Save button. 5. If the label has a category of Quality Warning or Sensitivity, set the visibility level. For more information, see [Visibility](#Visibility). 6. Select Save. ![New Label dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_manager_new_label_248.png) ### Limitations for creating labels - You can't create a label in the certification category. The certification category allows only the single, built-in label. - You can't create new monitoring warnings. However, the extract refresh failure warning and flow run failure warning can be edited in limited ways, as described in the "Edit a label" section. - The maximum length for a label name is 128 characters in Tableau Cloud and Tableau Server 2024.2 and later. The maximum length for a label name is 24 characters in Tableau Server 2023.3 and earlier. - The maximum length for a label description is 500 characters. ## Edit a data label To edit an existing label: 1. From the Data Labels page, select the Actions (...) menu in the label's row. Or select the row using its tick box on the left and click the Actions drop-down at the top of the label list. 2. Select Edit. 3. (Optional) Change the label name using the Label value field. 4. (Optional) Change the label description using the Label description field. 5. (Optional) If the label has a category of Quality Warning or Sensitivity, set the visibility level. For more information, see [Visibility](#Visibility). 6. Select Save. ### Limitations for editing labels - You can't change the category on an existing label. - The maximum length for a label name is 128 characters in Tableau Cloud and Tableau Server 2024.2 and later. The maximum length for a label name is 24 characters in Tableau Server 2023.3 and earlier. - The maximum length for a label description is 500 characters. The different label categories allow different degrees of label editing. The following table lists the editable properties of labels with the given categories:

Label category

Can edit label category

Can edit label names

Can edit label descriptions

Can edit label visibility

Certification

No

No

Yes

N/A

Quality Warning

No

Yes1

Yes

Yes2

Sensitivity

No

Yes

Yes

Yes

Custom

No

Yes

Yes

N/A

1 _You can't edit the label name (label value) of the extract refresh or flow run monitoring warnings._ 2 _The visibility level you set for quality warnings is the default visibility. Users with permission can override the default visibility when they attach a quality warning to an asset. For more information, see_ [Visibility](#Visibility)_._ ## Delete a data label To delete an existing label: 1. From the Data Labels page, select the Actions (...) menu in the label's row. Or select the row using its tick box on the left and click the Actions drop-down at the top of the label list. 2. Select Delete. ### Limitations for deleting labels - You can't delete a built-in label. Built-in labels are the default labels in Tableau Server. ## Revert a built-in data label to its defaults If an administrator previously edited a built-in label, the Actions menu for that label contains Revert to default label. Reverting a label to its defaults returns the label's name (value), description and visibility to its built-in defaults. ![Reverting a built-in label to its defaults](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_manager_revert_built-in_label_246.png) ## Create a data label category To create a label category: 1. From the Data Labels page, select New Label. 2. In the New Label dialog, select New Category. 3. Enter the category name in the Category name field. 4. Enter the category description in the Category description field. You can format the text with bold, underline and italics, and include a link or an image. To see text formatting tips, hover over the information (i) icon above the Save button. 5. Select Save. ![Add New Category dialog](/tableau/current/en-gb/server-linux/en-gb/Img/dm_label_manager_new_category_248.png) ### Limitations for creating label categories - The maximum length for a category name is 128 characters in Tableau Cloud and Tableau Server 2024.2 and later. The maximum length for a category name is 24 characters in Tableau Server 2023.3 and earlier. - The maximum length for a category description is 500 characters. ## Edit a data label category To edit a label category: 1. From the Data Labels page, select the label category, then select the pencil icon. Or from the New Label or Edit Label dialogs, select the category in the Label category drop-down and then select the pencil icon next to Category description. 2. (Optional) Change the category name using the Category name field. 3. (Optional) Change the category description using the Category description field. 4. Select Save. ### Limitations for editing label categories - You can't edit a built-in category. - The maximum length for a category name is 128 characters in Tableau Cloud and Tableau Server 2024.2 and later. The maximum length for a category name is 24 characters in Tableau Server 2023.3 and earlier. - The maximum length for a category description is 500 characters. ## Delete a data label category Currently, there isn't a method to delete a label category through the regular Tableau Server interface. To delete a category using the REST API, see the [Delete Label Category method](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_metadata.htm#delete_label_category) in the REST API Reference. ## Scenarios for customisation ### Scenario: Customise a built-in data label Suppose you decide that the data quality warning called "Warning" could be more specific. As an administrator, you change the label name from the default ("Warning") to something you think is more useful to your organisation: "Not approved". The label name "Not approved" now appears in label dialogs when users are selecting labels. Alternatively, you could change the label description so that the user learns more about the warning in the label dialog. For example: "This asset doesn't meet quality standards required by the marketing department." ### Scenario: Create a custom data label Suppose you want users to have more granular control over classifying the sensitivity of assets. You create two sensitivity labels with the names "Public" and "PII". The custom label names "Public" and "PII" now appear in the label dialog drop-downs and descriptions, alongside the built-in sensitivity label. ### Scenario: Create a new data label category and associated data labels Suppose you need a way to identify the business units that are responsible for assets. You create a label category called "Department". Then you create three labels – "Sales", "Service" and "Operations" – with "Department" as their category. The category "Department" and the three associated labels now appear in the More Data Labels dialog for users to attach to assets. [Skip to main content](#main-content) # Manage Individual Sites In addition to planning your sites in Tableau, you can manage users and groups, manage projects and control content access, manage your site data and interact with views on the web. ## Other articles in this section [Skip to main content](#main-content) # Manage Licences You can manage your Tableau Server licences and view licence usage. ## Other articles in this section [Skip to main content](#main-content) # Manage Permissions for External Assets Tableau Cloud and Tableau Server provide a space for accessing and managing published content. When Tableau Cloud or Tableau Server is licensed with Data Management, you have access to Tableau Catalogue. Tableau Catalogue adds a complementary space and a set of features across your site to track and manage metadata and lineage of external assets used by the content published to your site. ## Tableau Catalogue indexes content and assets Catalog discovers, tracks and stores metadata from the content that you publish to Tableau Cloud or Tableau Server. Catalogue indexes metadata for the following: - **Tableau content:** Workbooks, data sources, flows, projects, metrics, virtual connections, virtual connection tables, users and sites. (The legacy Metrics feature was retired in February 2024 for Tableau Cloud and in Tableau Server version 2024.2. For more information, see [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/online/en-gb/metrics_create.htm).) - **External assets:** Databases (including data files) and tables (including table-like objects) that are associated with Tableau content. Catalog classifies the metadata of external assets that come from outside the Tableau environment. External assets can be stored in many different formats, such as a database server or a local .json file. Catalogue tracks only the metadata of the external data and does not track the underlying data in any form (raw or aggregated). Catalogue metadata includes the following:  - **Lineage information** or the relationship between items. For example, the Sales table has a relationship with both the Superstore data source and the Superstore Sample workbook. - **Schema information**. Some examples include: - Table names, column names, and column types. For example, Table A contains Columns A, B and C, which are types INT, VARCHAR and VARCHAR. - Database name and server location. For example, Database\_1 is a SQL Server database at http://example.net. - Data source name, and the names and types of the fields the data source contains. For example, Superstore data source has fields AA, BB and CC. Field CC is a calculated field that refers back to both field AA and field BB. - **User curated**, added, or managed information. For example, item descriptions, certifications, user contacts, data quality warnings and more. ### How does Tableau Catalogue work? Tableau Catalog indexes all content published to Tableau Cloud or Tableau Server to track lineage and schema metadata. For example, the metadata comes from workbooks, packaged workbooks, data sources and the Tableau Server or Tableau Cloud repository. As part of the indexing process, lineage and schema metadata about external assets (databases, tables and other objects) used by the published content are also indexed. **Note:** In addition to accessing Catalog from Tableau Cloud or Tableau Server, indexed metadata can also be accessed from the Tableau Metadata API and Tableau Server REST API. For more information about the Tableau Metadata API or metadata methods in the REST API, see [Tableau Metadata API](https://help.tableau.com/current/api/metadata_api/en-gb/index.html) and [Metadata Methods](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_metadata.htm) in the Tableau Server REST API, respectively. ## Permissions on metadata Permissions control who is allowed to see and manage external assets and what metadata is shown through lineage. **Note:** If Tableau Cloud or Tableau Server is not licensed with Data Management, then by default, only admins can see database and table metadata through the Tableau Metadata API. ### Accessing metadata The permissions used to access metadata through Catalog (or the Metadata API) work similarly to permissions for accessing content through Tableau Cloud or Tableau Server, with some additional considerations for sensitive data that can be exposed through lineage and the capabilities granted on external assets. #### Permissions for Tableau content Catalogue follows the view and manage capabilities that are already in place on existing Tableau content to control the metadata that you can see and manage on Tableau content. For more general information on these capabilities, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#permissioncapabilities). #### Permissions for external assets using _derived permissions_ When Tableau Cloud or Tableau Server is licensed with Data Management, by default Catalog uses _derived permissions_ to automatically grant you capabilities to external assets. Derived permissions are permissions for external assets that are derived from the Tableau Content they're associated with. The View capability: - If you are the owner of a workbook, data source or flow, you can see the database and table metadata used _directly_ by that workbook, data source or flow. See [Additional notes about lineage](#addnotes). - If you are a project owner or project leader, you can see all the database and table metadata used by the content published to your project. - Embedded files use the permissions of the source content (such as the workbook, data source or flow), rather than the derived permissions of the external asset (the database or table). For example, if you can see a workbook with an embedded file, you can see the embedded file and its metadata used by that workbook. The Overwrite and Set Permissions capabilities: - If you are the owner of a flow, you can edit and manage permissions for the database and table metadata used by the flow output. **Note:** In the case of flows, the capabilities mentioned above apply only after the flow has been run successfully at least once under the current owner of the flow. **Check permissions** As an admin or someone who has been given the capability to set permissions for an asset, you can validate who has derived permissions by following the steps below. 1. Sign in to Tableau Cloud or Tableau Server. 2. From the left navigation pane, click External Assets. 3. From the drop-down menu, select Databases and Files or Tables and Objects. **Note:** Local files, like .json or .csv files are grouped as external assets under Databases. 4. Tick the box next to the database or table whose permissions you want to modify, and then select Actions > Permissions. 5. In the Permissions dialog box, click + Add Group/User Rule and start typing to search for a group or user. 6. Validate the permissions by clicking a group name or username in the permission rules to see the effective permissions below. ![Permissions dialog box showing a user's effective permissions](/tableau/current/en-gb/server-linux/en-gb/Img/dm_perms_derived.png) **Order of precedence for derived permissions on external assets** When derived permissions are configured for your Tableau Cloud site or Tableau Server, each user's level of access to external assets depends on the associated Tableau content and the order of precedence of rules that Tableau uses for its content. Tableau follows the rules below, continuing on to the next rule, only if the current rule evaluates to "denied". If any rule evaluates to "allowed", the capability is allowed and Tableau stops evaluating. This rules list is based on the [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#EvaluatePermRules). For View capability: 1. Admin role 2. Licence 3. Project leader (Tableau content) 4. Project owner (Tableau content) 5. Content owner (Tableau content) 6. _Derived permissions_ (applies only to external assets and the View capability) 1. Admin role 2. Licence 3. Project leader (external assets) 4. Project owner (external assets) 5. Content owner (external assets) 7. Explicit permissions For Overwrite and Set Permissions capabilities:  1. Admin role 2. Licence 3. Project leader (Tableau content) 4. Project owner (Tableau content) 5. Content owner (Tableau content) 6. Explicit permissions (Tableau content) 7. _Derived permissions_ (applies only to external assets and the Overwrite and Set Permissions capabilities for flow outputs) 1. Admin role 2. Licence 3. Project leader (external assets) 4. Project owner (external assets) 5. Content owner (external assets) **Turn off derived permissions** As an admin, you can turn off the derived permissions default setting for a site in favour of manually granting explicit permissions to databases and tables. 1. Sign in to Tableau Cloud or Tableau Server as an admin. 2. From the left navigation pane, click Settings. 3. On the General tab, under Automatic Access to Metadata about Databases and Tables, clear the Automatically grant authorised users access to metadata about databases and tables tick box. **Note:** Data quality warning messages on databases and tables that are visible to users though derived permissions remain visible to those users even when the box is not ticked. ### Set permissions on individual external assets In order to grant additional users permissions to view, edit (overwrite) and manage external assets, an admin can grant those capabilities explicitly on individual databases or tables for users or groups. Starting with Tableau Server 2022.3 and Tableau Cloud September 2022, you can organise external assets in projects. Permissions inheritance for external assets works in the same way as it does for Tableau content, as described in the [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#permissionfundamentals) topic and can simplify permissions management. **Summary of permissions capabilities** The following table shows the capabilities you can set for external assets:
CapabilityDescriptionTemplate

View icon. View

See the database or table asset.

View

Save icon. Overwrite

Add or edit data quality warnings and descriptions of the database or table asset. Prior to version 2020.1, the Overwrite capability was called Save.

Publish

Move icon.Move

Move the database or table asset.Administer

Set Permissions icon. Set Permissions

Grant or deny permissions for the database or table asset.

Administer
**Set permissions on a database or table** To set permissions on databases or tables, use the following procedure. 1. Sign in to Tableau Cloud or Tableau Server as an admin or someone who has been granted the "Set Permissions" capability. 2. Find the database or table. You can do this through Explore (starting with Tableau Server 2022.3 and Tableau Cloud September 2022) if you know the current location of the database or table, or through External Assets to see a list of all databases, tables and files. - Explore - From the left navigation pane, click Explore and locate the project the database or table is in. - External Assets - From the left navigation pane, click External Assets. From the drop-down menu, select Databases and Files or Tables and Objects (Note: Local files, like .json or .csv files are grouped as external assets under Databases.) 3. Tick the box next to the database or table whose permissions you want to modify, and then select Actions > Permissions. 4. In the Permissions dialog box, click + Add Group/User Rule and start typing to search for a group or user. 5. Select a permission role template to apply an initial set of capability for the group or user, and then click Save. Available templates are: View, Publish, Administer, None and Denied. 6. To further customise the rule, click a capability in the rule to set it to Allowed or Denied, or leave it unspecified. Click save when you are done. 7. Configure any additional rules you want for other groups or users. 8. Validate the permissions by clicking a group name or username in the permission rules to see the effective permissions below. ![User permissions for adventureworks database](/tableau/current/en-gb/server-linux/en-gb/Img/dm_perms_set.png) **External assets that are not in projects** There are some scenarios in which an external asset is not in a project: - External assets that Catalogue discovered before the External Assets Default Project existed (Tableau Cloud December 2022/Server 2023.1) will not be in a project unless they’ve been moved into one since then. - External assets that had their project deleted before the External Assets Default Project existed (Tableau Cloud December 2022/Server 2023.1) will not be in a project unless they’ve been moved into one since then. - In Tableau Server 2022.1 and earlier, external assets cannot be moved to projects at all. If an external asset is not in a project, permissions for external assets work as they did in Tableau Server 2022.1 and Tableau Cloud June 2022 and earlier. That is, database and table permissions are controlled independently of content in projects, and table permissions can be managed through database permissions. When permissions are set at the database level in this way, those permissions can serve as a template for any newly discovered and indexed child tables of that database. Furthermore, database permissions can also be locked so that the child tables will always use the permissions set at the database level. Note: You cannot lock (or unlock) permissions to a database if the database is in a project. To lock (or unlock) permissions to the database, use the following procedure: 1. Sign in to Tableau Cloud or Tableau Server as an admin or someone who has been granted the "Set Permissions" capability. 2. From the left navigation pane, click External Assets. By default, the External Assets page shows a list of databases and files. 3. Tick the box next to the database whose permissions you want to lock, select Actions > Permissions, and then click the Table Permissions Edit link. 4. In the Table Permissions in Database dialog box, select Locked and click Save. 5. To unlock permissions, click Edit again, and select Customised. ### Access lineage information Catalogue (and the Metadata API) can expose relationship and dependencies metadata, also referred to as _lineage_, among the Tableau content and external assets on Tableau Cloud or Tableau Server. Lineage shows three primary things: - How items relate to each other, either directly or indirectly - How many of those items relate to each other - With the appropriate permissions, shows sensitive data about items in the lineage **Sensitive lineage data** In some cases, lineage can contain sensitive data, such as data quality warning messages, content or asset names or related items and metadata. By default, complete lineage information displays for all users while its sensitive data is blocked from specific users who don’t have the appropriate View capabilities. The concept of blocking sensitive data is called obfuscation. Obfuscation allows all metadata in the lineage to be visible while keeping its sensitive data blocked from specific users who don’t have the appropriate View capabilities. This default enables workflows that rely on a complete impact analysis. If obfuscating sensitive data in the lineage is not enough for your organisation, certain parts of the lineage, including its sensitive data, can be filtered. Filtering omits certain parts of the lineage (and lineage-related areas like data details) for specific users who don't have the appropriate View capabilities for its sensitive data. Because filtering omits parts of lineage, it prevents workflows that rely on a complete impact analysis. To change how sensitive data is handled, do the following: 1. Sign in to Tableau Cloud or Tableau Server as an admin. 2. From the left navigation pane, click Settings. 3. On the General tab, under Sensitive Lineage Information, select the radio button that best handles lineage information for all users on your Tableau Cloud site or Tableau Server. **Additional notes about lineage** - **If you have the View capability on related assets**, you can see when and what assets and content are related to each other, and their sensitive metadata. For example, you can see 1) the names, data quality warnings and total number of related upstream databases and tables and 2) the combined number of sheets (visible and hidden) in the lineage of the downstream workbook of the asset you are evaluating. - **If you _don't_ have the View capability on related assets**, you can always see when assets relate to each other. For example, you can see 1) whether related upstream databases and tables exist in the lineage and 2) the total number of databases or total number of tables that are related to the asset you are evaluating. However, you can't see the metadata associated with those assets when you don't have the view capability for them. When metadata is blocked because of limited permissions, or the asset is in a Personal Space, you see Permissions Required. ![Example of an asset where permission is required](/tableau/current/en-gb/server-linux/en-gb/Img/dm_perms_required_related.png) - **If you _don't_ have the View capability on related assets**, you can always see whether the assets are certified. However, if you don't have View capability, you can't see sensitive information related to the certification, like the names of the related databases and tables. When metadata is blocked because of limited permissions, or the asset is in a Personal Space, you see **Permissions Required**. ![Example of an asset where permission is required](/tableau/current/en-gb/server-linux/en-gb/Img/dm_perms_required_cert_message.png) For more information about lineage see [Use Lineage for Impact Analysis](https://help.tableau.com/current/server-linux/en-gb/dm_lineage.htm). **Additional notes about tags discoverable through lineage data** In addition to Tableau content, external assets can also be tagged. Although tags are always visible, tagged items that you see through lineage data can either be obfuscated (default) or filtered as described earlier in this topic. When tagged items are obfuscated: - **If you have the View capability for tagged items**, you can see the tagged items and related tagged items, and all metadata. - **If you don’t have the View capability for tagged items**: - You can see the type of tagged and related tagged items but you can't see sensitive metadata about the items. For example, suppose you use a tag filter to see items with the tag “Noteworthy”. Although you can see that there are database items tagged with "Noteworthy", you can’t see the names of the tagged databases. - You can see how many related tagged items there are. For example, suppose you do a tag query on “Noteworthy”. Your query returns five tagged databases. When tagged items are filtered, the tagged and related tagged items you see are limited to only the items that you have the View capability for. For more information about tags, see [Tagged Items](https://help.tableau.com/current/pro/desktop/en-gb/tags.htm) in the Tableau User Help. Potential mismatch between asset results and content results When Catalogue shows lineage information, it provides information about Tableau content and external assets. Catalogue lineage always shows the true count or result of associated items. However, in other areas of the site, you might see fewer items. This could be because of your View capabilities. Outside of Catalogue, you see only the content that your permissions allow. For example, suppose you're looking at the Superstore data source. The lineage for the Superstore data source shows how many upstream underlying tables the data source connects to and how many downstream workbooks rely on the data source. However, because you might not have permissions to see all of those downstream workbooks, the number of related workbooks in the Catalogue lineage (actual total) might be greater than the number of workbooks in the Connected Workbooks tab (what you have permission to see). There might be other reasons, unrelated to permissions, why you might see a mismatch between asset counts and content counts. For more information, see [Use Lineage for Impact Analysis](https://help.tableau.com/current/server-linux/en-gb/dm_lineage.htm). ## Who can do this The following information summarises the types of users who can do the tasks described in this topic. Tableau Cloud site or Tableau Server admin
Data ManagementCapabilityRequirements
LicensedSee assets and their metadataNone
Edit assets and their metadataNone
Change permission on assets and their metadataNone
Grant users ability to see assets and their metadata

Default: When “derived permissions” is on, your users can see metadata on external assets for the content that they own, or for the content that is published to a project that they are a project leader or project owner of.

Ad-hoc: You can configure explicit View permissions on a specified external asset.

Grant users ability to edit assets and their metadataYou can configure explicit "write" or Overwrite permissions on a specified external asset (if not automatically granted because the user is a flow owner) .
Grant users ability to change permissions on assets and their metadataYou can configure explicit "edit" or Set Permissions on a specified external asset (if not automatically granted because the user is a flow owner) .
Not licensedSee all assets and their metadataApplies to Metadata API only
Edit assets and their metadataRequires Data Management
Change permission on assets and their metadataRequires Data Management
Grant users ability to see assets and their metadata

Applies to Metadata API only:

You can turn on derived permissions as described above. If “derived permissions” is on, your users can see metadata on external assets for the content that they own, or for the content that is published to a project that they are a project leader or project owner of.

Grant users ability to edit assets and their metadataRequires Data Management
Grant users ability to change permissions on assets and their metadataRequires Data Management
User with Creator or Explorer licence
Data ManagementCapabilityRequirements
LicensedSee assets and their metadata

Default: When "derived permissions" is enabled by your Tableau Cloud site admin or Tableau Server admin, you can see metadata on external assets for the content that you own, or for the content that is published to a project that you are a project leader or project owner of.

Ad-hoc: You can see metadata on external assets that you have been granted explicit View permissions to.

Edit assets and their metadataYou can edit metadata on an external asset that you have been granted explicit "write" or Overwrite permissions to(if not automatically granted because the user is a flow owner).
Change permissions on assets and their metadataYou can change permissions on an external asset that you have been granted explicit "edit" or Set Permissions to ((if not automatically granted because the user is a flow owner).
 Grant other users permissions to see assets and their metadataYou can change permissions on an external asset that you have been granted explicit "edit" or Set Permissions to ((if not automatically granted because the user is a flow owner).
Not licensedSee assets and their metadata

Applies to Metadata API only:

If “derived permissions” is enabled by your Tableau Cloud site admin or Tableau Server admin, you can see metadata on external assets for the content that you own, or for the content that is published to a project that you are a project leader or project owner of.

Edit assets and their metadata

 

Requires Data Management

Change permissions on assets and their metadata
Grant other users permissions to see assets and their metadata
[Skip to main content](#main-content) # Manage Permissions with Projects Projects can simplify permission management with features such as nested projects, project visibility, non-admin project leaders and locking permissions. > [!TIP] > > How permissions are set at the project level is important, especially for the Default project. When a new top-level project is created, it inherits its default permission rules (for all content types) from the Default project. When a new project is created nested inside another project, the child project inherits its default permission rules from the parent project. ## Project administration Projects are containers used to organise and manage access to content. By giving non-administrators privileges to manage projects, certain content administration tasks can be handled at the project level. **Project Leaders**: Projects can have project leaders, users who have been set as a project leader. This setting automatically grants a user their maximum capabilities – depending on their site role – for that project and all content in that project. Project leaders with site role of Explorer (can publish) and above have all capabilities. Project leaders are essentially local admins for the project without access to site or server settings. **Hierarchy**: Only administrators can create top-level projects. Project owners and project leaders can create nested projects inside their projects. Project owners and leaders have full administrative access to the project and its content, as well as any nested projects it contains. In a hierarchy, project leaders are implicitly given project leader access to all child content. To remove project leader access, you must do so at the level in the hierarchy where the role was explicitly assigned. **Ownership**: A project can have multiple project leaders, but each project has exactly one owner. By default, a project is owned by the user who created it.  A project’s owner can be changed by the existing owner or an administrator. (Project leaders can't change project ownership, only content ownership). Projects can be owned by users with a site role of Explorer (can publish), Creator or administrator. Project ownership can be changed even if a project is locked. **Deleting**: Most content can only exist inside a project. Only administrators can create and delete top-level projects, but project leaders can create or delete nested projects. Deleting projects also deletes all the Tableau content and nested projects they contain. To delete a project without losing its content, move the content to another project first. Deleting projects can’t be undone. External assets are handled differently. They don’t have to be in a project. External assets aren’t deleted if their project is deleted and continue to appear in External Assets. See [External assets that aren’t in projects](https://help.tableau.com/current/server-linux/en-gb/dm_perms_assets.htm#external_assets_not_in_projects) for more information. For a deeper dive into project administration, see [Use Projects to Manage Content Access](https://help.tableau.com/current/server-linux/en-gb/projects.htm) and [Add Projects and Move Content Into Them](https://help.tableau.com/current/server-linux/en-gb/projects_add.htm). ## Special projects Default: The project named "Default" is a special project. When other top-level projects are created, they use the Default project as a template, and copy all their permissions rules from it (but not the Asset permissions setting). The Default project can’t be deleted, moved, or renamed, but its description can be changed. It has no owner by default, but one can be assigned. External Assets Default Project: In Tableau Cloud and Tableau Server 2023.1 and later, if you have a Data Management licence with Catalogue enabled, the project named "External Assets Default Project" appears when Catalogue needs to move new or existing external assets to it. Catalogue puts new external assets and external assets from deleted projects in the External Assets Default Project. The project has no permissions rules by default, so server administrators and site administrators are the only users who can see it unless permissions are added. It can’t be deleted, moved or renamed, but its description can be changed. It has no owner by default, but one can be assigned. ## Set a project leader Project leaders are users who have administrator-like access for a specific project or project hierarchy. To assign project leader status to a group or user 1. Open the permission dialog for the appropriate project. 2. Select an existing permission rule, or click + Add Group/User Rule and chose the desired group or user. 3. Open the action menu (...) for that permission rule and select Set Project Leader.... **Note**: If the action menu includes an option for Enable "Set Project Leader", this needs to be selected before the group or user can be set as a project leader. This option only appears when that group or user was denied the Project Leader capability (prior to 2020.1). That denied capability needs to be removed before they can be set as a project leader. After a permission rule establishes a project leader, the templates and capabilities can't be edited because all capabilities are allowed for project leaders. If a project leader is established on a project that contains nested projects, they have inherited project leader status on all nested projects and their content. Project leader status is always applied downward through the entire project hierarchy and can only be removed from the level where it was set. To remove project leader status, follow the same steps but select Remove as Project Leader from the action menu. After a group or user has been removed as project leader, that permission rule has all capabilities set to Unspecified. This may mean their access to and capabilities for that project is removed if there’s no other permission rule giving them permissions to the content. To keep their access to the project and its content, they need to have capabilities set like any other group or user. **Note**: Project leaders can refresh extracts in their projects in most circumstances. They can't refresh extracts if they're only the project leader of a nested project (instead of a top-level project) and the top-level project is _locked (including nested projects)_. ## Lock asset permissions Permission rules set at the project level act as a default for content saved in that project and any nested projects it contains. Whether those project-level default rules are enforced or only preliminary depends on the Asset permissions setting. This setting can be configured in two ways, either Locked (recommended) or Customisable. Locking a project removes the ability for content owners to modify the permission rules on their content. Locking permissions can be applied to nested projects or just to the parent project itself. - When Asset permissions is Locked (including nested projects), permission rules set at the project level are enforced for all assets in the project and all nested projects. - When Asset permissions is **Locked** (_not_ including nested projects), permission rules set at the project level are enforced for assets in the project. Nested projects can be configured independently with their own permission rules and set as locked or customisable. - When Asset permissions is Customisable, permission rules set at the project level are applied to all assets in the project by default. However, permission rules can be modified for individual assets during or after publishing. **Note**: Whether permission rules are locked or customisable, the permissions on content are always applied. _Locked_ and _customisable_ refer only to how project-level permissions are inherited by content in the project and who can change them. Even in a project with customisable permissions, only specific users can modify permissions (content or project owner, project leader, admins or those with the Set Permission capability). In a locked project: - The project permission rules per content type are applied to all assets. - Only administrators, project owners and project leaders can modify permissions. - Content owners lose the Set Permission capability but retain all other capabilities on their content. - Permissions are predictable for all content in the project. In a customisable project: - The project permission rules are applied by default when content is published into the project or nested projects are created, but permissions can be modified during publication or after the content is created. - Any user with the Set Permissions capability can modify permission rules for that content. - Content owners have all capabilities on their content. - Permissions can be different across content in the project. - Any changes to permissions on the customisable parent project aren't applied down to nested projects. ### Set asset permissions (lock a project) New top-level projects inherit all initial permission rules from the Default project but not the Asset permissions setting, which is set to Customisable. This can be changed to Locked if desired. To configure Asset permissions: 1. You must be logged into the site as an administrator, project owner or project leader 2. Open the permissions dialog for a project 3. Next to Asset permissions in the upper left, click the Edit link and select the desired option in the Asset permissions dialog ![Asset Permissions dialog box with the Locked option selected.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_lockproject.png) **Note**: If the upper left corner doesn’t show an **Edit** link in step 3 above, you may be on the permissions dialog for (a) a nested project or a piece of content in a locked project, in which case the link should bring you to the managing project, (b) a piece of content in a customisable project, which won’t show anything or (c) a view, which will indicate how the view permissions are tied to the workbook. For more information on the interplay of permissions for views and workbooks, see [Show or Hide Sheet Tabs](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#sheettabs). ### Change asset permissions When the Asset permissions setting for a project is changed, the outcome depends on the new setting. Changes to permission rules in a locked hierarchy must be done at the level of the managing project.
Changing fromChanging toOutcome
Locked (including nested projects)Locked

Doesn’t modify existing permission rules.

Any nested projects become customisable.

Customisable

Doesn’t modify existing permission rules, though they become customisable.

Any nested projects become customisable.

LockedLocked (including nested projects)

Overwrites existing custom permission rules for all nested projects and their content. This can’t be undone.

Customisable

Doesn’t modify existing permission rules, though they become customisable.

Any nested projects retain their content permission settings and permission rules.

CustomisableLocked (including nested projects)Overwrites existing custom permission rules for content in the project, and all nested projects and their content. This can’t be undone.
Locked

Overwrites existing custom permission rules for content in the project. This can’t be undone.

Any nested projects retain their permission rules and remain customisable.

### Move projects and content #### Move Tableau content and external assets When _Tableau content_ or _external assets_ are moved between projects with different permission settings, Asset permissions settings determine the logic of how permissions are applied. - Moving assets into a locked project overrides the existing permission rules and enforce the destination’s permissions. - Moving assets into a customisable project maintains the existing permission rules on the asset. **Note**: Prior to Tableau Server 2022.3 and Tableau Cloud June 2022, external assets couldn’t be in projects, and permissions on tables were managed through the Table permissions setting of the parent database. Beginning with Tableau Server 2022.3 and Tableau Cloud June 2022, external assets can be in projects. If a database or a table is moved into a project, older settings to control table permissions through the database are ignored, and the database or table permissions follow the logic of other assets. #### Move projects When a _project_ is moved into another project, the permissions settings on the item being moved are maintained unless the destination project is scoped to include nested projects. (Project permissions in this case mean the View and Publish capabilities for the project itself.) - If the destination project is set to **locked (including nested projects)**, the permissions for the project being moved _and its content_ are overwritten. - If the destination project is set to **locked** (not including nested projects), the permissions for the project being moved aren’t overwritten. Whether the moved project is locked or customisable is preserved from its original setting. - If the destination project is set to **customisable**, the permissions for the project being moved aren’t overwritten but they’re now editable. If the project being moved was previously nested under a parent that was _locked (including nested projects)_, when moved, the project takes on the setting of _locked (including nested projects)_ and becomes the managing project for any projects it contains. Note: This is the same outcome if a project is moved to become a top-level project. Use care moving locked nested projects Moving nested projects inside _locked (including nested projects)_ environments can be tricky. A project can be moved into situation that prevents the user from moving it out again. If a nested project is owned by a different user than the managing project, and the managing project is set to _locked (including nested projects)_, a nested project can wind up unable to be moved by anyone except an admin. For example, consider a locked (including nested projects) top-level project owned by userA, and two nested projects owned by userB. If userB moves one nested project inside the other, they aren't then able to move it back out – and neither is userA. - UserB can't move **Nested project2** because they don't have rights to move rights on **Top-level Project** as a destination. - UserA can't move **Nested project2** because they don't have move rights on it. - A project leader on **Top-level Project** can't move it even though project leader trickles down to nested projects. - Only an admin can move **Nested project2** in this setup. ![A top-level project with a lock icon and the name "userA" next to it, with "nested project1" inside and "nested project2" inside that. Both nested projects are owned by userB.](/tableau/current/en-gb/server-linux/en-gb/Img/move_locked_nested_projects.png "Screenshot of move content window") ## Collections Unlike projects, which contain content, a collection can be thought of as a list of links to content. Project permissions can be inherited by the content in the project, but permissions for a collection have no effect on the content added to the collection. This means that different users might see different numbers of items in a collection, depending on which items they have permission to view. To make sure that users can see all items in a collection, adjust the permissions for those items individually. Permissions for a collection can be changed either by using the permissions dialog or by granting access upon sharing a collection, if you’re an administrator or the collection owner. For more information, see [Manage Collection Permissions](https://help.tableau.com/current/pro/desktop/en-gb/collections.htm#permissions). #### Private collections When a collection is created, it’s private by default. A private collection appears on the owner’s My Collections page, but it doesn't appear in the list of all collections on a site. Private collections are simply collections with no permission rules added. Unlike other types of content, collections don't have the “All Users” group added by default. When you add permission rules to a collection, it’s no longer flagged as private. To return a collection to a private state, remove the permission rules. Private collections can be viewed by the collection owner as well as by administrators, whose site role gives them effective permissions to view all collections. [Skip to main content](#main-content) # Manage Server After installing Tableau Server, you can customise and manage your server. For example, you can manage security, licences, sites, subscriptions and data-driven alerts and more. ## Other articles in this section [Skip to main content](#main-content) # Manage Server Secrets Tableau Server needs to store a number of secrets that it uses to perform various functions, typically securing internal communication, communicating with other applications or the operating system or providing secure communication with clients. In this context, the term _secret_ may refer to a password, a token, or other string that is used to authenticate one entity to another. There are two categories of secrets that are required to run Tableau Server. They differ according to how the secrets are generated: - **Secrets that are generated by administrators**. These include credentials and associated secrets for the Run As User account and the SMTP credentials used by Tableau Server. - **Secrets that are automatically generated by various processes in the system**. For example, a secret is required to protect communication between the Cluster Controller and ZooKeeper processes. And a number of different passwords are required for each service and programmatic user that communicates with Postgres. Most secrets are encrypted while at rest. When a secret is needed, it is decrypted at run time. This topic describes how secrets storage works and what you need to do to properly manage storage of secrets on Tableau Server. ## Understanding how secrets storage works During installation Tableau Server generates and stores a master key in a Java keystore. The master key is used to encrypt a configuration encryption key that is used across the system. Whenever a new secret is created or updated, the secret is encrypted with the configuration encryption key. The encrypted value is then stored with its corresponding configuration parameter in a YAML file on the server. Parameters that hold an encrypted value use the format, `ENC()`, where `` is a Base64-encoded encrypted string. At run time, when a given secret needs to be accessed, the encrypted values are read into memory and decrypted with the configuration encryption key. In the case of pending changes, where secrets are entered during a configuration change, the entire transaction is encrypted. In this scenario, after you enter a secret and save the pending change, the secret is transmitted to the Coordination Service (over encrypted SSL). The Coordination Service encrypts the secret and stores it until the pending changes are applied. When changes are applied, the secret (still encrypted) is promoted to the current configuration version. Tableau Server encrypts secrets using 256-bit AES in GCM mode. The keys used for secure storage are different than the asset keys that are used to encrypt embedded database credentials before they are stored in the repository. ### Who has access to the master key? In a default installation, the Java keystore for Tableau Server will be replicated into the `/tabsvc/keystores` folder for each service on that node under `/var/opt/tableau/tableau_server/data/tabsvc/config`. For example, `/var/opt/tableau/tableau_server/data/tabsvc/config/tabadminagent_/tabsvc/keystores/tableauserver.jks`. If you use a custom install directory, then the keystore files will be found under `/tableau_server/data/tabsvc/config//tabsvc/keystores` By default, the following users and groups have access to this directory: - root - tableau (user) - members of the 'tableau' group ### Import and export configuration information Tableau Services Manager introduces the capability to import and export configuration information using [tsm settings export](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm#TSMExport). **Note**: This version of Tableau Server does not support restoring configuration information from a backup. Instead, we recommend using the export and import configuration commands to backup and restore configuration information. While configuration secrets are encrypted when stored on disk internally, when the configuration is exported to a file, secrets are written into the file in plain text. It is up to the administrator to take measures to protect this file. There are a variety of options available: - Write the file to an encrypted file system. - Write the file to a directory that is restricted to specific users or groups by file system permissions. - Encrypt the output file. ### Securing secrets for import and export operations This section describes how to PGP encrypt the backup output. With this method, you will create a named pipe and provide it as the file argument, then use that as input to gpg encrypt it. The advantage is the secrets are never written to disk in plain text. gpg must be available and a private key available. An example of this method is shown in the following section. The example in this section describes one way of handing secrets to store them on a separate computer. See the following external references for more information: - [File encryption on the command line](http://backreference.org/2014/08/15/file-encryption-on-the-command-line/) - [mkfifo(1) - Linux man page](https://linux.die.net/man/1/mkfifo) Example: encrypt and export The following is an example of how to secure the file when exporting the configuration. `mkfifo -m 600 /tmp/secure1 && (gpg --symmetric --batch --yes --passphrase-file ~/.secrets/pgppassphrase.txt --cipher-algo AES256 --output encrypted.enc < /tmp/secure1 &) && tsm settings export -f /tmp/secure1 && rm /tmp/secure1` The details of this operation are: - Create a named pipe with access limited by file permissions to rw for current user. `mkfifo -m 600 /tmp/secure1` - Call gpg to encrypt the data sent to the named pipe, backgrounding it to a separate process. It will block waiting for data. The result will be a file containing the encrypted data. `gpg --symmetric --batch --yes --passphrase-file ~/.secrets/pgppassphrase.txt --cipher-algo AES256 --output encrypted.enc < /tmp/secure1 &` - Call tsm to export the configuration, providing the named pipe as the file argument. `tsm settings export -f /tmp/secure1` - Delete the named pipe. `rm /tmp/secure1` The encrypted data is in the file "encrypted.enc." **Example: decrypt and import** The following is an example of how to decrypt and import the configuration. `mkfifo -m 600 /tmp/secret2 && (gpg --decrypt --batch --yes --passphrase-file ~/.secrets/pgppassphrase.txt encrypted.enc > /tmp/secret2 &) && tsm settings import -f /tmp/secret2 && rm /tmp/secret2` The details of this operation are: - Create a named pipe with access limited by file permissions to rw for current user. `mkfifo -m 600 /tmp/secure2` - Decrypt the configuration and send it to the named pipe. Background this to a separate process, it will block waiting to be read. `gpg --decrypt --batch --yes --passphrase-file ~/.secrets/pgppassphrase.txt encrypted.enc > /tmp/secret2 &` - Execute the tsm configuration import command, logging in as needed. `tsm settings import -f /tmp/secret2` - Delete the named pipe. `rm /tmp/secure1` The pending configuration contains the imported configuration. Run [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply) to commit changes. If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ### Cluster nodes When adding a new node to your Tableau Server cluster, you will first need to generate the node configuration file ([tsm topology](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#topology-get-bootstrap-file)). The node configuration file contains a copy of the master keystore file used for encrypting the configuration secrets. **Important**: We strongly recommend that you take additional measures to secure the node configuration file when exporting a configuration file with secrets. When [installing and configuring Tableau Server on the new node](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm), you will need to provide the node configuration file to the `initialize-tsm` command. You can use a similar technique as described above to decrypt the contents of the file that was previously encrypted and send it via a named pipe to the `initialize-tsm` command. ### Secrets storage event logging The following events related to secrets storage are logged: - Generating new encryption keys - Encryption key is rolled or changed - Encrypting a new value in the configuration file For more information about log files and where they are stored, see [Work with Log Files](https://help.tableau.com/current/server-linux/en-gb/logs_working_with.htm). ## Managing secrets As a Tableau Server administrator the most important task related to secrets storage is to periodically update secrets. In some cases (server troubleshooting or auditing), you may need to retrieve a password. For other operations, such as upgrading versions, backing up and restoring, or adding new nodes to a cluster – as noted above – Tableau Server manages secrets storage and related processes automatically. ### Updating secrets You should update secrets periodically, according to your company's security policy. To update the master key and automatically generated secrets, run [tsm security regenerate-internal-tokens](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm#regenerate-tokens). ### Retrieving passwords In some cases, you may need to retrieve a password for troubleshooting or other operations. For example, you may need the Postgres read only user credentials that are generated and encrypted by Tableau Server. In these cases, you can run a tsm command that will retrieve and decrypt the password for you. To retrieve a password, open Command Prompt and issue a `tsm configuration get` command for one of the parameters listed in the table below. For example, to retrieve a password for the Postgres read only user, type the following command: `tsm configuration get -k pgsql.readonly_password` The command will return the password in clear text: `$ tsm configuration get -k pgsql.readonly_password` `password`
Configuration ParameterDescription
clustercontroller.zookeeper.passwordPassword for cluster controller to connect to zookeeper.
indexandsearchserver.client.password Password for logging into Index and Search Server.
indexandsearchserver.ssl.admin.cert.bytes Admin certificate that is used for administrative access to the Index and Search Server. The admin certificate is used to generate the node certificate.
indexandsearchserver.ssl.admin.key.file_bytes Certificate key for administrative access to the Index and Search Server.
indexandsearchserver.ssl.node.cert.bytes Certificate that is used for Index and Search Server node-to-node communication.
indexandsearchserver.ssl.node.key.file_bytes Certificate key that is used for Index and Search Server node-to-node communication.
indexandsearchserver.ssl.root.cert.bytes Certificate that is used to sign the admin and node certificates . This certificate is used by TSM for health check and by NLP to connect to Index and Search Server.
indexandsearchserver.ssl.root.key.file_bytes Certificate key for root certificate.
filestore.zookeeper.passwordPassword for filestore to connect to zookeeper.
hyper.connection.init_password Password used to initialize the Hyper database for user tableau_internal_user and is then used for connecting to Hyper.
jdbc.passwordPassword for the rails Postgres user.
kms.persistent_store A collection of master encryption keys (MEKs) used by the Key Management System.
maestro.rserve.password Password for connecting to an external Rserve instance used by Tableau Prep Conductor for running flows that have nodes with R scripts.
maestro.tabpy.passwordPassword for connecting to an external TabPy (Python server) instance used by Tableau Prep Conductor for running flows that have nodes with Python scripts.
oauth.google.client_secretClient secret of the Google Cloud Platform account.
oauth.quickbooks.consumer_secretConsumer secret of the Intuit developer account.
oauth.salesforce.client_secretClient secret of the Salesforce developer account.
pgsql.adminpassword

Password for the tblwgadmin Postgres user.

Note: Although the configuration parameter is encrypted in Tableau's configuration files (tabsvc.yml, workgroup.yml), this password is stored in plain text in files used by SAML.

pgsql.readonly_passwordPassword for the readonly Postgres user.
pgsql.remote_passwordPassword for the tableau Postgres user.
redis.password

Password for Redis.

Note: Although the configuration parameter is encrypted in Tableau's configuration files (tabsvc.yml, workgroup.yml), the configuration will still be in plain text in the redis.conf file that is consumed by the Redis application. Redis does not support encrypted/secured passwords.

servercrashupload.proxy_server_passwordPassword for custom proxy server used to upload crash reports.
service.runas.passwordPassword of the Run As users. Stored temporarily.
ssl.cert.file_bytes The content of one of the three SSL certificate files uploaded by the administrator. The certificate files are required to enable secure external connections to Tableau Server.
ssl.chain.file_bytes The chain file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.file_bytesKey file(s) for the certificates uploaded by the administrator for external SSL.
ssl.key.passphraseOptional passphrase used to protect the external SSL key.
svcmonitor.notification.smtp.passwordSMTP Server password supplied by the administrator through TabConfig.exe.
tabadminservice.passwordPassword for the service that allows server admins to download log files through the web interface.
vizportal.openid.client_secretThis is the password ("provider client secret") used for OpenID Connect SSO.
vizqlserver.external_proxy_password Password used to authenticate to an external proxy.
wgserver.domain.passwordPassword used to bind to Active Directory.
wgserver.saml.key.passphrasePassphrase used to access the PKCS#8 SAML key file.
zookeeper.tsm.passwordPassword that TSM uses to connect to Zookeeper coordination service
[Skip to main content](#main-content) # Manage Site Role Limits Server administrators can create site role limits to set a maximum number of licences of each type (Creator, Explorer or Viewer) that can be consumed on a given site. After a server administrator sets a site role limit, site administrators can add users (thereby automatically consuming licences) up to that site role limit. If a user is a member of multiple sites across the server, then that user will count against each site's role limit, but will only consume one licence (which corresponds to the highest site role they have on the server). Server administrators do not count against site role limits. To learn more about the capabilities of each site role, see User-based licences in the Tableau Server help [Licensing Overview](https://help.tableau.com/current/server-linux/en-gb/license_server_overview.htm#userbased-licenses). For information for server administrators on how to set up site role limits, see [Site Settings Reference](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm). ## Create role limits on a site Before you can enable site administrators to manage their users, you can View Server Licences to determine how to allocate licences across the Server, or Add Capacity for new users to the Server. Server administrators can configure site role limits through the Settings page in the web UI, or through the [REST API.](https://help.tableau.com/v2020.1/api/rest_api/en-us/REST/rest_api_whats_new.htm#whats-new-rest-api-37-for-tableau-server-20201-and-tableau-online) To set a site role limit on a site: 1. Go to the General tab of the Settings page for your site. - If you have a single site, on the side navigation, click Settings and General. - If you have multiple sites, select the site you want to configure and click Settings and General. 2. Under Managing Users, specify that Server and site administrators can add and remove users. 3. Under Limit the number of users to: select Site Role Limit 4. Set a limit for Creators, Explorers and Viewers. 5. Click Save Server administrators can set site role limits within the following restrictions: - A site role limit cannot exceed the number of licences of that type that have been activated on the server - A site role limit cannot be less than the number of users of that site role already present for that site - If a limit is set for any licence type, a limit must be set for every licence type. - If the limit for a role is left blank, the server licence limit is used. ## When site role limits are met If a user is added to a site as an Explorer, they will consume an Explorer licence, unless the site has met its role limit set for Explorer. When this happens, a few different things can occur: - If there are available licences at a higher tier, the user will be added to the site as an Explorer, but will consume a Creator licence. - If no higher licences are available, the user is added to the site as an Unlicensed user. Site role limits can be affected by users consuming licences that are different than their given site roles (Viewers consuming Explorer licences, for example). In this case, administrators can unlicense those users, then update the site role quotas. For more information on how to troubleshoot licensing issues, see [Troubleshoot Licensing](https://help.tableau.com/current/server-linux/en-gb/unlicensed.htm). [Skip to main content](#main-content) # Manage Sites Across a Server You can plan and manage your sites in Tableau Server. You can manage users and groups for your sites, manage projects and content access, manage data, and create and interact with views on the web. ## Other articles in this section [Skip to main content](#main-content) # Manage Tasks Administrators can change the priority of scheduled extract refreshes relative to other server tasks, manually refresh extracts or delete their schedules. They can also change the priority for flow schedules. ## Manage refresh tasks 1. Sign in to the site that has the schedules you want to manage, and then click Tasks. 2. Select one or more scheduled extract refreshes. 3. From the Actions menu, do any of the following: - Select Change Schedule, and choose a new schedule from the list. - Select Run Now to refresh manually. **Note:** If an extract does not have a scheduled refresh, you can refresh it on demand from the Data Connections page. - Select Change Priority, and enter a number between 1 and 100 to move the extract up or down in the priority list. ![A dialog box for changing the priority of a selected extract refresh.](/tableau/current/en-gb/server-linux/en-gb/Img/sched5.png) - Select Delete to completely remove the schedule for the selected data sources. ## Manage flow tasks Administrators can change the frequency for a flow schedule, change the priority, as well as edit a schedule for a flow or manually run the flow, all from the Tasks page. 1. Sign in to the site that has the schedules you want to manage, and then click Tasks. 2. On the Flow tab, select one or more flows that you want to manage. 3. From the Actions menu, do any of the following: - Select Run Now to run the flows manually. - Select Edit Task to edit the flow task. - Select Change Schedule, choose a new schedule from the list, then select Change Frequency. - Select Change Priority, and enter a number between 1 and 100 to move the flow run up or down in the priority list. ![Chang Priority dialog.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_schedule_tasks_change_priority.png) - Select Delete to completely remove the schedule for the selected flows. ## See also [Enable Extract Refresh Scheduling and Failure Notification](https://help.tableau.com/current/server-linux/en-gb/schedule_enable.htm) [Skip to main content](#main-content) # Manage the Identity Migration As an administrator, you can monitor and manage the identity migration, including changing when the migration jobs run, through the dedicated Identity Migration page available from Tableau Server’s Users page. This page is available for the duration of the migration process. ![Identity migration overview page.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_main.png) The migration jobs are designed to run in the background without interrupting or interfering with the use of Tableau Server. If needed, however, you can make adjustments that affect how frequently migration jobs run, when the migration jobs run and how long the migration jobs can run. Generally, the migration can take anywhere from 3 minutes to 10 days, depending on the size of your Tableau Server deployment and any changes to the default settings you make during the migration. For example, if you have 10,000 users, the migration can take about 30 minutes. **Note:** While the migration jobs are running, all authentication and user-related capabilities work normally. ## Manage identity migration jobs You can manage the following aspects of the identity migration. Resolve identity conflicts To review the identity conflicts you might encounter during the migration, see [Resolve Identity Migration Conflicts](https://help.tableau.com/current/server-linux/en-gb/identity_migration_conflicts.htm). Change daily migration job schedule 1. Sign in to Tableau Server as an administrator. 2. From the left navigation pane, select Users (or All Sites > Users for a multi-site Tableau Server) and then click the Identity Migration page. 1. Next to the Migration Overview heading, click the Edit Schedule button. 2. In the Edit Schedule dialog box, change when and how frequently jobs can run. **Note:** You can ignore the Priority and Execution options in this dialog box. ![Edit Schedule dialog with options for editing the frequency of migrations.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_schedule.png) 3. When finished, click Update. Initiate a migration job 1. Sign in to Tableau Server as an administrator. 2. From the left navigation pane, select Users (or All Sites > Users for a multi-site Tableau Server) and then click the Identity Migration page. 1. From any tab, select a user or multiple users. 2. From the Actions menu, select Retry Migration or Acknowledge, depending on what you need to do. ![Identity Migration actions dropdown menu with options to Retry Migration or Acknowledge.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_actions.png) 3. Next to the Migration Overview heading, click on the Edit Schedule drop-down arrow. 4. Select Run Now. ![Dropdown menu for editing the migration schedule with the option to run now highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_runnow.png) Pause the identity migration 1. Sign in to Tableau Server as an administrator. 2. From the left navigation pane, select Users (or All Sites > Users for a multi-site Tableau Server) and then click the Identity Migration page. 1. Next to the Migration Overview heading, click on the Edit Schedule drop-down arrow. 2. Select Disable. Restart the identity migration 1. Sign in to Tableau Server as an administrator. 2. From the left navigation pane, select Users (or All Sites > Users for a multi-site Tableau Server) and then click the Identity Migration page. 1. Next to the Migration Overview heading, click on the Edit Schedule drop-down arrow. 2. Select Enable. ## Change identity migration settings To reduce any potential strain the identity migration might have on your Tableau Server, the migration is configured to run with the default settings listed below. ### Migration settings
Typetsm commandDefaultProcedure
Jobs scheduleN/A3:00 a.m. daily until completeConfigurable from the Identity Migration page, see Change daily migration job schedule above.
User identity requests per second (rate)tsm authentication identity-migration configure -–rateUp to 5

If needed, you can use the tsm authentication identity-migration command to change the migration settings listed above using the steps below.

  1. Open a command prompt as an admin on the initial node (where TSM is installed) in the cluster.
  2. Run one or both of the commands described in tsm authentication identity-migration.

    For example, to change the individual job runtime and rate from their default values, you can run the following command:

    tsm authentication identity-migration configure --job-run-time 180 --rate 3

Individual job runtimetsm authentication identity-migration configure -–job-run-time120 minutes
Enable identity migrationtsm configuration set -k features.IdentityMigrationBackgroundJobfalse

By enabling the identity migration, Tableau Server can use the Identity Service to store and manage user identity information.

  1. Open a command prompt as admin on the initial node (where TSM is installed) in the cluster.

  2. Run the following command:

    tsm configuration set -k features.IdentityMigrationBackgroundJob -v true

Note: The identity migration and the Identity Service is a prerequisite for certain capabilities like identity pools. For more information about the tsm command, see features.IdentityMigrationBackgroundJob.

### Disable identity migration If you’ve upgraded to Tableau Server versions 2021.4.21, 2022.1.17, 2022.3.9 and 2023.1.5, you might need to disable the identity migration. By disabling the identity migration, Tableau Server cannot use the Identity Service to store and manage user identity information. 1. Open a command prompt as admin on the initial node (where TSM is installed) in the cluster. 2. Run the following command: `tsm configuration set -k features.IdentityMigrationBackgroundJob -v false` **Note:** The identity migration and the Identity Service is a prerequisite for certain capabilities like [identity pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm). ## Complete the identity migration and configure the Identity Service After all user conflicts are resolved or addressed and migration jobs run, you must configure Tableau Server to use the Identity Service to complete the identity migration process. ### Step 1: Validate and complete the identity migration 1. Sign in to Tableau Server as an administrator. 2. From the left navigation pane, select Users (or All Sites > Users for a multi-site Tableau Server) and then click the Identity Migration page to verify the migration has started. You can monitor and manage its progress using the dedicated Identity Migration page available from Tableau Server’s Users page. For more information, see [Manage the Identity Migration](#). 3. Resolve or acknowledge all identity conflicts as described in [Resolve Identity Migration Conflicts](https://help.tableau.com/current/server-linux/en-gb/identity_migration_conflicts.htm) so that the All failures tab displays "0" like in the image below. ![Identity migration summary showing zero failures.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_failures_acknowledge.png) 4. Do _one_ of the following: - To run the identity migration job now, next to the Migration Overview heading, click the Edit Schedule drop-down arrow, then select Run Now. ![Dropdown menu for editing the migration schedule with options to disable or run now.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_overview_runnow.png) - Alternatively, you can wait for the migration job to run during the next scheduled time. 5. After the migration completes, from the Identity Migration page, validate that the Migration Overview shows 100% complete. ![Identity migration progress bar indicating 100% completion.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_complete.png) ### Step 2: Configure Tableau Server to use the Identity Service 1. Open a command prompt as an administrator on the initial node (where TSM is installed) in the cluster. 2. Run the following commands depending on the version of Tableau Server version you are running: - For Tableau Server versions 2022.1.8 (and later), 2022.3.10 (and later), 2023.1.6 (and later) and later: ``` tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled -v false ``` - For Tableau Server versions 2022.1-2022.1.7, 2022.3-2022.3.9 or 2023.1-2023.1.5: ``` tsm authentication legacy-identity-mode disable ``` **Note:** After running one of the commands above, the dedicated Identity Migration page is removed and no longer accessible. The page is accessible only when `tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled` is `true` or `tsm authentication legacy-identity-mode` is enabled. After Tableau Server is configured to use the Identity Service, when users sign in to Tableau Server, Tableau Server searches for their user identities using their identifiers in the configured identity store. From the identifiers, the universal unique identifiers (UUID) are returned and used to match existing Tableau Server user identities. This process then generates sessions for the users and completes the authentication workflow. ### Step 3: Enable identity pools 1. Run the following commands: ``` tsm configuration set -k features.IdentityPools -v true tsm pending-changes apply ``` **Note:** Running these commands causes Tableau Server to restart. [Skip to main content](#main-content) # Manage Site User Visibility By default, all site users can see aliases, project ownership and comments by other users when permissions allow. The User Visibility setting lets administrators manage if users with Viewer and Explorer site roles see other users and groups on the site, which can be important for sites that are used by multiple clients. To learn more about site roles, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). ## Limit user visibility Setting User Visibility to **Limited** impacts certain collaboration tools and hides user information in Tableau Cloud and Tableau Server. Limited User Visibility either disables the feature for Viewers and Explorers (excluding Site Administrator Explorers), or removes user information from other areas. Note that Creators and administrators will still see user information when User Visibility is set to Limited. To limit user visibility for Explorers and Viewers (excluding Site Administrator Explorers): - Navigate to the site's Settings page - Select Limited in the User Visibility setting The following is a list of site areas impacted when User Visibility is set to Limited. Unless noted that the feature is disabled for all users, only non-administrator Explorers or Viewers are impacted.
AreaImpact
SearchUser information not displayed
Content ownersUser information not displayed (Explorers and Viewers can't see themselves, but can see their content in My Content)
Profile picturesUser information not displayed
Subscriptions

User information not displayed

 

RecommendationsSimilar users not displayed (all users)
Add/Edit TagsExplorers and Viewers can see tags but cannot delete or modify them
"Who has seen this view?"Disabled
Ask Data usage analyticsDisabled
Permissions dialogsDisabled
Named sharingDisabled (all users)
Alerts

Disabled (all users)

Existing alerts paused

CommentsDisabled (all users)
Public Custom Views

Disabled (all users)

Existing public custom views appear as private

Request AccessDisabled (all users)
Tableau Desktop

Publishing workbooks disabled from Desktop

User information not displayed on user filters

Tableau PulseThe button to see and manage followers doesn't appear on metrics
Tableau Catalog (with Data Management)

User information not displayed

When User Visibility is set to Limited, Tableau Server REST API and Metadata API calls behave as described in the table above. It remains possible to make API calls that reference a known user ID. Users on a site can interact with views and modify them, such as applying filters. If that user shares their modified view with others, or if the user creates something from that modified view (like a metric or a private custom view), then that user's name appears in the URL. Make sure that the URL for this modified view is only distributed to users who are permitted to see that person's name. **Note**: If a user is a member of multiple sites, entering an email on the sign-in page for Tableau Cloud will return the names of all sites that the user is a member of. ### Best practices for limiting user visibility Administrators can also check that user and group information is not visible in these ways: - Configure permissions to only provide content to appropriate parties. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). - Limited User Visibility hides user identification information from search, but might return content that the user published, including when searching by owner name, if the person searching has viewing permission to that content. - A user publishing a workbook with a duplicate title in the same project might see a warning that a workbook with that title already exists. - Apply row-level security when necessary. - Check that metadata within dashboards does not contain user information. - Check that calculations accessible to users don't contain user metadata (e.g. user filters). ## Restore Full User Visibility When administrators set User Visibility back to Full, features disabled for all users by Limited User Visibility (such as comments and alerts) remain off. Administrators can re-enable these features through the site's Settings page. Any previous feature settings are not retained when User Visibility is set to Full, and affected features are not automatically turned on. [Skip to main content](#main-content) # Manage Users and Authentication in Tableau Resource Monitoring Tool (RMT) When you install RMT, you create an admin user during configuration. That user has permissions to perform all tasks on the RMT Server. You can later add other users and specify which tasks they are able to perform related to RMT. ## Add a local user To add users to RMT, click the Admin menu and select Users (this option may not be available if you have not configured an environment). To add a new user in Resource Monitoring Tool: 1. From the **Admin** menu, select Users. 2. Click New User. 3. Provide a username and password, and apply the server roles. 4. Click Save. ## Add a delegated user Beginning in version 2023.1 users can be authenticated using their domain account credentials rather than using a separate password stored locally in RMT. When a user configured for delegated authentication signs into RMT, RMT passes the user and the password they entered to the computer operating system (OS) for verification. **Note:** Beginning in version 2025.2 you can use PAM authentication for delegated authentication. For details, see [PAM-based Authentication in Tableau Resource Monitoring Tool (RMT)](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-authentication-PAM.htm). To add a new, delegated user in Resource Monitoring Tool: 1. From the **Admin** menu, select Users. 2. Click New User. The default is a local user. 3. Select Operating System (Delegated). 4. Provide a Username. Be sure to type _just_ the user name. Do not include any domain. When signing into RMT, the user will provide their standard network password and the OS will verify this. 5. Select the server roles the user should have. For more details about server roles, see below. 6. Click Save. ## Change user authentication With version 2023.1.0 or later you can change an existing user from one auth type to another. To change an existing user's authentication: 1. Click the Edit icon. 2. Select the Authentication Mode you want: - If you are changing to Operating System (Delegated) mode, you only need to enter the username (without domain). The user will provide their own password at sign in. And existing password stored in RMT is deleted and cannot be restored. - If you are changing to RMT (Local) mode, you need to enter a username and password. These are stored locally by RMT. 3. Confirm the Server Roles selected for the user. 4. Click **Save** to save your changes. ## Server Roles in Tableau Resource Monitoring Tool The Tableau Resource Monitoring Tool has various server roles that you can assign to a user to give them permissions to perform certain tasks. The following table lists the available roles and what each roles allows the user to do: | Server Roles | Role Description | | --- | --- | | Download Log Bundles | Download log files. | | Download TDS Files | Download **.tds** files. | | Generate Chargeback Reports | Create chargeback reports. | | Server/Environment Management | Has permissions to update all configurations. | | User Management | Create and edit users. | | Webhook Management | Manage Slack notification settings. | ### Troubleshoot authentication issues For details on how to troubleshoot user sign in and authentication issues, see [Troubleshoot User Authentication](https://help.tableau.com/current/server-linux/en-gb/rmt-troubleshoot-user-signin.htm). ## Other articles in this section [Skip to main content](#main-content) # Manage Users and Groups You can add users to your Tableau sites and set their site roles, which determines each user's level of access. In addition, you can create groups of users and enable guest access to your sites. ## Other articles in this section [Skip to main content](#main-content) # Groups You can create and delete user groups, add users to a group and synchronise groups with Active Directory. ## Other articles in this section [Skip to main content](#main-content) # Managing Background Jobs in Tableau Server In Tableau Server, users can schedule extract refreshes, subscriptions or flows to run periodically. These scheduled items are referred to as **Tasks**. The Backgrounder process initiates unique instances of these tasks to run them at the scheduled time. The unique instances of the tasks that are initiated as a result are referred to as **Jobs**. Jobs are also created for runs that are initiated manually, by clicking the **Run Now** option in the web interface, programmatically through REST API, or tabcmd commands. For example, an extract refresh task is created to run daily at 9 AM. This is an extract refresh task, and every day at 9 AM, a job will be created for the Backgrounder to run. In addition to user-generated jobs, the Backgrounder also does a number of System jobs on behalf of the user to support general Tableau work flows, such as thumbnail generation. Running all these jobs can mean that Backgrounder uses a lot of resources at various times during the day. Using the Job Management feature, Server and Site administrators can get more details on these jobs that happen in their Server or Site, and take action on those jobs to better manage server resource usage. System jobs are only viewable by Server administrators, and by default are filtered out. The **Run Now** settings on the **General** settings page also allows you to manage your resources by either allowing or blocking users from running jobs manually. By default, this option is selected to allow users to run jobs manually. Untick the box to prevent users from running jobs manually. To learn more about managing Backgrounder resources, see [Tableau Server Backgrounder Process](https://help.tableau.com/current/server-linux/en-gb/server_process_backgrounder.htm). The Jobs page which contains the information about jobs can be accessed by navigating to the **Existing Tasks** menu of the left navigation menu. **Note:** Information about jobs can only be viewed by Server and site administrators. ## Overview This topic describes how to view and understand the information displayed in the Jobs page. At the top of the page, there are high-level statistics for the number of **Failed**, **Completed** and **Cancelled** jobs within the past 24 hours. For Server administrators, this also includes System jobs. Applying filters does not change these values. ![Show System Jobs tick box on the job filter options.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_management.png) For each job generated, there is a Job ID, the status of that job, the priority, the type of task that the job was generated from, the current run time – if the job is in-progress, current queue time – if queued, as well as the average run time and average queue time. Tableau records historical run times and queue times to compute the average run times and average queue times. Both average run times and average queue times are calculated as weighted averages using the following formula: ((current run time or queue time average x 4) + most recent run time or queue time)/5. The Job ID can be useful when viewing jobs on **Admin views** and can also be used to query the [Workgroups Database](https://tableau.github.io/tableau-data-dictionary/2019.4/data_dictionary.htm). When you click on the Job ID, you will see more detailed information about the job, such as the Job LUID, the project name, the schedule, the content name, content owner, job creator, the last time the job ran successfully and the site name. The site name is displayed if you navigate to the Jobs page using the **Manage All Sites** menu. ![Job 617 details include a unique ID, project name, schedule, content, owner, creator and last successful run date.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_details.png) **Note:** Doing a **Refresh Now** from the **Data Sources** page will only show the LUID information in the **Job Details** dialog box. > [!IMPORTANT] > > Jobs that existed 24 hours or less before an upgrade to Tableau Server 2019.4 will not have data for **Average Queue Time**, **Average Run Time**, **Last Successful Run Time** and **Job Creator** on the **Jobs** page. ### Task Types There are several types of tasks: - Extracts: This includes extract creation, incremental extract refreshes and full extract refreshes. For more information on extract refreshes, see [Quick Start: Refresh Extracts on a Schedule](https://help.tableau.com/current/server-linux/en-gb/qs_refresh_extracts.htm). - Subscriptions: Includes subscriptions for workbooks and views. For more information, see [Set Up a Site for Subscriptions](https://help.tableau.com/current/server-linux/en-gb/subscribe.htm). - Flow: This includes scheduled flows and manual flow runs. See [Job runtime capacit](https://help.tableau.com/current/online/en-gb/to_site_capacity.htm)y for information about the maximum runtime for flows and [Concurrent jobs capacity](https://help.tableau.com/current/online/en-gb/to_site_capacity.htm) for capacity limits when running concurrent flow jobs. Scheduling more flows than the number of resource blocks you have can result in an error. See the Knowledge Base article [Flow Job Pending](https://kb.tableau.com/articles/Issue/flow-job-pending-with-cannot-run-because-your-site-has-reached-its-concurrency-limit-for-extract-refreshes?lang=en-gb) for more information. Starting in version 2025.2, the Job Details dialog will show a link to the Tableau Prep flow. Quickly navigate to the Flow Place page to get more details about the flow. If the flow was deleted, then the link will not appear. ![Job Details dialog showing a link to the Tableau Prep flow](/tableau/current/en-gb/server-linux/en-gb/Img/prep_jobs_flow_link.png) - Encryption: Includes the following: - Extract encryption and decryption - Flow encryption and decryption - Re-key extracts and flows - System: This is all the system Jobs that the Backgrounder handles behind the scenes to support Tableau Server. ### Filters You can filter to see only certain jobs. The available filters are by Job Status type, Task Type and Time Range. For the Time Range filter, you can choose from past one to 24 hours, in four hour increments. The option to filter in System Jobs is available if you are a Server Administrator. ## Cancelling Jobs Extract refreshes, subscriptions and flow run jobs can be cancelled. You can only cancel one job at a time, and selecting multiple jobs at one time for cancellation is not supported. When you cancel a job, an email with the time the job was cancelled, the affected content and the time the job ran before being cancelled is sent to the recipients that you select in the **Cancel Job** dialog box . In addition, you can add your customised notes to be included in the email. If you do not select any recipients, the job will be cancelled, but no email will be sent. To cancel a job, click on the ellipses next to the Job ID and use the dialog to cancel the job: ![Cancel button.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_cancel.png) ![Cancel Job dialog box with the tick box for sending an email to Site Administrators about cancelled jobs highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_cancel_dialog.png) ## Status There are seven types of status that jobs can be in, and hovering over each status will display more relevant information. - **Completed:** This job shows as **Completed successfully** and you can see the time when the job completed in the tooltip that is displayed when you hover over the status. ![A green tick appears next to the word "Completed".](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_completed.png) ![A message indicates that a job was successfully completed on 13 June 2019 at 10:23 AM.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_completed_tootip.png) - **In Progress:** This job shows as **In Progress**. A time for how long the job has been running for is displayed in the tooltip when you hover over the status. ![In-progress icon.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_inprogress.png) ![A tooltip showing the in-progress job run time.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_inprogress_tooltip.png) - **In Progress:** This job is **In Progress**, but is **running late**. Tableau keeps track of the average run times for the same job, and if the current run time is longer than the average run time, then it is considered running late. Times for how much longer than average the job has been running and its average run time is provided in the tooltip that is displayed when you hover over the status. ![In-progress icon indicating a longer job run time than previous runs.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_late.png) ![A tooltip showing the in-progress job run time that exceeds previous run times.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_late_tooltip.png) - **Pending:** This job is currently **Pending**, waiting to be run when there is available Backgrounder capacity. A time for how long the job has been in the queue for is provided in the tooltip that is displayed when you hover over the status. ![Job Queued icon.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_queued.png) ![A tooltip showing the in-progress queue time.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_queued_tooltip.png) - **Pending:** The flow cannot be run because the number of Resource Blocks is less than the number of flow you have scheduled and the site has reached its concurrency limit. ![Job Queued icon.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_queued.png) ![](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_pending_flow.png) - **Pending:** This job is currently **Pending**, but is **running late**. Tableau keeps track of the average queue times for the same job, and if the current queue time is longer than the average queue time then it is considered running late. Times for how much longer than average the job has been queued is provided in the tooltip that is displayed when you hover over the status. ![Job Queued icon indicating a longer queue time than previous runs.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_queued_late.png) ![A tooltip showing the in-progress queue time that exceeds previous queue times.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_queued_late_toolip.png) - **Cancelled:** This job was **Cancelled** by a Server or Site administrator. The time the job was cancelled and how long it ran for before cancellation is provided in the tooltip that is displayed when you hover over the status. ![A yellow exclamation mark and the word "Cancelled".](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_canceled.png) ![A message indicates that a job was cancelled on 11 June 2019 at 9:55 PM after running for 29.5 minutes.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_canceled_tooltip.png) - **Failed:** This job is showing as **Failed**. The time when the job failed, how long it ran for before it failed, and why the job has failed is provided in the tooltip that is displayed when you hover over the status. ![A red exclamation mark next to the word "Failed".](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_failed.png) ![Message indicates that a job failed on 11 June 2019 at 4:23 AM after running for 51.6 minutes because of invalid credentials.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_failed_tooltip.png) - **Suspended:** This job is showing as **Failed** with a pause icon. If the job fails 5 times consecutively, the job will be suspended. Suspended tasks are still available but Backgrounder will not create jobs for these tasks until they are resumed by the user. ![Job Suspended icon.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_suspended.png) ![A tooltip explaining that jobs can't run for suspended tasks.](/tableau/current/en-gb/server-linux/en-gb/Img/backgrounder_job_suspended_details.png) [Skip to main content](#main-content) # Mapping a Client Certificate to a User During Mutual Authentication When you use mutual (two-way) SSL authentication, the client presents its certificate to Tableau Server as part of the authentication process. Tableau Server then maps user information in the client certificate to a known user identity. The strategy that Tableau Server uses to perform client mapping depends on the content of your organisation’s client certificates. This topic discusses the ways information in a client certificate can map to a user identity, and how to change the way Tableau Server performs that mapping. To understand how the mapping happens and whether you need to change it, you must know how client certificates are structured in your organisation. - [User-name mapping options](#mapping-options) - [Change the certificate mapping](#changing-cert-mapping) - [Address user-name ambiguity in multi-domain organisations](#ambiguous-user-names) ## User-name mapping options Tableau Server uses one of the following approaches to map a client certificate to a user identity: - **Active Directory**. If Tableau Server is configured to use Active Directory for user authentication, when Tableau Server receives a client certificate, it passes the certificate to Active Directory, which maps the certificate to an Active Directory identity. Any explicit user name information in the certificate is ignored. **Note**: This approach requires client certificates to be published for the user accounts in Active Directory. - **User principal name (UPN)**. A client certificate can be configured to store the user name in the user principal name field. Tableau Server reads the UPN value and maps it to a user in Active Directory or to a local user. - **Common name (CN)**. A client certificate can be configured to store the user name in the common name field of the certificate. Tableau Server reads the CN value and maps it to a user in Active Directory or to a local user. If you configure the server for Active Directory authentication and UPN or CN user-name mapping, put the user name in one of the following formats: `username`, `domain/username` or `username@domain`. For example: `jsmith`, `example.org/jsmith` or `jsmith@example.org`. If the server uses local authentication, the format of the name in the UPN or CN fields is not predetermined, but the name in the field must match a user name on the server. ## Change the certificate mapping You use the [tsm authentication mutual-ssl ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#TSMMutualSSL) commands to map a client certificate to a user identity in Tableau Server:  `tsm authentication mutual-ssl configure -m ` Possible values are `ldap` for Active Directory mapping, `upn` for UPN mapping, or `cn` for CN mapping. When you first install and configure Tableau Server, the server sets the default user-name mapping to match the server’s authentication type: - If the server is configured to use Active Directory, it also uses Active Directory to map the certificate to the user identity. - If the server is configured to use local authentication, the server gets the user-name value from the UPN field in the certificate. If the default behaviour for how Tableau Server maps a user name to an identity is not correct for your server configuration, run the following set of commands to change the mapping to use the CN value: `tsm authentication mutual-ssl configure -m cn` `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ## Address user-name mapping ambiguity in multi-domain organisations In some circumstances, the user name in a certificate’s UPN or CN field can be ambiguous. This ambiguity can lead to unexpected results when the user name is mapped to a user identity on the server. For example, if Tableau Server is presented with a user name that does not include a domain, the server maps the user name to an identity using the default domain. This can cause an incorrect user-name mapping, potentially assigning a user a different user’s identity and permissions. This can occur particularly in environments where the following conditions apply: - Your organisation supports multiple Active Directory domains. - The server is configured to use Active Directory authentication. - The server is configured to use UPN or CN mapping. - Some users have the same user name but different domains. For example, `jsmith@example.org` and `jsmith@example.com`. - The user name in the certificate’s UPN or CN fields does not include the domain as part of the user name – for example, it shows `jsmith`. To avoid incorrect user-name mapping, make sure the client certificates include fully qualified user names with the domain, using the format `jsmith@example.org` or `example.org/jsmith`. [Skip to main content](#main-content) # RMT Server Configuration File This topic describes the configuration options you can use using the configuration file. To do this using the web interface, see [Resource Monitoring Tool Server Configuration](https://help.tableau.com/current/server-linux/en-gb/rmt-config-configGui.htm). In an effort to align with our company values of Equality, we have changed non-inclusive terminology where possible. Because changing terms in certain places can cause a breaking change, we maintain the existing terminology. So, you may continue to see the terms in CLI commands and options, installation folders, configuration files and other instances. For more information, see [About Tableau Help](https://help.tableau.com/current/tableau/en-gb/about-tableau-help.htm). The configuration file is located at `/var/opt/tableau/tabrmt/master/config.json`. **Note:** Configuration values are saved in the configuration file. Changes can be made directly to this file, but it is advised to leverage the configuration options in the UI and through the `rmtadmin` command line utility. Changes to the config file will require a restart to be applied. You will need to restart the RMT Server after making changes to the configuration file. ## Data Retention By default the Resource Monitoring Tool stores two weeks of detail data and ten years of aggregated reporting data. This is configurable. Here is an example snippet defining the data retention settings: ``` { "db": { "cleanup": { "afterDays": 14, "aggregate": { "afterDays": 3650 } } } } ``` ### SMTP Configuration An example `config.json` snippet defining the SMTP information: ``` { "smtp": { "server": "localhost", "port": 25, "username": "my-username", "password": "my-password", "requireSSL": true } } ``` The full list of configuration values available in the `smtp` configuration section: | Key | Data Type | Required? | Description | | --- | --- | --- | --- | | `server` | String | Optional | The SMTP server to use. Default value: `localhost` | | `port` | Number | Optional | The SMTP server’s port number. Default value: `25` | | `username` | String | Optional | The username to use if authentication is required by the server. | | `password` | String | Optional | The password to use if authentication is required by the server. | | `requireSSL` | Boolean | Optional | `true` if your SMTP server requires SSL, otherwise `false`. Default value: `false` | ## Notification Configuration An example `config.json` snippet defining the notification information: ``` { "notifications": { "email": { "from": "sender@domain.com", "to": "recipient1@domain.com,recipient2@domain.com" } } } ``` Global notification information (as shown above) can be overridden per environment in the `environments` section: ``` { "environments": { "Environment1": { "notifications": { "email": { "from": "sender@domain.com", "to": "recipient1@domain.com,recipient2@domain.com" } } } } } ``` The full list of configuration values available in the `notifications.email` configuration section: | Key | Data Type | Required? | Description | | --- | --- | --- | --- | | `from` | String | Required | The sender’s email address. | | `to` | String | Required | The recipient email address(es). Multiple addresses must be separated by commas or semicolons. | | `minimumIncidentSeverity` | String | Optional | The minimum incident severity at which emails will be sent. Default value: `critical`. Also see [Tableau Resource Monitoring Tool - Incidents](https://help.tableau.com/current/server-linux/en-gb/rmt-incidents-index-incidents.htm). | ## Histogram Configuration The boundaries used to generate histograms in the web interface are configurable, using an array of values that represent each boundary. The full list of configurable histograms in the `monitoring.histograms` section: | Key | Data Type | Required? | Description | | --- | --- | --- | --- | | `viewLoadDuration` | Array of Numbers | Optional | The histogram boundaries for view loads. Values are in milliseconds. Default value: `[1000, 3000, 6000, 10000]` | | `externalDataRequestDuration` | Array of Numbers | Optional | The histogram boundaries for external data requests. Values are in milliseconds. Default value: `[1000, 3000, 6000, 10000]` | | `backgroundTaskDuration` | Array of Numbers | Optional | The histogram boundaries for background tasks. Values are in milliseconds. Default value: `[60000, 300000, 600000, 1800000]` | As an example, to use the following histogram buckets for everything at a global level: - ≤ 1 second - \> 1 second and ≤ 10 seconds - \> 10 seconds and ≤ 30 seconds - \> 30 seconds The configuration would look like: ``` { "monitoring": { "histograms": { "viewLoadDuration": [1000, 10000, 30000], "externalDataRequestDuration": [1000, 10000, 30000], "backgroundTaskDuration": [1000, 10000, 30000] } } } ``` Histogram boundaries can also be set per environment. As an example, for an environment whose identifier is “staging-environment” to use the following view histogram buckets: - ≤ 2.5 seconds - \> 2.5 seconds and ≤ 5 seconds - \> 5 seconds and ≤ 30 seconds - \> 30 seconds and ≤ 1 minute - \> 1 minute and ≤ 10 minutes - \> 10 minutes The configuration would look like: ``` { "environments": { "staging-environment": { "monitoring": { "histograms": { "viewLoadDuration": [2500, 5000, 30000, 60000, 600000] } } } } } ``` The “staging-environment” would fall back to the global histogram configuration for background tasks. ## Minimum TLS Version By default, RMT will use a secure version of TLS to encrypt traffic. The default minimum version is 1.2, but if you have specific security requirements that mandate that older versions of TLS be disabled, you can modify the `server.minimumTlsVersion` section of the configuration file to enforce a minimum TLS version, as shown in the example snippet below where the minimum version is set to 1.3. The list of valid values for `minimumTlsVersion` are defined in [SslProtocols from .Net Core](https://learn.microsoft.com/en-us/dotnet/api/system.security.authentication.sslprotocols?view=net-8.0 "SslProtocols Enum"). ``` "server": { "url": "https://rmtserver:443", "https": { "enforce": true, "certificate": { "mode": Default, "local": { "name": null, "password": null }, "store": { "certificateThumbprint": ""} }, "minimumTlsVersion": "Tls13" }, ``` ### Incident Configuration See [Incidents](https://help.tableau.com/current/server-linux/en-gb/rmt-incidents-index-incidents.htm) for information on what incident options are available and how to configure them. ### RMT Server Logging See [Tableau Resource Monitoring Tool Log Files](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-logs.htm). ## Agent The agent service's configuration file is located at `/var/opt/tableau/tabrmt/master/config.json` You will need to restart the agent service after making changes to the config file. ### Tableau Server Detection In almost all situations agents will automatically detect the Tableau Server installation and no configuration is needed beyond the standard [agent setup process](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-installation.htm#agent-setup). If desired, you can however manually configure the Tableau Server information through the `config.json` file. An example `config.json` snippet defining the Tableau Server information needed to run the agent: ``` { "agent": { "tableauServer": { "override": true, "productVersion": 2021.4, "applicationDirectory": "/var/opt/tableau/tableau_server/2021.4" } } } ``` The full list of configuration values available in the `agent.tableauServer` configuration section: | Key | Data Type | Required? | Description | | --- | --- | --- | --- | | `applicationDirectory` | String | Required | The Tableau Server application root directory. | | `dataDirectory` | String | Optional | The directory to get Tableau Server data files. | | `override` | Boolean | Optional | `true` to have the configuration values take precedent over any automatically detected values. `false` to have the configuration values act as a fallback to the automatically detected values. | | `productVersion` | Number | Required | The version number of the Tableau Server. | ### Agent Logging See [Tableau Resource Monitoring Tool Log Files](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-logs.htm). ## Common Common configuration values are available in both RMT Server and Agent applications. See application-specific sections for guidance on locating the configuration file. You will need to restart the application service after making changes to the config file. ## Encrypted Messaging To enable encrypted messaging, the RabbitMQ server must be first configured to allow TLS. See the [Encrypted Data Collection](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-encrypted-data-collection.htm) administrator guide for more details. When configuring the RMT Server or Agent(s) for encrypted messaging: - Both the `enabled` flag and the `certificateHostName` must be configured for encryption to be enabled. - The `certificateHostName` variable MUST match the canonical name (CN=) on the server certificate or the connection will fail. - The `port` setting in the `mq` section will likely need to be changed based on the TLS port you configured RabbitMQ. ``` { "mq": { "port": 5671, "tls": { "enabled": true, "certificateHostName": "foo" } } } ``` The full list of configuration values available in the `mq.tls` configuration section: | Key | Data Type | Required? | Description | | --- | --- | --- | --- | | `enabled` | Boolean | Optional | `true` enables TLS encryption for messaging connections. `false` uses unencrypted connections for messaging. Default value: `false` | | `certificateHostName` | String | Optional | `certificateHostName` MUST match the canonical name (CN=) of the server certificate or the connection will fail. Default value: `""` | ## Who can do this Resource Monitoring Tool Administrator or a Resource Monitoring Tool user with **Server/Environment Management** role. [Skip to main content](#main-content) # Migrate The topics in this section describe how to migrate from Tableau Server to Tableau Cloud. Topics here also cover Tableau Server to Tableau Server migration scenarios. Looking for Tableau Server on Windows? See [Migrate](https://help.tableau.com/current/server/en-gb/migrate.htm "Opens topic in a new browser tab") ## Other articles in this section [Skip to main content](#main-content) # Migrate from Core-Based to Role-Based Licensing You can migrate Tableau Server from a core-based licence metric (which counts the processor cores on which you have Tableau Server installed) to a role-based licence metric (which counts named users). To learn more about licensing metrics, see [Licensing Overview](https://help.tableau.com/current/server-linux/en-gb/license_server_overview.htm#Licensing%20Overview). ## Prepare for migration to role-based licensing Core-based licences allow an unlimited number of users, including view-only guest accounts. Every user has a site role when they are added to Tableau Server, and these users and site roles persist when licensing is changed. Because role-based licences limit the number of users, you should ensure that your new role-based licences accommodate the number of users who are currently connecting to Tableau Server, including the users currently using guest accounts. > [!IMPORTANT] > > If your new role-based licences don't accommodate the full number of users, some users will move to the **Unlicensed** site role, which can be very CPU intensive. If you have a large number of users, your application server processes may become unavailable until all the users are processed. This operation could take hours to complete, so plan accordingly. Before you migrate, verify that you have user licences and corresponding product keys to allow all users to access Tableau Server after the migration is complete: - Sign in to the [Tableau Customer Portal](http://customer.tableausoftware.com/) to verify licences and to copy the corresponding product key(s). - To learn more about site roles, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). - To count the number of users in your Tableau Server installation, export a list of users to count them with a tool such as Microsoft Excel. To learn how to export a list of users, see [Export a User List](http://kb.tableau.com/articles/howto/exporting-user-list?lang=en-gb). - To reduce CPU load, remove users who no longer exist or require access from your environment before migrating. - If you’re using Active Directory and unlicensed users remain on the server, turning off synchronisation for the migration can prevent licences from being automatically granted to synced groups. ## Migrate to role-based licensing To migrate to role-based licensing you must stop Tableau Server, deactivate the core-based product key, activate the role-based product key(s) and then start Tableau Server. Because this process will result in a restart of Tableau Server and cause downtime for Tableau Server users, you should migrate licensing during a period of low usage. 1. Stop Tableau Server: Use the [`tsm stop`](https://help.tableau.com/current/server-linux/en-gb/cli_stop_tsm.htm) command. 2. Deactivate the core-based product key(s): Use the [`tsm licenses deactivate`](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMDeactivate) command with the core-based product key(s). 3. Activate the role-based product key(s): Use the [`tsm licenses activate`](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMActivate) command with the role-based product key(s). 4. Start Tableau Server: Use the [`tsm start`](https://help.tableau.com/current/server-linux/en-gb/cli_start_tsm.htm) command. ## Use role-based licences on a server with core-based licensing The 2018.1 release of Tableau Server allows you to add Creator role-based licences to Tableau Server installations with existing core-based licensing. **Note:** If you upgrade a Tableau Server installation to 2018.1 without activating role-based licences, Tableau Server will continue to operate as it did previously, with no changes to Tableau Server UI or permissions except that the legacy **Viewer** site role is renamed to **Read Only**. In version 2018.2, the **Read Only** site role was deprecated and once again became the **Viewer** site role. When **Creator** licences are introduced to Tableau Server, all Server Administrator users are required to have **Creator** licence roles, which may require additional licences. Administrators can activate additional **Creator** licences using the `tsm licenses activate` command in Tableau Server to increase licensed user capacity. Activating these role-based licences gives you a combination of the capabilities granted by role-based Creator licences and the capabilities granted by your core-based licence. To learn more about the different types of role-based licences, see [role-based licences](https://help.tableau.com/current/server-linux/en-gb/license_server_overview.htm#user-based). **Note:** The unlimited number of users who have access to Tableau Server under core-based licensing have equivalent capabilities to users with an **Explorer** licence under role-based licensing. **Creator** functionality is limited to the defined user licence model(s). For example, if a Tableau Server installation has a 16 core licence that includes guest access, and you added an Updatable Subscription Licence (USL) product key(s) with 10 Creator licences, that server would have the following capabilities: - A limit of 16 processor cores on hardware that runs Tableau Server - Guest access - Unlimited Explorer/Viewer licences (from the unlimited user licences that come with a core licence) - 10 Creator licences ### Example of completing a migration from core-based licensing To extend the example above: If the core-based licence was then deactivated, the following capabilities would be available: - No limits on server hardware - No guest access - 10 Creator licences If you then added 50 Explorer licences and 200 Viewer licences, after deactivating your core-based licence, the following capabilities would be available: - No limits on server hardware - No guest access - 10 Creator licences - 50 Explorer licences - 200 Viewer licences [Skip to main content](#main-content) # Migrate Tableau Server from an On-Premises Computer to a VM in the Cloud You can migrate Tableau Server from a computer in your data centre to a virtual machine (VM) in the cloud. As a part of this migration, you’ll need to move various Tableau Server data and configuration settings from your on-premises computer to a VM in the cloud where Tableau Server is installed. **Note:** This operation includes steps that you may need to perform using the TSM command line. ### Prerequisites Before you migrate Tableau Server from an on-premises computer to a VM in the cloud, be sure to review the following prerequisites: - Have an account and an environment set up on your cloud provider. For more information, see: - [Install Tableau Server on Amazon Web Services](https://help.tableau.com/current/server-linux/en-gb/ts_aws_welcome.htm) - [Install Tableau Server on the Google Cloud Platform](https://help.tableau.com/current/server-linux/en-gb/ts_gcp_welcome.htm) - [Install Tableau Server on Microsoft Azure](https://help.tableau.com/current/server-linux/en-gb/ts_azure_welcome.htm) - [Install Tableau Server on the Alibaba Cloud](https://help.tableau.com/current/server-linux/en-gb/ts_alibaba_welcome.htm) - Read [Preparing for Upgrade](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-prepare.htm) and [Back up Tableau Server data](https://help.tableau.com/current/server-linux/en-gb/db_backup.htm) to prepare for the migration. ### To migrate Tableau Server to a VM in the cloud 1. Ensure that there are no background tasks running, such as, extract refreshes, workbook publishing, etc. When Tableau Server is idle, note any data source connection types in use so that you can install the appropriate drivers on the new Tableau Server on the VM in the cloud. 2. Stop Tableau Server. At a command prompt, type: [`tsm stop`](https://help.tableau.com/current/server-linux/en-gb/cli_stop_tsm.htm) 3. After Tableau Server is stopped, make a complete backup, following the steps in [Preparing for Upgrade](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-prepare.htm) and [Back up Tableau Server data](https://help.tableau.com/current/server-linux/en-gb/db_backup.htm). The backup is what you will use to restore your Tableau Server data. You’ll use this backup to restore your Tableau Server data on the VM in the cloud. 4. Move the backup off the server and store the backup securely. For example, you can store your backup on cloud storage such as Amazon S3, Google Drive, etc. 5. If you are using SSL on the on-premises server, make a copy of the SSL folder. Be sure to note any security rules, for example, firewall rules, ports, etc. to avoid communication issues between different elements of your infrastructure and your new Tableau Server on the VM in the cloud. 6. Remove any DNS entries using the IP address of the on-premises Tableau Server, so you can reassign them to the Tableau Server on the VM in the cloud. 7. Launch a VM into the cloud that meets the Tableau Server recommendations. 8. Install Tableau Server on the VM in the cloud. For more information, see: - [Install Tableau Server on Amazon Web Services](https://help.tableau.com/current/server-linux/en-gb/ts_aws_welcome.htm) - [Install Tableau Server on the Google Cloud Platform](https://help.tableau.com/current/server-linux/en-gb/ts_gcp_welcome.htm) - [Install Tableau Server on Microsoft Azure](https://help.tableau.com/current/server-linux/en-gb/ts_azure_welcome.htm) - [Install Tableau Server on the Alibaba Cloud](https://help.tableau.com/current/server-linux/en-gb/ts_alibaba_welcome.htm) 9. After installation is complete, copy any SSL files to Tableau Server on the VM in the cloud, and restore the backup on your new server. 10. Configure Tableau Server on the VM in the cloud and install all SSH and port related stuff. **Note:** If you change the IP address/port of the database, you might need to update all connection information. 11. Copy your backup file _.tsbak_ to the folder location specified by the `basefilepath.backuprestore` variable. By default, this is: `/var/opt/tableau/tableau_server/data/tabsvc/files/backups/`. **Note:** You can change the location for the backup file. For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). 12. Next, stop Tableau Server. At a command prompt, type: [`tsm stop`](https://help.tableau.com/current/server-linux/en-gb/cli_stop_tsm.htm) 13. Restore your in-production data without configuration information to your new Tableau Server installation. At a command prompt, type: `[tsm maintenance restore](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm3) -f ` where `` is the name of the _.tsbak_ file you copied in step 11. For more information about restoring Tableau Server data, see [Restore from a Backup](https://help.tableau.com/current/server-linux/en-gb/db_restore.htm). 14. Start the server. At a command prompt, type: [`tsm start`](https://help.tableau.com/current/server-linux/en-gb/cli_start_tsm.htm) 15. **Distributed installations only**: Install Tableau Server on the new VMs you want to add to your new Tableau Server cluster in the cloud. For more information, see: - [Install and Configure Additional Nodes](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm) - [Self-Deploy Tableau Server on AWS in a Distributed Environment](https://help.tableau.com/current/server-linux/en-gb/ts_aws_multiple_server.htm) - [Self-Deploy Tableau Server on the Google Cloud Platform in a Distributed Environment](https://help.tableau.com/current/server-linux/en-gb/ts_gcp_multiple_server.htm) - [Self-Deploy Tableau Server on Microsoft Azure in a Distributed Environment](https://help.tableau.com/current/server-linux/en-gb/ts_azure_multiple_server.htm) - [Self-Deploy Tableau Server on the Alibaba Cloud in a Distributed Environment](https://help.tableau.com/current/server-linux/en-gb/ts_alibaba_multiple_server.htm) 16. Test your Tableau Server on your VM in the cloud to ensure that it works as expected. If your Tableau Server is working fine in the cloud, you can deactivate your on-premises Tableau Server product key and use this same product key to activate your Tableau Server on the VM in the cloud. **Note:** If you do not have an internet connection, you are prompted to create an offline activation file to complete the deactivation process. For more information, see [Deactivate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/deactivate_off.htm). 17. The same Tableau Server product key can be activated three times: once for a production environment, once for a test environment and once for a QA environment. After you have tested your new Tableau Server installation and confirmed that it's ready for production, you must deactivate your earlier production version of Tableau Server, and then you must uninstall it. To deactivate the earlier version, see [tsm licences deactivate](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMDeactivate). **Note**: If you do not have an internet connection, you are prompted to create an offline activation file to complete the deactivation process. See [Deactivate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/deactivate_off.htm) for steps. [Skip to main content](#main-content) # Migrate Tableau Server from Windows to Linux Customers running Tableau Server on Windows can migrate to Linux by taking a backup of their existing Tableau installation and restoring it to a fresh installation on Linux. This topic describes the steps necessary to do this migration. You cannot migrate or upgrade from a beta version of Tableau Server to an officially released version. The basic steps to migrate from Tableau Server on Windows to Tableau Server on Linux include: 1. [Step 1: Plan your migration](#PlanMigration) – Plan for your migration, including gathering all the information you'll need to be successful. During this step you should familiarise yourself with potential differences between Tableau Server on Windows and Tableau Server on Linux. 2. [Step 2: Create a backup](#CreateWinBackup) –Create a backup of Tableau Server on Windows. 3. [Step 3: Install Tableau Server on Linux and restore the Windows backup](#InstallandRestore) – Install a fresh instance of Tableau Server on Linux in a test environment so you can test out the migration, then restore your Windows backup. The restore of your Windows backup will restore the Tableau content (users, projects, sites, workbooks and data sources), but will not restore customisations, so you will need to spend some time configuring Tableau Server on Linux to match the expectations in your organisation. If you have a multi-node installation you will need to add nodes and configure them separately. 4. [Step 4: Test Tableau Server on Linux](#TestTSLinux) – Try Tableau Server on Linux to make sure content is there as you expect, and users are able to perform all the actions they do on Windows. Look specifically at any changes identified as potential differences between Tableau Server on Windows and Tableau Server on Linux. Include key stakeholders in the testing both to leverage their knowledge and to help communicate the upcoming changes. 5. [Step 5: Install Tableau Server on Linux in your production environment and restore the Windows backup](#InstallProd) – Once you're satisfied that Tableau Server on Linux gives you the functionality you need, install Tableau in your production Linux environment and restore the Windows backup. ## Step 1: Plan your migration A successful migration from Windows to Linux requires some preparation beforehand. You will need to satisfy the following requirements: - **Identity store**: You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. To change the identity store from a local identity store to an external identity store, see [Changing the Identity Store](https://help.tableau.com/current/server-linux/en-gb/reconfig_change_auth.htm). - **Server administrator**: You must have password for at least one of the user accounts with Server Administrator privileges from the Tableau Server source (Windows) deployment. You must use the same user as the Server Administrator in the migrated deployment to Linux. - **Clean installation of Tableau Server for Linux**: When you install Tableau Server on Linux later in this topic, be sure to use the same identity store type as you are using on Windows, and do not create users or content. When you restore the Windows backup file to the Linux deployment of Tableau Server, all user data and content will be replaced from the Windows back up file. - **Differences between Windows and Linux**: Review the differences between Tableau Server on Windows and on Linux so you are aware of them and can investigate in your test environment. - Any custom fonts you use may need to be installed on your Linux computer, and may render differently there than on Windows. - Connection options for Linux are a subset of those available for Tableau Server on Windows. Review the connection types that are available and make sure the ones you need are supported. ## Step 2: Create a backup Use TSM to create the backup. If you are migrating from Tableau Server on Windows: 1. Log on to the computer running Tableau Server on Windows. 2. Open a command prompt as an administrator. 3. Run the following command: tsm maintenance backup -f -d Include the `-d` flag to include the date in the backup file name. For more information, see [Back up Tableau Server data](https://help.tableau.com/current/server/en-gb/db_backup.htm) in the Tableau Server on Windows help. ## Step 3: Install Tableau Server on Linux and restore the Windows backup In a test environment, install Tableau Server on Linux: - Install Tableau Server for Linux according to the procedure, [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm). Use the same identity store as on your Windows deployment, and do not create users or content. Restore the Tableau Server on Windows backup: 1. Copy the Windows backup file to the computer running Tableau Server on Linux. By default the restore process will look for the file in this location: `` `/var/opt/tableau/tableau_server/data/tabsvc/files/backups/` `` You can change the location. For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). 2. Run the following command to stop Tableau Server: `tsm stop` 3. Run the following command to restore from the backup file: `tsm maintenance restore -f ` Where `` is the name of your backup file, for example, `tabserver-2017-10-20.tsbak`. For more information, see [tsm maintenance restore](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm3) 4. Run the following command to start Tableau Server: `tsm start` After restoring your Tableau content, you may need to configure Tableau Server. For example, if you are migrating from a multi-node installation, you will need to add and configure the additional nodes. You will also need to configure any customisations you made on Windows, including copying over image or logo files if applicable. ## Step 4: Test Tableau Server on Linux Once you've installed Tableau Server on Linux and restored your Windows backup, you can test the new version of Tableau Server. Because the restore process only restores content to Tableau, you may need to update configuration, topology (adding additional nodes for example), and any customisations you have on your Windows installation. You'll want to be familiar with the known differences between Windows and Linux, as well as any potential problem areas. Test basic functionality, along with any special aspects of server that your organisation relies on. For example, there may be key data sources that your organisation uses with Tableau. Test these to make sure you're seeing what you expect. These are some areas of testing to consider: - **User access**. Confirm that Tableau Server users, including administrators, can sign in. Test your normal user sign in process. Have some of your users participate in the testing to make sure they are able to sign in as expected, and that they can reach the same content that they have access to in your production environment. - **Viewing built-in administrative views**. With this release of Tableau Server on Linux, you must install PostgreSQL drivers manually, and the administrative views depend on these. Confirm that you have installed the drivers necessary by accessing the built-in administrative views. For more information, see [Administrative Views](https://help.tableau.com/current/server-linux/en-gb/adminview.htm) . - **Data source availability**. Tableau Server on Linux supports a subset of the data sources on Tableau Server on Windows. You need to confirm that the data sources used by your organisation are supported on Linux, and install any drivers required. For details on which data sources are supported, see the [Tableau Server tech specs.](https://www.tableau.com/en-gb/products/techspecs#server) For information about installing drivers, see [Database Drivers](https://help.tableau.com/current/server-linux/en-gb/dbdriver.htm). - **Access to file-based data sources on shared drives**. Data sources such as Excel files on network drives will require special actions in order to be accessible from Linux. You or your IT department will need to mount the drives and update any workbooks using these data sources. For more information on connecting to network drives, see the [Tableau Community](https://community.tableau.com/s/question/0D54T00000G54qOSAR/tableau-server-on-linux-connecting-to-a-windows-shared-directory). - **Viewing published workbooks**. Have users who are familiar with the content try to view published workbooks to make sure they appear as expected. Test views embedded in web pages (for example, in SharePoint pages). Be especially aware of how fonts may differ between Windows and Linux, and some custom fonts may need to be added to your Linux computer, or replaced with other fonts if they are not available on Linux. Dashboard layouts may appear different as well, due to differences in fonts. - **Server processes**. Sign in to Tableau Server as a server administrator, and then open the Server Status page to confirm that all services and processes are running as expected. Be aware of intentional changes due to changes in version 10.5. For more information, see [Tableau Server Data Engine](https://help.tableau.com/current/server-linux/en-gb/data_engine2_intro.htm). - **Publishing workbooks and data sources**. Have users publish workbooks and data sources from Tableau Desktop to make sure this goes as you expect. You may need to install drivers to support the data source connections you are using. See [Database Drivers](https://help.tableau.com/current/server-linux/en-gb/dbdriver.htm). - **Subscriptions and extract refreshes**. Manually run some extract refreshes to confirm that they complete successfully. Run some key scheduled extract refreshes to confirm that they complete as expected. - **Permissions**. Confirm that permissions are still set as expected for users and content. - **Command-line utilities and APIs**. If applicable, test the command line utilities (tsm and tabcmd) and programmatic access via APIs. ## Step 5: Install Tableau Server on Linux in your production environment and restore the Windows backup When you have completed testing and have identified those areas that require additional changes on your part, or communication to your users, you are ready to install Tableau Server on Linux in your production environment and restore the Windows backup. To do this, follow the same steps described above. [Skip to main content](#main-content) # Migrate Tableau Server to Tableau Cloud For information about migrating small (less than 100 users) Tableau Server to cloud, see [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). For information about planning a move to Tableau Cloud, see [Tableau Blueprint: Move Tableau to Cloud](https://help.tableau.com/current/blueprint/en-gb/bp_move_to_cloud.htm). ## Other articles in this section [Skip to main content](#main-content) # Migrate to New Hardware Use the following procedure to migrate Tableau Server from one computer to another. You might do this if you are upgrading the computer hardware that Tableau is running on. Specifically, these steps describe how to move Tableau Server data from your in-production computer to a new computer where Tableau Server is installed. Before you start, make sure you have followed the steps in [Preparing for Upgrade](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-prepare.htm), including creating a backup and gathering any assets that require manual actions. For details, see [Perform a Full Backup and Restore of Tableau Server](https://help.tableau.com/current/server-linux/en-gb/backup_restore.htm). You'll need these to restore your Tableau Server data and configuration. You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. **Note:** This operation includes steps that you may need to perform using the TSM command line. 1. Deactivate your product key on your original installation of Tableau Server. You need to do this so you can activate it on the new computer. For more information, see "Tableau Server product key activation" below. 2. Install Tableau Server on the new computer, activate your licence, configure initial settings and create your admin user. For details, see [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm). 3. Copy your backup file _.tsbak_ to the folder location specified by the `basefilepath.backuprestore` variable. By default, this is: `/var/opt/tableau/tableau_server/data/tabsvc/files/backups/`. **Note:** You can change the location for the backup file. For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). 4. Next, stop Tableau Server: `tsm stop` 5. Restore your in-production data to your new Tableau Server installation using the `[tsm maintenance restore](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm3)` command: `tsm maintenance restore -f ` where `` is the name of the _.tsbak_ file you copied in step 3. For more information about restoring Tableau Server data, see [Restore from a Backup](https://help.tableau.com/current/server-linux/en-gb/db_restore.htm). 6. Start the server: `tsm start` 7. **Distributed installations only**: Install Tableau Server on the new computers you want to add to your new Tableau Server cluster. See [Install and Configure Additional Nodes](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm) for steps. 8. If you have not deactivated your product key on the old computer, do that after you test your new Tableau Server installation and confirm that it's ready for production. For details, see "Tableau Server product key activation" below. **Note**: If you do not have an internet connection, you are prompted to create an offline activation file to complete the deactivation process. See [Activate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/activate_off.htm) for steps. ## Tableau Server product key activation You can activate the same Tableau Server product key up to three times. This allows you to test Tableau Server (in a sandbox or QA environments, for example), as well as use Tableau in production. To maximise your activations, you should deactivate your product key when you remove Tableau Server from a computer, unless you will be reinstalling Tableau on the same computer. Doing this gives you the opportunity to use the activation on a different computer. For example, if you move Tableau Server from one computer or VM to another, deactivate the product key, then remove Tableau from the original computer. When you install Tableau on the new computer, you can activate the key there without any conflict. If you use role-based licensing, be sure to activate a Creator or Explorer key or you may lose administrator access to Tableau. If you are removing Tableau Server to reinstall it on the same computer, you don't need to deactivate the key. Tableau will use the key when reinstalled. For example, if you are moving Tableau from one drive on a computer to a different drive on the same computer. For information on how to deactivate a product key, see [tsm licences deactivate](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMDeactivate). [Skip to main content](#main-content) # Migrate Workbooks and Data Sources with Embedded Credentials Starting in version 2023.1, authorised users can migrate workbooks and published data sources with embedded credentials from Tableau Server to Tableau Cloud. Additional configuration is required before migrating with Content Migration Tool. **Note:** Content Migration Tool does not support embedded credential migration for OAuth connections. For more information, see [Migration Limitations](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_limitations.htm). ## Overview Migrating embedded credentials using Content Migration Tool (CMT) is available when connecting to Tableau Server as the source site and Tableau Cloud as the destination site. Both sites must have an [Advanced Management](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm) licence. Now that we’ve covered the requirements, let’s discuss how migration works. You’ll need to work closely with the Tableau Cloud site administrator and TSM administrator (sometimes the same person) to allow the feature and authorise a site user. After the feature is activated, the authorised site user builds a migration plan and selects the publish options _Migrate Embedded Credentials for Workbooks_ and _Migrate Embedded Credentials for Data Sources_. When running the migration plan, all required content credentials are transmitted in an encrypted content manifest from Tableau Server to Tableau Cloud. As CMT publishes content, the destination Tableau Cloud site embeds matched credentials securely from the manifest into the content (workbooks or published data sources). Any problems that occur during migration will appear in the Errors and Warnings tab in CMT. For more information, see [Migration Plan Overview](https://help.tableau.com/current/server-linux/en-gb/cmt-depl_plan_overview.htm). ## Allow embedded credential migration Use the following steps to allow embedded credential migration from Tableau Server to Tableau Cloud. ### Tableau Cloud 1. Open a browser window and sign in to Tableau Cloud as a site administrator. 2. Select Settings > General, and scroll down to Manage Content Migration. ![Manage content migration encryption keys interface with options to create new keys.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-manage-content-migration.png) 3. Click Create new key to generate an encryption key pair. **Note:** The public key is only displayed once. If you lose the key before completing the configuration, you’ll need to generate a new key. 4. In the resulting window, click Copy to clipboard and then close the window. 5. Paste the public key to a file and store it in a safe location. The TSM administrator will use the public key to allow migration. You can view the public key expiration date on the Settings page. ### TSM Command Line Interface 1. Open a command prompt with an account that is a member of the `tsmadmin` group on a node in the cluster. 2. Use `tsm security authorize-credential-migration` to allow embedded credential migration to the Tableau Cloud site. For more information, see [tsm security](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm). `tsm security authorize-credential-migration --source-site-url-namespace --destination-site-url-namespace --destination-server-url --authorized-migration-runner --destination-public-encryption-key ` **Note:** When running TSM commands from a remote node, use `tsm login` to authenticate a session with the Tableau Server Administration Controller service before running `tsm security authorize-credential-migration`. 3. (Optional) Use `tsm security cancel-credential-migrations` to cancel granted authorisations. By default, migration authorisation will expire in 7 days or the number of days specified with the `--expiration-time-in-days` option. ### Content Migration Tool 1. Open Content Migration Tool and select Create New Plan or Browse for a Plan. 2. On the Sites page, click Sign in to Tableau, and connect to Tableau Server as the source and Tableau Cloud as the destination. Embedded credential migration is only available when migrating from Tableau Server to Tableau Cloud. 3. Build your migration plan and select the following Publish Options: - On the Workbook Publish Options page, select Migrate Embedded Credentials for Workbooks. For more information, see [Migration Plans: Workbooks](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_workbooks.htm). - On the Data Source Publish Options page, select Migrate Embedded Credentials for Data Sources. For more information, see [Migration Plans: Published Data Sources](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_datasources.htm). 4. When you are ready, click Verify & Run to start the migration. The workbooks and published data sources you selected are migrated to your Tableau Cloud site and should not prompt for authentication. If you experience issues while migrating embedded credentials, see [Troubleshooting](#troubleshooting). ## Troubleshooting This section includes some common migration issues you might encounter and suggestions to resolve them. ### There is no option to migrate embedded credentials You can only migrate embedded credentials from a Tableau Server to a Tableau Cloud site. Tableau Server and Content Migration Tool must be running versions 2023.1 or later. For more information, see [Install Tableau Content Migration Tool](https://help.tableau.com/current/server-linux/en-gb/cmt-install.htm). ### Migrating embedded credentials failed In the [Errors and Warnings](https://help.tableau.com/current/server-linux/en-gb/cmt-depl_plan_overview.htm) tab of CMT, you may receive an error indicating that migrating the embedded credentials failed. This can occur when the public key used to authorise migration has expired. As a Tableau Cloud site administrator, go to the Settings page and verify that the public key is valid. You’ll have to create a new encryption pair to authorise the migration if the public key expires. For more information, see [Allow embedded credential migration](#allow-migration). ## Who can do this? - Tableau Cloud site administrator and TSM administrator are required to allow embedded credential migration. - The authorised site user must have an Explorer role or higher. They must also have View and Download/Save a Copy capabilities for workbooks on the source site and View and Publish capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migrate Workbooks and Data Sources with Extracts Tableau Server users can publish extracts, which are copies or subsets of the original data. These extracts may be embedded in a workbook or a data source. By default, when you use the Tableau Content Migration Tool to migrate a workbook or data source that contains an extract, that extract is migrated along with the workbook or data source that contains it. The Content Migration Tool gives you a couple of options for controlling this behaviour: - **Switching to a Live Connection** You can add the Remove Extract transformation to your migration plan to remove the extract from your workbook or data source during migration. As always, the source workbook or data source will not be modified. The copy of the workbook or data source migrated to the destination site will have the extract removed from it. This effectively switches the data connection back to a live connection. - **Refreshing Extracts after Migration** You can enable the Refresh Extracts After Migration option in your migration plan to have an immediate extract refresh task scheduled after the workbook or data source is migrated. We don't recommend using the Refresh Extracts After Migration option if your migration plan also uses the Set Connection Info transformation to change the data connection to point to a different set of data (for example, a different database server or database). When you change the connection information to point to different data and use the Refresh Extracts After Migration option, this can unintentionally expose data in a way that is a potential security issue. For more information, see [Option 3: Refresh Extracts After Migration](#refresh-after-migration). #### Changing data connections that use extracts Tableau data connections are either live connections that directly query a data source, or they are extracts of a data source. Extracts are copies or subsets of the original data and can be embedded in a workbook or data source. When present, the views will query data from the extract instead of the underlying data source. Commonly, you’ll want to modify the data source connection during the migration so that it points to a different database on the destination site than it did on the source site. For example, if you are migrating a workbook from your staging site to your production site, you will likely want to update the data connections inside the workbook to connect to your production database. You can implement this by using the Set Connection Info transformation in your migration plan. Now you have a migration plan which copies a workbook from staging to production and updates the data connections to point to the production database. If your workbook uses an extract, additional work is required. In this scenario, the workbook will be migrated and the live data connection updated. However, the views will still show data from the staging database because it still contains the staging database extract – copied from the source (staging) site. There are a few ways to address this. #### Option 1: Use Published Data Sources You can change your workbooks so that they use published data sources instead. This way, the extract will be managed as part of the published data source, and migrating updates to the workbooks that use that data source can be simplified by not having to worry about the connection to the live database or the data extract. #### Option 2: Remove the Extract During Migration You can add a Remove Extract transformation to your migration plan. This will remove the extract from your workbook, effectively switching the data source to a live connection. #### Option 3: Refresh the Extract After Migration You can use the Refresh Extracts After Migration option in your migration plan. This will migrate the extract along with the workbook but will schedule an immediate extract refresh task for that workbook after the migration is complete. This option is usually not recommended when used in combination with a Set Connection Info transformation because of potential security issues that it can introduce. The issue is that the migrated workbook on your destination site will still show the old (source) extract data for the period between the completion of migration and the completion of the extract refresh task. If the extract refresh task fails, then the old/source extract data will remain until the extract is refreshed. In a scenario like we’ve outlined above, migrating from a staging to production environment, this may be acceptable, but you should be aware that the users of your workbooks may not be aware that the workbook is showing old/staging data due it being recently migrated and the extract not being refreshed yet. In other scenarios where you may be using Set Connection Info to change data connections to point to a different set of customer or client data, this could introduce serious security issues where the workbook’s extract contains data from a different client or customer until the extract has been refreshed post-migration. One way to mitigate this issue is to implement a 2-stage migration. This approach requires you to create two migration plans, one for each step described below, and ensures the workbooks and data sources have an up-to-date extract before they are accessible. - **Stage 1:** Migrate your content to a project on your destination site that only administrators have access to. This migration allows you to use the Refresh the Extract After Migration option along with the Set Connection Info transformation to update the data connection, because no unauthorised users will have an opportunity to see the old data, even if the extract refresh fails. - **Stage 2:** After stage 1 is complete and you confirm there is a successful extract refresh, run a second migration plan to migrate the content from the stage 1 destination to the final destination where it is visible to end-users. ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migration Limitations There are certain limitations to migrations when using the Tableau Content Migration Tool. Before creating your migration plan, review the sections below to learn about version compatibility and content that will not be migrated. ## Compatibility with Tableau content The Content Migration Tool supports migrating workbooks and published data sources saved in the eight most recent versions of Tableau. Workbooks and published data sources saved before version 2018.1.x are not supported by CMT. For more information, see [Getting Started with Tableau Content Migration Tool](https://help.tableau.com/current/server-linux/en-gb/cmt-getting-started.htm). Migrating content to previous Tableau versions can fail if the content includes features or formats not recognised by the previous version. The Content Migration tool will tell you if incompatibilities are found, and the migration will fail. ## Configurations The following configurations are not migrated to the destination site when using the Content Migration Tool. - [Users](https://help.tableau.com/current/server/en-gb/users_add.htm) - [Groups](https://help.tableau.com/current/server/en-gb/users_add_group.htm) - [Site settings (custom logos, view recommendations, etc.)](https://help.tableau.com/current/server/en-gb/sites_add.htm) ## Data connections While you can migrate existing data sources, only data sources that use the connection types in the table below can be changed and modified during migration. For more information, see Data Source Transformations in [Migration Plans: Workbooks](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_workbooks.htm) and [Migration Plans: Published Data Sources](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_datasources.htm).

Actian Matrix

Actian Vectorwise

Amazon Athena

Amazon Aurora

Amazon EMR

Amazon Redshift

Apache Drill

Aster Database

Box

Cloudera Hadoop

Delimited Text File

EXASOL

Firebird

Google Analytics

Google BigQuery

Google Cloud SQL

Google Drive

HortonWorks Hadoop Hive

HP Vertica

IBM DB2

IBM Netezza

Map R Hadoop Hive

Microsoft Access

Microsoft Analysis Services

Microsoft Excel

Microsoft Excel Direct

Microsoft OneDrive

Microsoft SQL Server

MySQL

OData

Oracle

Oracle Essbase

Pivotal Greenplum Database

PostgreSQL

Progress OpenEdge

Salesforce

SAP HANA

SAP Sybase ASE

SAP Sybase IQ

Snowflake

Spark SQL

Statistical File

Tableau Extracts

Tableau Server Data Sources

Teradata

Text File

Web Data Connector

Other Databases (ODBC)

## Unsupported content The following content is not migrated to the destination site when using the Content Migration Tool and will require additional configuration.
ContentAction required
Ask Data lensesUsers must recreate Ask Data lenses on the destination site. For more information, see Create Lenses that Focus Ask Data for Specific Audiences.
CollectionsUsers must recreate collections on the destination site. For more information, see Collections in Tableau Desktop help.
CommentsUsers must re-add comments to views on the destination site. For more information, see Comment on Views in Tableau Desktop help.
Custom viewsUsers must recreate custom views on the destination site. For more information, see Use Custom Views in Tableau Desktop help.
Data freshness policyDefaults to the site default upon publishing. Users must manually set it up if a specific freshness policy is needed. For more information, see Set a Data Freshness Policy in Tableau Cloud or Set a Data Freshness Policy in Tableau Server help.
Data rolesUsers must recreate data roles on the destination site. For more information, see Use Data Roles to Validate your Data in Tableau Prep Builder help.
Data source certificationsIf you have the following site roles and capabilities, you can certify data sources on the destination site.
  • Site Administrator Creator

  • Creator or Explorer (can publish) with Project Leader capability on the project containing the data source

For more information, see Use Certification to Help Users Find Trusted Data.

Data-driven alertsUsers must recreate data-driven alerts for dashboards and views on the destination site. After data-driven alerts are created, anyone with access to the view can add themselves to existing alerts.

For more information, see Send Data-Driven Alerts from Tableau Cloud or Tableau Server in Tableau Desktop help.

Descriptions for workbooks and data sourcesIf you own the content item or have the appropriate permissions, you can edit the item's description on the destination site. For more information, see Add or edit descriptions in Tableau Desktop help.
Embedded credentials

For security purposes, Tableau Server removes embedded credentials from data sources during the download process.

Note: CMT does not support embedded credential migration for OAuth connections. To migrate OAuth credentials, use the Set Connection Info data source transformation.

External assetsCustomised attributes for external assets are not migrated to the destination site. For example, tags, certifications, data quality warnings, descriptions, permissions, user contacts, tables and columns must be recreated. For more information, see Manage Permissions for External Assets.
Extract refresh schedulesExtract refresh schedules cannot be migrated to Tableau Cloud destination sites. To refresh data on Tableau Cloud, you can run extract refreshes manually or create new extract refresh schedules. For more information, see Schedule Refreshes on Tableau Cloud.
FavouritesUsers must reselect their favourite content on the destination site. For more information, see Mark Favourites in Tableau Desktop help.
FlowsTo run flows on a schedule, users must republish flows to the destination site with Tableau Prep. For more information, see Publish a Flow to Tableau Server or Tableau Cloud in Tableau Prep help.
Incremental extract refreshesIncremental extract refreshes are changed to full extract refreshes on the destination site. Users must reconfigure incremental refreshes in Tableau Desktop and publish extracts to the destination site after migration. For more information, see Refresh Extracts in Tableau Desktop help.
Metrics

The historical values for metrics are removed from views, and users must recreate metrics on the destination site. For more information, see Create and Troubleshoot Metrics (Retired). The legacy Metrics feature was retired in February 2024 for Tableau Cloud and in Tableau Server version 2024.2. For more information, see Create and Troubleshoot Metrics (Retired).

Revision historyTo migrate previous versions of workbooks to the destination site, users must download the versions they wish to keep and republish the workbook to the destination site. For more information, see Work with Content Revisions in Tableau Desktop help.
SubscriptionsUsers must resubscribe to views and workbooks on the destination site. For more information, see Create a Subscription to a View or Workbook.
Thumbnails for workbooks and viewsWorkbooks and views that are migrated using the Content Migration Tool will retain their original thumbnails, even if the migration plan includes transformations that result in the views being rendered differently (for example, if data connections change).

To update thumbnails, edit the workbook or view on the destination site and re-save it. For more information, see Edit Tableau Views on the Web in Tableau Desktop help.

Virtual connections

Users must recreate virtual connections on the destination site. For more information, see Create a Virtual Connection.
[Skip to main content](#main-content) # Migration Plan Overview Tableau Content Migration Tool creates a streamlined process for migrating Tableau content between sites and projects. The easy-to-follow plan can be audited, is repeatable and works via a batch process so any number of workbooks and data sources can be migrated in a simple and efficient process. The Content Migration Tool will display contextual tips to walk you through creating or editing a migration plan. Once you select the source and destination sites, a summary of your migration will be displayed at the top of the screen as follows: ![Migrating from one website to another.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-summary.png) ## Limitations when migrating content Before you start, make sure you understand the limitations when migrating content using the Content Migration Tool. For more information, see [Migration Limitations](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_limitations.htm). ## Encryption keys Each migration plan file is generated with an encryption key unique to the application that created the plan. Encryption keys can be shared if the migration plan needs to be run through an application that did not originally generate the file. When sharing encryption keys, you will need to overwrite the existing key in the application to run the migration plan. To view your encryption key, select Help > Settings. ![Settings menu with options for legacy licence key, diagnostics and security encryption key.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-encryption.png) If you will be using the Content Migration Tool Console Runner for migration plans, you must specify the encryption key using the `tabcmt-runner encryption` command before running the plan. For more information, see [Using the Tableau Content Migration Tool Console Runner](https://help.tableau.com/current/server-linux/en-gb/cmt-deployment_console_runner.htm). ## Migration process ### Step 1: Start The core of the migration process is creating a plan, which you can save and re-use for future migrations or modify and update as needed. The first step is choosing whether to create a new plan, or select a previously saved plan. To create a new plan, click Create New Plan. If you already created a migration plan and want to use it, click Browse for a Plan. ![Buttons labelled "Create New Plan" and "Browse for a Plan".](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-start.jpg) By default, all of your saved migration plans will be stored in the `Tableau Content Migration Tool Plans` folder in your My Documents folder. All migration plans are saved with a `.tcmx` extension, with recently accessed plans listed separately to make them easy to select: ![Path to Create New Plan, Browse for a Plan and view Recent Plans.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-recent.png) You can select a recently accessed plan and duplicate it to modify the plan and save it as a new plan. Select the plan you want to copy and click Duplicate. ![A Duplicate icon.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-icon-duplicate.png) ### Step 2: Planning The Content Migration Tool guides you through building or editing your migration plan in six steps. Click on each step for detailed instructions: - [Migration Plans: Sites](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_servers.htm) - [Migration Plans: Source Projects](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_source_projects.htm) - [Migration Plans: Workbooks](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_workbooks.htm) - [Migration Plans: Published Data Sources](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_datasources.htm) - [Migration Plans: Permissions and Ownership](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_users.htm) - [Migration Plans: Migration Scripts](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_scripts.htm) - [Migration Plans: Plan Options](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_options.htm) ### Step 3: Migration Once you have completed your plan, you are now ready to run the batch process for migration. When you reach the final step of the migration, a plan summary displays for your verification: ![Review plan summary with a list of data sources detailing the review's source, destination, projects, workbooks, published data sources and auto-archive.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-summary-verification.png) If you want to change any aspects of your plan, you can click on a section in the left sidebar to go directly to that phase. When you are ready, click Run to begin your migration. When you click Run, the migration tool will prompt you about any unsaved elements of your plan. By default, any unsaved elements will be saved when you click Yes. Remember you can always keep your previous plan without making any changes by duplicating it during the Start phase of the migration process. ![Option to confirm plan save.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-save-confirm.png) Your migration plan will run and a status bar displays for the overall plan progress and each workbook being sent to the destination server. ![A progress bar indicating the download of source workbooks and test data for 2019.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-status.png) When the plan finishes running, you can click the tabs at the bottom of the screen for more information about the migration. #### Published workbooks Published Workbooks details the newly published workbooks and the projects where they were migrated. ![A table displaying published workbooks, projects and a link to view the data on Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-pub-workbooks.png) #### Published data sources Published Data Sources details the newly published data sources and the projects where they were migrated. #### Output The Output tab details the migration log of your plan. ![Information about a Tableau Content Migration Tool run.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-output.png) You can save this log by clicking Save Log. ![A Save Log icon.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-icon-save-log.png) #### Errors and warnings The Errors and Warnings tab highlights any problems that occurred during the migration. ![A table of errors and warnings, complete with messages, workbooks or data sources and projects.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-errors.png) You can correct these and rerun your plan. When you have completed your migration and saved your plan, click Done to finish. ![A Done icon.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-icon-done.png) ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). ## Other articles in this section [Skip to main content](#main-content) # Migration Plans: Migration Scripts The next step of creating a migration plan in the Tableau Content Migration Tool is to create any scripts you want to run with your plan before or after migration. ## Step 1: Pre-Migration The Run Pre Migration section of the screen is dedicated to scripts that will run before the migration. ![Settings to enable running pre-migration.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-script-pre.png) Each field has a help icon you can get information from by moving your cursor over it. To start with your pre-migration scripts, select Enable, which will then activate the fields below. #### Working Directory This is the working directory for the script. The default directory is the same folder as the migration plan. Click on the browse button to select a different folder. The Reset button will restore the current migration plan folder as the working directory. #### Run This drop down allows you to choose either to run a custom script or an executable with parameters. #### Command Executable If you selected Executable with Parameters from the Run menu, this field will appear. This is the file path to the command executable to run before migration. Type it in directly or use the browse button to find the executable. This is a required field. #### Command Parameters If you selected Executable with Parameters from the Run drop-down menu, this field will appear. Enter in command line parameters here to use with the command executable. #### Script If you selected Custom script from the Run menu, enter in your pre-migration script here. It will be executed as a \*.cmd file. This is a required field. ## Step 2: Post-Migration The Run Post Migration half of the screen is dedicated to scripts that will run after migration. ![Interface for configuring post-migration scripts with fields for executable and parameters.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-script-post.png) Each field has a help icon you can get information from by moving your cursor over it. To start with your post-migration scripts, select Enable, which will then activate the fields below. #### Working Directory This is the working directory for the script. The default directory is the same folder as the migration plan. Click on the browse button to select a different folder. The Reset button will restore the current migration plan folder as the working directory. #### Run This drop down allows you to choose either to run a custom script or an executable with parameters. #### Command Executable If you selected Executable with Parameters from the Run menu, this field will appear. This is the file path to the command executable to run before migration. Type it in directly or use the browse button to find the executable. This is a required field. #### Command Parameters If you selected Executable with Parameters from the Run menu, this field displays. Enter in command line parameters here to use with the command executable. #### Script If you selected Custom script from the Run menu, enter in your post-migration script here. It will be executed as a \*.cmd file. This is a required field. ## Step 3: Continue to Next Step When you are ready, click Next. ![A Next icon.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-icon-next.png) ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migration Plans: Permissions and Ownership The Content Migration Tool allows you to replicate workbook and data source permissions to Tableau environments in different network domains or have differences in username or group syntax. You can create user permissions mappings to customise and secure content after it has been published to the destination location. Mappings are applied if Copy Project Permissions, Copy Workbook Permissions, or Copy Data Source Permissions have been selected earlier in the planning phase, along with Apply User Mappings. For more information, see [Migration Plans: Source Projects](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_source_projects.htm), [Migration Plans: Workbooks](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_workbooks.htm) and [Migration Plans: Published Data Sources](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_datasources.htm). ## Mapping limitations - Content Migration Tool will stop the migration process if it fails to find the mapped user or group in the destination location. Subsequent user or group permissions mappings are not checked after the first failure, and the plan must be run again. - Content Migration Tool cannot replicate permissions if the source content has permissions for multiple users and groups with identical names. This only occurs when there are duplicate user or group names sourced from separate domains. ## Step 1: Add mapping To add user permissions mapping, click Add Mapping and select whether to change the name of a domain, user or group, or to import mappings from a comma-separated values (CSV) file. If Content Migration Tool is unable to match a permission in the destination location, the source content will not be migrated. ![User mapping addition interface with options for domain, user and group mapping.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-user-add.png) ### Domain Mapping Domain permissions mapping applies to all users and groups in the destination location. If you are unsure about the source or destination domain, you can check the user and group pages on your Tableau site. If local user provisioning has been selected, the domain must be specified as `local`. ![Domain mapping interface showing source and destination domain fields.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-user-domain-mapping.png) ### User Mapping User permissions mapping automatically populates a list of users from the source and destination locations using the syntax `domain\user`. You cannot enter and save the names of users that don’t exist. **Note:** When migrating between projects on the same site, the destination location and list of users will be the same. You can use mappings to update content ownership from `User_A` to `User_B` on the site. ![User mapping addition interface with options for domain, user and group mapping.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-user-mapping.png) ### Group Mapping Group permissions mapping automatically populates a list of users from the source and destination locations using the syntax `domain\group`. You cannot enter and save the names of groups that don’t exist. ![Edit mapping interface showing source and destination group mapping options.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-group-mapping.png) ## Import mappings from a CSV file Starting in version 2021.4, you can import a CSV file containing domain, user and group mappings to quickly prepare your data for migration. Importing mappings can reduce the manual steps required to run a migration plan by allowing you to create and edit your mappings in bulk outside of Content Migration Tool. To import mappings, select Import from File from the Add Mapping menu. ### CSV file format requirements When you create a CSV file to import mappings, make sure that the file meets the following requirements: - The file does not include column headings. Tableau assumes that every line represents a mapping. - The file contains three comma-separated values per row: mapping type, source domain/user/group and destination domain/user/group. - Include the domain for usernames and groups if the server uses Active Directory authentication or "local" if a local identity store is used. You must specify "domain", "user" or "group" for mapping type, as shown in the following table. The source and destination columns provide example syntax for Active Directory and a local identity store. Actual values in the CSV file will vary depending on your organisation.
Mapping TypeSourceDestination
domain<domain><domain>
user<domain>\<user name>
local\<user name>
<domain>\<user name>
local\<user name>
group<domain>\<group name>
local\<group name>
<domain>\<group name>
local\<group name>
### Import user permissions mappings To import user permissions mappings in the Content Migration Tool: 1. Click Add Mapping and select Import from File. 2. In the dialog window, click Export CSV to export a .csv file containing all users and groups from the source site. Edit the resulting file in a text editor to add mappings for the destination site. If you already have a mapping file, skip to step 3. **Note:** The exported CSV file doesn’t include domains from the source site. Domains must be added manually to the CSV to create domain mappings. 3. Click Import Mappings and select the mapping file you want to import. Content Migration Tool will validate the mappings for errors when importing the file. If errors are detected, you must fix each error in the CSV file and then import it again. ### CSV import example The following example shows a CSV file that contains multiple mapping types. user,local\\hwilson,companyx.lan\\henry.wilson user,local\\jjohnson,companyx.lan\\janna.johnson user,local\\mkim,companyx.lan\\michele.kim user,local\\fsuzuki,companyx.lan\\fred.suzuki user,local\\awang,companyx.lan\\alan.wang user,local\\snguyen,companyx.lan\\susan.nguyen user,local\\lrodriguez,companyx.lan\\laura.rodriguez user,local\\agarcia,companyx.lan\\ashley.garcia group,local\\All Users,companyx.lan\\All Users group,local\\Finance Team,companyx.lan\\Finance Group domain,dev.mycompany,prod.mycompany A preview window is displayed while importing the CSV that shows mappings removed, added or updated, unchanged and ignored. Review that the mapping changes are correct and click Accept. ![User mapping addition interface with options for domain, user and group mapping.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-user-import-preview.png) Once the mappings are imported successfully, you can edit, delete or change the mapping order as described in Step 2. ## Step 2: Change mapping order After a permissions mapping is created, you can change the order using the Up or Down options to determine when it will be handled during the migration. When a domain, user, or group is handled in a permissions mapping, any subsequent permissions mappings for the source domain, user or group will be ignored. In the example below, permissions for `User_A` are mapped to `User_B`. Content Migration Tool will ignore the second permissions mapping because `User_A` has already been handled. ![User mapping interface with options to edit, delete and reorder mappings.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-user-order_example.png) In the example below, the first permissions mapping associates the domain for all users to `prod`. Content Migration Tool will ignore the second permissions mapping because the domain for `User_A` has already been handled. ![User and domain mapping interface with options for editing and reordering.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-user-override_example.png) ## Step 3: Continue to next step When you are ready, click Next to continue to the [Migration Plans: Migration Scripts](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_scripts.htm) section of the planning phase. ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migration Plans: Plan Options The last step of creating a migration plan in the Tableau Content Migration Tool is configuring the plan options. ## Step 1: Configure options ![Settings for plan options including refresh extracts, error handling and automatic creation of schedules](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-options02.png) The Plan Name is the name of the plan as it will appear in Content Migration Tool. We recommend using a user-friendly name for your plan name. The following are available options: - Refresh Extracts After Migration: If selected, data extracts will be refreshed immediately after migration if Content Migration Tool detects they have been modified during migration. Click the Filter link to exclude specific extracts. For more information, see [Exclude extract refreshes](#exclude-extract-refreshes) below. - Automatically create Extract Refresh Schedules that do not Exist: Automatically creates destination extract schedules that do not exist. If not ticked, source schedules that do not exist on the destination server will not be copied. - Continue Migration if Workbook or Data Source Fails: If checked, errors migrating a workbook or data source will not cause the migration to stop. The errors will be logged and the migration will continue. Errors during version control will always stop the migration. - Continue Migration if Permission or Ownership Mapping Fails: If ticked, errors copying permissions or ownership will not cause the migration to stop. The errors will be logged and the migration will continue. ### Exclude extract refreshes By clicking Filter next to Refresh Extracts After Migration, you can choose the workbooks or published data sources that will not be refreshed automatically. Use the arrow buttons to select the items you want to exclude, and clickOK. ![Version control to archive workbooks and published data sources, along with where to archive them to.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-options-exclude-extract-refresh.png) ## Step 2: Version control These options allow you to avoid losing the existing workbooks in the destination site that might be replaced by the migrated workbooks. ![Version control to archive workbooks and published data sources, along with where to archive them to.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-options-version-control.png) Select Enable to save previous versions of your content. You can choose to archive workbooks and/or published data sources. Once version control is enabled, you must select a project from the Archive To menu, which lists all the projects in your destination site. We recommend creating a separate archive project to store your versioned content. Click the refresh button to display any projects that have been added or modified on the site. ## Step 3: Save plan Once you have selected your plan options, click Save Plan to save your plan for future use. The plan will be saved to the `Documents\Tableau Content Migration Tool Plans` folder on your local machine. ## Step 4: Continue to next step When you are ready, click Verify & Run to end the Planning phase and prepare to run your plan. ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migration Plans: Published Data Sources The next step of creating a migration plan in the Tableau Content Migration Tool is to select, map and add any transformations to your published data sources. The process is very similar to the Workbooks step of the planning phase, particularly the data source mapping step. **Note:** If your workbooks or data sources include extracts, be sure you read and understand the information in [Migrate Workbooks and Data Sources with Extracts](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_extracts.htm). ## Step 1: Selection Starting the Published Data Sources phase of the migration plan, you’ll select any data sources you want to include in the migration plan: ![Data Source Selection for data mapping.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-datasource-selection.png) The data sources will only be selected at the moment of migration. You have two methods of selection. Use Specific Data Sources to choose one or more published data sources. Click Refresh to reload the list of published data sources available. The second option is All Data Sources, which selects every data source in the source site. ## Step 2: Mapping The next step is to map your source data sources to the new destination. This is similar in functionality to mapping workbooks. ![Data Source Mapping page with dropdown to Add Mapping.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-datasource-mapping.png) If you make no changes here, then the selected data sources will simply be deployed with the same name and project as the source. To add data source mapping click Add Mapping. The following options will appear in the mapping area. ![A form with fields for name, project, destination name and destination project.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-datasource-mapping-options.png) The entry has the following options: ### Delete Clicking the Delete link will delete this mapping entry. ### Name Use the Name menu to select the data source you wish to map. You can select (All Selected Data Sources) to choose all of the data sources. ### Project The Project is the project of the associated data source names. ### Destination Name By default, the Content Migration Tool will use the same Destination Name(Same As Source), keeping the original name in the Source file, but you can type in a new name here for the destination folder. ### Destination Project If your destination projects have already been created on your site, you can choose which project to place your migrated workbooks in or click Add New to create a new project. You can create different project destinations for individual data sources. ![A form for the addition or modification of data sources, with fields for name, project, destination name and destination process.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-datasource-mapping-dest-proj.png) In most situations, if multiple mapping entries exist for a single data source, a validation error will be displayed and must be fixed to continue. There is one important exception to this – a data source may match both a specific selection and a project-wide mapping entry. In this instance, the more specific entry will be used. When you have completed all of the data source mapping necessary, click Next to continue. ![A Next icon.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-icon-next.png) ## Step 3: Data source transformations You can modify your data sources by using the transformation option. Click Add Transformation to see the list of transformations available. ![A dropdown menu to add a transformation.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-transform-add-list.png) Selecting any of the data source transformations opens the Edit Transformation window. Use this to customise your selected data sources. Transformations are executed in the order they are listed, from top to bottom. For most data source transformations, there are two basic steps. The first step is to enter in the Match Criteria for the desired data source. Depending on which connection type you select, more fields will appear on the Match Criteria tab. ![A dialog to edit a transformation.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-transform-edit-match.png) The second step depends on which transformation type you are adding. Each of the data source transformations have different values to be entered on the second tab. You can add notes in the Comments section on the left side of the Edit Transformation window for each of the transformations you add. ### Replace Table/Schema Name On the Options tab, you can replace all or part of a table or schema name. ### Set Calculation Formula On the New Calculation Formula tab, you can replace the calculation for a column. ![Interface for defining a formula in a column transformation setting.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-datasource-transform-set-calc.png) ### Set Connection Info On the New Connection Values tab, enter the authentication method and connection details for the new data source. Depending on which connection type you select, more fields will appear. ![A text field labelled "File Path".](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-datasource-transform-set-cx.png) ### Set Custom SQL On the New Custom SQL tab, enter the name of the custom SQL query you want to modify for Match Query Name. The query name must match the custom SQL query name from the physical layer of the data source. If these names don't match, the transformation will fail. For more information about data modelling and the physical layer, see [The Tableau Data Model](https://help.tableau.com/current/server-linux/en-gb/datasource_datamodel.htm). After entering the query name, enter the desired Custom SQL in the text field. Be aware that custom SQL can negatively impact the performance of your workbooks if improperly used. ![A text box labelled "Match Query Name" and a larger text box labelled "Custom SQL".](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-transform-set-custom-sql.png) ### Remove Extract There is no Options tab for this transformation. Type the Match Criteria information and the extract will be removed during migration. ### Use Tableau Bridge There is no Options tab for this transformation. Type the Match Criteria information and data sources that are within a private network (inaccessible to the public internet) will be allowed to refresh using Tableau Bridge. The destination Tableau Cloud site must have Tableau Bridge configured before migrating data sources. For information about Tableau Bridge, see [Use Tableau Bridge](https://help.tableau.com/current/online/en-gb/data_fresh_sync_section.htm) in Tableau Cloud help. After the migration, data sources will need to be assigned a refresh schedule through Tableau Cloud. ### Apply Saved Credentials Deprecated in version 2022.3. Use the Set Connection Info data source transformation instead. On the options tab, enter the Tableau Username and corresponding Saved Credentials Username for the data connection. You can only apply saved credentials for existing data connections on the Account Settings page of your Tableau site. For more information, see [Manage Saved Credentials for Data Connections](https://help.tableau.com/current/server-linux/en-gb/manage_stored_credentials.htm). ![Two text boxes request a Tableau username and a saved credentials username.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-datasource-transform-saved-credentials.png) ## Step 4: Publish options The final step in the Published Data Source phase is to create transformations for permissions and tags and finalise the publish options specific to the data sources. ![The Data Source Publish Options dialog.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-pub-options.png) #### Overwrite Newer Data Sources If selected, a data source will be published, even if it will overwrite a data source that has been updated more recently. #### Copy Data Source Permissions When selected, the migration tool will attempt to match published data source permissions as closely as possible. #### Copy Extract Refresh Schedules When selected, the migration tool will attempt to set the destination data source extract refresh schedule to schedules matching the source’s name. **Note:** Extract refresh schedules cannot be created in Tableau Cloud. This option is not available if the destination is a Tableau Cloud site. For more information, see [Migration Limitations](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_limitations.htm). #### Copy Embedded Credentials for Data Sources Copy the embedded credentials for published data sources. Only available when migrating from Tableau Server to Tableau Cloud sites. For more information, see [Migrate Workbooks and Data Sources with Embedded Credentials](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_embedded_credentials.htm). **Note:** CMT does not support embedded credential migration for OAuth connections. To migrate OAuth credentials to the destination site, use the [Set Connection Info](#plan_datasrc_trans) data source transformation. #### Copy Data Source Owner Copy data source owner settings from the source location to assign the data source owner. If unselected, the Content Migration Tool user is given ownership of the data source in the destination location. #### Apply User Mappings Apply user mappings to assign content ownership. Select this option if there are differences in username syntax in the destination location. For more information, see [Migration Plans: Permissions and Ownership](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_users.htm). ### Add Options Click on the Add Option drop-down menu for the different types of transformations you can add: ![A dropdown menu to add or remove tags, apply extract refresh schedules or set permissions.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-pub-options-add.png) For all of the different types of transformations, there are two basic steps. The first step is to make your selection for the transformation. In this case, select the data source(s) you want to transform. At the top of the list, you can select Apply to all published data sources, which is an option to automatically select all data sources for future transformations. You can also Refresh the data source display window to reflect any changes or updates to the source site. ![A dialog to set published data source-level permissions.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-pub-perms.png) The second step is to enter the specific selections for the transformation you select. ### Remove Tags Once the data sources you would like to remove tags from are selected, enter any tags you want to remove by entering them into the field at the bottom and click Add. From this screen, you can also select to remove from the source or destination data sources. If you want to remove a previously entered tag, click on it and press the delete key. ![A dialog to remove tags from published data sources.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-pub-tags-remove.png) ### Add Tags After selecting the data sources desired, enter any tags you want to assign by entering them into the field at the bottom and click Add. If you want to remove a tag, click on it and press the delete key. ![A dialog to add tags to published data sources.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-pub-tags-add.png) In addition, on each of the transformations you can enter notes in the Comments section on the left-hand side of the Edit Transformation window. ### Apply Extract Refresh Schedules This transformation applies destination extract refresh schedules to migrated data sources. The list of schedules generated are from the destination. **Note:** Extract refresh schedules cannot be created in Tableau Cloud. This option is not available if the destination is a Tableau Cloud site. For more information, see [Migration Limitations](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_limitations.htm). ![A dialog to apply an extract refresh schedule.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-pub-extract-sched.png) ### Set Permissions The last type of transformation is to edit the permissions for the selected data sources. Enter in a Group or User and click Add. Adjust the permissions as desired. The four different options are to Allow the permission, Deny the permission, Inherit or to keep the Source Value. ![A dialog to set published data source-level permissions.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-datasource-pub-perms-new.png) ## Step 5: Continue to the next step When you are ready, click Next to continue to the [Migration Plans: Permissions and Ownership](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_users.htm) section of the planning phase. ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migration Plans: Sites The first step when creating a migration plan in the Tableau Content Migration Tool is to sign in to the source and destination sites. In the Sites section of the planning phase, you’ll sign in to the source and destination sites. The permissions of the user credentials you use govern the sites and projects you see when creating a migration plan. You can only migrate content that the user has access to. ![Dual-panel interface for selecting source and destination connections in Tableau.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-servers.png) ## Required permissions and licences The user account(s) used to sign in to the source and destination sites must have an Explorer role or higher, and the following permissions for the content you want to migrate: - View - Download Workbook/Save a Copy - Optional: Administrator (to select workbooks, to access a user list) Both the source and destination sites must have Advanced Management capacities. For more information, see [About Tableau Advanced Management on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/itm_intro.htm). ## Step 1: Source Here is the starting point of the migration. Sign in to Tableau Server , then select your _site_ to use as the source. Sites are independent silos of workbooks, data and user lists created within Tableau to group related content for selected users. You can only migrate content from one site at a time. ### Sign in to the source site Use the steps below to sign in to Tableau Cloud or Tableau Server. For more information about signing in to Tableau Cloud with Single Sign-On and Tableau with MFA, see [Sign In to Tableau Cloud](https://help.tableau.com/current/online/en-gb/to_signin.htm). 1. Click Sign in to Tableau. 2. In the Select a Connection dialog window, select a saved connection and click Continue. ![Connection selection interface for Tableau Cloud with options to edit connections.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-select-server.png) If no connections are available, click Add or edit saved connections to add a new connection. For more information, see [Saved connections](#saved-connections). 3. Enter your username and password, and click Sign In. If your server is configured for SAML or Single Sign-On, you are redirected to the Identity Provider sign-in page to complete the authentication process. 4. Select the site you want to use. ![Site selection interface with a search field and list of available sites.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-servers-source-sites.png) To change the source server or update your site selection, click Select a different source. ## Step 2: Destination Repeat the sign-in process for the destination site (the site you are migrating content to). If you are migrating your workbooks between two projects on the same Tableau site, your sign-in credentials for the source and destination site will be identical (including the server URL and site name). ## Saved connections Using saved connections allow you to quickly sign in to the source and destination sites by creating a reusable connection. When adding a saved connection, you must specify the preferred sign-in method for your site. As of 2021.2, the Content Migration Tool supports the following sign-in methods: - **Personal access tokens:** Allows users to create long-lived authentication tokens for improved security, auditing and automation of migration plans. Personal access tokens let users sign in without requiring interactive login in the Content Migration Tool. For more information, see [Personal Access Tokens](https://help.tableau.com/current/server-linux/en-gb/security_personal_access_tokens.htm). - **Browser-based sign-in:** Users enter their credentials and complete authentication through an embedded web browser. This option may be similar to how you usually authenticate to Tableau. - **Username and password sign-in:** Users authenticate through the Content Migration Tool instead of an embedded browser window. This option passes credentials to the server using Tableau REST APIs. You can use username and password sign-in to authenticate migration plans created before version 2020.3 and when troubleshooting issues that prevent the use of browser-based sign-in. ### Add or edit saved connections A link to Add or edit saved connections is displayed at the bottom of the Content Migration Tool and when signing in to the source and destination sites. Clicking this link will open the Manage Tableau Connections window. ![A Tableau connection management window with options for personal access tokens, browser-based sign-in, and username and password sign-in.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-connections.png) Use the steps below to add a saved connection: 1. On the Manage Tableau Connections window, click New Connection, or select an existing connection to make changes. 2. Enter a Connection Name (name to describe your server) and the Server URL. If you don't include a prefix for the Server URL, the Content Migration Tool will use `http://`. 3. Select the sign-in method for your connection. If you're using personal access tokens, see [Add saved connections with personal access tokens](#add-saved-connections-with-personal-access-tokens). 4. Click Save. After you create a saved connection, it's listed in the Select a Connection window next time you sign in to the source and destination sites. ### Add saved connections with personal access tokens Adding a saved connection with a personal access token requires more information than other sign-in methods. You will need to create a new personal access token on the source and destination sites to begin. Personal access tokens should not be shared between applications. For more information, see [Personal Access Tokens](https://help.tableau.com/current/server-linux/en-gb/security_personal_access_tokens.htm). Creating personal access tokens 1. In a web browser, sign in to your Tableau site. 2. At the top of the page, click your profile image or initials, and then select My Account Settings. 3. Under Personal Access Tokens, enter a descriptive name for your token in the Token Name field and then click Create new token. 4. In the resulting window, click Copy to clipboard and then close the window. 5. Paste the token secret to a file. Store the file in a safe location. Adding personal access tokens 1. In the Content Migration Tool, click Add or edit saved connections. 2. On the Manage Tableau Connections window, enter a Connection name and the Server URL. If you are connecting to Tableau Cloud, you must enter the full pod URL of your site. For example, `https://10ay.online.tableau.com`. Your pod is shown in the first portion of the site URL after signing in to Tableau Cloud. 3. Enter the Personal access token name and Personal access token secret, obtained when creating a personal access token in the previous section. 4. In the Site name field, enter the site name as it appears in the URL, without spaces. This is different to the friendly site name. For example, “Site A” would be “sitea” in a browser URL. 5. Click Save. ## Step 3: Continue to the next step After successfully signing in to both source and destination sites, click Next to continue to the [Migration Plans: Source Projects](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_source_projects.htm) section of the planning phase. ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migration Plans: Source Projects The next step in creating a migration plan in the Tableau Content Migration Tool is to select the source projects. Source projects are the projects the workbooks and published data sources will be migrated from. The projects you choose determine which workbooks are available to migrate in the next step of the migration plan. ## Step 1: Select your source project There are two options when selecting source projects, All Projects, and Specific Projects: ![Interface for selecting all projects for migration with a refresh option.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-source-proj-select-all.png) The All Projects option selects all projects from the source site you specified in the Servers step. The Specific Projects option allows you to select specific projects from the source site. **Note:** Source projects must contain workbooks or data sources. Content Migration Tool will not migrate empty projects. ![Project selection interface with options to select specific projects for migration.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-source-proj-select-specific.png) You can select each project individually or use the Select All button and then clear selections for the projects you don't want to include. If you make any changes on the source site while on this step, you can use the Refresh button to update the projects list. ![A button labelled "Refresh".](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-source-proj-refresh.png) ## Step 2: Select project options Once the source projects are selected, select which project options to apply for the destination location. There are options to create projects that don't exist, in addition to copying project permissions and ownership from the source location. To assign new content ownership based on user mappings, select Apply User Mappings. ![Options menu for project creation and user mapping application in a migration project.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-source-proj-options.png) - Create Destination Projects: Automatically create projects that don't exist in the destination location. Content Migration Tool will not create destination projects if the source project is empty or no workbooks or data sources are selected. By default, attempts to migrate to a non-existent project will result in a failed migration. - Copy Project Permissions: Copy source project permissions as closely as possible. - Copy Project Owner: Copy project ownership settings from the source location to assign the project owner. - Apply User Mappings: Apply user mappings to assign content ownership of projects in the destination location. Content ownership won't be applied if the destination project already exists. For more information, see [Migration Plans: Permissions and Ownership](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_users.htm). ## Step 3: Continue to the next step After selecting the source projects, click Next to continue to the [Migration Plans: Workbooks](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_workbooks.htm) section of the planning phase. If you are migrating workbooks between two projects on the same Tableau site, you'll choose your destination project in the next section. ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Migration Plans: Workbooks You have successfully signed in to your source and destination sites and selected projects. The next step is to prepare your workbooks for migration. **Note:** If your workbooks or data sources include extracts, be sure you read and understand the information in [Migrate Workbooks and Data Sources with Extracts](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_extracts.htm). ## Step 1: Workbook selection All of the workbooks in the source site and selected projects appear on the Workbook Selection screen. ![Workbook selection window with the specific workbooks option selected and six previews of the selected visualisations shown.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-select.png) If you make any changes to the workbooks in the source site while on this step, you can click Refresh to update the workbook listings. There are several different ways to select these workbooks. ### Specific workbooks selection There are three buttons in the Specific section. Any choices from the Basic section will immediately include the specifically selected workbook in the migration plan. Alternatively, you can individually select specific workbooks by clicking on each one. #### Select all The Select All button will select or clear selection of all the workbooks in the site. If additional workbooks are added to the site after the plan is saved, they will not be automatically added the next time the plan is used. #### Display: ##### Thumbnails The default view shows your workbooks in thumbnail previews to help you differentiate each of them. In this view, hovering over the thumbnail will show previews of the other worksheets and dashboards within that workbook. ##### List The list view is a more succinct listing that also provides additional information, including Workbook Name, Project, Tableau Version and Last Modified. Clicking on any of the column headers will sort the workbooks appropriately. Also, hovering over any of the workbooks will also provide a floating preview of the worksheets and dashboards within that workbook. List view is particularly useful if you have a large amount of workbooks in a site. ### Rule Based selection You can use Rule Based selection to choose workbooks based on specific criteria. Rule-based options will create workbook selection criteria to be used when the migration plan is run. Be aware that selecting "all" in any of the Rule Based options is different than the Specific Workbooks selection. A rule-based "all" selection will always include all workbooks, so any newly added workbooks are included in future migrations. ![Interface for setting rules based on project tags and publisher for workbook migration.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-rulebased.png) The Rule Based radio button allows you to select workbooks by using the following options: #### Workbooks in projects This menu allows you to select workbooks from specific projects. #### Workbooks tagged with This menu allows you to select workbooks by their tags. #### Workbooks published by This menu allows you to select workbooks by their author. With each option, you can select individually or multiple by clicking on the option next to each entry. All selected workbooks will appear in the Selection Description box. ### All Workbooks selection The last option is to select the All Workbooks radio button, which selects all workbooks in all projects in the site. Using the All Workbooks radio button is different to selecting all of the workbooks using the Specific Workbook method because it will use every workbook in the source site each time the migration plan is used in the future. ![Workbook selection options with all workbooks in all projects selected.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-select-all.png) When you’re satisfied with your workbook selections, click Next. ## Step 2: Workbook mapping You can now map your selected workbooks from the source file to the destination file. Mapping allows you to rename source workbooks as they are migrated and choose different destinations. You can also add mapping to change the project, prefix or suffix for the workbooks as well. Projects can be added to the Destination in this section as well. If you make no changes here, the selected workbooks will simply be migrated with the same name and into the same project as the source. If you have not defined projects in your destination site, they will be migrated into the Default project. To add workbook mapping click the Add Mapping button. The following options will appear in the mapping area. ![Interface for adding new workbook mappings with options for renaming and changing projects.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-mapping.png) ### Rename workbook ![Workbook mapping interface with fields for source and destination project and workbook names.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-mapping-rename.png) This transformation allows you to filter by the Source project and select the desired workbook(s) to rename. In the Destination field, select which project you would like the workbook to be directed to and enter the desired name. ### Change project ![Interface for changing workbook prefix with options to remove or replace.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-mapping-chgproj.png) By default, the workbooks are migrated to the same project in the destination. This mapping allows you to change the destination project for all workbooks from a source project. ### Add project When renaming the workbook or changing the project, the Add New option allows you to create a destination project without having to sign in to the destination site and create the project manually. You can create both projects and nested projects using the Add New dialog box. ![A form for creating a new project with fields for location, project name, parent project and description.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-mapping-chgproj-new.png) ### Change prefix ![Interface for changing workbook prefix with options to remove or replace.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-mapping-chgprefix.png) This allows you to remove or replace the prefix for workbooks from one or all source projects. ### Change suffix Like the prefix mapping, you can remove or replace the suffix for workbooks from one or all source projects. ## Step 3: Workbook transformations You can change and modify your workbooks by using the Transformation step. ![A button labelled "Add Transformation" with a dropdown arrow.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-add-transform-button.png) Transformations modify your workbooks in a specified manner. Additional transformations can be included via plug-ins or will be added in future versions of the application. Click on the Add Transformation drop-down menu to see the selection of Transformations currently available. ![A dropdown menu of workbook transformation options.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-add-transform-list.png) Selecting any of the transformations will bring up the Edit Transformation window, which will allow you to customise it to your selected workbooks. All transformations will be completed in the order that they are listed from top to bottom. For all of the different types of transformations, there are two basic steps. The first step is to make your selection for the transformation. In this case, select the workbook(s) you want to transform. The selection area is similar to the Workbook Selection section of the Planning phase with all of the features of the Basic selection radio button: Select/Unselect All, Refresh, Thumbnail Display and List Display. At the top of the list, you can select Select All workbooks, which is an option to automatically select all workbooks for future transformations. You can also Refresh the workbook display window to reflect any changes or updates to the source site. ![A window with choices to edit a transformation.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-edit-transform-workbook.png) The second step is to use the options tab to enter the specific selections for whichever transformation you select. ![A form to edit a parameter value, complete with fields for the parameter name, data type and value.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-edit-transform-options.png) Each of the workbook transformations has different values to be entered on the options tab, and the tab will have different names depending on the transformation you're editing: ### Replace URL action Replace part or all of a URL action inside the workbook using this transformation. On the Options tab, enter the text to be matched and its replacement value. The replacement functionality is intended for URL actions and doesn't check the entire workbook XML. ![Two text boxes with labels "Match" and "Replacement".](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-action-url.png) #### Example: URL: `www.exampledev.com` Match: `dev` Replacement: `Prod` Result: `www.exampleProd.com` ### Set parameter value Define a new parameter. On the options tab, enter the name of the Parameter, the data type from the drop-down menu and the value. ![A form with fields for a parameter name, data type and value.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-parameter.png) ### Remove images Remove any images (such as a watermark) in the selected workbooks by entering in the file name on the options tab. There is an additional tick box to receive a warning during migration if no image is found. ![A text field labelled "File Name" and a warning message about no matching images being found in the workbook.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-image-remove.png) ### Remove tooltip commands Remove all of the tooltip commands from the selected workbooks. There are no additional options to define for this transformation. ### Replace images Replace images embedded in the selected workbooks. On the options tab, enter the file name of the current image and the replacement image. You can replace images using a local file path or URL. ![A text field labelled "File Name" and a warning message about no matching images being found in the workbook.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-image-replace.png) #### Example: File Name: `image.png` Replacement Image URL: `https://www.exampledev.com/replacementImage.png` ### Zoom control visibility Set the visibility mode from the drop-down menu: Automatic, Show on Hover, or Hide on the options tab. ![A visibility mode dropdown menu with "Automatic" chosen.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-zoom.png) ### Web page URL replacement Replace part or all of a web page URL used on dashboards using this transformation. On the options tab, enter the text that should be matched and its replacement value. ![Two empty text fields labelled "Match" and "Replacement"](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-web-url-replace.png) #### Example: URL: `www.exampledev.com` Match: `dev` Replacement: `Prod` Result: `www.exampleProd.com` ## Step 4: Data source transformations The next step in planning your workbooks for your enterprise migration are your data source transformations. It is similar in function to the Workbook Transformations step. These are for data sources that are packaged within the workbooks. Published data sources are handled in a different step in the process. ![A button labelled "Add Transformation" with a dropdown arrow.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-transform-add-button.png) Click on the Add Transformation drop-down menu and the following options will appear: ![List of data source transformations including table name replacement and SQL setting adjustments.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-transform-datasource-add-list.png) Selecting any of the data source transformations will bring up the Edit Transformation window, which will allow you to customise it to your selected data sources. All transformations will be completed in the order that they are listed from top to bottom. For all of the different types of data source transformations, there are two basic steps. The first step is to enter in the match criteria for the desired data source. Depending on which connection type you select, more fields will appear on the Match Criteria tab. ![Data source transformation interface with fields for setting new connection values and matching criteria.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-transform-datasource-edit-criteria.png) Click on the Preview Source Connections to find any connections that match the criteria entered. ![A table that previews a data source transformation.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-transform-preview.png) The second step is to use the options tab to enter the specific selections for whichever transformation you select. ![Custom SQL setting interface for data source transformations.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-transform-datasources-edit-options.png) Each of the data source transformations has different values to be entered on the options tab: #### Set calculation formula On the options tab, you can replace the calculation for a column. ![A form with fields for a column name and a formula.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-transform-calc-set.png) #### Set connection info On the New Connection Values tab, enter the authentication method and connection details for the new data source. Depending on which connection type you select, more fields will appear. **Change published data sources with CMT** As of version 2022.1, select the Tableau Server (Published Data Source) connection type to change the published data source for a workbook. This can reduce the manual steps required when migrating workbooks between Tableau environments, for example, promoting content from development to production. To change the published data source, select a data source from the drop-down menu and enter the Tableau Username for authentication. The user must exist on the destination site and have the Connect capability for the published data source. - For file-based data sources, users will access the workbook and see data based on the permissions of the specified Tableau user. - For all other data sources, users are prompted for their own database credentials when the view or workbook loads. If Tableau Username isn't specified, only users with the Connect capability can see data in the workbook. ![A form with fields for the published data source and your Tableau username.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-transform-set-cx.png) #### Set custom SQL On the New Custom SQL tab, enter the name of the custom SQL query you want to modify for Match Query Name. The query name must match the custom SQL query name from the physical layer of the data source. If these names don't match, the transformation will fail. For more information about data modelling and the physical layer, see [The Tableau Data Model](https://help.tableau.com/current/server-linux/en-gb/datasource_datamodel.htm). After entering the query name, enter the desired Custom SQL in the text field. Be aware that custom SQL can negatively impact the performance of your workbooks if improperly used. ![A text box labelled "Match Query Name" and a larger text box labelled "Custom SQL".](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-transform-set-custom-sql.png) #### Remove extract There is no options tab for this transformation, simply enter in the Match Criteria information and the extract will be removed during migration. In addition, on each of the transformations you can enter notes in the Comments section on the left-hand side of the Edit Transformation window. #### Apply saved credentials Deprecated in version 2022.3. Use the Set Connection Info data source transformation instead. On the options tab, enter the Tableau Username and corresponding Saved Credentials Username for the data connection. You can only apply saved credentials for existing data connections on the Account Settings page of your Tableau site. For more information, see [Manage Saved Credentials for Data Connections](https://help.tableau.com/current/server-linux/en-gb/manage_stored_credentials.htm). ![Two text boxes request a Tableau username and a saved credentials username.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-datasource-transform-saved-credentials.png) ## Step 5: Publish options The final step in the Workbooks phase is to select publish options and create transformations for tags, extract refresh schedules and permissions. ![Publish options for workbooks including overwrite controls and permission settings.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-publish-options.png) #### Reset dashboard selections This option deselects all objects on dashboards. #### Overwrite newer workbooks If ticked, a workbook will be migrated even if it will overwrite a workbook that has been created at the same time or more recently than the moved workbook #### Copy workbook permissions When selected, the migration tool will attempt to match source workbook permissions as closely as possible. #### Copy extract refresh schedules When selected, the migration tool will attempt to set the destination workbook extract refresh schedule(s) to schedules matching the source’s name. **Note:** Extract refresh schedules cannot be created in Tableau Cloud. This option is not available if the destination is a Tableau Cloud site. For more information, see [Migration Limitations](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_limitations.htm). #### Copy embedded credentials for workbooks Copy the embedded credentials for data sources embedded in workbooks. Only available when migrating from Tableau Server to Tableau Cloud sites. For more information, see [Migrate Workbooks and Data Sources with Embedded Credentials](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_embedded_credentials.htm). **Note:** CMT does not support embedded credential migration for OAuth connections. To migrate OAuth credentials to the destination site, use the [Set Connection Info](#plan_wkbk_data_trans) data source transformation. #### Copy workbook owner Copy workbook owner settings from the source location to assign the workbook owner. If unselected, the Content Migration Tool user is given ownership of the workbook in the destination location. #### Apply user mappings Apply user mappings to assign content ownership. Select this option if there are differences in username syntax in the destination location. For more information, see [Migration Plans: Permissions and Ownership](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_users.htm). ### Add option Click on the Add Option drop-down menu for the different types of transformations you can add: ![Interface for adding workbook publish options including tag management and permission settings.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-pub-option-add.png) For all of the different types of transformations, there are two basic steps. The first step is to make your selection for the transformation. In this case, select the workbook(s) you want to transform. The selection area is similar to the Workbook Selection section of the Planning phase with all of the features of the Basic selection radio button: Select/Unselect All, Refresh, Thumbnail Display and List Display. At the top of the list, you can select Select All workbooks, which is an option to automatically select all workbooks for future transformations. You can also Refresh the workbook display window to reflect any changes or updates to the source site. ![Tag addition interface for workbooks with fields for tag selection and application.](/tableau/current/en-gb/server-linux/en-gb/Img/cmt-plan-workbook-pub-option-add-tags.png) The second step is to use the options tab to enter the specific selections for whichever transformation you select. **Note:** The options tab will have different names, depending on which transformation you are editing. #### Add tags This allows you to add one or more tags to the workbook. If you hover your mouse over a previously entered tag, a blue “X” will appear to allow deletion. ![An Edit Option dialog with options to select workbooks or add a tag.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-tags-add.png) #### Remove tags This allows you to add one or more tags to the workbook. If you hover your mouse over a previously entered tag, a blue “X” will appear to allow deletion. You can also choose to remove the tag from the source or destination workbooks. ![A window for removing tags from workbooks.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-tags-remove.png) #### Apply extract refresh schedules Here you can apply destination extract refresh schedules to migrated workbooks. The list of schedules generated are from the destination. **Note:** Extract refresh schedules cannot be created in Tableau Cloud. This option is not available if the destination is a Tableau Cloud site. For more information, see [Migration Limitations](https://help.tableau.com/current/server-linux/en-gb/cmt-migration_limitations.htm). ![A dialog box with options for applying extract refresh schedules, including end of the month, Saturday night and weekday early mornings.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-sched-refresh.png) #### Set permissions This transformation is to edit the permissions for the selected workbooks. Enter in a Group or User and then click Add. Adjust the permissions as desired. The four different options are to Allow the permission, Deny the permission, Inherit or to keep the Source Value. ![A window that shows permissions for a workbook.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-permissions-set.png) #### Set Generate Thumbnail As This allows you to set the User or Group to be used for generating user-specific data in the workbook thumbnail after being migrated. Each option has a drop down to select the desired user or group. ![A dialog box to generate thumbnails as a user or a group.](/tableau/current/en-gb/server-linux/en-gb/Img/ptd-plan-workbook-thumbnail-gen.png) ## Step 6: Continue to the next step After selecting your workbooks and preferences, click Next to continue to the [Migration Plans: Published Data Sources](https://help.tableau.com/current/server-linux/en-gb/cmt-plan_datasources.htm) section of the planning phase. ## Who can do this Tableau site user with an Explorer role or higher. To migrate content, you must have **View** and **Download/Save a Copy** capabilities for workbooks on the source site and **View** and **Publish** capabilities for target projects on the destination site. For more information, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm). [Skip to main content](#main-content) # Minimum Hardware Requirements and Recommendations for Tableau Server The following minimum hardware requirements and recommendations apply to all computers running Tableau Server, including physical hardware and virtual machines (VMs): - **Minimum requirements for installation** reflect the minimum hardware your computer must have in order to install Tableau Server. We do not recommend you attempt to run Tableau Server on servers with these values, even if you are just testing. Depending on the features you have licensed and are using, you may experience poor performance and have an unrealistic experience. In certain cases, Tableau Server may not start without at least 20GB of memory. For prototyping and Proof of Concept (PoC) testing, we recommend you use Tableau Cloud. This will give you an opportunity to experience Tableau Server on appropriately sized hardware. - **Minimum recommendations for production** go beyond minimum installation requirements and represent the minimum hardware configuration you should use for installation on most production nodes. If your computer meets the minimum installation requirements but does not meet these recommendations, the Setup program will warn you but you can continue the installation. For certain nodes dedicated to specific tasks and processes such as backgrounder, or Prep, you may be able to use servers that do not meet this minimum recommendation. The minimum recommendations listed here are intended as general guidance. However the recommendations for your environment may vary. For more information, see the [Hardware recommendations section](https://help.tableau.com/current/server/en-gb/server_baseline_config.htm#hardware-recommendations) of the [Recommended Baseline Configurations](https://help.tableau.com/current/server/en-gb/server_baseline_config.htm) topic. In addition, Tableau Server should not be installed on a physical computer or on a VM instance that is also running resource-intensive applications such as databases or application servers, or on a VM instance that is using shared resources. **Note**: If you install Tableau Server on a computer that meets the minimum requirements but does not have at least 8 cores and 16 GB of system memory, the default number of all processes installed is reduced to one of each process by design. For more information about processes, see [Server Process Limits](https://help.tableau.com/current/server-linux/en-gb/distrib_process.htm) Looking for Tableau Server on Windows? See [Minimum Hardware Requirements and Recommendations for Tableau Server](https://help.tableau.com/current/server/en-gb/server_hardware_min.htm "Opens topic in a new browser tab"). ## Minimum installation hardware requirements We strongly recommend any Proof of Concept (PoC) testing or prototyping be done using Tableau Cloud. This guarantees you will be running on systems with adequate resources. The computer on which you are installing or upgrading Tableau Server must meet the minimum hardware installation requirements. If the Setup program determines that your computer does not meet the following requirements, you will not be able to install Tableau Server. Meeting these requirements does not guarantee you a good experience testing Tableau Server **Minimum Hardware Requirements** These minimum requirements are for installing Tableau Server. They do not guarantee successful testing or use. For production minimum recommendations, see [Minimum production hardware recommendations](#MinRecs).

Processor

CPU

RAM

Free Disk Space

  • 64-bit
  • Must support SSE4.2 and POPCNT instruction sets
  • ARM-based processors are not supported

4 cores (8 vCPUs)

Version 2022.3 and later:

  • 64 GB - initial node
  • 16 GB - additional nodes

Version 2022.1 and earlier:

  • 16 GB - all nodes

15 GB

- Free disk space is calculated after the Tableau Server Setup program is unzipped. The Setup program uses about 1 GB of space. You may need to allocate additional disk space depending on various factors like whether you will be using extracts. The core Tableau Server bits must be installed in a directory with at least 15 GB of free disk space. If you attempt to install Tableau Server on a computer that does not have enough space, the Tableau Server package will install, but you will be unable to continue with setup. By default the install location is the `/opt` directory. You can change the installation path for Tableau Server on RHEL distros. If you plan to make heavy use of extracts then you may need to allocate additional disk space. You can specify a different directory for data (extract) storage during installation. - Core count is based on "physical" cores. Physical cores can represent actual server hardware or cores on a virtual machine (VM). Hyper-threading is ignored for the purposes of counting cores. ## Minimum production hardware recommendations For production use, the computers on which you install or upgrade Tableau Server should, in most cases, meet or exceed the minimum hardware recommendations. These recommendations are general. Actual system needs for Tableau Server installations can vary based on many factors, including the number of users and the number and size of extracts, as well as the features you have licensed. If the Setup program determines that your computer does not meet the following recommendations, you will get a warning, but you can continue with the installation process. For more information, see the [Hardware recommendations for production installations](https://help.tableau.com/current/server-linux/en-gb/server_baseline_config.htm#Hardware).

Install Type

Processor

CPU

RAM

Free Disk Space

Single node

  • 64-bit (x86_64 chipsets)
  • Must support SSE4.2 and POPCNT instruction sets
  • ARM-based processors are not supported

8 cores (16 vCPUs), 2.0 GHz or higher

Version 2022.3 and later:

  • 128 GB

Version 2021.4.0 to version 2022.1.x:

  • 64 GB

Version 2021.3.x and earlier:

  • 32 GB

50 GB

If you are adding Tableau Prep Conductor to your Tableau Server installation, we recommend you add a second node and dedicate this to running Tableau Server Prep Conductor. This node should have a minimum of 4 cores (8 vCPUs) and 16 GB of RAM.
Recommended swap memory: The square root of the system RAM or 8 GB, whichever is larger.

Multi-node and enterprise deployments

Contact Tableau for technical guidance.

Nodes must meet or exceed the minimum hardware recommendations, except:

  • Dedicated Backgrounder nodes running up to two instances of backgrounder, where 4 cores may be acceptable.

  • Dedicated node for Tableau Prep Conductor: Minimum of 4 cores (8 vCPUs) and 16 GB of RAM.

  • Dedicated node for Independent Gateway: Minimum of 2 cores (4 vCPUs), 8 GB of RAM and 100 GB of free disk space.

**Important:** The disk space requirement cannot be checked until you initialise TSM. If you don’t have enough space, you won’t be told this until after you install the Tableau Server package. 50 GB disk space available, with a minimum of 15 GB allocated to the `/opt` directory, and the remainder allocated to the `/var` directory for data storage. - Free disk space is calculated after the Tableau Server Setup program is unzipped. The Setup program uses about 1 GB of space. You may need to allocate additional disk space depending on various factors like whether you will be using extracts. The core Tableau Server bits must be installed in a directory with at least 15 GB of free disk space. If you attempt to install Tableau Server on a computer that does not have enough space, the Tableau Server package will install, but you will be unable to continue with setup. By default the install location is the `/opt` directory. You can change the installation path for Tableau Server on RHEL distros. If you plan to make heavy use of extracts then you may need to allocate additional disk space.You can specify a different directory for data (extract) storage during installation. - **Network attached storage space requirements for External File Store:** If you are planning to configure [Tableau Server with External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm), you will need to estimate the amount of storage space to dedicate on your network attached storage. Estimating the storage size: You must take into account the amount of storage needed for publishing and refreshing extracts. In addition, you must also take into account the repository backup size unless you specifically choose the option to do your repository backup separately as described in the [Option 2: Back up repository separately](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_backup_restore.htm#backup-repository-separately) topic. - Extracts: - Consider the number of extracts that will be published to Tableau Server and the size of each extract. Test your needs by publishing several extracts to Tableau Server and then checking the disk space used. You can use this amount of disk space to help you figure out how many extracts will be published to Tableau Server over time as well as how each existing extract will increase in size. - Consider the space needed by the temp directory during an extract refresh. The temp directory, which is where an extract is stored to during a refresh, may require up to three times the final file size of the extract. - Repository Backup: - To obtain an estimate of the repository data, check the size of `/pgsql/data/base` directory. - To obtain the exact size of the repository data, open the backup file and use the size of the `workgroup.pg_dump` file. - Core count is based on "physical" cores. Physical cores can represent actual server hardware or cores on a virtual machine (VM). Hyper-threading is ignored for the purposes of counting cores. - RAM shown is the minimum recommended for a single-node installation. Your installation may function better with more RAM, depending on activity, number of users, and background jobs, for example. To see the full list of recommendations and to see the minimum requirements, see [Minimum Hardware Requirements and Recommendations for Tableau Server](#). For hardware specifications Tableau uses internally for testing scalability, see [Hardware recommendations for production installations](https://help.tableau.com/current/server-linux/en-gb/server_baseline_config.htm#Hardware). For hardware recommendations for Tableau Server in the cloud, see the following: - [Selecting an AWS Instance Type and Size](https://help.tableau.com/current/server-linux/en-gb/ts_aws_virtual_machine_selection.htm) - [Selecting a Google Compute Engine Virtual Machine Type and Size](https://help.tableau.com/current/server-linux/en-gb/ts_gcp_virtual_machine_selection.htm) - [Selecting a Microsoft Azure Virtual Machine Type and Size](https://help.tableau.com/current/server-linux/en-gb/ts_azure_virtual_machine_selection.htm) [Skip to main content](#main-content) # Minimum Hardware Requirements and Recommendations for Tableau Resource Monitoring Tool Tableau Resource Monitoring Tool handles all of the processing, aggregation, storage and web interface to the monitoring data collected from your Tableau Server installation. ## RMT Server Minimum Hardware Recommendations For production use, the machine that you install Resource Monitoring Tool on should meet or exceed the hardware recommendations below: - 8 physical CPU cores (16 vCPUs) - CPUs must support SSE4.2 and POPCNT instruction sets - 64GB RAM - 500 GB Disk Space for RMT Server - SSD drive or similar for performance For RMT Server installations that match the minimum hardware specified above, the Resource Monitoring Tool can provide performance reporting for Tableau Server deployments serving up to 10,000 views per hour. For deployments with more view loads per hour, or very high numbers of background jobs, data delays may occur. In these cases, you may need to upgrade your hardware. ## Resource Monitoring Tool Agent - Resource Utilisation The Resource Monitoring Tool Agent monitors the operating system and Tableau Server processes and log files and sends performance metrics and Tableau log data to the Resource Monitoring Tool for near real-time processing. The Agent needs to be installed on every machine that is running Tableau Server. On Tableau Server installations that match [Minimum Hardware Requirements and Recommendations for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/server_hardware_min.htm#minimum-hardware-requirements-for-installation), here is what to expect: - We typically see the Agent using 0–5% CPU on average with infrequent spikes above that. Our performance target is an average of 10% CPU usage or less. - The agent typically uses 200 MB RAM or less with infrequent spikes during periods of heavier Tableau Server activity. - A minimum of 10 GB free disk space is recommended for the machine where Agent is installed. ## Installing in a Cloud Environment Resource Monitoring Tool can be installed on a virtual machine in any cloud environment that you may be using for your Tableau Servers. The virtual machine where RMT Server is installed will need to meet the same minimum hardware requirements [described above](#RMT). ## Who can do this To install Resource Monitoring Tool, you must be all the following: - Administrator on the machine you are installing Resource Monitoring Tool. - Tableau Server Administrator. - Resource Monitoring Tool Administrator. [Skip to main content](#main-content) # Monitor Flow Health and Performance After you publish Tableau Prep flows and schedule them to run periodically, you want to know that they are running as expected and to resolve any issues as they occur. You will also want to monitor, troubleshoot and understand the performance of your flows. Need help troubleshooting your flow? See [Troubleshoot Tableau Prep Builder](https://help.tableau.com/current/prep/en-gb/prep_troubleshoot.htm). This topic describes the various methods that Tableau Server provides to help you monitor and troubleshoot your Tableau Prep flows. ## Detect issues as they occur and resolve them You can set up Tableau Server to send email notifications when flows fail, or find and review errors on Tableau Server using the Alerts menu or by reviewing the flow pages for the flows that you are interested in. This type of monitoring allows you to detect problems as they occur. ### Get notifications when a flow fails: You can configure Tableau Server to send notifications about flow failure via email or on the Tableau site or Slack. To set up notifications for your Tableau Server and sites, follow the instructions in [Step 2: Configure Flow Settings for your Tableau Server](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_configure_server_site_settings.htm#Step_3:_Configure_Server_event_notification_for_flow_failures). ### View and resolve errors **Note**: Starting in version 2020.4.1, you can now create and edit flows directly in Tableau Server and Tableau Cloud. The content in this section applies to all platforms, unless specifically noted. For more information about authoring flows on the web, see [Tableau Prep on the Web](https://help.tableau.com/current/server-linux/en-gb/prep_web_auth.htm). The following errors can happen when running a flow: - **Connection errors:** Connection errors generally happen when Tableau Server is unable to connect to one or more data inputs or is unable to make a connection in one or more output steps. - For Input connection errors, use the Edit connections option on the Connections tab to make changes to connection details, then run the flow again. - For output connection errors, check the output location for the flow output steps. If the flow output is going to a network share, make sure the output steps are pointing to a safe listed location. After you make any changes, republish the flow and try running it again. **Note**: To fix output connection errors for flows that output to a file or network share, download the flow to Tableau Prep Builder, then republish the flow to your server. Flows that output to a published data source or database can be edited directly on the web. - **Errors in the flow:** If there are errors in one or more steps in the flow, you will see an error message. You can edit the flow directly on the web and republish it. You can also download the flow to Tableau Prep Builder, resolve the errors, republish the flow to the server and then run the flow again. - **Suspended flow tasks:** When a scheduled flow task fails to run after a configured number of attempts, the flow task is suspended. By default, a flow task is suspended after 5 consecutive flow task failures. A flow can have multiple scheduled tasks assigned to it, but only the failed tasks are suspended. All other flow tasks will continue to run unless they have errors. To resolve a suspended task, review and resolve the errors then run the flow on-demand or let the flow run automatically based on the assigned schedule. **Note:** Server administrators can configure the number of attempts before a flow run is suspended using the tsm configuration set option. For more details, see [Step 5: Optional Server Configurations](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_config_server_optional.htm#Step_7_AutoSuspension). You can view errors on the following pages: #### Flow Overview page On this page you can see the status of the most recent flow run and any errors. Hover on the error text to review the error details. If a scheduled task is suspended, a warning icon shows next to the schedule. Hover on the icon to view the status. After you resolve the error that caused the flow to fail or the task to be suspended, you can run the flow manually or let the flow run based on the assigned schedule. For suspended flow tasks, click the Go to Scheduled Task link on the tooltip for the suspended task to navigate to the Scheduled Tasks page and click the Resume Scheduled Tasks button to resume the suspended tasks. ![A process flow for a data set titled "Tableau Prep Crane" displays an error message: "Incremental refresh on step 'Output' failed."](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_overview_error.png) #### Connections page The **Connections** page shows the most recent status and any related connectivity errors. To correct input errors, click the More actions![The More Options menu option represented by three dots.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_rmoremenu.png) menu for an input connection to edit the connection and change the server name, port, username and password. To fix output connection errors, edit the flow directly or download the flow in Tableau Prep Builder, correct the file path, then republish the flow to continue running it. ![Connection details with an error message stating "Incorrect username or password."](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_connections_error.png) #### Scheduled Tasks page **Note**: The Data Management is required to see this tab. View the scheduled tasks assigned to a flow. If a scheduled task is suspended, you can see the status of that tasks here and you can manually resume the flow tasks from this page. Before resuming a suspended task, resolve any errors in the flow. Error details are not shown on this page, but you can review them on the Overview or Run History pages. You can also click the links in the Schedule type column to view the details of what was scheduled and to edit the tasks. A suspended scheduled task will automatically resume when the flow is republished, if you edit a connection for the flow or manually run the flow tasks. To manually resume a suspended tasks, on the Scheduled Tasks page, click Resume Scheduled Tasks. This resumes all suspended tasks for the flow. To resume individual tasks, click the More actions![The More Options menu option represented by three dots.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_rmoremenu.png) menu for a scheduled task and select Resume. You can also click Run Now to run all tasks for the flow immediately. ![A list of scheduled tasks for a data flow with their status.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_linked_tasks_schedule_error.png) #### Run History page **Note**: The Data Management is required to see this tab. The Run History page shows the details of all the flow runs that have either completed or are in progress for each output. View any error details by hovering over the errors in the **Errors** column. The duration column shows you the run time of the flow. **Note**: Starting in version 2020.2.1, the Run Type field shows the refresh type for the output. In prior releases this field showed whether the output was run on a schedule or on-demand. For more information about setting up output refresh types, see [Refresh Flow Data Using Incremental Refresh](https://help.tableau.com/current/prep/en-gb/prep_incremental_refresh.htm). ![Tableau Prep Run History.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_server_runhistory.png) #### Alerts When a flow fails, the alerts menu is populated with the error details with the option to re-run the flow, or download the flow to troubleshoot. **Note**:Flow owners, Server or Site Administrators can see this menu. ![The Alerts dialog showing error details and the alerts menu options to re-run the flow or download the flow to troubleshoot.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_server_alerts.png) ### Tableau Prep Conductor process status - The Tableau Services Manager (TSM) status page is accessible in TSM and can be viewed by TSM administrators. You must be able to log into TSM to see this page. - The Tableau Server status page appears in the Tableau Server web UI and is accessible by Tableau Server administrators. If you hover your mouse pointer over the status indicator for a process, a tooltip shows the node name and the port the process is running on. The Tableau Server status page does not show TSM processes. ![The Tableau Server Status page showing the node name and the port the Tableau Prep Conductor process is running on.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_process_status.png) When Tableau Server is functioning properly, Tableau Prep Conductor will show as Active or Busy: - **Active** – The process is functioning as intended. - **Busy** – The process is completing some task. - **Down** – The process is down. The implications of this differ depending on the process. - **Status unavailable** – Tableau Server is unable to determine the status of the process. ### Who can do this - **Tableau Server Administrators**: - Set up email notifications at the server level - Set up email notifications for a site - View errors - Resume suspended tasks - View alerts - view process status - **Tableau Site Administrators**: - Set up email notifications at the site level - View errors - Resume suspended tasks - View alerts - **Flow owners, project leaders and any user who is granted permissions to view the flow**: - View errors - Resume suspended tasks - View alerts (Flow owners) ## Other articles in this section [Skip to main content](#main-content) # Monitor Tableau Server Performance Tableau Resource Monitoring Tool is used to monitor and analyse Tableau Server health and performance. Performance, usage and hardware metrics are collected through the Agents installed on the Tableau Server nodes and sent to the RMT Server. The aggregated and analysed data is then displayed in the form of charts and views on the web interface of the RMT Server. The web interface of the RMT Server has built-in charts and views that you can use to identify what is causing slow loading times, extract failures and other critical issues. For more information, see [Monitor Tableau Server Performance with Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-charts.htm). You can also download the data that is used to create the pre-built charts and explore it further. For more information, see [Explore Monitoring Data Using Tableau Data Source Files](https://help.tableau.com/current/server-linux/en-gb/rmt-tds-files.htm). ## Other articles in this section [Skip to main content](#main-content) # Monitor Tableau Server Performance with Tableau Resource Monitoring Tool Tableau Resource Monitoring Tool makes it easy to detect and resolve health and performance problems within your Tableau Server environments. One instance of the Resource Monitoring Tool can provide a single unified interface for administrators to monitor multiple Tableau Servers. The Resource Monitoring Tool consists of two components: - Agent, which collects resource usage and performance recording of interactions on Tableau Server. - RMT Server, which aggregates and displays this performance data in the form of charts on a web interface. The Resource Monitoring Tool may not be able to provide information for Tableau Server process that are external: - External Repository: The process status is not monitored and not included in the charts - External File Store: The process status is not monitored and the extract file size information is not tracked. The extract failure and time taken to complete is still available. - External Gateway: The process status is not monitored and not included in the charts. ## Pre-built Charts The web interface of the RMT Server has built-in dashboards and charts that can be used to identify performance bottlenecks and issues. These built-in charts and metrics can be found on the **Performance**, **Activity** and **Content** pages. You can also set up alerts (called **incidents**) to report outliers or unusual behaviour based on thresholds that you configure. Here is a full list of capabilities that the Resource Monitoring Tool offers to help with monitoring your Tableau Server:
CapabilityComponentWhere to find it on RMT Server
Configuring Incidents/Alerts
  • Hardware resources at Tableau Server node and process level.
  • View load times.
  • Query times.
  • Tableau Server node down events.

Admin -> Environments ->Edit Environment -> Incidents or Notifications tabs.

  • Use the Incidents tab to configure incident thresholds.

  • Use the Notifications tab to configure when and how you want to receive notifications.
Hardware Resources
  • CPU
  • Memory
  • Disk
  • Network

For a high-level view, go to Performance -> Select environment ->Environment

For a more detailed view, go to Performance -> Select environment -> Servers

Tableau Server Usage
  • Concurrent users
  • Aggregated-view load times across the server
  • Background tasks
    • Duration, state and detailed errors for failed tasks.
    • Log snippets for failed tasks.
  • Query details
    • Duration, state and query text for long-running or expensive queries.
  • Log information for:
    • Individual view load times.
    • VizQL session information.
    • Duration of events during view loads.
    • Query text, load time and number of rows returned
    • Background tasks and run times.

Most of this information is on the Environment tab of the performance dashboard.

Performance -> Select environment ->Environment

To see query details, go to Activity -> Data Queries and select a query for more details.

To see log information, go to Activity -> make a selection from the list to see more details.

## Custom Charts You can also download the data that is used to create the pre-built charts and explore it further in Tableau. For more information, see [Explore Monitoring Data Using Tableau Data Source Files](https://help.tableau.com/current/server-linux/en-gb/rmt-tds-files.htm). ## Who can do this Any Resource Monitoring Tool user can view the charts. ## Other articles in this section [Skip to main content](#main-content) # Monitoring Tableau Server You can configure SMTP and alerts and subscriptions to aid in monitoring Tableau Server. ## Other articles in this section [Skip to main content](#main-content) # Move Tableau Server to Another Drive If you need to move Tableau Server to a different drive (if a new policy requires you to not have application data on your system drive, for example, or you are running out of space on the original drive), you can do this by following the procedure below. The steps are intended as an example for moving Tableau Server from one drive to another drive on the same computer, and may not exactly reflect your installation and configuration. For instructions on moving Tableau Server to a new computer, see [Migrate to New Hardware](https://help.tableau.com/current/server-linux/en-gb/upgrade_migrate.htm). ## Before you start Before starting, make sure you: - Have a current backup of your data and assets from your existing installation as well as a settings export. You'll need these to restore your installation of Tableau Server on the new drive. For details on creating a backup, see [Perform a Full Backup and Restore of Tableau Server](https://help.tableau.com/current/server-linux/en-gb/backup_restore.htm). You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. - Have access to the Tableau Server computer with an account that is a member of the `tsmadmin` group. This is where you will be working, and you need to be logged on to the computer with an account that is a member of the `tsmadmin` group. - Have a copy of the installation program for the version of Tableau Server you are moving. You need this to install Tableau Server to the new drive. - Know what authentication methods your current installation is using. For example, if Tableau Server is configured for SSL, SAML or Kerberos, you will need to back up the related certificate or keytab files separately, and then copy them to the new drive after you reinstall Tableau Server. - Know and understand any initial node settings and configuration in your current installation. When you are ready to move Tableau Server to another drive and have fully backed up your data and all assets and saved those files in a safe location on a different computer: 1. Open a terminal session on the initial node with an account that is a member of the `tsmadmin` group. 2. Run the `tableau-server-obliterate` script: sudo /opt/tableau/tableau\_server/packages/scripts./tableau-server-obliterate -a -y -y -y If you have a multi-node (distributed) installation of Tableau Server, run the tableau-server-obliterate script on each node in the cluster. 3. Restart the computer you ran the `tableau-server-obliterate` script on. 4. Install and initialise Tableau Server in the new directory. For details, see [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm). 5. [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm). 6. (Optional). [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 7. (Optional). Verify LDAP. 8. Initialise Tableau Server. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). 9. Copy your backup file _.tsbak_ to the folder location specified by the `basefilepath.backuprestore` variable. By default, this is: `/var/opt/tableau/tableau_server/data/tabsvc/files/backups/` **Note:** You can change the location for the backup file. For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). 10. Stop Tableau Server: `tsm stop` 11. Restore your Tableau Server data backup and assets you saved earlier. This includes restoring your database, and any assets that need to be restored manually. For details, see [Restoring core Tableau Server functionality](https://help.tableau.com/current/server-linux/en-gb/backup_restore.htm#Restorin). 12. Start Tableau Server: tsm start ## Tableau Server product key activation You can activate the same Tableau Server product key up to three times. This allows you to test Tableau Server (in a sandbox or QA environments, for example), as well as use Tableau in production. To maximise your activations, you should deactivate your product key when you remove Tableau Server from a computer, unless you will be reinstalling Tableau on the same computer. Doing this gives you the opportunity to use the activation on a different computer. For example, if you move Tableau Server from one computer or VM to another, deactivate the product key, then remove Tableau from the original computer. When you install Tableau on the new computer, you can activate the key there without any conflict. If you use role-based licensing, be sure to activate a Creator or Explorer key or you may lose administrator access to Tableau. If you are removing Tableau Server to reinstall it on the same computer, you don't need to deactivate the key. Tableau will use the key when reinstalled. For example, if you are moving Tableau from one drive on a computer to a different drive on the same computer. For information on how to deactivate a product key, see [tsm licences deactivate](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMDeactivate). When you remove Tableau Server using the obliterate script, you have the option to have the script deactivate and delete the Tableau product key information by using a "`-l`" switch. This will deactivate and remove all Tableau licence information, including Tableau Desktop if you have that installed. If you know you want to deactivate the key, we recommend you deactivate the key _before_ running the script. For more information, see [Remove Tableau Server from Your Computer](https://help.tableau.com/current/server-linux/en-gb/remove_tableau.htm). [Skip to main content](#main-content) # Move the File Store Process This topic describes File Store process when configured to run locally on Tableau Server. However, File Store can be run locally as well as external to Tableau Server. For more information on Tableau Server External File Store, see [Tableau Server External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm). You cannot remove an instance of File Store if it is the only instance on the server. You cannot run Tableau Server without at least one instance of File Store. This means if you need to move the File Store, or if you are deleting a server node that is hosting the only instance of the File Store, you must first move File Store to another node. Moving the File Store is a two-part process: - Adding a second instance of File Store (if there is not an existing second instance). - Decommissioning and removing the original instance of File Store. This article assumes you have installed Tableau Server on an initial node and at least one additional node. For more information on adding nodes to Tableau Server, see [Install and Configure Additional Nodes](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm). ### Adding a second instance of File Store This procedure assumes you have added an additional node. For more information on adding nodes to Tableau Server, see [Install and Configure Additional Nodes](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm). 1. Open TSM in a browser: https://:8850 For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab. 3. For the node you want to add an instance of File Store on, select File Store. Adding File Store to a node will also add an instance of Data Engine if one is not already on the node. 4. Click Pending Changes at the top of the page: ![Tableau Server Manager toolbar indicating that there are pending changes.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-pending-changes-btn.png) The Pending Changes list displays. A Coordination Service ensemble warning displays because you are configuring a three-node cluster. You can continue. You will deploy a Coordination Service ensemble in an upcoming step. 5. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. ### Decommissioning and removing an instance of file store 1. In TSM, on the Status tab, verify that all processes are active. 2. Click the Configuration tab. 3. For the node you're removing File Store from, clear the File Store box. This will generate a warning about decommissioning the File Store before removing it. You cannot remove an instance of File Store unless it has been decommissioned. Click OK to decommission and remove the file store. Data Engine will also be removed unless an instance of one of these processes is installed on the node: VizQL Server, Application Server (Vizportal), Data Server or Backgrounder. 4. If you are removing File Store from a node that also has the TSM Administrative Controller (usually the initial node), a warning will caution you about impact to server backup performance. Click Continue to decommission File Store. 5. Click the Status tab to see the status of the decommission. When the instance of File Store is marked "Ready for removal" you can continue. ![Message indicating that the file store is ready for removal.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-file-store-ready-for-removal.png) 6. Click Pending Changes at the top of the page. Note: If you are configuring a three- or five-node cluster, a Coordination Service ensemble warning will display. You can continue to apply pending changes and deploy a Coordination Service ensemble in a separate step. For information on deploying a Coordination Service ensemble, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). 7. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. ### Adding a second instance of file store 1. Create a full backup of Tableau Server. For more information, see [Back up Tableau Server Data](https://help.tableau.com/current/server-linux/en-gb/db_backup.htm). 2. Add the File Store to a second node. `tsm topology set-process -n -pr filestore -c 1` The File Store is automatically added. Data engine is also added if it is not already on the node. Apply the configuration changes: `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). 3. Check the status of the new file store instance. `tsm status -v` Wait for the new File Store to synchronise with the File Store on the first node. When synchronisation is complete the new File Store has a status of "running" instead of "synchronising". ### Decommissioning and removing an instance of File Store Once you have a second instance of File Store installed and synchronised you can decommission and remove the original instance. You must decommission the original instance before you remove it. Doing this guarantees that any unique files on the File Store node are duplicated to another file store node. 1. Decommission the original File Store: `[tsm topology filestore decommission](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMDecommission) -n --override` 2. When the decommission command completes, remove the File Store from the node by applying the pending configuration changes. The File Store is automatically removed. Data Engine is also removed unless an instance of one of these processes is installed on the node: VizQL Server, Application Server (Vizportal), Data Server or Backgrounder. `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). [Skip to main content](#main-content) # Move the Messaging Service Process This article assumes you have installed Tableau Server on an initial node and at least one additional node. For more information on adding nodes to Tableau Server, see [Install and Configure Additional Nodes](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm). You cannot remove an instance of the Messaging Service if it is the only instance on the server. You cannot run Tableau Server without one instance of the Messaging Service. This means if you need to move the Messaging Service, or if you are deleting a server node that is hosting the Messaging Service, you must first move the service to another node. Moving the Messaging Service is straightforward process of three steps: - Remove the original instance of the Messaging Service. - Add a new instance of the Messaging Service. - Apply the pending changes. ### Moving the Messaging Service 1. In TSM, on the Status tab, verify that all processes are active. 2. Click the Configuration tab. 3. For the node you're removing the Messaging Service from, clear the Messaging Service box. This will activate the Pending Changes button, but in Pending Changes an error will tell you that the Messaging Service (activemqserver) is not on any node. Until you add it to another node, you cannot apply pending changes. 4. For the node you are adding the Messaging Service to, select the Messaging Service box. 5. Click Pending Changes at the top of the page. 6. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. ### Moving the Messaging Service 1. On the initial node, open a terminal session. 2. Find the node ID for the nodes you are changing: `tsm topology list-nodes -v` 3. Remove the Messaging Service from one node: tsm topology set-process -n -pr activemqserver -c 0 4. Add the Messaging Service to another node: tsm topology set-process -n -pr activemqserver -c 1 5. Apply the configuration changes: `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). [Skip to main content](#main-content) # Move the Repository Process Tableau Server relies on the PostgreSQL repository to store server data. There must always be at least one active instance of the repository in any Tableau Server installation, and you can have a maximum of two instances (one active, one passive) if you have at least three nodes in your installation. You cannot remove a repository instance if it is the only instance. This means that if you want to move the only instance of your repository from one node to another node, you need to add a second instance and synchronise the new repository with the old one before you remove the old one. Synchronise repository instances by starting server. If you've added a new repository, it will automatically synchronise with the existing instance. If you are deleting a node from your server cluster and that node is hosting the only instance of the repository, you must add a second instance of the repository and synchronise the instances before removing the node. If you are also moving the file store, you can move the repository at the same time. See [Move the File Store Process](https://help.tableau.com/current/server-linux/en-gb/distrib_de_move.htm). Before making a change to the repository, create a full backup of Tableau Server. For more information, see [tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm). **Important:** You cannot add a second repository instance and remove the first one in the same step. You must have both running so the contents of the first is synchronised with the second, before you remove the original instance. The steps for moving the repository are: 1. Add a new instance of the repository to another node, start server and wait for it to synchronise with the first repository. 2. Remove the instance of the repository from the original node. To move a repository you need to first add a second instance on a second node, and then after the two instances have synchronised all the data in the original repository, remove the original instance. These steps must be done separately to allow for the synchronisation of content between the two instances. ### Add a new instance of the repository. 1. Open TSM in a browser: `https://:8850` For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab. 3. For the node you are adding the repository to: Select Repository (pgsql). 4. Click Pending Changes at the top of the page: ![Tableau Server Manager toolbar indicating that there are pending changes.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-ui-pending-changes-btn.png) The Pending Changes list displays. If you are configuring a three- or five-node cluster and have not deployed a Coordination Service ensemble, a warning will display. You can continue, and deploy a Coordination Service ensemble in a separate step. For details on deploying a Coordination Service ensemble, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). 5. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. 6. After Tableau Server has restarted, on the Status tab, verify that all processes are active. ### Remove an instance of the repository. 1. In TSM, on the Status tab, verify that all processes are active. When both repositories show as Active, you can remove the first one. 2. Click the Configuration tab. 3. For the node you're removing the repository from, clear the Repository box. 4. Click Pending Changes at the top of the page. If you are configuring a three- or five-node cluster and have not deployed a Coordination Service ensemble, a warning will display. You can continue, and deploy a Coordination Service ensemble in a separate step. For details on deploying a Coordination Service ensemble, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). 5. Click Apply Changes and Restart and Confirm to confirm a restart of Tableau Server. To move a repository you need to first add a second instance on a second node, and then after the two instances have synchronised all the data in the original repository, remove the original instance. These steps must be done separately to allow for the synchronisation of content between the two instances. ### Add a new instance of the repository. 1. Add the repository (pgsql) to another node: tsm topology set-process -n -pr pgsql -c 1 2. Apply the changes. If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). tsm pending-changes apply 3. Wait for the new repository on the second node to synchronise with the repository on the first node. tsm status -v Wait until the new repository status shows as "passive". ### Remove an instance of the repository. Once the new instance of the repository is fully synchronised and shows as "passive" you can remove the original instance: 1. Remove the repository from the first node by setting the process count to 0 (zero): tsm topology set-process -n -pr pgsql -c 0 2. Apply the change. If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). tsm pending-changes apply [Skip to main content](#main-content) # Multi-node Upgrade -- Run Setup ## Run Setup 1. Log on as a user with sudo access to the initial node in the cluster. 2. Navigate to the directory where you copied the `.rpm` or `.deb`Tableau Server package. 3. Use the package manager to install the Tableau Server package. You must install the new version to the same location as the existing version. The install location must be the same on all nodes. Do not install to a location using a symbolic link or to a directory on a Network File System (NFS) volume. - On RHEL-like distributions, including CentOS, you have the option to install Tableau to a non-default location. - **Default location**—To install to the default location (`/opt/tableau/tableau_server`), run the following commands, where `` is formatted as major-minor-maintenance (ex: `2025-3-5`): `sudo yum update` `sudo yum install tableau-server-.x86_64.rpm` - **Non-default location** – To install to a non-default location, you must use `rpm -i`. You will also need to install all dependent packages. See the note below. Run the following command: sudo rpm -i --prefix /preferred/install/path tableau-server.rpm **Note:** When you use `yum` to install Tableau Server, all dependent packages are automatically downloaded and installed. This is the preferred method for installing Tableau. If you want to install to a non-default location, or your organisation does not allow you to use `yum` and you must install using `rpm -i`, you must also install all dependent packages separately. For information about installing dependent packages, see [Installing Tableau Server on an Air-Gapped Computer Running Linux](https://help.tableau.com/current/server-linux/en-gb/install_air_gapped.htm#InstallAirgap). - On Ubuntu, run the following commands, where `` is formatted as major-minor-maintenance (ex: `2019-2-5`): sudo apt-get update sudo apt-get upgrade sudo apt-get -y install gdebi-core sudo gdebi -n tableau-server-\_amd64.deb Continue to [Multi-node Upgrade -- Run Setup on Each Node](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-baseline-multinode-setup-add-nodes.htm). [Skip to main content](#main-content) # Multi-node Upgrade -- Run Setup on Each Node ## Run Setup On each additional node, navigate to the folder where you copied the Tableau Server Setup program and run the Setup program as you did on the initial node. This will install the new version of Tableau Server on each node, side-by-side with your existing, running version. Continue to [Multi-node Upgrade -- Run Upgrade Script](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-baseline-multinode-run-script.htm). [Skip to main content](#main-content) # Multi-node Upgrade -- Run Upgrade Script **Important note:** For environments using Active Directory authentication, the account running the upgrade script must be a domain user. This user must also be a member of the local administrators’ group on the initial node. Running the script with a local account that isn’t part of the domain results in an Active Directory communication error. ## Run Upgrade script 1. After you have installed the new version on _every node in the cluster_, run the upgrade script on the initial node. If Tableau Server is not stopped when you run the script, the script will let you know, and will offer to stop the server. You can also choose to stop the server before running the script using the `tsm stop` command. Tableau Server must be stopped to complete the upgrade. The options you need to include depend on the version you are upgrading to: - Version 2019.3 or later: `sudo` `/opt/tableau/tableau_server/packages/scripts./``upgrade-tsm --accepteula` where `` is the long form of new version you are upgrading to, for example `scripts.20183.18.1128.2033`. Starting with version 2019.3.0, when you upgrade from 2019.2.x or later, the script runs using the account you are logged in with. If you are prompted, enter your password. For more information, see [What's Changed - Things to Know Before You Upgrade](https://help.tableau.com/current/server-linux/en-gb/upgrade_know_before.htm#NoPasswordUpgrade-19-3). You can specify a different user with administrative permissions using the `-u` option and specifying a user with administrative permissions on the computer where the initial node is installed. You will be prompted for the password for the administrative user. - Version 2018.1 to version 2019.2.x: `sudo` `/opt/tableau/tableau_server/packages/scripts./``upgrade-tsm -u --accepteula` where `` is the long form of new version you are upgrading to, for example `scripts.20183.18.1128.2033`, and <`system_admin`\> is a user with administrative permissions on the computer where the initial node is installed. You will be prompted for the password for the administrative user. The `-u` option was added as of 2018.1. For more information, see [What's Changed - Things to Know Before You Upgrade](https://help.tableau.com/current/server-linux/en-gb/upgrade_know_before.htm#2018-1-upgrade-tsm). To see all the options available for the `upgrade-tsm` script, use the `-h` option. For example:  `sudo` `/opt/tableau/tableau_server/packages/scripts./``upgrade-tsm -h` 2. After the upgrade is completed, exit the terminal session and log in again. This ensures that your session will be using the updated TSM version. 3. Start Tableau Server: `tsm start` Continue to [Verify Tableau Server Upgrade](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-baseline-verify-ug.htm). [Skip to main content](#main-content) # mutualSSLSettings Entity Before you configure mutual SSL, review [Configure SSL for External HTTP Traffic to and from Tableau Server](https://help.tableau.com/current/server-linux/en-gb/ssl_config.htm). The `mutualSSLSettings` entity combines both SSL and mutual SSL configuration. Mutual SSL requires that external SSL has been enabled and properly configured. The TSM entities use JSON and key-value pairs. Use the configuration file template below to create a .json file. Provide values for the appropriate keys for your environment, and then pass the .json file to Tableau Server with the following commands: `tsm settings import -f ` `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ## Configuration template Use this template to configure mutual SSL settings. **Important:** All entity options are case sensitive. For more explanation about configuration files, entities and keys see [Configuration File Example](https://help.tableau.com/current/server-linux/en-gb/config_file_example.htm). { "configEntities": { "mutualSSLSettings": { "\_type": "mutualSSLSettingsType", "sslEnabled": true, "proxyLogin": false, "clientCertRequired": true, "caCertFile": "required", "keyFileName": "required", "keyPassphrase": "", "chainFile": "", "revocationFile": "", "redirect": false, "fallbackToPassword": true, "protocols": "", "cipherSuite": "", "forceHttpsForPublicEmbed": false } } } ## Configuration file reference sslEnabled Enable SSL. This is a prerequisite to enabling mutual SSL. clientCertRequired (MutualSSL) Set to true to enable mutual SSL authentication. Set to false to disable. caCertFile (MutualSSL) Required. Specify the CA-issued certificate file for two-way SSL. The file path must be readable by Tableau Server. certFileName Specify the file that contains the concatenation of PEM encoded CA certificates that form the certificate chain for the server certificate. Alternatively the referenced file can be the same as caCertFile when the CA certificates are directly appended to the server certificate for convenience. keyFileName If the key is not combined with the certificate, use this configuration key to point to the key file. If you have both an RSA and a DSA private key, you can configure both in parallel (for example, to also allow the use of DSA ciphers). keyPassphrase Optional. Passphrase for the certificate file. The passphrase you enter will be encrypted while at rest. **Note:** If you create a certificate key file with a passphrase, you cannot reuse the SSL certificate key for SAML. revocationFile Specifies the file path for an SSL CA Certificate Revocation List (.crl) file. Redirect Default: true. Specifies whether Tableau Server should redirect http requests as https requests to the appropriate endpoint. clientCertMapping (MutualSSL) Specifies the method for retrieving the user name from the certificate. Accepted values: `ldap`, `upn`, `cn` - For a server using local authentication, the default setting is `upn`(User Principal Name). - When Tableau Server authentication is configured for Active Directory (AD), the default is `ldap` (Lightweight Directory Access Protocol). This tells the server to go to AD to validate the user, and it ignores the names inside the certificate. You can set `cn` for either authentication type to use the CN in the Subject DN in the certificate. For more information, see [Mapping a Client Certificate to a User During Mutual Authentication](https://help.tableau.com/current/server-linux/en-gb/ssl_mutual_mapping_username.htm). fallbackToPassword (MutualSSL) Set to true to give users the option to sign in to Tableau Server through their username and password if mutual SSL authentication fails. Set to false to disallow this fallback option. protocols List the Transport Layer Security (TLS) protocol versions you want to allow or disallow. Default value: `"all -SSLv2 -SSLv3"` However, we recommend the using the following setting: `"all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1"` For more information, see [tsm security external-ssl enable](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm#external-ssl-enable). For general information, see the Apache online documentation. cipherSuite List ciphers to allow or disallow for SSL. Default value: `"HIGH:MEDIUM:!aNULL:!MD5:!RC4:!3DES:!CAMELLIA:!IDEA:!SEED"` See the [OpenSSL ciphers](https://www.openssl.org/docs/man1.0.2/man1/ciphers.html) page for cipher list format. Use caution when changing this option. The default values disallow ciphers that are no longer considered adequately secure. proxyLogin Default: false. Indicates that Tableau Server uses a proxy for SSL on sign-in only. It controls the protocol the server reports to Tableau Desktop for sign-in APIs. forceHTTPForPublicEmbed Default value: false. Forces the code for embedded views to use SSL. [Skip to main content](#main-content) # Navigate the Admin Areas of the Tableau Web Environment As an administrator on Tableau Server or Tableau Cloud, you can access admin settings that aren’t available to other users to configure sites, users and projects and to do other content-related tasks. The settings in this article refer to the Tableau web environment. Tableau Server administrators with appropriate credentials can also change server settings such as processor, caching, authentication, distributed deployment and related configurations using the TSM web environment. For information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). If you’re looking for settings for managing published content, see [Navigate Tableau on the Web](https://help.tableau.com/current/pro/desktop/en-gb/navigating.htm) and [Manage Web Content](https://help.tableau.com/current/pro/desktop/en-gb/qs_content_page.htm) in Tableau User Help. ## Access based on site role and number of sites The menus you get when you sign in to Tableau Server or Tableau Cloud depend on the following conditions: - Whether you’re a site or server administrator. Site administrator access is available on Tableau Cloud and Tableau Server. Server administrator access is only on Tableau Server. - Whether you have access to only one site or to multiple sites. ### Server administrator

On a single-site server, the site selector does not appear, and all other menus are the same.

In a multi-site environment, menus along the left enable you to modify a specific site or all sites, and to configure users, groups, schedules, tasks and server settings.

To access server administrator settings that affect all sites, open the site menu by clicking the arrow next to the current site name, and then select Manage all sites.

The Content and Group tabs go away, and the site menu text changes to All Sites to let you know you are managing server-wide settings, and options like Server Status reflect the server-wide view.

To return to the site administration menus, select All Sites, and the select the site you want to manage.

Single-site server menu with no site selector. Site menu showing the selected option for “Manage all sites”.

### Site administrator

If you are a site administrator for Tableau Cloud or Tableau Server, and you have access to multiple sites, you’ll get menus for selecting which site to manage, for managing that site’s content, users, groups, schedules and tasks and for monitoring its status.

The site selector displays the name of the current site. To go to another site, select the site menu, and then select the site name.

If you have access to only one site, the site selector does not appear, but all other menus are the same.

Multiple-site menu with site selector for accessible sites.
## Server administrator tasks Server administrators (available with Tableau Server Enterprise only) can do the following: - Monitor server status and activity. - Generate log files. - Add sites and edit site settings. Only server administrators can add sites to the server. - Add users to the server, and assign users to sites. - Add and manage site groups. - Add users to or remove users from [identity pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm). To manage settings only for a specific site, you must first navigate to the site. Within each site, you can do the following: - Administer content: Create projects, move content from one project to another, assign permissions, change ownership of a content resource and so on. - Manage schedules for extract refreshes and subscriptions. - Monitor site activity and record workbook performance metrics. - Manage storage space limits for content published by users. - Allow web authoring. - Enable revision history. - Allow site administrators to add and remove users. - Set the maximum number of licences that site can consume for each licence type (Creator, Explorer, Viewer). - Allow users to subscribe to workbooks and views, and allow content owners to subscribe others to workbooks and views. - Enable offline snapshots for favourites (iOS only). ## Site administrator tasks A site administrator on Tableau Cloud or Tableau Server can do the following tasks: - Administer content: Create projects, move content from one project to another, assign permissions, change ownership of a content resource and so on. - View, manage, and manually run schedules for extract refreshes and subscriptions. - Add and manage site users (if allowed by the server administrator; see [Site Settings Reference](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm)). - Add and manage site groups. - Monitor site activity. [Skip to main content](#main-content) # Network Security There are three main network interfaces in Tableau Server: - **Client to Tableau Server**: The client can be a web browser, Tableau Mobile, Tableau Desktop, or the [tabcmd](https://help.tableau.com/current/server-linux/en-gb/tabcmd.htm) utility. - **Tableau Server to your database(s)**: To refresh data extracts or handle live database connections, Tableau Server needs to communicate with your database(s). - **Server component communication**: This applies to distributed deployments only. In most organisations, Tableau Server is also configured to communicate with the internet and with a SMTP server. ## Client to Tableau Server A Tableau Server client can be a web browser, a device running Tableau Mobile, Tableau Desktop, or tabcmd commands. Communications between Tableau Server and its clients use standard HTTP requests and responses. We recommend configuring Tableau Server for HTTPS for all communications. When Tableau Server is configured for SSL, all content and communications between clients are encrypted using SSL, and the HTTPS protocol is used for requests and responses. By default, passwords are communicated from browsers and tabcmd to Tableau Server using 1024-bit public/private key encryption. This level of encryption is not considered robust enough for secure communications. Additionally, this method, where a public key is sent to the recipient in the clear and without network layer authentication is susceptible to man-in-the-middle attacks. To adequately secure network traffic from clients to Tableau Server, you must configure SSL with a certificate from a trusted certificate authority. See [Configure SSL for External HTTP Traffic to and from Tableau Server](https://help.tableau.com/current/server-linux/en-gb/ssl_config.htm). ### Client access from the Internet We recommend a gateway proxy server to enable secure client access from the internet to your Tableau Server. We do not recommend running Tableau Server in a DMZ or otherwise outside your protected, internal network. Configure a reverse proxy server, with SSL enabled, to handle all inbound traffic from the internet. In this scenario, the reverse proxy is the only external IP address (or range of addresses if multiple reverse proxies are load-balancing inbound requests) that Tableau Server will communicate with. Reverse proxies are transparent to requesting clients, thereby obfuscating Tableau Server network information and simplifying client configuration. For configuration information, see [Configuring Proxies and Load Balancers for Tableau Server](https://help.tableau.com/current/server-linux/en-gb/proxy.htm). ### Clickjack Protection By default, Tableau Server has _clickjack protection_ enabled. This helps prevent certain types of attacks in which the attacker overlays a transparent version of a page on top of an innocuous-looking page in order to lure a user into clicking links or entering information. With clickjack protection enabled, Tableau Server imposes certain restrictions on embedding views. For more information, see [Clickjack Protection](https://help.tableau.com/current/server-linux/en-gb/clickjack_protection.htm). ## Tableau Server to your database Tableau Server makes dynamic connections to databases to process result sets and refresh extracts. It uses native drivers to connect to databases whenever possible and relies on a generic ODBC adapter when native drivers are unavailable. All communications to the database are routed through these drivers. As such, configuring the driver to communicate on non-standard ports or provide transport encryption is part of the native driver installation. This type of configuration is transparent to Tableau. When a user stores credentials for external data sources on Tableau Server, they are stored encrypted in Tableau Server's internal database. When a process uses those credentials to query the external data source, the process retrieves the encrypted credentials from the internal database and decrypts them in process. ## Tableau Server to the internet In some cases, where users connect to external data sources, such as the Tableau map servers, then Tableau Server will need to connect to the internet. We recommend that you run all components of Tableau inside your protected network. Therefore, connections to the internet may require that you configure Tableau Server to use a forward proxy. ## Tableau Server to a SMTP server You can configure Tableau Server to send event notifications to administrators and users. As of version 2019.4, Tableau Server supports TLS for the SMTP connection. See [Configure SMTP Setup](https://help.tableau.com/current/server-linux/en-gb/config_smtp.htm). ## Communication with the repository You can configure Tableau Server to use Secure Sockets Layer (SSL) for encrypted communications on all traffic that is exchange with the Postgres repository to and from other server components. By default, SSL is disabled for communications between server components and the repository. For more information, see [tsm security repository-ssl enable](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm#postres-ssl-enable) ## Server component communication in a cluster There are two aspects to communication between Tableau Server components in a distributed server installation: trust and transmission. Each server in a Tableau cluster uses a stringent trust model to ensure that it is receiving valid requests from other servers in the cluster. Computers in the cluster running a gateway process accept requests from third parties (clients), unless they are fronted by a load balancer, in which case the load balancer receives the requests. Servers not running a gateway process only accept requests from other trusted members of the cluster. Trust is established by an allowlist of IP address, port, and protocol. If any of these are invalid, the request is ignored. All members of the cluster can communicate with each other. When a user stores credentials for external data sources on Tableau Server, they are stored encrypted in Tableau Server's internal database. When a process uses those credentials to query the external data source, the process retrieves the encrypted credentials from the internal database and decrypts them in process. ## Other articles in this section [Skip to main content](#main-content) # Notify Users of Successful Flow Runs _Supported in Tableau Prep Builder version 2021.4.1 and later and in Tableau Server and Tableau Cloud version 2021.4 and later. Data Management is required to use this feature._ Flow owners can subscribe themselves, individual users and groups to email notifications for information about scheduled tasks for successful flow runs. The email includes links to data within the Tableau environment, and in Tableau Server, you can optionally include the details of the flow run in attached Excel and CSV files. Flow subscriptions are added to scheduled tasks for flows. You can add flow subscriptions to an existing flow task or when you create a new flow task. Email notifications are sent when the scheduled task is completed successfully. ## Configure the site settings for flow subscriptions By default, the Flow Subscriptions site setting for sending and receiving email notifications is enabled. ![The Flow Subscriptions site setting showing the tick box for sending and receiving email notifications selected.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscribe_site.png) - The Let users send or receive emails that include flow output data option allows the flow owner to receive and subscribe users and groups to successful flow run notifications. From the notification email, users can access the full data source or view the flow details from within Tableau. - Tableau Server only (not recommended): The Attach .csv and .xlsx flow output files option lets the flow owner attach files to notification emails. The email recipients must be added to Tableau server. However, the files contain the data source and can be exposed outside of the Tableau system. This option is available only for on-premise environments. ## Publish the Flow Publish the flow output as either a file, database table or data source. Consider the following when saving the flow: - (On-premise only) When publishing you can save the output as a file or as a database table and choose to attach either a .csv or .xlsx file type to the email. - When publishing and saving the output as a published data source, the email notification provides a link to the flow in Tableau. Files cannot be attached to the email. - When choosing to save as a file output, you must use a network share and the output and input location must be included in a safe list. For more information, see [Step 4: Safe list Input and Output locations](https://help.tableau.com/current/server/en-gb/prep_conductor_configure_network_shares.htm). - Flow subscriptions are supported on Windows and Linux. The following restrictions apply to flow subscriptions on Linux: - File outputs must be output to a Windows server. - For flows that output to a file, use the UNC format for the path: \\\\server\\path\\filename. Do not use a local drive letter. - The mounted path must be safe-listed. - When attaching files to an email, the file limit is approximately 25 MB for Tableau Cloud. When using an on-premise Tableau Server, you configure the size of attachment files. ## Add a flow subscription 1. As the owner of the flow, select a published flow in Tableau Server or Tableau Cloud that you want to add subscriptions to for email notifications. 2. You can add subscriptions to a new or existing task: - If you are adding a subscription to a new task: 1. Click Scheduled Tasks > New Task. 2. In the New Task dialog, select a schedule to run the flow from the Select a schedule drop-down list. 3. Enable Send email when done - If you are adding a subscription to an existing task: 1. Click Subscriptions > Subscribe. 2. In the Add Flow Subscriptions dialog, select a schedule from the Frequency drop-down list. 4. In the Send to field, start typing the name of the user or group to populate the field. Select the users and groups that you want to send a notification to. Users and groups must be added to the Tableau environment by the administrator. 5. (Optional) To be included in the notification, check the Send to me box. 6. (Optional) In the Subject field, customise the default email subject line for the flow run notification. 7. (Optional) Add information about the flow run in the Email message text box. 8. Click Include output data and select the type of output that you want to include in the email. - In Tableau Server, if you published your flow as a file or database table output, you can choose to attach .csv or .xlsx files containing the data source to the email. This is not recommended because data can be exposed outside of the Tableau system. ![The tick box to include the data source as an attachment when publishing flow output as a file or to a database table.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscribe_text_out.png)- If you published your flow as a data source, you can choose to include the link to the data source. Attaching files to the email is not supported. ![The tick box to include the link to the data source when publishing flow output as a data source.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscribe_pub_data.png) 10. If you are adding a subscription to an existing task, click Subscribe. ## Unsubscribe from a flow subscription To unsubscribe from notifications from the email, follow these steps. 1. Click Unsubscribe from the bottom of a subscription email. 2. As the flow owner, Sign in to Tableau Server or Tableau Cloud. At the top of the page, click the Notifications icon. 3. Expand the … menu, then select Remove notification. To unsubscribe and remove the subscription as the flow owner, follow these steps. 1. Click Subscriptions. 2. Open the published flow in Tableau Server or Tableau Cloud. 3. From the list of flow subscriptions, click the selection box for the flow you want to unsubscribe from. 4. Select Actions \> Unsubscribe. ![The Subscriptions tab Action menu showing the Unsubscribe option.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscribe_unsbscribe.png) ## View Subscriptions You can view your current flow subscriptions in Tableau Server or Tableau Cloud. - From the Subscriptions tab on the Overview page of the flow, you can see the list of current subscriptions. - From the Subscriptions tab on the Tasks page, you can see the list of subscriptions along with subscriptions to workbooks. ## Resume suspended flow subscriptions Sometimes, subscriptions fail because of an issue with the flow. If a subscription fails more than five times, you'll receive a notification email that your scheduled flow task has been suspended. From the flow Overview page, you can see when a scheduled flow task fails. ![The flow Overview page that shows the details for a flow run, including the output step, output name, status, schedule and errors.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscribe_overview.png) There are a few ways to resume a suspended flow task. If you're flow owner: - From the My Content area of Tableau web pages, an icon appears in the Last update column to indicate that the subscription is suspended. Select ... > Resume Scheduled Tasks to resume. ![The menu options to resume a suspended flow task with the option Resume Scheduled Tasks highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscription_resume.png) - From the Scheduled Tasks page, an icon appears in the last update column to indicate that the subscription is suspended. Select the flow, then click Actions \> Resume.![The Scheduled Tasks tab Action menu showing the Resume option.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscribe_resume_task.png) ## Access the flow data from a notification email Depending on how the flow notification was configured, you can access the data source and file attachments from the notification email. - Click View Flow to open the flow in Tableau Server or Tableau Cloud. - Click the attachment file to view the flow data. ![An email notification that confirms the successful execution of a flow. The email provides details about the flow, its data source and the sender.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_subscribe_email.png) ### Who can do this - Flow owners can create flow notification subscriptions for flows that they own. - To receive notifications, users and groups must be added to the Tableau environment by the administrator. For more information, review the following articles: - Windows: [Set Users' Site Roles](https://help.tableau.com/current/server/en-gb/users_site_roles.htm) and [Content Permissions and Ownership](https://help.tableau.com/current/server/en-gb/permissions.htm) - Linux: [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm) and [Content Permissions and Ownership](https://help.tableau.com/current/server-linux/en-gb/permissions.htm) [Skip to main content](#main-content) # OAuth Connections Tableau Server supports OAuth for a number of different connectors. In many cases, OAuth functionality doesn’t require additional configuration on Tableau Server. From Tableau, when users sign in to data with a connector that uses OAuth, users are redirected to the authentication provider’s sign-in page. After users provide their credentials and authorise Tableau to access their data, the authentication provider sends Tableau an **access token** that uniquely identifies Tableau and the users. This access token is used to access data on users' behalf. For more information, see [Overview of the OAuth process](#Overview) below. Using OAuth-based connections provides the following benefits: - **Security:** Your database credentials are never known to or stored in Tableau Server, and the access token can be used only by Tableau on behalf of users. - **Convenience:** Instead of having to embed your data source ID and password in multiple places, you can use the token provided for a particular data provider for all published workbooks and data sources that access that data provider. **Note:** For live connections to Google BigQuery data, each workbook viewer can have a unique access token that identifies the user, rather than sharing a single username and password credential. ## Overview of the OAuth process The following steps describe a workflow in the Tableau environment that calls the OAuth process. 1. A user takes an action that requires access to a cloud-based data source. For example, you open a workbook that’s published to Tableau Server. 2. Tableau directs the user to the cloud data provider’s sign-in page. The information that is sent to the data provider identifies Tableau as the requesting site. 3. When the user signs in to the data, the provider prompts the user to confirm their authorisation for Tableau Server to access the data. 4. Upon the user's confirmation, the data provider sends an access token back to Tableau Server. 5. Tableau Server presents the workbook and data to the user. ![A diagram of the data flow between your laptop, Tableau Server and your database.](/tableau/current/en-gb/server-linux/en-gb/Img/protected_auth_server.png) **Note**: Support for single use refresh tokens (sometimes called one-time use refresh tokens, rolling refresh tokens or refresh token rotation) for OAuth connections was added in Tableau Cloud with the 2025.2 (Summer 2025) release and added in Tableau Server with the 2025.3 release if the IDP of the data source provider supports it. These are not yet supported on Tableau Bridge connections to Tableau Cloud. If you use the external OAuth configuration for the connection, please see the [OAuth Configuration and Usage documentation](https://tableau.github.io/connector-plugin-sdk/docs/oauth "OAuth Config docs") in GitHub for more information. The following user workflows can use the OAuth process: - Creating a workbook and connecting to the data source from Tableau Desktop or from Tableau Server. - Publishing a data source from Tableau Desktop. - Signing in to Tableau Server from an approved _client_, such as Tableau Mobile or Tableau Desktop. ## Default saved credential connectors _Saved credentials_ refers to the functionality where Tableau Server stores user tokens for OAuth connections. This allows users to save their OAuth credentials to their user profile on Tableau Server. After they’ve saved the credentials, they won’t be prompted when they subsequently publish, edit or refresh when accessing the connector. **Note**: When editing Tableau Prep flows on the web, you may still be prompted to reauthenticate. The following connectors use saved credentials by default and don’t require additional configuration on Tableau Server. - Anaplan - Box - Dropbox - Esri ArcGIS Server - Google Ads - LinkedIn Sales Navigator - Marketo - OneDrive and SharePoint Online (Additional configuration is required starting with 2022.3) - Oracle Eloqua - ServiceNow ITSM - Snowflake - To use "private link" requires additional configuration. For more information, see [Configure Snowflake OAuth for Partner Applications](https://docs.snowflake.net/manuals/user-guide/oauth-partner.html#configure-snowflake-oauth-for-partner-applications) on the Snowflake website and [Configure OAuth for Snowflake Connections on Tableau Server](https://help.tableau.com/current/server-linux/en-gb/config_oauth_snowflake.htm). The following connectors can use saved credentials with additional configuration by the server administrator. - Amazon Athena For more information, see [Use Your Own Identity Provider With Amazon Athena](https://help.tableau.com/current/pro/desktop/en-gb/amazon_athena_idp.htm) in the Tableau Desktop Help. - Azure Data Lake Storage Gen2, Azure Synapse, Azure SQL Database, Databricks, OneDrive and SharePoint Online, and SharePoint Lists (JDBC) For more information, see [Configure Azure AD for OAuth and Modern Authentication](https://help.tableau.com/current/server-linux/en-gb/config_oauth_azure_ad.htm). - Dremio For more information, see [Set Up OAuth for Dremio](https://help.tableau.com/current/server-linux/en-gb/config_oauth_dremio.htm). - Google Analytics, Google BigQuery, Google BigQuery (JDBC), Google Drive For more information, see [Set up OAuth for Google.](https://help.tableau.com/current/server/en-gb/config_oauth_google.htm) **Note:** If Tableau Server isn’t listed in the Accessed Apps list in the Google admin console, you can manually add a new app to the list using its client ID. To create a client ID, see [Change Google OAuth to Saved Credentials.](https://help.tableau.com/current/server/en-gb/config_oauth_google.htm) - Intuit QuickBooks Online For more information, see [Set Up OAuth for Intuit QuickBooks Online](https://help.tableau.com/current/server-linux/en-gb/config_oauth_qbo.htm). OneDrive and SharePoint Online (Starting with 2022.3) For more information, see [Configure Custom OAuth for a site](https://help.tableau.com/current/server/en-gb/config_oauth_azure_ad.htm#custom) - Salesforce For more information, see [Change Salesforce.com OAuth to Saved Credentials](https://help.tableau.com/current/server-linux/en-gb/config_oauth_sfdc.htm). - Salesforce CDP For more information, see [Connect Tableau Server to Salesforce Data Cloud](https://help.tableau.com/current/server-linux/en-gb/config_oauth_sfdc_cdp.htm). - Snowflake Starting with version 2024.2. For more information, see [Change Snowflake OAuth to Saved Credentials](https://help.tableau.com/current/server/en-gb/config_oauth_snowflake.htm). All supported connectors are listed under Saved Credentials for Data Sources on users’ My Account Settings page on Tableau Server. Users manage their saved credentials for each connector. ![A list of saved credentials for data sources, with an option to clear all saved credentials.](/tableau/current/en-gb/server-linux/en-gb/Img/oauth-savedcreds.png) ### Access tokens for data connections You can embed credentials based on access tokens with data connections, to enable direct access after the initial authentication process. An access token is valid until a Tableau Server user deletes it, or the data provider revokes it. It’s possible to exceed the number of access tokens your data source provider allows. If that's the case, when a user creates a token, the data provider uses the length of time since last access to decide which token to invalidate to make room for the new one. ### Access tokens for authentication from approved clients By default, Tableau Server sites allow users to access their sites directly from approved Tableau clients, after users provide their credentials the first time they sign in. This type of authentication also uses OAuth access tokens to store the users' credentials securely. For more information, see [Disable Automatic Client Authentication](https://help.tableau.com/current/server-linux/en-gb/devices_connected_credentials.htm). ## Default-managed keychain connectors _Managed keychain_ refers to the functionality where OAuth tokens are generated for Tableau Server by the provider and shared by all users in the same site. When a user first publishes a data source, Tableau Server prompts the user for the data source credentials. Tableau Server submits the credentials to the data source provider, which returns OAuth tokens for Tableau Server to use on behalf of the user. On subsequent publishing operations, the OAuth token stored by Tableau Server for the same class and username is used so that the user isn’t prompted for the OAuth credentials. Should the data source password change, then the preceding process is repeated and the old token is replaced by a new token on Tableau Server. Additional OAuth configuration on Tableau Server isn't required for the default-managed keychain connectors: - Google Analytics, Google BigQuery and Google Sheets (deprecated in Tableau version 2022.1) - Salesforce ### Token limits and storage Google has a 50-token limit per user per client application (in this scenario, Tableau Server is the client application). Because the OAuth token is stored on Tableau Server and reused by the user, the user is unlikely to exceed the token limit. All user tokens are encrypted at rest when stored on Tableau Server. See [Manage Server Secrets](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm) for more information. ### Removing unused keychain records A managed keychain record contains connection attributes like dbClass, username and OAuth secret attributes. All managed keychain records for a given site are merged, encrypted and stored in PostgreSQL. Records are persisted even for workbooks and data sources that have been removed. Over time, these records can grow to large sizes, which may cause issues. We recommend purging the unused keychain records periodically as a regular maintenance task. You can view the number of records and unused records stored on each site. You can also delete unused records. ![A dialog box for the management of saved credential keychains. The dialog box includes an option to display the number of unused keychains and a button to delete them.](/tableau/current/en-gb/server-linux/en-gb/Img/oauth-purge-managed-keys.png) To access Managed Keychain Clean Up, sign in to the Tableau Server admin pages, navigate to the site where you want to delete unused records, and click Settings. ### Scenario limitations with managed keychain Three scenarios aren’t supported when using managed keychain OAuth with Tableau Server: - Prompting for OAuth credentials on live connections. Users must embed credentials on live connections with managed-keychain OAuth - Editing the OAuth data source connection on Tableau Server - Web authoring ### Convert managed keychain to saved credentials You can convert the connectors that use managed keychain to use saved credentials by configuring Tableau Server with an OAuth client ID and secret for each connector. By converting these connectors to saved credentials, users are able to manage their credentials for each connector type on the My Account Settings page on Tableau Server. Additionally, live connection prompts, editing connections and web authoring are also supported. ## Configure a custom OAuth for a site For a subset of connectors, you can configure site-level OAuth by configuring custom OAuth clients. For more information, see one of the following topics: - For Azure Data Lake Storage Gen2, Azure SQL Database, Azure Synapse, Databricks, OneDrive and SharePoint Online, and SharePoint Lists (JDBC), see [Configure custom OAuth for a site](https://help.tableau.com/current/server-linux/en-gb/config_oauth_azure_ad.htm#custom). - For Dremio, see [Set Up OAuth for Dremio](https://help.tableau.com/current/server-linux/en-gb/config_oauth_dremio.htm). - For Google Analytics, Google BigQuery and Google Sheets (deprecated in Tableau version 2022.1), see [Configure custom OAuth for a site](https://help.tableau.com/current/server-linux/en-gb/config_oauth_google.htm#custom). - For Salesforce, see [Configure custom OAuth for a site](https://help.tableau.com/current/server-linux/en-gb/config_oauth_sfdc.htm#custom). - For Salesforce CDP, see [Connect Tableau Server to Salesforce Data Cloud](https://help.tableau.com/current/server-linux/en-gb/config_oauth_sfdc_cdp.htm#custom). - For Snowflake, see [Option 2: Configure OAuth for Snowflake Connections by Site](https://help.tableau.com/current/server-linux/en-gb/config_oauth_snowflake.htm#custom). ## Other articles in this section [Skip to main content](#main-content) # OpenID Connect You can configure Tableau Server to support OpenID Connect (OIDC) for single sign-in (SSO). OIDC is a standard authentication protocol that lets users sign in to an identity provider (IdP) such as Google or Salesforce. After they've successfully signed in to their IdP, they are automatically signed in to Tableau Server. Configuring OIDC involves several steps. The topics in this section provide general information about using Tableau Server with OIDC, and provide a sequence for configuring the IdP and Tableau Server. **Note:** Unless otherwise noted, information about OIDC authentication applies to both OIDC authentication configured in TSM during Tableau Server setup or OIDC authentication configured with [identity pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm). ## Authentication overview This section describes the OpenID Connect (OIDC) authentication process with Tableau Server. ![A diagram that illustrates the interaction between Tableau Server, clients and OpenID Connect.](/tableau/current/en-gb/server-linux/en-gb/Img/openid_auth_overview.png) 1\. A user attempts to log in to Tableau Server from a client computer. 2\. Tableau Server redirects the request for authentication to the IdP gateway. 3\. The user is prompted for credentials and successfully authenticates to the IdP. The IdP responds with a redirect URL back to Tableau Server. The redirect URL includes an authorisation code for the user. 4\. The client is redirected to Tableau Server and presents the authorisation code. 5\. Tableau Server presents the client's authorisation code to the IdP along with its own client credentials. Tableau Server is also a client of the IdP. This step is intended to prevent spoofing or man-in-the-middle attacks. 6\. The IdP returns an access token and an ID token to Tableau Server. - JSON Web Token (JWT) validation: By default, Tableau performs a validation of the IdP JWT. During discovery, Tableau retrieves the public keys specified by the `jwks_uri` in the IdP configuration discovery document. Tableau validates the ID token for expiry and then verifies the JSON web signature (JWS), the issuer (IdP) and the client ID. You can learn more about the JWT process in the OpenID documentation, [10\. Signatures and Encryption](http://openid.net/specs/openid-connect-core-1_0.html#SigEnc), and the IETF proposed standard, [JSON Web Token](https://tools.ietf.org/html/rfc7519). We recommend leaving JWT validation enabled, unless your Idp does not support it. - The ID token is a set of attribute key-pairs for the user. The key-pairs are called _claims_. Here is an example IdP claim for a user: "sub" : "7gYhRR3HiRRCaRcgvY50ubrtjGQBMJW4rXbpPFpg2cptHP62m2sqowM7G1LwjN5" "email" : "alice@example.com", "email\_verified" : true, "name" : "Alice Adams", "given\_name" : "Alice", "family\_name" : "Adams", "phone\_number" : "+359 (99) 100200305", "profile" : "https://tableau.com/users/alice" 7\. Tableau Server identifies the user from the IdP claims and completes the authentication request from step 1. Tableau Server searches for the user's account record stored in the repository by matching the "sub" (subject identifier) to identify the correct user account. If no user account is stored with the sub claim value, then Tableau Server searches for a username in the repository that matches the "email" claim from the IdP. When a username match succeeds, Tableau Server will store the corresponding sub claim to the user's record in the repository.Tableau Server can be configured to use different claims for this process. See [Requirements for Using OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth_requirements.htm). 8\. Tableau Server authorises the user. ## How Tableau works with OpenID Connect OpenID Connect (OIDC) is a flexible protocol that supports many options for the information that's exchanged between a service provider (here, Tableau Server) and an IdP. The following list provides details about the Tableau Server implementation of OIDC. These details can help you understand what types of information Tableau Server sends and expects and how to configure an IdP. - Tableau Server supports only the OpenID Authorisation Code Flow as described in the [OpenID Connect final specification](http://openid.net/specs/openid-connect-core-1_0.html) in the OpenID Connect documentation. - Tableau Server relies on using discovery or a provider URL to retrieve the OpenID provider metadata.Alternatively, you can host a static discovery document on Tableau Server. For more information see [Configure Tableau Server for OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth_server_config.htm). - Tableau Server supports the `client_secret_basic` and `client_secret_post` client authentication. - Tableau Server expects a `kid` value in the `id_token` attribute's JOSE Header. This value is matched with one of the keys found in the JWK Set document, whose URI is specified by the `jwks_uri` value in the OpenID discovery document. A `kid` value must be present even if there is only one key in the JWK Set document. - Tableau Server does include OpenID support for the JWK `x5c` parameter or for using X.509 certificates. - By default, Tableau Server ignores proxy settings and sends all OpenID requests directly to the IdP. If Tableau Server is configured to use a forward proxy to connect to the internet, then you must make additional changes as described in [Configure Tableau Server for OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth_server_config.htm). ## User attributes in OIDC claims Beginning in Tableau Sever 2026.2, when configured and the capability’s setting is enabled, you can pass users attribute claims in the JSON Web Token (JWT) sent by the identity provider (IdP) to Tableau Cloud during sign-in. These user attributes can be used with Tableau’s user attribute functions `(USERATTRIBUTE()`, `USERATTRIBUTEINCLUDES()`) to dynamically control and customise content. Tableau validates the claims and then enables access to the content. For more information, see [Customise and control data access using user attributes](https://help.tableau.com/current/server-linux/en-gb/openid_auth_server_config.htm#user_attributes). **Example JWT** "sub" : "7gYhRR3HiRRCaRcgvY50ubrtjGQBMJW4rXbpPFpg2cptHP62m2sqowM7G1LwjN5" "email" : "alice@example.com", "email\_verified" : true, "name" : "Alice Adams", "given\_name" : "Alice", "family\_name" : "Adams", "phone\_number" : "+359 (99) 100200305", "profile" : "https://tableau.com/users/alice", "region" : \["South", "South West"\] ## Other articles in this section [Skip to main content](#main-content) # OpenID Connect Authentication Request Parameters The OpenID authentication request sent from Tableau Server passes information using a limited set of parameters, as listed in this topic. If your OpenID IdP requires parameters that are not in the following list, it is not compatible for use with Tableau Server. - `scope`. This value specifies a profile that tells the IdP what user information claims to return. This value can be configured by a Tableau Server administrator. The default value is "openid email profile". For more information, see [Configure the scope value](#configure-scope-value) later in this document. - `response_type`. OpenID Connect supports multiple flows. This value tells the IdP which flow Tableau Server expects. Tableau supports only the authorisation code flow, and the value is always set to "code". - `client_id`. This value specifies the server’s ID (Provider client ID in the Tableau Server Configuration dialog box), which lets the IdP knows where the request came from. It is provided by the IdP when the service is registered. The value is configurable by a Tableau Server administrator. - `redirect_uri`. This value specifies the URL that the IdP redirects to after the user has authenticated using OpenID Connect. The URL must include the host and protocol (for example, `http://example.tableau.com`), but Tableau provides the URL endpoint. - `nonce`. Tableau Server generates a nonce value to verify that the client that it redirected to matches the entity that comes back from the IdP. ## Configure the scope value The `scope` value indicates to the IdP the information that Tableau Server requests about the user. By default, Tableau Server sends the value "openid profile email". This indicates that Tableau uses OpenID to authenticate (this part of the `scope` attribute value must always be included ) and that Tableau Server is requesting the user profile and email information during the exchange of the user authorisation code. If this default scope is not appropriate for your scenario, you can have Tableau Server request custom information about the user. To do so, you configure the IdP with a custom profile (for example, something like "tableau-scope"). You can then configure Tableau Server to send the scope request using the name of the custom profile. To change the scope value that Tableau Server requests, use the following TSM CLI command: `tsm authentication openid configure --custom-scope-name custom-scope-name` **Notes:** - Tableau Server always includes "openid" as part of the scope value (even if you don't include it in the `custom_scope` setting). - The TSM authentication configuration commands apply only to OIDC authentication configured in TSM during Tableau Server setup. To make OIDC authentication configuration changes for identity pools, you can use the [Update Authentication Configuration](https://help.tableau.com/current/api/rest_api/en-us/REST/TAG/index.html#operation/AuthnService_UpdateAuthConfiguration) endpoint using Tableau REST OpenAPI. [Skip to main content](#main-content) # openIDSettings Entity Before you configure OpenID authentication, review [Requirements for Using OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth_requirements.htm). Use the configuration file template below to create a json file. After you have filled in the options with the appropriate values, pass the json file and apply settings with the following commands: `tsm settings import -f path-to-file.json` `tsm pending-changes apply` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). ## Configuration template Use this template to configure OpenID settings. **Important:** All entity options are case sensitive. For more explanation about configuration files, entities and keys see [Configuration File Example](https://help.tableau.com/current/server-linux/en-gb/config_file_example.htm). After you have finished with the initial configuration of OIDC, use the [tsm authentication openid ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#TSMOIDC) sub-category to set additional values. { "configEntities": { "openIDSettings": { "\_type": "openIDSettingsType", "enabled": true, "clientId": "required", "clientSecret": "required", "configURL": "required if staticFile value is not set", "staticFile": "required if configURL value is not set", "externalURL": "required" } } } ## Configuration file reference The following list includes all of the options that can be included with the `"openIDSettings"` entity set. \_type Required. Do not change. enabled Required. Set to `true`. clientId Required. Specifies the provider client ID that your IdP has assigned to your application. For example, `“laakjwdlnaoiloadjkwha"`. clientSecret Required. Specifies the provider client secret. This is a token that is used by Tableau to verify the authenticity of the response from the IdP. This value is a secret and should be kept securely. For example, `“fwahfkjaw72123="`. configURL Required. Specifies provider configuration URL. If you do not specify a configuration URL, then delete this option and specify a path and file name for `staticFile` instead. staticFile Required. Specifies the local path to the static OIDC discovery JSON document. If you do not specify a static file, then delete this option and specify a url for `configURL` instead. externalURL Required. The URL of your server. This is typically is the public name of your server, such as `http://example.tableau.com`. connectionTimeout Optional. Specifies connection timeout span in seconds. Default is `10`. readTimeout Optional. Specifies read timeout span in seconds. Default is `30`. ignoreDomain Set this to `true` if the following are true: - You are using email addresses as usernames in Tableau Server - You have provisioned users in the IdP with multiple domain names - You want to ignore the domain name portion of the `email` claim from the IdP Before you proceed, review the user names that will be used as a result of setting this option to `true`. User name conflicts may occur. In the case of a user name conflict, the risk of information disclosure is high. See [Requirements for Using OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth_requirements.htm). ignoreJWK Set this to `true` if your IdP does not support JWK validation. In this case, we recommend authenticating communication with your IdP using mutual TLS or another network layer security protocol. Default is `false`. customScope Specifies a custom scope user-related value that you can use to query the IdP. See [Requirements for Using OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth_requirements.htm). idClaim Change this value if your IdP does not use the `sub`claim to uniquely identify users in the ID token. The IdP claim that you specify should contain a single, unique string. usernameClaim Change this value to the IdP claim that your organisation will use to match user names as stored in Tableau Server. clientAuthentication Specifies custom client authentication method for OpenID Connect. To configure Tableau Server to use the Salesforce IdP, set this value to `client_secret_post`. iFramedIDPEnabled Set to `true` to allow IdP displayed in an iFrame. The IdP must disable clickjack protection to allow iFrame presentation. [Skip to main content](#main-content) # Optimise Data for Ask Data **Important changes for Ask Data and Metrics** Tableau's Ask Data and Metrics features were retired in Tableau Cloud in February 2024 and in Tableau Server version 2024.2. With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau AI and Tableau Pulse are reimagining the data experience.](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-gpt) If you manage and publish data sources, here are some tips to help make users of Ask Data more successful. By spending a little extra time on this process, you'll open up data analysis to a wider range of people at your organisation, helping them independently answer questions and gain deeper insights. ## Optimise data in Ask Data In the Data pane on the left of the Ask Data interface, data source owners can add synonyms for fields and exclude irrelevant values. ### Changing settings at the data source or lens level When changing settings in the Data pane for Ask Data, pay close attention to whether you're at the data source or lens level. (For more information, see [Create Lenses that Focus Ask Data for Specific Audiences](https://help.tableau.com/current/pro/desktop/en-gb/ask_data_lenses.htm).) - At the data source level, you'll see the cylindrical data source icon in the upper left corner. Here, changes you make in the Data pane will apply by default to all subsequently created lenses. **Note:** For extracts, two cylinders will appear. ![Super Store dashboard with the data source icon highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_edit_data_source.png) - For an individual lens, you'll see the quotation icon in the upper left corner. Here, changes you make in the Data pane will apply to this lens alone. ![Super Store dashboard with the data lens icon highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_edit_data_lens.png) ### Add synonyms for field names and values People may not use the same terminology found in your data source, so data source owners and Tableau administrators can [add synonyms for specific data field names and values](https://help.tableau.com/current/pro/desktop/en-gb/ask_data_synonyms.htm). Synonyms you enter are available throughout your organisation, making data analysis quicker and easier for everyone. ### Exclude values of specific fields from search results To improve the usability of search results in Ask Data, you can exclude the values of specific fields from indexing. Though Ask Data doesn't add non-indexed values to search results, the values still appear in visualisation results when relevant. For example, if you don't index values from a "Product" field because they add unnecessary detail to search results, Ask Data can still display values such as "iPhone 12" in resulting data visualisations. And users can manually add non-indexed values to queries by surrounding them with quotation marks (for example, “Sales for Product containing “‘iPhone 12’”). **Note:** This field-level setting is ignored if [the value indexing setting for the data source](https://help.tableau.com/current/pro/desktop/en-gb/ask_data_enable.htm#Indexing) is set to Disabled. Field names and related synonyms are always indexed. 1. Go to the Ask Data tab for a data source or individual lens. 2. Hover over a data source field at left, and click the Edit Field Details icon (the pencil). ![A list of fields with the edit icon next to one value.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_synonyms.png) 3. Deselect Index field values. Either click the text box that appears to reindex the data source now, or let it reindex based on its regular indexing schedule. ## Optimise data sources To create the best experience for Ask Data users, optimise the original data source. **Note:** Ask Data doesn't support multidimensional cube data sources, or non-relational data sources like Google Analytics, or data sources with a virtual connection. ### Optimise indexing for Ask Data Data source owners can change how often field values are indexed for Ask Data, optimising system performance. 1. At the top of a data source page, click the Details icon: ![World Indicators data source name displays with the information icon highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_datasource_details.png) 2. In the Ask Data section, click Edit. 3. Choose an indexing option for field values: - Automatic checks for changes every 24 hours and analyses the data source if it is live, has had an extract refreshed, or has been republished. Choose this option for a data source frequently used with Ask Data, so it will be ready before users query it. - Manual analyses the data source only when Tableau creators manually trigger indexing on the data source page. Choose this option if the data source changes frequently but users query it with Ask Data only occasionally. To trigger manual indexing, go to the data source page, click the circled “i” in the Data pane at left, and then click Reindex Data Source. ![The Data Indexed section shows the date and time the data was last indexed and provides a button to reindex the data source.](/tableau/current/en-gb/server-linux/en-gb/Img/ask_data_reindex.png) - Disabled analyses only field names, not values. 4. Click Save ### Use data extracts for faster performance For improved performance and support for large data sets, use Ask Data with published extracts rather than live data sources. For more information, see [Create an extract](https://help.tableau.com/current/pro/desktop/en-gb/extracting_data.htm). ### Ensure that users can access the data source To use Ask Data, users must have permission to connect to the individual data source. If a data source has row-level permissions, those permissions also apply to Ask Data, which won’t recognise secure values or make related statistical recommendations. ### Be aware of unsupported data source features Ask Data supports all Tableau data source features except the following. If your data source contains these, Ask Data users won't be able to query related fields. - Sets - Combined fields - Parameters ### Anticipate user questions Anticipate the kinds of questions your users will ask, and then optimise your data source for those questions using these techniques: - Clean and shape data [in Tableau Prep](https://help.tableau.com/current/prep/en-gb/prep_clean.htm) or a similar tool. - [Join data](https://help.tableau.com/current/pro/desktop/en-gb/joining_tables.htm) to include all fields users may have questions about in one table, improving performance. - Add [calculated fields](https://help.tableau.com/current/pro/desktop/en-gb/calculations_calculatedfields.htm) that answer common user questions. - Create [bins with appropriate sizes](https://help.tableau.com/current/pro/desktop/en-gb/calculations_bins.htm) for quantitative variables that users are likely to want to see as a histogram or another binned form. ### Simplify the data To make data easier to understand by both users and Ask Data, simplify the data source as much as possible during the data prep process. 1. Remove any unnecessary fields to improve performance. 2. Give each field a unique and meaningful name. - For example, if there are five field names that start with “Sales …”, better distinguish them so Ask Data can properly interpret the term “sales”. - Rename “Number of records” to something more meaningful. For example, use “Number of earthquakes” in a data source where each record is an earthquake. - Avoid field names that are numbers, dates or boolean (“true” or “false”) values. - Avoid names which resemble analytical expressions such as “Sales in 2015” or “Average Products Sold”. 3. Create meaningful [aliases for field values](https://help.tableau.com/current/pro/desktop/en-gb/datafields_fieldproperties_aliases_ex1editing.htm), reflecting terms people would use in conversation. ### Set appropriate field defaults To help Ask Data analyse data correctly, ensure that default field settings reflect the content of each field. - [Set data types](https://help.tableau.com/current/pro/desktop/en-gb/datafields_typesandroles_datatypes.htm) for text, time, date, geographic and other values. - [Assign the proper data role](https://help.tableau.com/current/pro/desktop/en-gb/datafields_typesandroles.htm): dimension or measure, continuous or discrete. - For each measure, [assign appropriate default settings](https://help.tableau.com/current/pro/desktop/en-gb/datafields_fieldproperties.htm) in Tableau Desktop, such as colour, sort order, number format (percentage, currency, etc.) and aggregation function. For example, SUM may be appropriate for “Sales”, but AVERAGE might be a better default for “Test Score”. **Tip:** It's particularly helpful to set a default comment for each field, because these comments appear as informative descriptions when users hover over fields in Ask Data. ### Create hierarchies for geographic and categorical fields For time data, Tableau automatically creates hierarchies, which let users quickly drill up and down in vizzes (for example, from day to week to month). For geographic and categorical data, however, we recommend that you [create custom hierarchies](https://help.tableau.com/current/pro/desktop/en-gb/qs_hierarchies.htm) to help Ask Data produce visualisations that reflect the relationships between fields. Be aware that Ask Data won't show the hierarchies in the data pane. Ask Data doesn't index hierarchy names, only names of fields within hierarchies. For example, if a geographic hierarchy named “Location” contains “Country” and “City” fields, users should enter “Country” and “City” in their questions for Ask Data. [Skip to main content](#main-content) # Optimise for Extract Query-Heavy Environments The topic provides guidance on setting up a specific Tableau Server topology and configurations to help optimise and improve performance in an extract query-heavy environment. **What is an extract query-heavy environment?** Extracts and federated data sources are queried while loading workbooks, views and dashboards creating a lot of query workload. Therefore, if you have a lot of extracts and federated data sources, you can be said to have a ‘extract query-heavy environment’. If your environment is extract query-heavy, as defined above, the next couple of sections can help you decide if this configuration is right for you. ## When to use this configuration **Key reasoning behind this configuration:** Hyper is Tableau’s memory-optimised Data Engine technology suited for fast data ingests and analytical processing, making it key to optimising query-heavy workloads. As your extract use grows, we recommend **configuring Data Engine on dedicated nodes of the Tableau Server cluster**. This configuration allows Tableau Server to scale out the infrastructure to optimise performance when querying extracts. There are several factors that affect Tableau Server performance when viewing content using extracts and federated data sources. The goal here is to **achieve consistent and reliable query performance** when viewing content on the Server. Use this configuration if one of the following conditions applies to your environment: - You are seeing wide variability in workbook loading times and the workbook uses extracts or federated data sources. - Your Tableau Server deployment is growing in the number of Creators, Explorers, Viewers and extract-based content, so you want to scale out efficiently. - You are seeing resource contention between Data Engine and VizQL Server when File Store is present on the machine. - You analyse large amounts of data. This configuration helps in optimising performance in big data scenarios, in both data ingestion and analysis. To learn more about Tableau and big data, see [Hyper-charge big data analytics using Tableau](https://www.tableau.com/en-gb/learn/whitepapers/hyper-charge-big-data-analytics-using-tableau). **Note:** Use Server-side performance recording to determine query execution times. To determine resource usage of Tableau use **Performance monitor** for Windows installations, and _sysstat_ or _vmstat_ tools for Linux installations. ### Benefits of using this configuration These are the key benefits to configuring dedicated nodes for Data Engine: - Dedicated Data Engine nodes will reduce resource contention between extract queries and other resource-intensive workloads such as those processed by VizQL Server. - Extract queries are load-balanced dynamically on the dedicated nodes, taking into account the current state of the system to ensure that no one node is over- or under-utilised. - More consistent performance in user experience when loading extract-dependent workbooks. The focus here is to establish a consistent and reliable performance rather than making individual queries better. - You have more control over scaling out Tableau Server processes that need more resources. If VizQL Server, Data Engine and Backgrounder are all running on the same node and slow extract queries are the problem, it will be difficult to see performance improvements by adding a second node with all three processes. With this configuration, you can add more nodes that will specifically improve extract query workloads. - Helps improve availability and up-time. In the event of a failure and one of the dedicated Data Engine nodes being unavailable, VizQL Server will attempt to route the pending requests on the problem node to other dedicated Data Engine nodes. - Data Engine leverages as many cores as available on the machine. Given this, you have the flexibility to add more resources to the dedicated Data Engine nodes to reduce query response time and variability on expensive extract queries or add more dedicated Data Engine nodes to get more extract query throughput in your Server. - Data Engine has a default configuration limiting it to an average 75% of CPU per hour. This is intended to help avoid contention with other Tableau Server processes. If you are running Data Engine on a dedicated node, you can increase this average to 95%. For information on doing this, see [hyper.srm\_cpu\_limit\_percentage](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#hyper_cpu_limit_percent). ## When not to use this configuration - If you are not experiencing issues with extract-based query load, hardware resources may be better allocated to other portions of Tableau Server. - On nodes where File Store, Data Engine and VizQL Server co-exist, you are not seeing resource contention between Data Engine and VizQL Server. - Before implementing this configuration, it is highly recommended that you evaluate your CPU usage for VizQL Server and for the node where Data Engine is installed with the File Store. ## Configuration The main goal of this configuration is to have Data Engine on one or more dedicated nodes. - In deployments where File Store is installed locally, this means configuring File Store on one or more dedicated nodes. Data Engine is automatically installed on the same node as the File Store. - In deployments where you are configuring External File store, you can still configure Data Engine on dedicated nodes on Tableau Server. By separating VizQL Server and File Store processes, the load between querying extracts and viewing or interacting with views can be balanced and better managed. This configuration is targeted at consistent performance when querying extracts. Below is a visual representation of the configuration where the Data Engine/File Store processes have two dedicated nodes, nodes 5 and 6. This is an example where File Store is configured locally, which is why the Data Engine and File Store processes are co-located. The same configuration works for deployments with External File Store, but Nodes 5 and 6 will only have Data Engine configured in that case. Additionally, since Node 1 also has the Repository and File Store processes, all of the data needed to perform a backup exist on Node 1, which can improve backup performance. ![A table that displays the processes running on each node.](/tableau/current/en-gb/server-linux/en-gb/Img/perf-hoss-arch-basic.png) ## Hardware Guidance To get the most out of this configuration, you will need to experiment with various hardware sizes and configurations to see what best fits your peak load performance objectives. Hyper is a high-performance database technology and the key resources that impact performance are memory, cores and storage I/O. Understanding how Hyper uses resources to process queries will help you make your hardware selection and understand the reason between different configurations. - **Memory:** When an extract-based query is processed for a user or background process, Tableau Server selects a dedicated Data Engine node to process the query. That dedicated Data Engine node will then copy the extract from local storage, most often the server hard disk, into memory. Having more available system memory allows the operating system to better manage memory usage for Tableau. Dedicated Data Engine nodes use system memory to store the result set of executed queries. If the result set is still valid and the operating system has not cleared it from memory, the result set in memory can be reused. Tableau Server’s minimum hardware recommendation is 32 GB of memory, but if you are expecting a high volume of extract-based workbook loads, you should consider 64 GB or 128 GB. If you are hitting other resource limits in addition to memory (like cores), instead of scaling up to 128 GB of memory, it might be better to scale out to an additional 64 GB dedicated Data Engine node. The process of copying the extract from local storage into memory can take time, and optimising disk performance may be necessary. Optimising disk performance is covered in the **Storage I/O** section. - **Cores:** When processing an extract-based query, the number of cores is an important hardware resource that can impact performance and scalability. CPU cores are responsible for executing a query, and having more available cores will result in faster execution time. Generally speaking, doubling the number of cores will reduce the query execution time in half. For example, a 10-second query currently utilising 4 physical cores or 8 vCPUs, will take 5 seconds if you upgrade to 8 physical cores or 16 vCPUs. The current Tableau Server minimum hardware recommendation is 8 cores, but if your deployment utilises extracts, consider 16 or 32 core machines. An important thing to note is that if memory and I/O are your bottlenecks, then increasing available cores will not improve your query performance. - **Storage I/O:** Hyper is designed to leverage the available performance of your extract storage device to speed up query processing. We recommend picking fast disk storage like Solid State Drives (SSD) with high read/write speeds. Currently, SSDs that utilise NVMe storage protocol offer the fastest available speeds. **Note:** Sizing resources for dedicated Data Engine nodes only impacts the extract query performance. When loading a workbook, there are many other processes involved that make up total VizQL load request time. The VizQL Server process, for example, is responsible for taking the data from the Data Engine and rendering the visualisation. ## Other Performance Tuning and Optimisations: There are additional features you can use to optimise performance beyond the basic configuration described above. The optimisations described below are applicable to both local File Store and External File Store deployments. - **Extract Query Load Balancing:** To determine where to route the extract query, Data Engine uses a server health metric – the amount of resources Data Engine is consuming and the load from other Tableau processes that may be running on the same node. In addition to evaluating system resources, whether an extract already exists in memory on the node is also taken into account to make sure an extract query is sent to the node that has the most available resources to process the query. This results in more efficient memory and disk utilisation, and extracts are not duplicated in memory across nodes. See the [Extract Query Load Balancing](https://help.tableau.com/current/server-linux/en-gb/load_balancing_eq.htm) help article for more details. _The extract query load balancing feature is enabled by default in Tableau Server version 2020.2 and later._ - **Workload optimisations using node roles:** With Backgrounder and File Store node roles, server administrators have more flexibility and control over which nodes should be dedicated for running extract queries and extract refreshes. As mentioned in the topology diagram above, certain Data Engine nodes are dedicated to processing extract queries and run only the File Store and Data Engine processes. Node Roles are available with Advanced Management. For more information on node roles, see [Workload Management through Node Roles](https://help.tableau.com/current/server-linux/en-gb/server_node_roles.htm). The diagram below uses the same topology as the basic configuration described above but with the node roles. ![External Load Balancer table with process and nodes.](/tableau/current/en-gb/server-linux/en-gb/Img/perf-hoss-arch-node-roles.png) - **Extract Refreshes Backgrounder node role:** By setting Node 3 to extract-refreshes Backgrounder node role, only incremental refreshes, full refreshes and encryption/decryption jobs will run on this node. By setting Node 4 to no-extract-refreshes Backgrounder node role, all background jobs other than extract refreshes will run on this node. Data Server and Gateway help the extract refresh jobs when using federated and shadow extracts. For more information on Backgrounder node roles, see [File Store node roles](https://help.tableau.com/current/server-linux/en-gb/server_node_roles.htm#file-store-node-roles). Additionally, since Node 1 also has the Repository and File Store processes, all of the data needed to perform a backup exist on Node 1, which can improve backup performance. _The Backgrounder node roles are available with Advanced Management in Tableau Server version 2019.3 and later._ - **Extract Queries File Store node role**: Node 5 and 6, which are the **dedicated** Data Engine nodes, have the extract-queries File Store node role to ensure they only process queries for viz loads, subscriptions and data-driven alerts. - **Extract Queries Interactive File Store node role**: For dedicated Data Engine nodes, which have extract-queries File Store node role, server administrators can further isolate the interactive and scheduled workloads to run on specific **dedicated** Data Engine nodes. This is useful for times when there are a lot of users interacting and loading workbooks during high-volume subscription times. For example, let’s say there are 1000 subscriptions scheduled for 8 AM on a Monday morning. At the same time, many users are also loading dashboards at the beginning of their day. The combined volume of subscription and user queries can result in users experiencing slower, more variable workbook load times. With the extract-queries-interactive File Store node role, you can designate dedicated Data Engine nodes to only accept queries for interactive users (the ones who are looking at their screens waiting). These dedicated Data Engine nodes that are prioritised for interactive workloads would be protected from the high volume of competing subscription jobs and provide more consistent query times. Additionally, Server Admins can use this node role to better plan for growth since they can add dedicated Data Engine nodes for interactive and scheduled workloads independently. For more information, see [File Store node roles](https://help.tableau.com/current/server-linux/en-gb/server_node_roles.htm#file-store-node-roles). _The File Store node roles are available with Advanced Management in Tableau Server version 2020.4 and later._ - **Optimisations using External File Store**: This feature allows you to use a network share as the storage for File Store instead of using the local disk on a Tableau Server node. By having the storage on a centralised location, you can significantly reduce the amount of network traffic spent on replicating data between the File Store nodes. For example, in the case when File Store is using a local disk, when a 1 GB extract is refreshed using local File Store, the 1 GB of data is replicated across the network to all nodes that are running the File Store process. In the case where Tableau Server is configured with External File Store, the 1 GB extract only needs to be copied to the network share once and all File Store nodes can access that single copy. The centralisation of storage also reduces the total amount of local storage needed on File Store nodes. Additionally, Tableau Server backups leverage snapshot technology to significantly reduce the time to complete a backup. While you don’t need a dedicated Data Engine node configuration to gain the benefits of External File Store, the additional workload management features with File Store node role and the Extract Query Interactive node role can be used together. See the [Tableau Server External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage.htm) topic for more details. _External File Store is available with Advanced Management in Tableau Server version 2020.1 and later._ [Skip to main content](#main-content) # Optimise for Extracts Try to optimise for extracts if the extract schedules correspond to high resource usage or if extracts take a long time to finish. ## When to optimise for extracts ### High CPU usage corresponds to extract schedules Use the Background Jobs dashboard of the sample performance workbook to view the number of background jobs run by Tableau Server, including extract refresh jobs. The dashboard also displays how long background jobs are delayed – that is, the amount of time between when a background job is scheduled and when it actually runs. If you see long delays at particular times of the day or if many jobs are running at the same time, try distributing the job schedules across different times of the day to reduce the load on the server. ![Chart of the number of background jobs completed each minute and the maximum job delay in minutes for each hour.](/tableau/current/en-gb/server-linux/en-gb/Img/perf_workbook_background_jobs.png) Also compare the times when there are many background jobs or long delays with the CPU usage of the server. Use the CPU Usage dashboard to display the percent of total CPU usage and the percent of CPU usage for each process. Because the backgrounder process runs background jobs, it is the first process to show strain when there are many extract refresh jobs or when there are slow extract refresh jobs. Note that the CPU usage of the backgrounder process periodically but briefly reaches 100 percent. This indicates that there are intensive refresh jobs on a recurring schedule. **Note**: The percent of CPU usage for individual processes may add up to more than 100 percent because processor utilisation for individual processes is measured for a given processor core. By contrast, the total CPU usage is measured for all processor cores. ![A line chart and five bar charts that display CPU usage by process over time.](/tableau/current/en-gb/server-linux/en-gb/Img/perf_workbook_cpu_usage.png) ### Extracts fail or run slowly Use the [Background Tasks for Extracts](https://help.tableau.com/current/server-linux/en-gb/adminview_backgrnd.htm) administrative view to determine how many extracts fail and how long extracts take to complete. Frequent failures can indicate a problem with a particular data source. ![The time-series graph displays the number of extracts run on the server over the past seven days, while the bar chart illustrates the daily count of successful and failed extracts.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_extract.png) ## Ways to optimise for extracts When high CPU usage corresponds to extract refresh schedules like it does in the example shown previously, you should optimise for extracts. ### Adjust the extract refresh schedule Use the Background Jobs dashboard of the sample performance workbook to identify optimal times for running extracts. In addition to running extracts in off-peak hours, you can distribute extract refreshes to minimise concurrent server load. If extract refreshes continue to cause problems, reduce the frequency of extract refreshes as much as possible in these ways: - Schedule extracts for times when the server isn't busy. - Reduce the frequency of refreshes. ### Speed up specific extracts Use the [Background Tasks for Extracts](https://help.tableau.com/current/server-linux/en-gb/adminview_backgrnd.htm) administrative view to identify failing extracts and long-running extracts. - Reduce the size of extracts. You can help improve server performance by keeping the data set of the extract short, through filtering or aggregating, and narrow, by hiding unused fields. To make these changes, use the Tableau Desktop options Hide All Unused Fields and Aggregate data for visible dimensions. For more information, see [Creating an Extract](https://help.tableau.com/current/pro/online/en-gb/extracting_data.htm) in the Tableau Help. For general tips on building well-performing workbooks, search for “performance” in the Tableau Help. To see how workbooks perform after they've been published to Tableau Server, you can create a performance recording. For more information, see [Create a Performance Recording](https://help.tableau.com/current/server-linux/en-gb/perf_record_create_server.htm). - Use incremental refresh jobs. Incremental refresh jobs append new rows to an existing extract instead of creating the extract from scratch. This type of extract refresh runs quickly because it processes only the data that has been added since the last time the extract refresh job ran. However, it does not account for data that has been updated rather than appended to a data source. As a result, if you run incremental refresh jobs, you should still occasionally run full refresh jobs. For example, you might run a full refresh job once or twice a week for a data source instead of every day. ### Configure the execution mode for extract refreshes When you create extract refresh schedules, ensure that they run in parallel execution mode. When you run a schedule in parallel, it runs on all available backgrounder processes, even if the schedule contains only one refresh task. When you run a schedule serially, it only runs on one backgrounder process. By default, the execution mode is set to parallel so that refresh tasks finish as quickly as possible. However, in some circumstances, it can make sense to set the execution mode to serial. For example, you might set the execution mode to serial if a very large job is preventing other schedules from running because it uses all available backgrounder processes. ### Increase the number of backgrounder processes A single background process can consume 100 percent of a single CPU core for certain tasks. As a result, the total number of instances you should run depends on the computer’s available cores. If you have Tableau Server installed in a cluster and you run backgrounder processes on a separate node, a good rule of thumb is to set the number of backgrounder process to between half the number of cores and the full number of cores of the computer running the backgrounder processes. For more information about configuring processes, see [Configure Nodes](https://help.tableau.com/current/server-linux/en-gb/config_nodes.htm). ### Isolate processes If you have Tableau Server installed in a cluster, you see the largest benefit from moving the backgrounder processes to a separate node to avoid resource contention. This is because the backgrounder process is very CPU-intensive and running it on the same node where other CPU-intensive processes are running can slow down the server. For example, both the VizQL server process and the data engine process can be CPU-intensive. Read the two-node configuration in the [Recommended Baseline Configurations](https://help.tableau.com/current/server-linux/en-gb/server_baseline_config.htm#two-node) topic for more details. [Skip to main content](#main-content) # Optimise for User Traffic You can optimise for traffic if you have many active Tableau Server users and few published data sources that need extract refreshes. - [When to optimise for user traffic](#when-to-optimize-for-traffic) - [Ways to optimise for user traffic](#ways-to-optimize-for-traffic) ## When to optimise for user traffic ### Slow load times for views Use the Requests and Sessions dashboard of the sample performance workbook to analyse how long views take to load. ![Two scatterplots illustrate the number of requests and sessions over time.](/tableau/current/en-gb/server-linux/en-gb/Img/perf_workbook_requests_sessions.png) If multiple views take longer than 10 seconds to load, and if the slow load times correspond to a large number of sessions, that can indicate that user traffic is slowing down the server. However, if a particular view takes a long time to load regardless of when it is viewed, it's a sign that the workbook for the view needs to be optimised. You can identify which workbooks need to be optimised with the [Stats for Load Times](https://help.tableau.com/current/server-linux/en-gb/adminview_stats_load_time.htm) administrative view. Some simple ways of optimising workbooks includes displaying less information in each view or breaking up views, reducing the number of filters, and using data extracts. ### High resource usage corresponding to user traffic If your server displays high CPU and memory usage during peak traffic hours, you should optimise for user traffic. To determine peak traffic hours and analyse how many concurrent users are on your server, use the Users and Actions dashboard. In addition, you can use the [Traffic to Views](https://help.tableau.com/current/server-linux/en-gb/adminview_serveract.htm) administrative view to see how much user traffic involves accessing views (as opposed to performing administrative functions, publishing, or other tasks). ![Two scatterplots display user activity over time, reflecting various user actions.](/tableau/current/en-gb/server-linux/en-gb/Img/perf_workbook_users_actions.png) If you click a point in the Number of Users view, the dashboard displays the users that were active at the time and the number of user actions that those users performed. By default, the only user actions displayed are user views, but you can use the Action Types filter to display additional user actions. Make a note of the times of day when there are many concurrent users and views so that you can compare this to resource usage. As a rule of thumb, the number of users should correspond to a high number of user actions. However, the view in this example displays an artificially high number of actions for a single user as part of a load generation test. As an example, you can compare the high number of views at 12 AM on June 28th with the resource usage in the dashboard illustrated later. Use the CPU Usage dashboard to display the percent of total CPU usage and the percent of CPU usage for each process. In the following example, note the large spike in total CPU usage and in the VizQL server process at 12 AM on June 28th. Because the VizQL server process loads and render views, the VizQL server process is often the first process to show strain under high user traffic. **Note**: The percent of CPU usage for individual processes may add up to more than 100 percent. This is because processor utilisation for individual processes is measured for a given processor core. By contrast, the total CPU usage is measured for all processor cores. ![A line chart and five bar charts that display CPU usage by process over time.](/tableau/current/en-gb/server-linux/en-gb/Img/perf_workbook_cpu_usage.png) Use the Memory Usage dashboard to display the percent of total memory usage and the average memory usage in gigabytes. As a general rule, memory usage increases steadily with user traffic. Here again the VizQL server process is the first to show strain under high traffic. ![Two charts that show memory usage over time. The top chart shows total memory usage, while the bottom chart shows memory usage broken down by process.](/tableau/current/en-gb/server-linux/en-gb/Img/perf_workbook_memory_usage.png) ## Ways to optimise for user traffic When high user traffic corresponds to high resource usage as it does in the example shown previously, you should optimise for user traffic. ### Adjust the number of VizQL server processes The most effective way of optimising for user traffic is to adjust the number of VizQL server processes. Add one VizQL server process at a time and measure the effect with more performance monitoring. Because VizQL server processes can consume a lot of CPU and memory, adding too many processes can slow down the server instead. If you see consistently high memory usage, try to reduce the number of VizQL server processes to reduce the amount of memory reserved. For more information about configuring processes, see [Configure Nodes](https://help.tableau.com/current/server-linux/en-gb/config_nodes.htm). ### Adjust the number of other processes Although the most effective way of improving performance for user traffic is to adjust the number of VizQL server processes, you can also tune other processes that support the VizQL server process or that prevent the VizQL server process from accessing resources. For example, the VizQL server process makes frequent requests to the cache server process, so you might also want to increase the number of cache server processes. On the other hand, the Backgrounder processes might contend for CPU resources with the VizQL server process. As a result, if you do not need to run frequent extract refreshes, you might reduce the number of processes for the backgrounder. If you do need additional instances of the backgrounder, and if you're running Tableau Server on a cluster, you can move the Backgrounder process to a dedicated node. ### Adjust the VizQL session timeout limit In the example shown previously, the amount of memory used by the VizQL server process increases with user traffic, and it remains reserved by Tableau Server for some time after the traffic finished. This is because the VizQL server process reserves memory for each session for a specified amount of time. If the VizQL server process uses a high percentage of the available memory, try reducing the timeout for each session to make memory available more quickly.  To do this, use the `[tsm configuration set](https://help.tableau.com/current/server-linux/en-gb/cli_configuration_tsm.htm#TSMSet)` command to reduce the `vizqlserver.session.expiry.timeout` setting. The default is 30 minutes. ### Refresh the cache less often If your users do not always need the most up-to-date data, you can optimise for user traffic by configuring Tableau Server to cache and reuse data as much as possible. To do this, use the `[tsm data-access caching list](https://help.tableau.com/current/server-linux/en-gb/cli_data-access.htm#caching-list)` command to confirm the refresh frequency. The default is `Low`. Use the `[tsm data-access caching set](https://help.tableau.com/current/server-linux/en-gb/cli_data-access.htm#caching-set)` command to change the refresh frequency. ### Assess view responsiveness When a user opens a view, the components of the view are first retrieved and interpreted, then displayed in the user's web browser. For most views, the display rendering phase occurs in the user's web browser and in most cases, this yields the fastest results and highest level of interactive responsiveness. Handling most interactions in the client web browser reduces bandwidth and eliminates round-trip request latencies. If a view is very complex, Tableau Server handles the rendering phase on the server instead of in the client web browser, because that generally results in the best performance. If you find that views aren't as responsive as you'd like, you can test and change the threshold that causes views to be rendered by the server instead of in the client web browser. For more information, see [Configure Client-Side Rendering](https://help.tableau.com/current/server-linux/en-gb/browser_rendering.htm). ## Other articles in this section [Skip to main content](#main-content) # Optimise Relationship Queries Using Performance Options Performance Options are optional settings that define the cardinality (uniqueness) and referential integrity (matching records) between the two tables in a relationship. These settings help Tableau optimise queries during analysis. - **If you aren't sure what to choose**, use the recommended default settings indicated by Tableau. Using the defaults is safe and will automatically generate correct aggregations and joins during analysis. If you don't know the cardinality or referential integrity, you don't need to change these settings. - **If you know the shape of your data**, you can optionally change these settings to represent uniqueness and matching between the records in the two tables. In many analytical scenarios, using the default settings for a relationship will give you all of the data you need for analysis. In some scenarios, you might want to adjust the Performance Options settings to describe your data more accurately. For more details about using relationships to combine and analyse data, see [Relate Your Data](https://help.tableau.com/current/pro/desktop/en-gb/relate_tables.htm) and this Tableau blog post: [Relationships, part 1: Introducing new data modelling in Tableau](https://www.tableau.com/en-gb/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model). ## What the Cardinality and Referential Integrity settings mean ![Performance option settings for editing a relationship, including cardinality and referential integrity.](/tableau/current/en-gb/server-linux/en-gb/Img/data_model_perfoptions.png) ### Cardinality options Cardinality settings determine if Tableau aggregates table data before or after automatically joining the data during analysis. - Select **Many** if the field values aren't unique, or you don't know. Tableau will aggregate the relevant data before forming joins during analysis. - Select **One** if field values are unique. During analysis, the relevant data will be joined before aggregation. Setting this option correctly optimises queries in the workbook when the field values in the relationship are unique. However, selecting **One** when field values aren’t unique can result in duplicate aggregate values being shown in the view. > [!TIP] > > **Note**: Selecting **One** treats records as if each key value is unique and there is at most only one row with a null value. ### Referential Integrity options Referential Integrity settings determine the type of join used to get the dimension values for a measure during analysis. - Select **Some Records Match** if some values in the field don't have a match in the other table, or you don't know. During analysis, Tableau uses outer joins to get dimensions values for a measure. All measure values will be shown in the view, even unmatched measures. - Select **All Records Match** if values in the field are guaranteed to have a match in the other table. This setting generates fewer and simpler joins during analysis, and optimises queries. You might see inconsistent results during analysis (unmatched values removed or missing in view) if there are unmatched values in this table. **Notes**: Selecting **All Records Match** treats records as if no null values exist in the fields used for the relationship. During analysis, Tableau will use inner joins to get dimension values for a measure. By default, Tableau will never join null keys. For more information about Cardinality and Referential integrity as concepts, see [Cardinality and Referential Integrity](https://help.tableau.com/current/pro/desktop/en-gb/cardinality_and_ri.htm). ## Where did joins go? You can still specify joins between tables in the physical layer of a data source. Double-click a logical table to go to the join canvas. Every top-level, logical table contains at least one physical table. Open a logical table to view, edit or create joins between its physical tables. Right-click a logical table, and then click Open. Or, just double-click the table to open it. ![Data model with two joins.](/tableau/current/en-gb/server-linux/en-gb/Img/data_model_singletable_joins.gif) When you create a data source, it has two layers. The top-level layer is the logical layer of the data source. You combine data between tables in the logical layer using relationships. The next layer is the physical layer of the data source. You combine data between tables at the physical layer using joins. For more information, see [Logical and physical tables in the data model](https://help.tableau.com/current/pro/desktop/en-gb/datasource_datamodel.htm#dm_log_phys). ![A data model diagram displays a logical layer with two tables linked by a relationship, and a physical layer that illustrates how the logical tables are constructed from physical tables.](/tableau/current/en-gb/server-linux/en-gb/Img/data_model_layers_sm.png) ## Tips on using Performance Options If you know the shape of your data, you can use the optional settings in Performance Options to establish the cardinality of the tables to each other (one-to-one, one-to-many, many-to-many) and indicate referential integrity (values from one table will always have match in the other table). Instead of thinking of the settings in Performance Options as “yes” and “no”, think of them as “yes” and “I don’t know”. If you are sure that a table's values are unique, select **One**. If you are sure that each record in one table matches one or more records in the other table, select **All Records Match**. Otherwise, leave the default settings as they are. If you aren't sure about the shape of your data, use the default settings. When Tableau can't detect these settings in your data, the default settings are: - Cardinality: Many-to-Many - Referential integrity: Some Records Match If Tableau detects key relationships or referential integrity in your data, those settings will be used and indicated as "detected". To reapply the default settings, click Revert to Default. ### Terms defined _Cardinality_ refers to the uniqueness of data contained in a field (column) or combination of fields. When the tables you want to analyse contain many rows of data, queries can be slow (and performance of the overall data source is affected) so we recommend choosing a method for combining data based on the cardinality of the related columns between tables. - Low cardinality: When related columns have a lot of repeated data. For example, a table called Products might contain a Category column that contains three values: Furniture, Office Supplies and Technology. - High cardinality: When related columns have highly unique data. For example, a table called Orders might contain an Order ID column that contains a unique value for every order of product. _Referential integrity_ means that one table will always have a matching row in the other table. For example, a Sales table will always have a matching row in the Product Catalogue table. [Skip to main content](#main-content) # Optimising the Performance of Tableau Server on AWS ## This is archived content Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated. For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server-linux/en-gb/install.htm) section of Tableau Server help. For those customers who have access, we recommend Tableau Cloud. For more details, see: - [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm) - [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-gb/install.htm) - [Tableau Cloud: Get Started for Admin](https://www.tableau.com/en-gb/learn/get-started/online-admin) ## Introduction Optimising the performance of Tableau Server when it is installed on an Amazon EC2 instance in the AWS cloud adds another dimension to tuning your Tableau Server solution. This section discusses tuning Tableau Server for the cloud. For general performance tuning information, see the [Tableau Server Performance Overview](https://help.tableau.com/current/server-linux/en-gb/perf.htm). For information about tools you can use to help optimise performance, see [Performance Resources](https://help.tableau.com/current/server-linux/en-gb/perf_resources.htm). It is important to keep in mind that every deployment of Tableau Server on AWS is different because everyone's workload is unique. Your company’s employees are different, leverage different data, ask different kinds of questions, and have different business needs from other companies. For this reason, we recommend testing your Tableau Server workloads on a variety of different Amazon EC2 instance types before putting them into production. The demands of your workload will likely be influenced by the following factors: - Heavy, light, or moderate Tableau Data Extract use - The proportion of people who view vs. interact with visualisations and dashboards - Tableau Data Extract refreshes which occur during or after working hours - The number of concurrent individuals during any given period - View and dashboard complexity - Size of the community who leverage Tableau Web Authoring ## Performance Best Practices The following performance best practices may be useful for you to reference as you deploy Tableau on AWS: - Always run at least 8 cores per Amazon EC2 Instance Even with a relatively low number of users, EC2 Instances with fewer than 16 vCPUs (the equivalent of 8 cores), do not consistently perform well. For example, one r4.4xlarge instance, which has 16vCPUs, is able to handle more users, with a lower response time and error rate, than two r4.2xlarge instances, which have 8vCPUs each. This pattern is consistent as you scale up, with four 16vCPU instances and two 32vCPU instances dramatically outperforming eight 8vCPU instances. - The workload greatly determines the results The robustness of your workload goes a long way in determining how it performs on different EC2 instance types. Using a different set of dashboards, for example, you will see noticeable differences in performance from the same underlying virtual machine instances. Attempting to compare performance using any other workload than your own is not very useful. - More CPU is better CPU is often the main bottleneck for Tableau Server performance. In general, when you want to do more with Tableau, we recommend you add more and better CPU. - Make sure your Amazon EC2 instance has enough RAM When we ran the same workloads on instances with less CPU but more RAM, we experienced higher transactions per second (TPS), lower response time, and lower error rate. EC2 instances with too little RAM can cancel out the benefit of high-end CPU. In production, run with at least 30 GB RAM but shoot for 8 GB of RAM per core. While it is important to choose an instance with a lot of CPU, running Tableau Server on instances starved for RAM is going to lead to low performance – no matter how much CPU you have. - You want to use SSD-based volumes, but may not need Provisioned IOPS Tableau Server encompasses a number of processes and components, including an industrial strength database (PostgreSQL) that stores the system’s metadata. Tableau Server needs a reasonable level of disk throughput in order to perform well, and we advise using Amazon Elastic Block Store (EBS) SSD- based volumes only. Magnetic disks lack the throughput needed to handle the database’s requests effectively. In our test, we ran both general purpose SSD (gp2) and EBS-provisioned IOPS volumes, with two EBS disks being used for most tests. Most EBS volumes had 1500 provisioned IOPS. After running the tests again with General Purpose SSDs, our results were nearly identical with moderately demanding workloads. While there are certainly cases where Provisioned IOPS will make a noticeable difference in the performance of your Tableau Server workloads on AWS, you shouldn’t assume that you need Provisioned IOPS by default. The best way to find out, of course, is to test your Tableau Server workloads yourself. [Skip to main content](#main-content) # Optional: Configure Client IP Matching By default, Tableau Server does not consider the client web browser IP address when it creates or redeems tickets. To change this, you need to do two things: specify an IP address using the `client_ip` parameter in the POST request that obtains the ticket, and follow the steps below to configure Tableau Server to enforce client IP address matching. 1. Open TSM CLI and type the following command: tsm configuration set -k wgserver.extended\_trusted\_ip\_checking -v true 2. Then type the following command: tsm pending-changes apply If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). [Skip to main content](#main-content) # Overview of Row-Level Security Options in Tableau Sometimes, you want to filter data based on the user that is requesting it. For example: - You want regional salespeople to see sales figures only for their region. - You want sales managers to see statistics only for salespeople that report to them. - You want students to see visualisations based only on their own test scores. An approach to filtering data this way is called row-level security (RLS). There are multiple methods to accomplish row-level security both inside and outside of Tableau, each with its own pros and cons. ## Create a user filter and map users to values manually The simplest way to achieve row-level security in Tableau is through a user filter where you manually map users to values. For example, you could manually map a user named “Alice” to the value “East” so that she only sees rows in the data source where the “Region” column is “East”. This method is convenient but high maintenance, and attention must be paid to security. It must be done per-workbook, and you must update the filter and republish the data source as your user base changes. When you publish an asset with this type of user filter, you need to set permissions so that users cannot save or download it and remove the filter, thereby gaining access to all of the data. For more information, see [Create a user filter and map users to values manually](https://help.tableau.com/current/pro/desktop/en-gb/publish_userfilters_create.htm#create-user-filter) in the Tableau Desktop and Web Authoring help. ## Create a dynamic user filter using a security field in the data Using this method, you create a calculated field that automates the process of mapping users to data values. This method requires that the underlying data include the security information you want to use for filtering. For example, using a calculated field, the USERNAME() function and a “Manager” column in the data source, you could determine if the user requesting the view is a manager and adjust the data in the view accordingly. Because filtering is defined at the data level and automated by the calculated field, this method is less error prone than mapping users to data values manually. When you publish an asset with this type of user filter, you need to set permissions so that users cannot save or download it and remove the filter, thereby gaining access to all of the data. For more information, see [Create a dynamic filter using a security field in the data](https://help.tableau.com/current/pro/desktop/en-gb/publish_userfilters_create.htm#dynamic) in the Tableau Desktop and Web Authoring help. ## Use a data policy Starting in Tableau 2021.4, when Data Management is enabled in Tableau Server or Tableau Cloud, users with a Creator licence can implement row-level security through data policies on virtual connections. Because virtual connections are centralised and reusable, you can manage row-level security for each connection in one place, safely and securely, across all content that uses that connection. Unlike the above solutions for row-level security in Tableau, this method doesn't carry the same risk of exposing information if an author neglects to properly secure permissions on the workbook or data source, because the policy is enforced on the server for every query. Row-level security through virtual connection data policies was developed to address shortcomings of other row-level security solutions. We recommend this solution in most situations where it's an option. For more information on row-level security using data policies on virtual connections, see [About Virtual Connections and Data Policies](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_overview.htm). ## Use existing RLS in the database Many data sources have mechanisms for RLS built in. If your organisation has already put effort into building row-level security in a data source, you may be able to take advantage of your existing RLS. It is not necessarily easier or better to implement a built-in RLS model vs building it with Tableau in mind; these techniques are generally leveraged when an organisation has already invested in these technologies and they want to take advantage of that investment, or when they need to apply the same security policies to other database clients in addition to Tableau. The main benefit of using built-in RLS is that administrators can implement and control their data security policy in one place: their databases. For more information, see [Row-Level Security in the Database](https://help.tableau.com/current/server-linux/en-gb/rls_datasource.htm). ## Row-level security option comparison
RLS optionUseful whenProsCons
Manual user filter
  • You are doing a proof of concept or testing user filtering functionality
  • You are creating a static workbook to use with an unchanging group of users
  • You understand the data security risk of having the permissions set incorrectly
  • Simple at small scales
  • Easy to understand mapping
  • Good for testing
  • High-maintenance
  • Need to update filter and republish as user base changes
  • Permissions must be secured to prevent users from seeing unfiltered data
  • Must be replicated in every workbook
Dynamic user filter
  • You don't have a Data Management licence
  • The data contains information you can use to filter it
  • You understand the data security risk of having the permissions set incorrectly
  • Relatively easy to set up
  • Permissions must be secured to prevent users from seeing unfiltered data
  • Must be replicated in every workbook or data source
Data policy
  • You have a Data Management licence
  • The data contains information you can use to filter it
  • Ease of data security is a significant concern
  • Centralised
  • Secure
  • Low-maintenance
  • Responsibilities for security and analytics can be separated
  • Data Management licence required
RLS in the database
  • Your database has an existing RLS security built into the database
  • You’re not using extracts
  • Might already be built into your organisation’s database
  • Policies can be applied to database clients other than Tableau
  • Must use live queries
  • Might have limitations or requirements. Your IT team can identify them
## Which row-level security option should I use?
Does your organisation have a preferred RLS solution in the database that works for this project?→ Yes →See Row-Level Security in the Database

↓ No ↓

  

Do you have a Data Management licence?

→ Yes →See About Virtual Connections and Data Policies

↓ No ↓

  
Is this a proof of concept, a basic user filter test or a static workbook with unchanging users?→ Yes →See Use a manual user filter

↓ No ↓

  

See Use a dynamic user filter

  
[Skip to main content](#main-content) # PAM-based Authentication in Tableau Resource Monitoring Tool (RMT) Beginning with version 2025.2, PAM-based authentication for delegated users was added. This allows customers to implement custom authentication logic if needed. Previously, RMT relied only on `su` for delegated user authentication, which could lead to inconsistencies if the underlying Linux authentication policies differed between Tableau Server and RMT. By adding support for PAM, RMT aligns with Tableau Server’s authentication flow, giving more flexibility and control. RMT uses Local (RMT-specific passwords) or Delegated (Operating System-based credentials) authentication for user access, with delegated authentication requiring users to provide their standard network password for login. Authentication is configured on the RMT Server through its web interface or the `rmtadmin` command line tool, where users can be added or their existing authentication modes changed. Proper configuration includes ensuring the `username` is entered correctly (without domain for Delegated auth) and that the correct RMT server roles are assigned to users. For information on server roles, see [Manage Users and Authentication in Tableau Resource Monitoring Tool (RMT)](https://help.tableau.com/current/server-linux/en-gb/rmt-server-roles.htm). ## How PAM-based authentication works in RMT When RMT authenticates a delegated user, it follows the same authentication flow as Tableau Server: 1. Custom PAM service (Tableau) RMT will first attempt to authenticate the user by using a custom PAM service named `tableau`, if present at: /etc/pam.d/tableau This allows customers to define their own authentication policies. 2. Default PAM login service If the Tableau service is not defined, RMT will fall back to using the standard PAM login service for authentication. 3. su-based authentication If both PAM attempts fail, RMT will finally attempt authentication using `su`. This is the default method of authentication in pre-2025.2 versions and continues to be valid to ensure backward compatibility with earlier RMT versions and existing environments. ## How to Enable PAM-based authentication in RMT To use PAM-based authentication in RMT, the following prerequisites must be met: 1. 1\. Install `pamtester` RMT uses `pamtester` to perform non-interactive PAM authentication. Debian/Ubuntu: sudo apt install pamtester RHEL/CentOS: sudo yum install pamtester 2. Set permissions for `pamtester` The `pamtester` binary must be granted appropriate permissions to allow authentication: sudo chown root:root /usr/bin/pamtester sudo chmod u+s /usr/bin/pamtester The `setuid` permission (`u+s`) ensures that `pamtester` can read `/etc/shadow`, which is required for most PAM modules to perform password checks. ### Implementing a Custom PAM Service (Optional) If you wish to implement your own custom authentication logic, you can define a PAM service named `tableau`: `/etc/**pam.d/tableau**` [Skip to main content](#main-content) # Perform a Full Backup and Restore of Tableau Server You can use the following steps to back up your Tableau Server deployment. Specifically, these steps describe how to recover a clone of a server from a collection of backup data and assets. **Note:** The backup process can take a long time to run. Since no other jobs can be run while backup is running, we recommend that you run backup during non-business hours. ## Backup data types There are two types of backup data that Tableau Server can generate. We recommend performing regular backups of each type in case you need to restore a server in a recovery scenario: - **Data managed by** Tableau Server**:** consists of the Tableau PostgreSQL database or repository, and File Store, which contains workbook and user metadata, data extract files and site configuration data. When you use TSM to create a backup, all of this data is saved in a single file with a .tsbak extension. This data is backed up with the `[tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm)` command. > [!IMPORTANT] > > **Note:** When an external File Store is configured, you cannot use the `tsm maintenance backup` command to back up Tableau Server Data. For information on how to back up this data, see [Backup and Restore with External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_backup_restore.htm). - You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. - You can only restore a backup file to a version of Tableau Server version that is the same or newer than the version the backup was created on. You cannot restore to an older version of Tableau. - **Important:** If you perform Blue/Green upgrades or manually upgrade Tableau Server 2021.4 (or earlier) using the [tsm maintenance (backup and restore)](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm) method, you must enable `legacy-identity-mode` before you can restore to Tableau Server 2022.1 (or later). For more information, see [Troubleshoot Issues with the Identity Migration](https://help.tableau.com/current/server-linux/en-gb/identity_migration_troubleshoot.htm). - Beginning with version 2022.3, backups created using tabadmin ("pre-TSM backups") are not supported. You cannot restore a pre-TSM backup to Tableau Server version 2022.3 or later. - Configuration and Topology data: includes most of the server configuration information required to fully recover a server. SMTP, alerting, some authentication assets, are all examples of configuration data that are exportable for backup. Topology data defines how your Tableau Server processes are configured in both single-server and multiple node deployments. Configuration and topology data is backed up with the `[tsm settings export](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm#TSMExport)` command. **Note:** You can change the file path used by the `[tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm)` command from the default value. For more information, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). ## Backup assets that require a manual process Some configuration data is not included in the `tsm settings export` command and must therefore be documented and restored manually. The following configuration data is excluded from the `tsm settings export` operation. Your backup maintenance process should include documenting the following Tableau Server configuration data: - System user accounts. Tableau Server setup creates an unprivileged user account, `tableau`. This account is used to access Tableau Server resources. This account can be changed during setup. If you have not changed this account, then you do not need to document it. - TSM group membership. There are two groups created by Tableau Server: `tableau` and `tsmadmin`. If you configured alternative groups when you installed Tableau Server, then you'll need to document the group names. In all cases, you should document the user accounts that are in these groups. To view membership in a group, run the following command `grep /etc/group`. - Coordination Service deployment configuration. If you are running a multinode cluster, document which nodes are running the Coordination Services process. To view process configuration on your nodes, run `tsm topology list-nodes -v`. - Customisation settings. If your organisation uses custom header or sign-in logos for Tableau Server web pages, you should include a copy of those assets with your backup portfolio. See [tsm customise](https://help.tableau.com/current/server-linux/en-gb/cli_customize.htm). - Most authentication assets. While the locations for files may be included in an exported `settings.json` file, most certificate files, key files, keytab files or other authentication-related assets are not backed up by TSM. Verify that any of these assets you are trying to move won't need to be recreated. There are three exceptions: - The public certificate and private key for the internal PostgreSQL database (if enabled) are backed up. - The certificate and key for external SSL are backed up and included in the configuration data. - The custom certificate installed by [tsm security custom-cert add](https://help.tableau.com/current/server-linux/en-gb/cli_security_tsm.htm#custom-cert-add) (if added) is backed up. However, all other authentication-related assets are not backed up. For example, if you have enabled access to the PostgreSQL database with the [tsm data-access repository-access enable](https://help.tableau.com/current/server-linux/en-gb/cli_data-access.htm#repository-access-enable) command, be sure to document the name/password pairs for each account you've configured. These credentials are not backed up. The certificate and key for mutual SSL are not included in the back up. - LDAP assets. Keytab files, configuration files, and or other LDAP-related assets are not backed up by TSM. Internal server secrets and repository passwords are crypto-related configurations that are not exported. However, you do not need to document configuration values. New secrets will be created as part of the restoration process when you initialise the new instance. ## Backing up Tableau Server for recovery Tableau Server includes commands that you run to generate backup data for Tableau Server. **Note:** When backing up Tableau Server on Linux, the unprivileged user must have write access to the network share where the backup files are written. Otherwise, backup will fail. To back up server topology and configuration data, use the [tsm settings](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm) command. 1. Topology and configuration data are included when you run the `[tsm settings export](https://help.tableau.com/current/server-linux/en-gb/cli_settings_tsm.htm#TSMExport)` command. The data is exported as a json file. Specify the name and location of the json file by running the following command: `tsm settings export -f .json` **Note:** Because the backup contains secrets, we recommend that you encrypt the backup and store it in a secure place. For more information about Tableau Server secrets, see [Manage Server Secrets](https://help.tableau.com/current/server-linux/en-gb/security_secret_storage.htm). 2. Back up repository and File Store data. Repository data is backed up with the `[tsm maintenance backup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#tsm)` command. Specify the name and location of the backup file by running the following command: `tsm maintenance backup -f .tsbak -d` The backup file is assembled in a temporary location in the data directory and then written to the directory defined in the TSM `basefilepath.backuprestore` variable: `` `/var/opt/tableau/tableau_server/data/tabsvc/files/backups/` ```.tsbak` For more information about where backup files are written and how to change that location, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). **Note:** Even when you change the backup location, the backup process uses a temporary location in the data directory to assemble the backup file. > [!IMPORTANT] > > **Note:** When File Store is configured external to Tableau Server you cannot use the tsm maintenance backup command to backup Tableau Server Data. For more information on how to backup this data, see [Backup and Restore with External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_backup_restore.htm). ## Restoring core Tableau Server functionality The procedure below uses the assets from the previous two sections to rebuild a Tableau Server in a recovery scenario. **Note**: If you need to restore only the repository on an otherwise functional Tableau Server, see [Restore from a Backup](https://help.tableau.com/current/server-linux/en-gb/db_restore.htm#db). If you are running a distributed deployment, and your initial node has failed, see [Recover from an Initial Node Failure](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_init_node_fail.htm). Topology and configuration backup data must be from Tableau Server on Linux. You cannot restore configuration data from a backup file that was generated on Tableau Server on Windows. To restore a backup made from Tableau Server on Windows to Tableau Server on Linux, see [Migrate Tableau Server from Windows to Linux](https://help.tableau.com/current/server-linux/en-gb/restore_from_backup_linux.htm). You must have the following assets ready: - Topology and configuration data: This is the json file that is generated by the `tsm settings export` command. - Repository backup file: This is the file with a .tsbak extension that is generated by the `tsm maintenance backup` command. You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. When you use `tsm maintenance restore` to restore your Tableau data, data extract files and the contents of the PostgreSQL database are overwritten with the content in the backup file (`.tsbak`). If you are running a distributed installation of Tableau Server, perform the restore on the node running the TSM Controller (this is usually the initial node). - Backup assets: These assets include the list of documented configurations as noted in the previous section. To restore a standalone Tableau Server 1. On the computer where you want to restore Tableau Server, [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm). If your organisation used non-default system user accounts, as described in an early section of this topic, then you must specify the users during this step. 2. [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm). 3. (Optional). [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 4. (Optional). Verify LDAP. 5. Initialise Tableau Server. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). 6. Import topology and configuration data. Copy the topology and configuration json backup file to the computer. Import the json file by running the following command: `tsm settings import -f .json` 7. (Optional). Apply pending changes. At a command prompt, run: `tsm pending-changes apply` 8. Restart Tableau Server. At a command prompt, run: `tsm restart` 9. Restore repository data. See [Restore from a Backup](https://help.tableau.com/current/server-linux/en-gb/db_restore.htm#db). 10. (Optional). Repopulate TSM group membership. Add users to groups with this command: `sudo usermod -G -a ` To restore a Tableau Server cluster 1. On the initial node, [Install and Initialise TSM](https://help.tableau.com/current/server-linux/en-gb/setup.htm). If your organisation used non-default system user accounts, as described in an early section of this topic, then you must specify the users during this step. 2. On the initial node, [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm). 3. (Optional). On the initial node, [Configure Local Firewall](https://help.tableau.com/current/server-linux/en-gb/config_firewall_linux.htm). 4. On the initial node verify LDAP (optional), and initialise Tableau Server. See [Configure Initial Node Settings](https://help.tableau.com/current/server-linux/en-gb/config_general.htm). 5. On the initial node, run `tsm topology nodes get-bootstrap-file --file .json`. 6. Copy the bootstrap.json file to all additional nodes in the cluster. 7. On each additional node in the cluster: 1. Install the Tableau Server package. 2. Navigate to the scripts directory. 3. Initiate communication between initial node and the additional node: `sudo ./initialize-tsm -b .json -u --accepteula` 9. On the initial node, run `tsm topology list-nodes -v` and ensure that the node names have not changed from exported topology settings. _If the node names have changed, topology settings should be manually updated with new names, or the processes should be manually configured_. 10. The Cluster Controller process is required on every node and needs to be added explicitly. From the initial node, add an instance of the Cluster Controller to each additional node, where `` is the ID of one of the additional nodes. Add the process to each node separately. In this example we are adding the Cluster Controller to nodes 2 and 3: tsm topology set-process -n node2 -pr clustercontroller -c 1 tsm topology set-process -n node3 -pr clustercontroller -c 1 tsm pending-changes apply 11. From the initial node, [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). The ensemble configuration must match your previous configuration. 12. On the initial node, import topology and configuration data. Copy the topology and configuration json backup file to the computer. Import the json file by running the following command: `tsm settings import -f .json` 13. On the initial node, apply pending changes. At a command prompt, run: `tsm pending-changes apply` 14. On the initial node, restart Tableau Server. At a command prompt, run: `tsm restart` 15. On the initial node, restore repository data. See [Restore from a Backup](https://help.tableau.com/current/server-linux/en-gb/db_restore.htm#db). 16. On the initial node, repopulate TSM group membership. Add users to groups with this command: `sudo usermod -G -a ` ## Restore other functionality If the previous server was configured with the following features, then you will need to re-enable and reconfigure them on the restored server: - **Authentication solutions:** External SSL, OpenID, SAML (server-wide and site-level) and trusted authentication. See [Authentication](https://help.tableau.com/current/server-linux/en-gb/security_auth.htm). The certificate files, key files and other assets for these solutions are not included in the backup and must be reconfigured on the restored server. - **More about External SSL:** The certificate and key for external SSL are included in the backup configuration data and are restored automatically. However, you must re-enable and reconfigure external SSL on the restored server. See [Configure SSL for External HTTP Traffic to and from Tableau Server](https://help.tableau.com/current/server-linux/en-gb/ssl_config.htm). - **More about SAML:** See the knowledge article about reconfiguring SAML after a restore – [“Unable to Start Tableau Server due to Error ‘Failed to load the SP private key from our SAML configuration’ After Restoring from Full Backup”](https://help.salesforce.com/s/articleView?id=001475210&type=1). - **Site customisations:** See [tsm customise](https://help.tableau.com/current/server-linux/en-gb/cli_customize.htm). - **Enable access to PostgreSQL repository:** See [tsm data-access repository-access enable](https://help.tableau.com/current/server-linux/en-gb/cli_data-access.htm#repository-access-enable). ## Re-encrypt Extracts After Restore Optionally, if you are using the “extract encryption at rest” feature, after the backup is restored, you can re-encrypt the extracts using different encryption keys. See [Extract Encryption at Rest](https://help.tableau.com/current/server-linux/en-gb/security_ear.htm). Run `tabcmd reencryptextracts ` to re-encrypt extracts on a given site. For more information, see [reencryptextracts](https://help.tableau.com/current/server-linux/en-gb/tabcmd_cmd.htm#reencryptextracts_tabcmd). Run this command on every site where you are storing encrypted extracts. Depending on the number of encrypted extracts on the site, this operation could consume significant server processing load. Consider running this operation outside of business hours. [Skip to main content](#main-content) # Performance You can monitor and tune the performance of Tableau Server. ## Other articles in this section [Skip to main content](#main-content) # Performance Considerations for External File Store This topic lists the factors you must consider when you have External File Store to make sure you have optimal performance. In this scenario where File Store is configured external to Tableau Server, you are storing the extracts on a network share. This means that Tableau Server will be accessing this data across the network. To ensure optimal performance, we recommend the following: - Use Enterprise grade storage system to to ensure reliability and high data access performance. - The storage system supports enough read IOPS: - Use Solid State Drives. If using spinning disks is the only option, use the fastest and as many as possible. - The network infrastructure supports the following: - At least 10 GB Ethernet to support high speed data transfers between Tableau Server and the storage system. - No more than 10 millisecond storage latency between Tableau Server and the storage system. The above recommendations are based on testing done by the Tableau team. Your requirements and performance may vary. We highly recommend that you create your own benchmarks to assess the performance and determine resource requirements. When creating benchmarks, consider overall performance of Tableau Server with workbook load times as one of the key metrics. This is especially relevant to this configuration since External File Store mostly impacts extract based workbooks. You can use [Tabjolt](https://github.com/tableau/tabjolt) to do your benchmarks. ## Who can do this Tableau Server Administrators monitor Tableau Server performance. However, there are network, hardware and storage considerations that might either need access to make configuration changes to these resources. You may also choose to work with your network administrator to make any changes if you don't have access to these resources. [Skip to main content](#main-content) # Performance Monitoring Overview When you monitor a server, you collect and analyse data that signals whether the server is performing badly or running into problems. For example, if you notice that your server is using 100% of its processing capacity for long periods of time, you know that there's a problem. The data that you need to collect and analyse can be broken down into the following broad categories: - Resource usage data – how Tableau Server uses hardware resources like diskspace, memory, and processors. - Session and load time data – how users interact with Tableau Server, including how long it takes for views to load and how many concurrent users there are. - Background task data – how Tableau Server runs tasks that are not directly tied to a user action. For example, background tasks include extract refresh tasks, subscription tasks and more. Some of this data, including load time data and extract refresh data, is already accessible from the administrative views that are built into Tableau Server. However, to collect resource usage data you need to use a external performance monitoring tools. To collect additional load time data and background task data, you can connect to the Tableau Server repository. For more information on the built-in administrative views, see [Administrative Views](https://help.tableau.com/current/server-linux/en-gb/adminview.htm) . **Note:** To use the sample workbook and to publish views to Tableau Server, you must have Tableau Desktop. ## Other articles in this section [Skip to main content](#main-content) # Performance Monitoring Tools This topic describes external resources that you can use to monitor and tune performance. Tableau Server includes several tools that you can use to monitor server performance and health. For more information about these tools, see [Performance Monitoring Overview](https://help.tableau.com/current/server-linux/en-gb/perf_monitor.htm). **Disclaimer**: This topic includes information about third-party and community supported products. Please note that while we make every effort to keep references to third-party and community content accurate, the information we provide here might change without notice. For the most up-to-date information, please consult the documentation for products referenced here. To learn more about community supported tools, see [Support levels for IT and developer tools](https://www.tableau.com/en-gb/support-levels-it-and-developer-tools). - [TabJolt](https://github.com/tableau/tabjolt). A load and performance testing tool that you can use to understand how Tableau Server scales with your workloads, in your environment, and to inform your scalability and capacity needs. Here are some key use cases for when you would use TabJolt: - To establish a baseline for server performance and test deployments before pushing them to production environments. - In a new Tableau Server, to help understand how the new server scales in your environment, specifically to your hardware and workload? - Before upgrading to understand the new version will scale in your environment. - To find the best server deployment configuration, given your hardware, workbooks and environments. - [Replayer](https://community.tableau.com/s/question/0D54T00000CWd7cSAD/replayer). A tool that can replay log-based real user traffic from a Tableau Server against any other server or configuration. It replays Tableau Server single- or multi-user sessions. Here are some ways that Replay can be used: - Playback specific Tableau Server sessions, and filter the session based upon start time or RequestID. - Use it to simulate load conditions so that you can test how to scale and balance your Tableau Server installations. - Perform regression testing by running and comparing end-to-end user scenarios for Tableau Server upgrades. - Capture and report HTTP exceptions that occur in a single-user session. - Replay a defect, so that you can troubleshoot and verify that it is fixed. - [Scout](https://community.tableau.com/s/question/0D54T00000G54CP/getting-started-scout). An exploratory tool that captures performance metrics across any workbooks on both Tableau Desktop and Tableau Server Here are some ways that Scout can be used: - Find slow workbooks on Server. - Validate performance improvements or regressions after making server configuration or topology changes. - Validate that workbooks and dashboards are loading properly after upgrading to new Tableau Server. - Validate that workbooks are still working properly after data source changes. - [Sitescope](https://software.microfocus.com/en-gb/products/sitescope-application-monitoring/overview). An agentless application monitoring tool. - [Zabbix](http://www.zabbix.com/). An open-source, real-time monitoring tool. - [Splunk](http://www.splunk.com/). A tool for monitoring and analysing machine data, including logs. - [Graylog](https://www.graylog.org/). An open-source log management tool. [Skip to main content](#main-content) # Performance of Flow Runs Use this view to see the performance history for all the flows on a site. You can filter by Flow Name, the Output Step Name, Flow Owner, Run Type (Scheduled or Ad Hoc), and the time the flow runs were started. For information about other administrative views available for flows, see [Monitor Flow Health and Performance](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_monitor_flow.htm). ![An administrative view showing the flow performance over time. Each point on the chart corresponds to a specific flow run, displaying the flow name, output step, flow owner, run type, and start and end times.](/tableau/current/en-gb/server-linux/en-gb/Img/prep_conductor_admin_views_flow_performance.png) Here are some questions you can answer using this view: - **What flow tasks are currently scheduled?** – To do this, use the Start Time filter and select the time frame you want to look at. For example, to see flow tasks that are scheduled in the next 3 hours, select **Hours** -> **Next** -> and enter **3**. - **What is the duration of flow tasks?** – To answer this, click on a mark in the view and you should see details including the task duration. **How many flows were run ad hoc, and how many were scheduled runs?** – To answer this, use the **Run Type** filter and select **Ad hoc** or **Scheduled**. **Note**: This is not functional in this release and will not actually filter the data. In addition to the questions described above, here are some examples of insights you might be able to gather: - The flows that are running most frequently will have the most marks. - To see how many flows are running at the same time currently, hover over a mark that shows “**In Progress**” or “**Pending and select** “**Keep Only**” to filter all flow runs that are currently running. - To see how many flows are running at the same time during a specific time range, select a range for the **Start Time** filter. For example, you can choose “**Next three hours**” to see which flows will be running in the next three hours. [Skip to main content](#main-content) # Performance of Views **Note:** This view is only available to server administrators. To access server views on multi-site deployments, click the site menu and select **Manage All Sites**. For information about how to navigate to administrative views, see [Administrative Views](https://help.tableau.com/current/server-linux/en-gb/adminview.htm) . The Performance of Views administrative view displays how long it takes for views to load and how many sessions are running at a time on the server. **Important:** If you are upgrading from an older version of Tableau Server to version 2025.1.x or later, be aware that the way the view display is calculated makes it appear that load times increase significantly. This does not reflect an actual change in view performance. It is due to a change in how the graph is displayed. ![A time-series chart displays load times for views over the past week, a bar chart illustrates session counts and a horizontal bar chart delineates individual views.](/tableau/current/en-gb/server-linux/en-gb/Img/adminview_performance_of_views.png) You can compare spikes in the number of sessions with spikes in slow load times to identify the times of day when high user traffic is slowing down the server. You can also look at the individual views by load time to understand which views take the longest to load. Some views might take a long time to load regardless of when they are viewed. You can identify which workbooks need to be optimised with the Stats for Load Times administrative view. Some simple ways to optimise workbooks includes the following: - Display less information in each view. - Break up views. - Reduce the number of filters. - Use data extracts. [Skip to main content](#main-content) # Performance Recording This section describes how to create performance recordings and use the results to improve workbook performance. With performance recordings, you can view how long workbook events take. For example, you can see how long it takes to connect to a data source, run a query, render data and more. ## Other articles in this section [Skip to main content](#main-content) # Performance Tuning This section describes how to use the performance data that you collect to identify ways to improve the performance of Tableau Server. Because no two server environments are identical, we can't provide hard and fast rules for tuning server performance. However, you can draw conclusions about performance from patterns in the data that you collected. For example, are there recurring spikes? Do any of the patterns that you notice in the administrative views correspond to similar patterns in a monitoring tool? Observing patterns like this can guide you in testing and incremental tuning. Most performance tuning for Tableau Server boils down to these general approaches: - **[Optimise for User Traffic](https://help.tableau.com/current/server-linux/en-gb/perf_optimize_user_traffic.htm):** This tunes the server to respond to user requests and to display views quickly. - **[Optimise for Extracts](https://help.tableau.com/current/server-linux/en-gb/perf_optimize_extracts.htm):** This tunes the server to refresh extracts for published data sources. You might want to optimise for extract refreshes if your organisation has a lot of data and the data needs to be as up to date as possible. - **[Optimise for Extract Query-Heavy Environments](https://help.tableau.com/current/server-linux/en-gb/perf_tuning_long_queries_for_extracts.htm):** This is a specialised server configuration to optimise for query performance of workbooks that use extracts as their data source. Rendering views and refreshing extracts generate the most load on the server, so you should optimise for the task that your organisation is most interested in. As a best practice, optimise your workbooks for performance. For more information and resources on how to optimise your workbooks, see [Optimise Workbook Performance](https://help.tableau.com/current/pro/desktop/en-gb/performance_tips.htm). ## Other articles in this section [Skip to main content](#main-content) # Permission Capabilities and Templates Permissions are made up of capabilities, or the ability to perform a given action on a piece of content, such as view, filter, download or delete. Each row in the Permission Rules area of the dialog is a _permission rule_. Permission rules are the setting for each capability (allowed, denied or unspecified) for the group or user in that row. Permission rules have _templates_ available that make it easier to assign capabilities quickly. Permission rules can also be copied and pasted. **Note**: In the permission dialog for projects, there are tabs for each content type: Projects, Workbooks, Data Sources, etc. When a permission rule is added, the default for all capabilities across all content types is Unspecified. To allow or deny capabilities for each content type, you must go to each tab of the permission dialog in turn. This sets the pattern for all content of that type in the project (such as all workbooks). In the permission dialog for a specific piece of content, there are no tabs and the permission rules only apply to that piece of content. ## Templates Templates group sets of capabilities that are often assigned together based on common user scenarios, View, Explore, Publish and Administer. When you assign a template, its included capabilities are set to Allowed, with the rest left as Unspecified. The templates are cumulative, so the Explore template includes everything from the View template plus additional capabilities. All content also has a template for **None** (which sets all capabilities to unspecified) and **Denied** (which sets all capabilities to denied). Templates are meant to be a starting point and can be adjusted after they are applied. Capabilities can also be granted or denied without using a template at all. In both cases, the template column then shows Custom. ## Copy and paste permissions If there is a permission rule that needs to be assigned to multiple groups or users, you can copy and paste from one rule to another. You can’t copy from or paste onto a rule that involves Project Leader status. 1. Open the action menu (...) for the existing rule you want to copy from and select Copy Permissions. This is available only when the rule is not in edit mode. 2. Select an existing rule you want to paste over. You can also create a new rule by clicking + Add Group/User Rule and selecting a group or user. 3. Open the action menu (...) and select Paste Permissions. ## Effective permissions Remember, just because a user has been granted a capability in a given rule doesn’t mean they’ll have the ability to perform that action. There are site role caps on what a user can do (see [Permissions, Site Roles and Licences](https://help.tableau.com/current/server-linux/en-gb/permission_license_siterole.htm)) and multiple permissions rules may need to be compared to evaluate the final capabilities for a given user (see [Effective permissions](https://help.tableau.com/current/server-linux/en-gb/permission_effective.htm)). ## Capabilities Each content type has specific capabilities: ### Projects Projects have only two capabilities and two templates. For more information about project leaders and how to assign them, see [Project administration](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm#projectpermissions). #### View template ![View icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_view_icon.png)**View** lets a user see the project. If a user hasn’t been granted the view capability, the project won’t be visible to them. Granting the view capability for a project does not mean a user can see any content in the project, just the existence of the project itself. #### Publish template ![Save icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_save_icon.png)**Publish** lets a user publish content to the project from Tableau Desktop or Tableau Prep Builder. The publish capability is also required to move content into the project or save content to the project from web authoring. ### Workbooks #### View template ![View icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_view_icon.png)**View** lets a user see the workbook or view. If a user hasn’t been granted the view capability, the workbook won’t be visible to them. ![Filter icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_filter_icon.png)**Filter** lets a user interact with filters in the view, including keep-only and exclude filters. Users lacking this capability won’t see filter controls in the view. ![View comments icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_viewcomments_icon.png)**View Comments** lets a user view the comments associated with the views in a workbook. ![Add comments icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_addcomments_icon.png)**Add Comments** lets a user add comments to views in a workbook. ![Download full data icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_downloadimage_icon.png)**Download Image/PDF** lets a user download each view as a PNG, PDF or PowerPoint. ![Download sum data icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_downloadsumdata_icon.png)**Download Summary Data** lets a user view the aggregated data in a view, or in the marks they’ve selected, and download that data (as a CSV). #### Explore template ![Share Customised icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_sharecustomized_icon.png)**Share Customised** lets users add their custom views to the list of “Other Views” visible on a workbook. - When this capability is denied, users won’t see the “Make visible to others” option when they create a custom view. For more information, see [Use Custom Views](https://help.tableau.com/current/pro/desktop/en-gb/customview.htm). This capability doesn’t impact the ability to share a custom view with the share dialog or by copying the link. ![Download full data icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_downloadfulldata_icon.png)**Download Full Data** lets a user view the underlying data in a view, or in the marks they’ve selected, and download that data (as a CSV). - Download Full Data is not the same thing as Full Data Query, which is used by APIs on behalf of the user. ![Web edit icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_webedit_icon.png)**Web Edit** lets a user edit the view in a browser-based authoring environment. - Creating new content in the browser or saving views from the web edit interface requires a specific combination of capabilities. For more information, see [Web Editing and Web Authoring](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#webauthor). - The Web Editing feature must also be enabled for the entire site or even users with this capability allowed won’t be able to web edit. For more information, see [Set a Site's Web Authoring Access](https://help.tableau.com/current/server/en-gb/web_author_enable.htm). ![](/tableau/current/en-gb/server-linux/en-gb/Img/perms_explain_data_icon.png)**Run Explain Data** lets a user run Explain Data on marks in editing and viewing mode. - For Explain Data to be displayed as an option when a user selects a mark in a workbook, the feature must also be enabled as a site setting. To make Explain Data available in viewing mode, the feature must also be allowed by the author from within a workbook in Explain Data settings. For more information, see [Control Access to Explain Data](https://help.tableau.com/current/pro/desktop/en-gb/explain_data_control_access.htm). ![Full Data Query](/tableau/current/en-gb/server-linux/en-gb/Img/perms_full_data_query.png) **Full Data Query** lets an API or agent access the underlying data in a workbook data source. - Full Data Query (FDQ) is not the same as Download Full Data. FDQ is a pass-through permission capability that works in conjunction with API Access or AI Access to allow an API or an agent to query the workbook’s data on behalf of the user. - FDQ guarantees user filters are enforced only when they are data source filters, not filters at the workbook or sheet level. Row-level security with user filters must be set as data source filters. - VizQL Data Service interaction with the workbook’s data requires both FDQ and API Access permission capabilities. - If FDQ isn’t allowed, Tableau Agent in Dashboards has access to summary data only and therefore limited ability to discover deeper insights and analysis. FDQ is necessary for full functionality of Tableau Agent. #### Publish template ![Download workbook and save as icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_downloadwkbksaveas_icon.png)**Download Workbook/Save a Copy** lets a user download a packaged workbook (as a TWBX). Lets a user save (publish) a copy from the web edit interface as a new workbook. ![Save icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_save_icon.png)**Overwrite** lets a user overwrite (save) the content or asset on the server. - When allowed, the user can re-publish a workbook, data source or flow, or save a workbook or flow in web authoring, thereby becoming the owner and gaining access to all permissions. After this change in ownership, the original owner’s access to the workbook is determined by their permissions just like any other user. ![API access icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_api_access_icon.png)**API Access** lets a user query the workbook’s data source with the VizQL Data Service. For more information, see [VizQL Data Service](https://help.tableau.com/current/api/vizql-data-service/en-gb/index.html). ![](/tableau/current/en-gb/server-linux/en-gb/Img/perms_ai_access.png)**AI Access** lets a user use Tableau Agent in Dashboards, including Dashboard Overview, Dashboard Insights and Dashboard Q&A. - Also grant Full Data Query so the AI tool can access more than the summary data in the vizzes. ![](/tableau/current/en-gb/server-linux/en-gb/Img/perms_metrics_icon.png)**Create/Refresh Metrics** let a user create metrics on the views in a workbook and let any metrics that a user creates from those views refresh. The legacy Metrics feature was retired in February 2024 for Tableau Cloud and in Tableau Server version 2024.2. For more information, see [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/online/en-gb/metrics_create.htm). #### Administer template ![Move icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_move_icon.png)**Move** lets a user move workbooks between projects. For more information, see [Move content](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#MoveContent). ![Delete icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_delete_icon.png)**Delete** lets a user delete the workbook. ![Set Permissions icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_setperms_icon.png)**Set Permissions** lets a user create permission rules for the workbook. ![icon for extract refresh permission capability](/tableau/current/en-gb/server-linux/en-gb/Img/perms_extract_refresh.jpg)**Refresh Extracts** lets a user trigger an extract refresh for that workbook. ### Views In a workbook that is not in a locked project and does not show sheets as tabs for navigation, views (sheets, dashboards, stories) inherit the workbook permissions at publication, but any changes to permission rules must be made on individual views. View capabilities are the same as those for workbooks, except for **Overwrite**, **Download Workbook/Save a Copy** and **Move** which are only available at the workbook level. We recommend showing navigational sheet tabs whenever possible so views continue to inherit their permissions from the workbook. ### Data Sources #### View template ![View icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_view_icon.png)**View** lets a user see the data source on the server. ![Connect icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_connect_icon.png)**Connect** lets a user connect to a data source in Tableau Desktop, Tableau Prep Builder, Ask Data or web editing. - If a workbook author embeds their credentials to a published data source in a published workbook, they are essentially embedding their **Connect** capability. Therefore, users can see the data in the workbook regardless of their own **Connect** capability for that data source. If the workbook author doesn’t embed their credentials to the published data source, the user needs their own **Connect** capability to the data source to consume the workbook. For more information, see [Data access for published Tableau data sources](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#PublishedData). - A user must have the **Connect** capability for a data source to use Ask Data and to create Ask Data lenses. For more information, see [Enable Ask Data for Sites and Data Sources](https://help.tableau.com/current/pro/desktop/en-gb/ask_data_enable.htm#ensure-that-users-can-access-a-data-source). #### Explore template ![Download data source icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_downloaddatasource_icon.png)**Download Data Source** lets a user download the data source from the server (as a TDSX). - Cube data sources, like those for Microsoft Analysis Services or Oracle Essbase connections, must be used locally. To download the published data source to Tableau Desktop, the user must have the Download capability. For more information, see [Cube Data Sources](https://help.tableau.com/current/server-linux/en-gb/datasource_cube.htm). #### Publish template ![Save icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_save_icon.png)**Overwrite** lets a user publish a data source to the server and overwrite the data source on the server. ![](/tableau/current/en-gb/server-linux/en-gb/Img/perms_api_access_icon.png)**API Access** lets a user query the data source with the VizQL Data Service. For more information, see [VizQL Data Service](https://help.tableau.com/current/api/vizql-data-service/en-gb/index.html). ![Create metric definitions icon](/tableau/current/en-gb/server-linux/en-gb/Img/perms_pulse_metric_icon.png) **Create Metric Definitions** lets a user connect to a data source to create Tableau Pulse metric definitions. For more information, see [Create Metrics with Tableau Pulse](https://help.tableau.com/current/online/en-gb/pulse_create_metrics.htm). #### Administer template ![Delete icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_delete_icon.png)**Delete** lets a user delete the data source. ![Set Permissions icon.](/tableau/current/en-gb/server-linux/en-gb/Img/perms_setperms_icon.png)**Set Permissions** lets a user create and edit permission rules for the data source. ![icon for extract refresh permission capability](/tableau/current/en-gb/server-linux/en-gb/Img/perms_extract_refresh.jpg)**Refresh Extracts** lets a user trigger an extract refresh for the data source. ### Other types of assets
 View templateExplore templatePublish templateAdminister template
FlowsView icon.View lets a user view the flow.Download data source icon.Download flow lets a user download the flow (as a TFLX).

Connect icon.Run lets a user run the flow.

Save icon.Overwrite lets a user publish a flow and overwrite the published flow.

Move icon.Move lets a user move assets between projects. For more information, see Move content.

Delete icon.Delete lets a user delete the asset.

Set Permissions icon.Set Permissions lets a user create permission rules for the asset.

 

Data RolesView icon.View lets a user view data roles.n/aSave icon.Overwrite lets a user publish data roles, overwrite published data roles and edit published data roles' synonyms.
Metrics (retired)View icon.View lets a user view metrics.n/aSave icon.Overwrite lets a user overwrite a metric and edit a metric's details.
Ask Data LensesView icon.View lets a user see the lens.n/aSave icon.Overwrite lets a user edit the lens.
Virtual ConnectionsView icon.View lets a user see the virtual connection.

Connect icon.Connect* lets a user connect to data using a virtual connection.

n/aSave icon.Overwrite lets a user edit the virtual connection.
DatabasesView icon.View lets a user see the database.n/aSave icon.Overwrite lets a user edit the metadata for the database.
TablesView icon.View lets a user see the table.n/aSave icon.Overwrite lets a user edit the metadata for the table.
CollectionsView icon.View lets a user view collections.n/an/an/a
\*By default, virtual connections have a Custom template that sets the View capability to Allowed but not the Connect capability. Be sure to set the Connect capability to Allowed so that users can connect using the virtual connection. [Skip to main content](#main-content) # Permissions Permissions determine how users can interact with content such as workbooks and data sources. Permissions are set in the permission dialog or via the [REST API](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_ref_permissions.htm). At the top of the dialog, permission rules configure capabilities for groups or users. Below, the permissions grid displays the effective permissions for users. ![Project permissions dialog showing the workbook tab](/tableau/current/en-gb/server-linux/en-gb/Img/perms_projectwrkbkperms.png "Project permissions dialog showing the workbook tab") There are several interrelated topics that discuss how to think about, set and manage permissions. The main topics are: - This topic, which covers the fundamentals, how to set permission rules for projects and other content and permission considerations for specific scenarios. - [Permission Capabilities and Templates](https://help.tableau.com/current/server-linux/en-gb/permissions_capabilities.htm), which covers in detail the various capabilities that are used to build permission rules. - [Manage Permissions with Projects](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm), which covers using projects to manage permissions and how nested and locked projects impact permissions. - [Effective permissions](https://help.tableau.com/current/server-linux/en-gb/permission_effective.htm), which covers how permission rules are evaluated and how final permissions are determined. - [Permissions, Site Roles and Licences](https://help.tableau.com/current/server-linux/en-gb/permission_license_siterole.htm), which covers how permissions interact with site roles and licences to determine what a user can do on a site. Additionally, if Data Management is licensed, permissions for external assets have additional considerations. For more information, see [Manage Permissions for External Assets](https://help.tableau.com/current/server-linux/en-gb/dm_perms_assets.htm). ## Permissions fundamentals **Projects and groups** Tableau sites use _projects_ to organise content and _groups_ to organise users. Managing permissions is easier when permission rules are: - Set at the project level instead of on individual pieces of content. - Established for groups instead of individuals. Permissions can only be established for users, groups, projects or assets that already exist. For more information about creating users and groups, creating projects and publishing content, see [Manage Users and Groups](https://help.tableau.com/current/server-linux/en-gb/users.htm), [Use Projects to Manage Content Access](https://help.tableau.com/current/server-linux/en-gb/projects.htm), and [Publish Data Sources and Workbooks](https://help.tableau.com/current/pro/desktop/en-gb/publish_overview.htm). **Capabilities and permission rules**  Permissions are made up of _capabilities_ – the ability to perform actions like view content, web edit, download data sources or delete content. _Permission rules_ establish which capabilities are allowed or denied for a user or group on an asset. For more information about capabilities and permission rule templates, see [Permission Capabilities and Templates](https://help.tableau.com/current/server-linux/en-gb/permissions_capabilities.htm). **Note:** When talking about permissions in general, it’s common to see a phrase like "a user must have the delete _permission_". This is easy to understand in a broad context. However, when working with permissions at a technical level like in this article, it’s more accurate to say "the delete _capability_". In this topic we’ll use the more precise term _capability_, but you should be aware that you might see _permission_ in other places. ![The permission dialog showing several permission rules with some capabilities allowed, denied or left unspecified](/tableau/current/en-gb/server-linux/en-gb/Img/perms_permissionrules.png) For a breakdown of the capability icons and their meanings, see [Permission Capabilities and Templates](https://help.tableau.com/current/server-linux/en-gb/permissions_capabilities.htm). The interplay between licence level, site role and potentially multiple permission rules factor into the final determination of what a user can or can’t do. For each user, this becomes their _effective permissions_. For more information, see [Effective permissions](https://help.tableau.com/current/server-linux/en-gb/permission_effective.htm).Some tasks such as creating new workbooks from a browser (web authoring) or moving content might require specific configurations of several capabilities rather than being captured in a single capability. For more information, see [Permission settings for specific scenarios](#Permissi). ## Set permissions Permission rules are set differently at the project level, at the content level or when publishing content from Tableau Desktop. **Note**: The phrase "project permissions" can have two meanings. There are the permission capabilities for a project itself – View and Publish – that control how a user can interact with a project. There is also the concept of project-level permission rules for other content types. In this article “project-level permissions” means permission rules for workbooks, data sources and the other assets that are configured in the permission dialog for a project. This is in contrast to “content-level” permission rules that can be set on a specific workbook, data source, etc. _For administrators, project owners and project leaders_ To set permissions at the project level: 1. Navigate to the project 2. Open the Actions menu (...) and click **Permissions**. ![Actions menu](/tableau/current/en-gb/server-linux/en-gb/Img/perms_actions_menu.png) The permissions dialog opens. This dialog has two main areas: permission rules at the top and the effective permissions grid below. Each content type has a tab. The image below shows the Data Sources tab. ![Project permissions dialog showing the data sources tab](/tableau/current/en-gb/server-linux/en-gb/Img/perms_project_ds_perms.png "Project permissions dialog showing the data sources tab") With a row selected at the top, the effective permissions grid populates. Use this to verify permissions. Hovering provides information about why the capability is allowed or denied for that specific user. 3. To modify an existing permission rule, select the appropriate tab for that content type and click a capability. 4. To create a rule, click + Add Group/User Rule and start typing to search for a group or user. For each tab, choose an existing template from the drop-down box or create a custom rule by clicking the capabilities. One click sets the capability to **Allowed**, two clicks sets it to **Denied** and a third click clears the selection (**Unspecified**). 6. When finished, click **Save**. - If the "None" template is selected, the button will say "Delete Rule". ### Set project permissions for all content types Remember that the permissions dialog for a project contains tabs for each type of content. **You must set permissions for each type of content at the project level, or users will be denied access to that content type**. A capability is only granted to a user if they’re expressly allowed it. Leaving a capability as Unspecified will result in it being denied. > [!TIP] > > Every time you create a permission rule at the project level, make sure you look through all the content-type tabs. ### Configure the asset permissions setting Permission rules set at the project level act as a default for content saved in that project and any nested projects it contains. Whether those project-level default rules are kept uniform or are able to be edited depends on the Asset permissions setting. This setting can be configured in two ways, either Locked or Customisable. For more information, see [Lock asset permissions](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm#LockProject). _For administrators, project leaders and content owners_ If project Asset permissions are Customisable, permissions for individual assets can be modified. The information below isn’t relevant to assets in locked projects. For more information, see [Lock asset permissions](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm#LockProject). > [!TIP] > > While it is possible to set permissions on individual assets in Customisable projects, we recommend managing permissions at the project level. ### Set permissions on assets 1. Navigate to the asset (such as a workbook, data source or flow) 2. Open the Actions menu (...) and click **Permissions**. ![Actions menu](/tableau/current/en-gb/server-linux/en-gb/Img/project_permissions_actionmenu.png) The permissions dialog opens. This dialog has two main areas: permission rules at the top and the effective permissions grid below. (Note the lack of tabs across the top – an asset-level permissions dialog has no tabs.) ![Workbook-level permissions dialog showing permission rules and effective permissions](/tableau/current/en-gb/server-linux/en-gb/Img/perms_workbookperms.png) With a row selected at the top, the effective permissions grid populates. Use this to verify permissions. Hovering over a capability square provides information about why the capability is allowed or denied for that specific user. 3. To modify an existing permission rule, click a capability. 4. To create a rule, click + Add Group/User Rule and start typing to search for a group or user. Choose an existing template from the drop-down or create a custom rule by clicking the capabilities. One click sets the capability to **Allowed**, two clicks sets it to **Denied** and a third click clears the selection (**Unspecified**). 6. When finished, click **Save**. - If the "None" template is selected, the button will say "Delete Rule". ### Set permissions on a view > [!TIP] > > While it’s possible to set view-level permissions within a workbook, we strongly recommend managing permissions at the project (or, if necessary, workbook) level. If a workbook is published with **Show Sheets as Tabs** ticked, the views in that workbook will inherit all permissions set for the workbook. The permission dialog for a view will be read-only. In some situations, it may be valuable to specify permissions on a view independently from the workbook that contains it. If the workbook is published with **Show Sheets as Tabs** unticked (sheet tabs hidden), the views will start with the workbook permissions but will be independent thereafter and can be set independently. Note that this means if the permission rules are modified for the workbook, those changes won’t be applied to the views – each view’s permissions will need to be managed individually. See [Show or Hide Sheet Tabs](#sheettabs) for more information. _For content publishers_ If project Asset permissions are Customisable, permissions for individual assets can be set when publishing from Tableau Desktop. The information below isn’t relevant for content in locked projects. For more information, see [Lock asset permissions](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm#LockProject). > [!TIP] > > While it’s possible to set permissions on individual assets in Customisable projects, we recommend managing permissions at the project level. 1. From the publishing dialog, click the Edit link for **Permissions**. If the Edit link is unavailable, permissions are locked to the project and can’t be modified except by the project owner, project leader or an administrator. 2. The Add/Edit Permissions dialog shows any existing permission rules. Click Add to add a permission rule or Edit to modify an existing permission rule 1. Select the group or user from the left pane. You can expand a group to see which users it contains. 2. Use the selector at the top of the right pane to choose an existing template, or use the radio buttons to create a custom rule. Note that effective permissions can’t be inspected from the publishing dialog. 3. When finished, click **OK** and resume publishing. **Note**: Permissions can’t be set while publishing flows from Tableau Prep Builder. To set permissions on a flow, refer to the steps for Project-level permissions or Content-level permissions. ### Clean up the All Users group By default, all users are added to an "All Users" group that has basic permissions for content. To start with a clean slate when building your own permission rules, we recommend that you delete the rule entirely or edit the rule for All Users to remove any permissions (set the permission role template to None). This helps prevent any ambiguity down the road by reducing the number of rules that applies to any given user and therefore making effective permissions easier to understand. ## Permission settings for specific scenarios Certain actions require combinations of permission capabilities and possibly site roles. The following are some common scenarios and their necessary permission configurations ### Saving, publishing and overwriting In the context of permissions, saving is essentially publishing. As such, the Overwrite and Save a Copy capabilities can only be given to users with a site role that allows publishing: Administrator, Creator or Explorer (can publish). Explorer or Viewer site roles can’t publish, overwrite or save a copy. - The Publish capability for a project allows a user to publish content into that project. - The Overwrite capability for content allows a user to save over an existing piece of content. By saving over the content, the user becomes the owner of that content. The Overwrite capability also allows users to edit minor aspects of existing pieces of content, such as the description for a metric or the synonyms for a data role. Editing the existing content in this way doesn't change the owner of the content. - The Download/Save a Copy or Save a Copy capability for content allows a user to use the Publish As... menu option to save a new copy of the content. This is usually done in conjunction with web authoring and means the user can save their modifications. - Saving a copy of a workbook is distinct from [autosave](https://help.tableau.com/current/online/en-gb/autosave.htm), which maintains any changes as a draft. #### A place to publish It’s important to note that users aren’t able to Publish or Publish As a piece of content unless they have the Publish capability for at least one project, because all content must be published into a project. Without the Publish capability at the project level, the content can’t be published. #### Overwrite and claim ownership In web editing, the **Publish** option in the File menu only appears to the content owner. If a user who isn’t the owner has the Overwrite capability (allowing them to save the content), they must use **File > Publish As...** and give the workbook the exact same name. This prompts a warning that they’re about to overwrite the existing content, which they can do. Conversely, a user with only the Save a Copy capability trying to use the same name gets an error stating they don’t have permission to overwrite the existing content. If a user who isn’t the content owner overwrites content, they become the owner, with all the permissions that entails. The original owner’s access to the content is then determined by their permissions as a user rather than the owner. **Note**: Download/Save a Copy is a joint capability for workbooks. Explorers can be given this capability but they’re only able to download the workbook, not save a copy using Publish As. Giving the capability to Explorer (can publish), Creator or Administrator site roles gives them both the ability to download workbooks _and_ save a copy using the publishing options in the File menu. ### Web Editing and Web Authoring Web editing and web authoring allows users to edit or create workbooks directly in the browser. The permission capability is called _Web Edit_ and the site setting is called _Web Authoring_. This section refers to any web-based editing or publishing action as _web authoring_. To enable this functionality, there are several requirements. - **Site setting**: Web authoring must be turned on for the entire Tableau site. See [Set a Site's Web Authoring Access](https://help.tableau.com/current/server/en-gb/web_author_enable.htm). Without this setting enabled, no users can create workbooks or edit existing workbooks from the browser, _even if they have the web edit capability_. - **User site role**: The user must have the appropriate site role. - Viewers can never web edit. - Explorers can be given the web edit capability but can’t publish. Essentially, they can use web editing to answer deeper questions based on existing content on the fly, but can’t save their edits. - Explorers (can publish) or Site Administrator Explorers can publish, but they can only use data that is already published to the site. - Creators, Site Administrator Creators and Server Administrators can publish and create data sources. - **Permission capabilities**: The user must have the necessary permission capabilities based on the desired functionality. #### Required Permission Capability Settings
Desired functionalityMinimum Site RoleWeb edit icon. Web EditDownload workbook and save as icon. Download/Save a CopySave icon. Overwrite (workbook)Save icon. Publish (project)Connect icon. Connect (data source)
Web author without being able to saveExplorerPermissions allowed icon. AllowPermissions denied icon. DenyPermissions denied icon. DenyOptionalPermissions allowed icon. Allow
Web author and save as new contentExplorer (can publish)Permissions allowed icon. AllowPermissions allowed icon. AllowPermissions denied icon. DenyPermissions allowed icon. AllowPermissions allowed icon. Allow
Web author and save (overwrite) contentExplorer (can publish)Permissions allowed icon. AllowPermissions allowed icon. AllowPermissions allowed icon. AllowPermissions allowed icon. AllowPermissions allowed icon. Allow
Web author with new data and save new contentCreatorPermissions allowed icon. AllowOptionalOptionalPermissions allowed icon. AllowOptional
Optional indicates this capability isn’t involved in the desired functionality ### Data access for published Tableau data sources Data sources published to a Tableau site can have native authentication as well as permissions within the Tableau environment. When the data source is published to the Tableau site, the publisher can choose how to [Set Credentials for Accessing Your Published Data](https://help.tableau.com/current/pro/desktop/en-gb/publishing_sharing_authentication.htm#workbook-connections-to-tableau-data-sources), which addresses how data source credentials are handled (such as requiring users to log in to a database or enter their credentials for Google Sheets). This authentication is controlled by whatever technology holds the data. This can be embedded when the data source is published, or the data source publisher can choose to prompt the user for their credentials to the data source. For more information, see [Publish a Data Source](https://help.tableau.com/current/pro/desktop/en-gb/publish_datasources.htm#publishing-steps). There are also data source capabilities that allow or deny users the ability to see (View) and connect to the published data source (Connect) in the context of Tableau. These capabilities are set like any other permissions in Tableau. When a workbook that uses a published data source is published, the author can control how the Tableau authentication behaves for someone consuming the workbook. The author sets the workbook’s access to the published data source, either as Embed password (using the author’s Connect access to the data source) or Prompt users (using the Connect access of the person viewing the workbook), which may require data source authentication as well. - When the workbook is set to **Embed password**, anyone who looks at the workbook sees the data based on the author’s access to the data source. - If the workbook is set to **Prompt users**, the Tableau-controlled access is checked for the data source. The person consuming the workbook must have the Connect capability for the published data source to see the data. If the published data source is also set to Prompt user, the viewer must also enter their credentials for the data source itself.
Workbook authentication to the data sourceData source authentication to the dataHow data access is evaluated for someone consuming the workbook
Embed passwordEmbed passwordUser sees the data as if they were the workbook author
Embed passwordPrompt userUser sees the data as if they were the workbook author. (The author is prompted for data source authentication, not the user.)
Prompt userEmbed passwordUser must have their own Connect capability to the published data source
Prompt userPrompt userUser must have their own Connect capability to the published data source and are prompted for their credentials to the underlying data
Note that this applies to consuming a workbook, not web editing. To web edit, the user must have their own Connect capability. For information on embedding passwords when you publish Tableau content such as a data source or workbook that uses a virtual connection, see [Virtual connections](https://help.tableau.com/current/server/en-gb/publishing_sharing_authentication.htm#virtual-connection-embedded-password) in the Tableau Server help. ### Allow other users to refresh extracts Users with the Explorer (can publish) site role or higher can be granted the Extract Refresh capability on workbooks or data sources. This capability provides users with the same interface as the asset owner for triggering an extract refresh. The extract must either be a published data source or, if it's local to a workbook, have embedded credentials. Because extract refreshes can be resource intensive and may already be scheduled, consider the following best practices when assigning the Extract Refresh capability: - **Infrequently used extracts**: Grant users the ability to refresh extracts on demand and consider turning off redundant or unneeded scheduled refreshes. - **Regularly used extracts**: Consider scheduling extract refreshes and limiting the Extract Refresh capability for on-demand refreshes. - Assign the extract refresh capability as a backup to prevent bottlenecks dependent on the asset owner or administrators, rather than granting these permissions broadly. ### Move content To move an item, open its Action menu (...) and click Move. Select the new project for the item, then click Move Assets. If Move is unavailable or there are no available destination projects, verify that the appropriate conditions are met: - Administrators can always move assets and projects to any location. - Project leaders and project owners can move assets and nested projects among their projects. - Note that non-administrators can’t move projects to become top-level projects - Other users can move assets only if all three of the following requirements are met: - Creator or Explorer (Can Publish) site role. - Publishing rights (View and Publish capabilities) for the destination project - Owner of the content, or – for workbooks and flows – having the Move capability. When moving a database with its tables, the user must have the Move capability for both the database _and_ its tables. For information about how permissions are handled when moving content and projects, see [Move projects and content](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm#moveproject). ### Metrics (retired 2024.2) > [!TIP] > >  The information in this section is for the legacy metrics feature, which was retired in Tableau Cloud in February 2024 and in Tableau Server version 2024.2. For information about permissions for Tableau Pulse metrics, see [Set Up Your Site for Tableau Pulse](https://help.tableau.com/current/online/en-gb/pulse_set_up.htm#permissions). **Retirement of the legacy metrics feature** Tableau's legacy metrics feature was retired in Tableau Cloud in February 2024 and in Tableau Server version 2024.2. In October 2023, Tableau retired the ability to embed legacy metrics in Tableau Cloud and in Tableau Server version 2023.3. With Tableau Pulse, we've developed an improved experience to track metrics and ask questions of your data. For more information, see [Create Metrics with Tableau Pulse](https://help.tableau.com/current/online/en-gb/pulse_create_metrics.htm) to learn about the new experience and [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/online/en-gb/metrics_create.htm) for the retired feature. Metrics are created from views in published workbooks. Users can create metrics if they: - Are a Creator or Explorer (can publish) site role - Have the **Publish** capability on a project - Have the **Create/Refresh Metric** capability for the relevant workbook For more information, see [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/server-linux/en-gb/metrics_create.htm) and [Set Up for Metrics](https://help.tableau.com/current/server-linux/en-gb/metrics_admin.htm). Because metrics are independent assets, it’s important to note that the permissions for metrics are managed independently from the view they were created from. (This is unlike data-driven alerts and subscriptions, where the content of the alert or subscription can only be seen if the user has the correct permissions for the view itself.) Although the capabilities for metrics are straightforward, the **View** capability should be considered carefully. It may be possible for a workbook with restricted permissions to be the basis for a metric with more open permissions. To protect sensitive data, you might want to deny metric creation for specific workbooks. #### Metrics display data from their owner’s perspective When you create a metric, you capture your perspective of the data from that view. This means that any users who can access your metric will see the data as it appears to you. If the data in the view is filtered based on your credentials, the data you see might be different from what other users see when they access the same view. Limit the View capability for your metric if you're concerned about exposing your perspective of the data. ### Explain Data When Explain Data is available, a user can select a mark in a view and click Run Explain Data in the mark’s Tooltip menu. A combination of settings must be enabled to make Explain Data available in editing mode and viewing mode. Requirements for authors to run Explain Data or edit Explain Data settings in editing mode: - Site setting: Availability of Explain Data set to Enable. Enabled by default. - Site role: Creator, Explorer (can publish) - Permissions: Run Explain Data capability set to Allowed. Unspecified by default. If you open a workbook (Tableau version 2022.1 or earlier) that used this permission in Tableau version 2022.2 or later, you must reset the Run Explain Data capability to Allowed. **Note:** The Download Full Data capability for a Creator or Explorer (can publish) controls whether they see the View Full Data option in Extreme Values explanations. Viewers are always denied the Download Full Data capability. However, all users can see record-level details when the Extreme Values explanation type is enabled in Explain Data settings. Requirements for all users to run Explain Data in viewing mode: - Site setting: Availability of Explain Data set to Enable. Enabled by default. - Site role: Creator, Explorer or Viewer - Permissions: Run Explain Data capability set to Allowed. Unspecified by default. If you open a workbook (Tableau version 2022.1 or earlier) that used this permission in Tableau version 2022.2 or later, you’ll need to reset the Run Explain Data capability to Allowed. ### Show or Hide Sheet Tabs In the context of published content, sheet tabs (also referred to as tabbed views) is a distinct concept from sheet tabs in Tableau Desktop. Showing and hiding sheet tabs in Tableau Desktop refers to hiding sheets in the authoring environment. For more information, see [Manage Sheets in Dashboards and Stories](https://help.tableau.com/current/pro/desktop/en-gb/environ_workbooksandsheets_sheets_hideshow.htm). Showing and hiding sheet tabs (turning tabbed views on or off) for published content refers to navigation in a published workbook. When sheet tabs are shown, published content has navigational sheet tabs along the top of each view. ![comparison of view navigation with tabbed views on and off](/tableau/current/en-gb/server-linux/en-gb/Img/tabbedviews.png) This setting also impacts how permissions function and may have security implications (see note). **Note:** It’s possible to have the View capability for a view without the View capability for the workbook or project that contains it. Normally if a user lacks the View capability for a project and workbook, they wouldn’t know those assets exist. If they have the View capability for a view, however, a user may be able to see the project and workbook name when looking at the view, such as in the navigational breadcrumb. This is expected and accepted behaviour. #### Turn off tabbed views to allow independent view permissions Although it isn’t recommended as a general practice, there are times when it can be useful to set permissions on views independently of the workbook that contains them. To do so, three conditions must be met: 1. The workbook must be published – there’s no way to set view permissions during publishing. 2. The workbook must be in a customisable project. 3. The workbook can’t show sheets as tabs (tabbed views must be hidden). When a workbook shows sheets as tabs, all views inherit the workbook permissions and any changes to the workbook permissions affect all of its views. **When a workbook in a customisable project doesn’t show tabbed views, all views assume the workbook permissions upon publication, but any subsequent changes to the workbook’s permission rules** _won’t be inherited by the views_**.** Changing the configuration of sheets as tabs on a published workbooks will also impact the permission model. Show Tabs overrides any existing view-level permissions and reinstates the workbook-level permissions for all views. Hide Tabs breaks the relationship between the workbook and its views. - To configure sheets as tabs on a published workbook, open the Actions menu (...) for the workbook and select **Tabbed Views**. Choose Show Tabs or Hide Tabs as desired. - To configure sheets as tabs during publishing, refer to [Show sheets as tabs](https://help.tableau.com/current/pro/desktop/en-gb/publish_workbooks_howto.htm#show-sheets-as-tabs). - To set view-level permissions, see [Set permissions on assets](#contentpermissions). > [!IMPORTANT] > >  In a customisable project, any modifications to the workbook-level permissions won’t be applied if navigational sheet tabs are hidden (aka tabbed views are off). Changes to permissions must be made on individual views. ### Collections For information on managing permissions in Collections, refer to [Collections](https://help.tableau.com/current/server-linux/en-gb/permissions_projects.htm#collections). ## Other articles in this section [Skip to main content](#main-content) # Permissions, Site Roles and Licences Adding a user to Tableau Cloud requires an available licence. (Users can also be added as unlicensed and configured so they will consume a licence only when they first sign in. For more information, see [Grant Licence on Sign-in](https://help.tableau.com/current/server-linux/en-gb/grant_role.htm).) For each site the user belongs to they have exactly one site role, restricted by their licence. A user has permissions for content on the site, restricted by what their site role allows. Licences and site roles apply to users. Permission capabilities apply to content. **Licences** are assigned to a user when they are created (or sign in for the first time) on the Tableau Server or Tableau Cloud site. Users are licensed as a **Creator**, **Explorer** or **Viewer**. - Licence levels are consumed based on the maximum _site role_ a user can have on that server. - Server Administrator, Site Administrator Creator and Creator site roles use a Creator licence. - Site Administrator Explorer, Explorer (can publish) and Explorer site roles use at least an Explorer licence. - Viewer site role uses at least a Viewer licence. - An unlicensed user can exist on the site, but they cannot sign in unless they were added with grant site role on sign-in. - For Tableau Server, a user consumes only one licence per server, even if they are a member of multiple sites. If a user is a member of multiple sites, their required licence level is determined by their highest site role. (For example, if a user has a Creator site role in one site and a Viewer site role in two others, they consume a Creator licence.) **Site roles** are assigned to a user for each site they are a member of. - Site roles determine the maximum capabilities a user can have in that site. (For example, a user with a site role of Viewer will never be able to download a data source even if that capability is explicitly granted to them on a specific data source.) - Site roles do not inherently grant any capabilities in and of themselves – with the exception of the administrator site roles. Administrators always have all capabilities applicable to their licence level. **Permissions** consist of _capabilities_, like the ability to save to a project, web edit a workbook, connect to a data source, etc. They apply to group or user on a specific piece of content (project, data source, workbook, view or flow). For more information, see [Permission Capabilities and Templates](https://help.tableau.com/current/server-linux/en-gb/permissions_capabilities.htm). - Permission capabilities are not given to a group or user in a vacuum but rather in the context of content. A user can have different capabilities for different content assets. - Permissions are evaluated based on the interplay of a user’s site role and the permission rules for that user or any groups they are members of. - Some actions such as web authoring might require combinations of capabilities. For more information, see [Permission settings for specific scenarios](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#Permissi). ## Site roles and their maximum capabilities These tables indicate what capabilities are available for a site role. There may be other ways for a user with a site role to perform a similar action. For example, although Viewers can’t be given the Share Customised capability to make their custom views visible to others on the workbook, they can share custom views by copying the view URL. See [General capabilities allowed with each site role](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm#site-role-capabilities-summary) for more information on what each site role can do. For more information about each capability, see [Permission Capabilities and Templates](https://help.tableau.com/current/server-linux/en-gb/permissions_capabilities.htm). ### Projects
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Save icon. PublishPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
### Workbooks
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Filter icon. FilterPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
View comments icon. View CommentsPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Add comments icon. Add CommentsPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Download full data icon. Download Image/PDFPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Download sum data icon. Download Summary DataPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Explain Data icon. Run Explain Data †Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Share Customised icon. Share CustomisedPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions denied icon.
Download full data icon. Download Full DataPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions denied icon.
Web edit icon. Web EditPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions denied icon.
Full data query icon. Full Data Query ‡Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Download workbook and save as icon. Download Workbook/Save a CopyPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions denied icon.
Save icon. OverwritePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
AI AccessPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Move icon. API AccessPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Create/Refresh Metrics §Permissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Move icon. MovePermissions allowed icon.Permissions allowed icon.*Permissions denied icon.
Delete icon. DeletePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Set Permissions icon. Set PermissionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.

icon for extract refresh permission capability Refresh Extracts

Permissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
† Prior to Tableau 2021.3, the availability of Explain Data was controlled at the server level only using the tsm configuration set option ExplainDataEnabled. In 2021.3 and later, availability of Explain Data can be controlled in site settings and in a workbook using the Run Explain Data capability. The availability of Explain Data in viewing mode is controlled in a workbook in the Explain Data Settings dialog box. ‡ Full Data Query (FDQ) can be granted to all site roles. It works together with API or AI Access to grant those tools the ability to query the full data. FDQ is not the same as Download Full Data. § Prior to Tableau 2021.3, the Create/Refresh Metrics capability was controlled by the Download Full Data capability. ### Data Sources
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Connect icon. ConnectPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Download data source icon. Download Data SourcePermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions denied icon.
Save icon. OverwritePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Create Metric Definitions icon Create Metric DefinitionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Delete icon. DeletePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Set Permissions icon. Set PermissionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
icon for extract refresh permission capability Refresh ExtractsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
### Data Roles
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Save icon. OverwritePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Move icon. MovePermissions allowed icon.Permissions allowed icon.*Permissions denied icon.
Delete icon. DeletePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Set Permissions icon. Set PermissionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
### Flows To run flows on a schedule, you must have a Data Management licence. For information about configuring flow settings, see [Create and Interact with Flows on the Web](https://help.tableau.com/current/server/en-gb/web_author_flows.htm). Explorer (can publish) license users can run flows on Tableau Server and Tableau Cloud. Starting in version 2020.4 Explorer license users cannot run flows, even if the administrator grants them the Run Flow permissions.
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Download data source icon. Download FlowPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions denied icon.
Web edit icon. Web EditPermissions allowed icon.Permissions denied icon.Permissions denied icon.Permissions denied icon.
Connect icon. Run FlowPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Save icon. OverwritePermissions allowed icon.Permissions denied icon.Permissions denied icon.Permissions denied icon.
Move icon. MovePermissions allowed icon.Permissions allowed icon.*Permissions denied icon.
Delete icon. DeletePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Set Permissions icon. Set PermissionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
### Ask Data Lenses
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Save icon. OverwritePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Move icon. MovePermissions allowed icon.Permissions allowed icon.*Permissions denied icon.
Delete icon. DeletePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Set Permissions icon. Set PermissionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
### Metrics (retired 2024.2) > [!TIP] > >  The information in this section is for the legacy metrics feature, which was retired in Tableau Cloud in February 2024 and in Tableau Server version 2024.2. For information about permissions for Tableau Pulse metrics, see [Set Up Your Site for Tableau Pulse](https://help.tableau.com/current/online/en-gb/pulse_set_up.htm#permissions). **Retirement of the legacy metrics feature** Tableau's legacy metrics feature was retired in Tableau Cloud in February 2024 and in Tableau Server version 2024.2. In October 2023, Tableau retired the ability to embed legacy metrics in Tableau Cloud and in Tableau Server version 2023.3. With Tableau Pulse, we've developed an improved experience to track metrics and ask questions of your data. For more information, see [Create Metrics with Tableau Pulse](https://help.tableau.com/current/online/en-gb/pulse_create_metrics.htm) to learn about the new experience and [Create and Troubleshoot Metrics (Retired)](https://help.tableau.com/current/online/en-gb/metrics_create.htm) for the retired feature.
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Save icon. OverwritePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Move icon. MovePermissions allowed icon.Permissions allowed icon.*Permissions denied icon.
Delete icon. DeletePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Set Permissions icon. Set PermissionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
### Collections
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
### Virtual Connections Virtual connections require a Data Management licence. See [About Data Management](https://help.tableau.com/current/server-linux/en-gb/dm_overview.htm) for details.
CapabilityCreatorExplorer (can publish)ExplorerViewer
View icon. ViewPermissions allowed icon.Permissions allowed icon.Permissions allowed icon.Permissions allowed icon.
Connect icon. ConnectPermissions allowed icon.******
Save icon. OverwritePermissions allowed icon.Permissions denied icon.Permissions denied icon.Permissions denied icon.
Move icon. MovePermissions allowed icon.Permissions allowed icon.*Permissions denied icon.
Delete icon. DeletePermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
Set Permissions icon. Set PermissionsPermissions allowed icon.Permissions allowed icon.Permissions denied icon.Permissions denied icon.
\* Although the Explorer role can be given the Move capability, they can’t have the Publish capability on a project, and therefore there is no place for them to move content to. The Move capability should therefore be considered not possible for Explorer site roles. \*\* Although the Explorer (can publish) role can be given the **Connect** capability for Virtual Connections, the ability to create a new data source of any kind, including Virtual Connections, is only available for users with a Creator site role. Similarly, Explorer and Viewer role users can't access the UI to connect to new or existing data sources. The **Connect** capability should be considered impossible for any role but Creator. [Skip to main content](#main-content) # Personal Access Tokens Personal access tokens (PATs) provide you and your Tableau Server users the ability to create long-lived authentication tokens. PATs enable you and your users to sign in to Tableau REST API without requiring hard-coded credentials (username and password) or interactive sign-in. For more information about using PATs with Tableau REST API, see [Signing In and Out (Authentication)](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_concepts_auth.htm) in the Tableau REST API Help. We recommend creating PATs for automated scripts and tasks that are created with the Tableau REST API: - **Improve security**: Personal access tokens reduce risk in the event that credentials are compromised. In the case where Tableau Server uses Active Directory or LDAP as an identity store, you can reduce the impact of credential compromise by using a personal access token for automated tasks. If a token gets compromised or is used in automation that is failing or posing a risk, you can just revoke the token. You do not need to rotate or revoke the user's credentials. - **Audit and track**: As an administrator, you can review Tableau Server logs to track when a token is used, what sessions are created from that token and the actions that are performed in those sessions. You can also determine if a session and the related tasks were performed from a session that was generated from a token or from an interactive sign-in. - **Manage automation**: A token can be created for each script or task that is run. This allows you to silo and review automation tasks across your organization. Additionally, by using tokens, password resets or metadata changes (username, email, etc.) on user accounts will not disrupt automation as it would when credentials are hard-coded into the scripts. **Notes:**  - To use PATs with tabcmd, install the compatible version of tabcmd from [https://tableau.github.io/tabcmd/](https://tableau.github.io/tabcmd/). - PATs are not used for generic client access to the Tableau Server web UI or TSM. - Configuring PATs expiration and disabling or limiting users access to PATs creation from the UI is available in Tableau Cloud only. - PATs are automatically revoked when a [user's authentication method](https://help.tableau.com/current/server-linux/en-gb/users_set_auth_type.htm) is changed. ## Understand personal access tokens When a personal access token (PAT) is created, it is hashed then stored in the repository. After the PAT is hashed and stored, the PAT secret is shown once to the user and then no longer accessible after the users dismisses the dialog. Therefore, users are instructed to copy the PAT to a safe place and to handle it as they would a password. When the PAT is used at run-time, Tableau Server compares the PAT presented by the user to the hashed value stored in the repository. If a match is made, then an authenticated session is started. In the context of authorisation, the Tableau Server session that is authenticated with a PAT has the same access and privileges as the PAT owner. **Note:** Users can't request concurrent Tableau Server sessions with a PAT. Signing in again with the same PAT, whether at the same site or a different site, will terminate the previous session and result in an authentication error. ## Server administrator impersonation Beginning with version 2021.1, you can enable Tableau Server PAT impersonation. In this scenario, PATs that are created by server administrators can be used for [user impersonation](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_concepts_auth.htm#impersonating_a_user) when using the Tableau REST API. Impersonation is useful in scenarios where you are embedding end-user-specific Tableau content within your application. Specifically, impersonation PATs allow you to build applications that query as a given user and retrieve content that the user is authorised for within Tableau Server, without hard-coding any credentials. For more information, see [Impersonating a User](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_concepts_auth.htm#impersonating_a_user) Tableau REST API Help. ### Enable Tableau Server to accept personal access tokens during impersonation sign-in requests By default, Tableau Server does not allow impersonation for server administrator PATs. You must enable the server-wide setting by running the following commands. `tsm authentication pat-impersonation enable [global options]` `tsm pending-changes apply` **Important:** After you have run the commands, all PATs created by server administrators (including pre-existing PATs) can be used for impersonation. To bulk-revoke all existing server administrator PATs, you can post the `DELETE /api/{api-version}/auth/serverAdminAccessTokens` URI. For more information, see [Impersonating a User](https://help.tableau.com/current/api/rest_api/en-gb/REST/rest_api_concepts_auth.htm#impersonating_a_user) in the Tableau REST API Help. ## Create personal access tokens Users must create their own PATs. Administrators cannot create PATs for users. Users with accounts on Tableau Server can create, manage and revoke personal access tokens (PATs) on the My Account Settings page. See [Manage Your Account Settings](https://help.tableau.com/current/pro/desktop/en-gb/useracct.htm) in the Tableau User Help for more information. **Note:** A user can have up to 10 PATs. ## Change personal access tokens expiry Personal access tokens (PATs) expire if they are not used after 15 consecutive days. If they are used more frequently than every 15 days, PATs expire after one year. After a year, new PATs must be created. Expired PATs will not display on the My Account Settings page. You can change PATs expiration period by using the [refresh\_token.absolute\_expiry\_in\_seconds](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#refresh) option with the `tsm configuration set` command. ## Revoke a personal access token As an administrator, you can also revoke a user's PAT. A user can also revoke their own personal access tokens (PATs) on the My Account Settings page using the procedure described in the [Manage Your Account](https://help.tableau.com/current/pro/desktop/en-gb/useracct.htm#pat) topic in the Tableau User Help. 1. Sign in to Tableau Server as a server or site administrator. 2. Locate the user whose PAT you want to revoke. For more information about navigating Server Admin pages and locating users, see [View, Manage or Remove Users](https://help.tableau.com/current/server-linux/en-gb/users_view.htm). 3. Click the user's name to open their profile page. 4. On the user's profile page, click the Settings tab. 5. In the Personal Access Tokens section, identify the PAT that you want to revoke and then click Revoke. 6. In the dialog box, click Delete. ## Track and monitor personal access token usage All personal access token (PAT)-related actions are logged in the [Tableau Server Application Server](https://help.tableau.com/current/server-linux/en-gb/server_process_application-server.htm) (vizportal) service. To locate PAT-related activities, filter log entries containing the string, `RefreshTokenService`. A PAT is stored in this format :`Token Guid: `, where the TokenID is a base64 encoded string. The secret value is not included in the logs. For example: `Token Guid: 49P+CxmARY6A2GHxyvHHAA== (e3d3fe0b-1980-458e-80d8-61f1caf1c700)`. The following is an example snippet of two log entries. The first entry shows how a user is mapped to a PAT. The second entry shows a refresh event for the same PAT: RefreshTokenService - Issued refresh token to the following user: jsmith. Token Guid: 49P+CxmARY6A2GHxyvHHAA== (e3d3fe0b-1980-458e-80d8-61f1caf1c700) RefreshTokenService - Redeemed refresh token. Token Guid: 49P+CxmARY6A2GHxyvHHAA== (e3d3fe0b-1980-458e-80d8-61f1caf1c700) To locate key operations, filter log entries containing the string, `OAuthController`. [Skip to main content](#main-content) # Plan Your Deployment The articles in this section provide information on planning a Tableau Server deployment. In addition to consulting the articles in this section, we recommend that you review [Tableau Blueprint](https://help.tableau.com/current/blueprint/en-gb/bp_overview.htm) as a first step in your planning workflow. Tableau Blueprint is a step-by-step guide to becoming a data-driven organisation. ## Validating your server deployment plan Before you commit to installing a new Tableau Server deployment in your organisation, be sure to carefully evaluate your options. For most organisations, Tableau Cloud will provide a more reliable, performant and cost-effective analytics solution when compared to self-hosting Tableau Server. For information about the viability of Tableau Cloud for your organisation, review this blog post, [Should I move my analytics to the cloud?](https://www.tableau.com/en-gb/blog/should-i-move-my-analytics-cloud) Already running Tableau Server and want to migrate to Tableau Cloud? See [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). ## Other articles in this section [Skip to main content](#main-content) # Planning a Site Before you add users and content to a site, we recommend that you plan the following aspects of the site. - [Projects](#projects) - [Users and groups](#users-and-groups) - [Site roles and permissions](#site-roles-and-permissions) - [Extract refresh schedules](#extract-refresh-schedules) The subsequent sections go over these site components, assuming that you are familiar with **Note:** This article and section apply only to self-managed Tableau Server deployments on-premises or in the cloud. If you use Tableau Cloud, see [Manage Content Access](https://help.tableau.com/current/online/en-gb/permissions_section.htm "Go to Tableau Cloud Help (opens new browser tab)"). ## Projects You can create projects on a site, which act as containers in which you can organise related content assets (such as data sources and workbooks). For example, you might set up a project to contain all of the certified data sources and workbooks your organisation uses for mission-critical decisions. Or you might set up projects by department. Projects are also useful for managing permissions. Once you know how your users need to access content, it’s usually easier to create projects based on those the type of content, and maintain permissions at the project level. Every site has a default project named **Default**. When you create projects, the new projects get their initial set of permissions from the default project. In effect, the default project is a template for new projects. As we explain in related articles, for most environments, we recommend that you use the Default project only as a permissions template, and not as a container for published content. For more information, see [Use Projects to Manage Content Access](https://help.tableau.com/current/server-linux/en-gb/projects.htm). ## Users and groups Any user who will publish content or access published content on a site must be able to sign in to the site. If the user already has an account on the server, you’ll need to add that user to the appropriate site. You can add a user to more than one site as well. If the user doesn’t already exist, you need to create a user account. Either way, make a list of the users who will need to be able to sign in to each site. **Note:** The server licence might restrict how many users you can have, or what level of access they can have. Check with the server administrator to make sure that you'll be able to have an account for all your users. In general, we recommend that you create groups on the server and then add users to the groups. This helps to make permissions much easier to manage. You can assign permissions on groups, to give those permissions to all users in the group. (See the next section.) A typical strategy is to create groups for users who use content in similar ways. For example, you might create a group named SalesWBPublishers for all the users in the Sales department who publish workbooks, and a separate group named SalesDSPublishers for people in Sales who publish data sources. Each of these sets of users needs its own set of capabilities, so it makes sense to have a group for each for these needs. ## Site roles and permissions Each user has a _site role_ that determines the maximum permissions that they can have on the site. As part of your site planning, you need to decide each user’s site role. A user with a site role that’s too restrictive might not be able to do the work they need. By the same token, a security best practice is to limit users’ capabilities to only those that they need to do their work. This is referred to as following the principle of _least privilege_. You or a site administrator you delegate this task to must also determine the permissions a user needs to work with content. Each content asset (workbook, data source, project) supports a set of _capabilities_. For example, you can **View** or **Add Comments** to a workbook. Before a user can perform tasks on a workbook, their permissions must allow those capabilities. A recommended practice is to sketch out a mapping of permissions to users outside of Tableau before you try to set this up on the server. Permissions determine what a user can do _within the context of the site role_. A user whose site role is **Viewer** can never publish to the site, regardless of the permissions you grant them. A user whose site role is **Creator** can publish a workbook to the site, but only if that user has permission to save and view workbooks. ## Extract refresh schedules If users publish data sources or workbooks that include extracts, you usually want to make sure that the extracts are refreshed, so that they contain the latest data. Users can manually refresh an extract, but this isn’t always a good idea if the extract is large, and the refresh takes a long time. Instead, you can set up schedules for when an extract should be refreshed. Another planning task for a site administrator, therefore, is to think about when extracts should be refreshed and to work out schedules. [Skip to main content](#main-content) # Post Installation Tasks After you install Tableau Server, you can perform other configuration tasks, such as reviewing the security hardening checklist, configuring server event notifications, configuring the data cache for views and configuring server crash reporting. ## Other articles in this section [Skip to main content](#main-content) # Post Upgrade Cleanup As discussed in [How Tableau Server Upgrade Works](https://help.tableau.com/current/server-linux/en-gb/server-upgrade-how-upgrade-works.htm), the Tableau Server upgrade process installs a new version side-by-side with your existing version. Now that upgrade is complete and verified, you can remove the older version of Tableau Server to free up disk space. This is an optional step. ## Uninstall previous version Use this procedure to free up disk space by uninstalling packages for previous Tableau Server versions after you have upgraded to a newer version of Tableau Server. 1. Look at the environment.bash file to confirm which version of Tableau Server is currently in use. At a command prompt, type: grep TABLEAU\_SERVER\_DATA\_DIR\_VERSION /etc/opt/tableau/tableau\_server/environment.bash 2. Determine which versions of the Tableau Server package are installed on your computer. - On RHEL-like distributions, including CentOS, run the following command: yum list installed tableau-server"\*" - On Ubuntu, run the following command: apt list --installed tableau-server"\*" 3. Remove the Tableau Server package with your package manager. - On RHEL-like distributions, including CentOS, run the following command: sudo yum remove tableau-server-.x86\_64 - On Ubuntu, run the following commands: ``` sudo apt-get purge tableau-server- ``` [Skip to main content](#main-content) # Pre-built Administrative Views Administrative views are powerful monitoring tools that can help you optimise Tableau Server and better understand how your users are interacting with Tableau content. The administrative views listed to the right are included with Tableau Server. Click on the link for a view to learn more about how to interpret and act on the information the view provides. To create your own administrative view, see [Create Custom Administrative Views](https://help.tableau.com/current/server-linux/en-gb/adminview_postgres.htm). ## Other articles in this section [Skip to main content](#main-content) # Pre-Installation Checklist – Tableau Resource Monitoring Tool The following topic provides prerequisites for installing Tableau Resource Monitoring Tool. It also describes the operating system permissions required for the service accounts used. ## Machine, Network and Account Requirements **Note:** Resource Monitoring Tool (RMT) server and agent are not Federal Information Processing Standard (FIPS) 140-2 compliant and will not function properly on operating systems running with FIPS mode enabled. Complete the following prerequisites before installing the Tableau Resource Monitoring Tool. 1. Make sure you have administrative privileges for all computers that will run the Resource Monitoring Tool. This includes the computer running the RMT Server, and all the Tableau Server nodes in the installation you will be monitoring with Resource Monitoring Tool. 2. Open port 5672 to inbound TCP traffic on the computer running the RMT Server The Resource Monitoring Tool Agent application sends the data that it collects through port 5672, so the machine where the RMT Server is installed will need to allow inbound TCP traffic on that port. 3. Open the following ports: - Open port 80 to inbound TCP traffic on the computer running the RMT Server This is the port on which the RMT Server will host the web interface. Note that we can change the port number during installation if there is a third-party service already using it. To make the web interface accessible from outside the RMT Server, this port will need to be opened. - Open port 443 to inbound TCP traffic on the computer running the Resource Monitoring Tool RMT Server. This is the port on which connections come from the Agent when testing the connection to the RMT Server. - Open port 5672 and 5671 (TLS connections) to outbound TCP traffic on all Agent nodes. The Agent application sends the data that it collects to the RMT Server using this port. - Open port 80 to outbound TCP traffic on all Agent computers. Periodically, the Agent will make requests to the RMT Server web interface. - Open port 443 to outbound TCP traffic on all Agent computers. This is the port on which the Agent tests its connection to the RMT Server. For more information on ports and communications, see [Tableau Resource Monitoring Tool Communication Ports](https://help.tableau.com/current/server-linux/en-gb/rmt-ports-comms.htm). 4. Verify that all Agent computers can contact the RMT Server. The web interface hosted by the RMT Server is bound to a specific hostname or IP address during the setup process. It will only answer requests sent to that specific hostname. For example, if the RMT Server is configured to be hosted at http://RMTServer/ but the Agents can only contact the RMT Server through http://myrmtserver.myserver.com/ then the requests will not go through. 5. Gather credentials for a Tableau Server Administrator account. Resource Monitoring Tool will use the Tableau Server web API to collect information about the content, so it will need credentials for a user that is a Tableau server administrator and can access all sites, projects, etc. We recommend creating one dedicated to Resource Monitoring Tool, but it can be any user that is a Tableau Server administrator. **Note:** RMT does not support SAML but can work with a Server installation that uses SAML SSO. To do this, you need a local identity store configured for Tableau Server, and you must set a password locally for the administrator account that will be used by RMT. 6. Enable access to the Tableau Server repository database. **This is required starting in version 2022.3**. Resource Monitoring Tool accesses the repository database directly for performance reasons. For this to work, access to the repository must be enabled, with a password set for the "readonly" database user. For details, see [Enable access to the Tableau Server repository](https://help.tableau.com/current/server-linux/en-gb/perf_collect_server_repo.htm#Get). 7. If you want to use SSL connections between Resource Monitoring Tool and Tableau Server Repository, make sure Tableau Server is configured to use SSL for internal Postgres connections. For more information, see [Configure SSL for Internal Postgres Communication](https://help.tableau.com/current/server-linux/en-gb/ssl_config_postgres.htm). The Resource Monitoring Tool allows you to use either the certificate file (`server.crt`) or thumbprint for the SSL connections. The certificate file for the Postgres database is installed to: `/var/opt/tableau/tableau_server/data/tabsvc/config/pgsql_/security` If you plan to use the certificate file (`server.crt`), copy the certificate file generated by Tableau Server for internal Postgres SSL connections, to the machine where you plan to install the RMT Server. Make sure that the Operating System trusts the certificate. 8. Confirm that the REST API is enabled on Tableau Server (this is the default). Use the `tsm configuration get -k api.server.enabled` command to do this. A return value of `true` means the REST API is enabled. To enable the REST API, use the `tsm configuration set` command. For more information, see [api.server.enabled](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#rest_api_enabled). 9. Review the size of Tableau Server logs. Once Agent Server is installed and configured, the Resource Monitoring Tool processes relevant historical data from Tableau Server logs before data is displayed. If there is a large amount of historical log data, it may take a while to process the information. This might result in a delay of processing newer events on the Server. If you are concerned about the delay, and not having historical information does not concern you, you can do the following to clean up the existing files: - [Remove Unneeded Files](https://help.tableau.com/current/server-linux/en-gb/maintenance_cleanup.htm), and consider [Log File Snapshots (Archive Logs)](https://help.tableau.com/current/server-linux/en-gb/logs_archive.htm) before you remove log files. **Note:** Performance data like CPU usage and memory usage are not gathered using historical log data and are collected after Agent is installed and configured so cleaning up historical data does not affect performance data. 10. (Optional) Gather connection information for an SMTP server that the RMT Server can access. If you want email notifications, you need to provide the RMT Server with the server name, username and password (if any), and the port number for an SMTP Server that it can use to send the email, as well as the TLS version. Currently, TLS version 1.2 is required, but TLS version 1.3 is also supported. If you want to use TLS version 1.3, make sure you have Open SSL 1.1.1f or greater on the machine where RMT Server will be installed. For more information, see [Email notifications](https://help.tableau.com/current/server-linux/en-gb/rmt-config-configGui.htm#smtp_config) 11. (optional) Verify operating system service account permissions for non-default accounts. You may need to do this if your organisation has specific security requirements that require you to use already-defined system accounts or users. You can find details on the default permissions here: [Default Installation Permissions – Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-install-perms.htm) ### Who can do this To do all the steps described above you need be an admin on the machine that you are installing Resource Monitoring Tool, and be a Tableau Server Administrator. [Skip to main content](#main-content) # Preparing for Upgrade Follow the flow chart and the linked topics to prepare your environment for Tableau Server upgrade. ![A flowchart that outlines the steps to complete a Tableau Server upgrade.](/tableau/current/en-gb/server-linux/en-gb/Img/upgrade_prepare.png) ## Release Navigator **Note:** Use [Tableau Release Navigator](https://public.tableau.com/shared/YZ62TW35F?:display_count=n&:origin=viz_share_link) to search for features in Tableau Desktop, Server and Prep, or to see a full list of features when comparing your current version of Tableau to a later one. ## Other articles in this section [Skip to main content](#main-content) # Provision and Authenticate Users Using Identity Pools Introduced in Tableau Server version 2023.1, identity pools are an identity management tool that uses provisioning and authentication information to enable user access to Tableau Server. Identity pools enable a more centralised and flexible identity management workflow built on the [Identity Service](https://help.tableau.com/current/server-linux/en-gb/identity_migration.htm) for the storage and management of user identities in Tableau Server. Identity pools do not replace the user provisioning and authentication configurations you make using Tableau Services Manager (TSM) during Tableau Server setup. Instead, identity pools are designed to complement and support additional user provisioning and authentication options you might need in your organisation, particularly for organisations where TSM is configured with Active Directory (AD) or Lightweight Directory Access Protocol (LDAP). Identity pools add an alternative method, after Tableau Server setup, that supports Tableau Server administrators to add users, who are often external users, partners or contractors, to your Tableau Server deployment. Identity pools are optimised for the following use cases: - **External users:** A large enterprise organisation who doesn't want to add external users to their internal AD. For example, suppose your organisation has two types of employees: regular employees and contract employees. Your regular employees are provisioned through Active Directory (AD) with SAML authentication that is managed through your IdP, Okta. Your contract employees consist of users who are typically assigned temporary group membership or are a part of another organisation who provisions users outside of AD and authenticates separately. Identity pools can enable you to add Tableau Server users who are external to your AD. - **Multiple identity stores:** An organisation hosting SaaS applications that sources users from multiple identity stores. For example, suppose your organisation shares Tableau content to multiple external organisations from a single site. You can separate these users using different identity pools configured with local identity stores to more easily identify and manage the users from each organisation. - **Security boundaries between internal organisations:** An organisation of multiple acquired child organisations with distinct security boundaries. For example, you can add users from the newly added organisation to an identity pool configured with a local identity store to workaround the complexities associated with combining identity stores. ## What are identity pools? An identity pool has three main components: an identity store to provision users, OpenID Connect (OIDC) authentication and assigned users. - **Identity store:** The [identity store](https://help.tableau.com/current/server-linux/en-gb/plan_identity_store.htm) that you source or provision your users can be a local identity store or an external identity store. - If a local identity store, an identity pool can be configured to use a new local identity store or an existing local identity store. **Note:** Local authentication is not supported. - If an external identity store, an identity pool can only use the same external identity store (AD or LDAP) that you configured in TSM during Tableau Server setup. You can't configure an identity pool to use a different external identity store. The provisioning and authentication configurations you make in TSM during Tableau Server setup is referred to as the default or “initial pool (TSM configured)”. - **Authentication:** The only supported authentication method for an identity pool is [OIDC](https://help.tableau.com/current/server-linux/en-gb/security_auth.htm#oidc). - **Users:** In order for users to sign in to Tableau Server, they must either be sourced from the initial pool (TSM configured) or be a member of at least one identity pool. ## When to use identity pools As a Tableau Server administrator, you can use an identity pool to segment your users into identity cohorts based on where your users are provisioned from and how those users authenticate into Tableau Server. Though the identity store and authentication configurations you make in TSM during Tableau Server setup, also referred to as the initial pool (TSM configured), remains unchanged, identity pools are configurable from Tableau Server. **Note:** Identity pools are currently available for server-level configuration only. Identity pools can’t be scoped to a site. ## More about identity pools ### Initial pool (TSM configured) versus identity pools As noted above, the combination of provisioning and authentication configurations you make in TSM during Tableau Server setup is referred to as the “initial pool (TSM configured)”. The initial pool (TSM configured) is a required component of the Tableau Server setup process and cannot be modified. An identity pool, however, is optional and you can create as many identity pools as needed from Tableau Server directly. ### Identity pools impact on users' sign-in experience By default, when no identity pools are created for Tableau Server, there is no change to how your users navigate to the Tableau Server landing page and sign in to Tableau Server. When one or more identity pools are created, the Tableau Server landing page displays multiple sign-in options. The primary sign-in option is displayed at the top of the page and is the way your users that belong to the initial pool (TSM configured) can sign in. Below the primary sign-in option are the secondary sign-in options. Each option represents an identity pool, displayed in the order they were created. Users assigned to those pools must sign in using the option for the identity pool they belong to. To help guide your users to the correct sign-in option, consider adding a description to the identity pool when creating one. **Note:** All users will see all pools that are configured for your Tableau Server, regardless of their pool membership. ### Usernames and identifiers in Tableau A username is the information that represents the system user. An identifier is used to supplement the username information and can be used by external identity stores as alternatives to usernames. In Tableau, a username is an immutable value that is used to sign in to Tableau and identifiers are mutable values used in Tableau’s identity structure as a way to match users to their usernames. Identifiers enable Tableau to be more flexible because they can deviate from the username. If there are changes to the username in the external identity store, Tableau Server administrators can update the identifier to ensure users are matched to the correct usernames. When you add an existing user to an identity pool, you might expect the ability to set an identifier. For example, if an existing user belongs to an identity pool configured with a local identity store and you want to add them to an identity pool configured with an AD identity store, we ask you to provide the username to search for identifiers associated with that user. On the other hand, if an existing user belongs to an identity pool configured with an AD identity store and you want to add them to an identity pool configured with a local identity store, we ask you to provide an optional identifier. An exception to this is if you want to add a user to the initial pool (TSM configured) that's configured with a local identity store and local authentication. You will be unable to set an identifier for that user. ## Other articles in this section [Skip to main content](#main-content) # Publish a Virtual Connection and Set Permissions When you work in the virtual connection editor, your changes are automatically saved as a draft while you work. To share a new virtual connection with other users, you need to publish it. ## Save a draft You can manually save a draft of the connection by clicking the save icon ![Save icon](/tableau/current/en-gb/server-linux/en-gb/Img/ipa_Save_16px_medium.png) in the toolbar or by selecting File \> Save Draft from the menu. When editing a published virtual connection, the connection stays available to users in its current published state. You can save your updates as a draft while you work on the connection in the editor. To share the updates to the virtual connection with other users, you need to publish it. ### Draft in progress If you close the editor while updating a published virtual connection, the next time you open the connection in the editor within seven days, you have the option of continuing to make edits to the existing draft, starting a new draft or opening the connection in its current published state by clicking Cancel. ![Draft Already Exists message](/tableau/current/en-gb/server-linux/en-gb/Img/dm_vconn_draft_exists.png) To return to a draft version of an unpublished virtual connection, you need to manually save the URL of the draft **before** you close the editor. You can use the URL to open the draft in the editor the next time you want to work on the connection within seven days. For example: `https://yourserver.test.com/published-connection-editor/?draft=d1789edc-5d9f-40ae-988d-9fc879f37a98` ## Publish the connection To publish a new connection: 1. Click the Publish button in the upper right corner of the editor or select File \> Publish from the menu. 2. In the Publish dialog box: 1. Type a name in the Name field. 2. Select a project to save the connection to. 3. Click Publish. To publish an updated connection, click the Publish button in the upper right corner of the editor or select File > Publish from the menu. ## Set permissions on a virtual connection After you publish a virtual connection, you need to set the permissions so that others can use it. By default, all users can View the connection – in other words, see it listed under Virtual Connections in Tableau – but unless you set the Connect capability to Allowed, only you and administrators can use the virtual connection. For more information on the Connect capability, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_overview.htm#VConnOverviewPermissions). To set permissions: 1. Navigate to the virtual connection. 2. Open the Actions menu (...) and click Permissions. 3. Tick the box under the Connect icon so that connect is allowed for all users. ![Connect Allowed permission tick box](/tableau/current/en-gb/server-linux/en-gb/Img/dm_vconn_connect_allowed.png) > [!TIP] > > You can add additional rules if you want to grant the permission only to certain users or groups. 4. Click Save. For more information about permissions on Tableau content, see [Permissions](https://help.tableau.com/current/server-linux/en-gb/permissions.htm#contentlevel-permissions). For information on embedding passwords when you publish Tableau content such as a data source or workbook that uses a virtual connection, see [Virtual connections](https://help.tableau.com/current/server/en-gb/publishing_sharing_authentication.htm#virtual-connection-embedded-password) in the Tableau Server help. ## Who can do this To publish a virtual connection or set permissions, you must - have credentials to the database that the virtual connection connects to, and - be a server or site administrator, or a Creator. ## Next step After you publish a virtual connection and set its permissions, you can [Use a Virtual Connection](https://help.tableau.com/current/server-linux/en-gb/dm_vconn_use.htm). [Skip to main content](#main-content) # Publish Views to Salesforce Bring your views from Tableau Cloud or Tableau Server right to your Salesforce ecosystem by publishing views to a CRM Analytics app or Salesforce Lightning page. For more information, see [Publish Tableau Content to CRM Analytics](https://help.salesforce.com/s/articleView?id=sf.bi_publish_tableau_online.htm&language=en_US&type=5) in Salesforce Help. ## Prerequisites See a complete list of [prerequisites](https://help.salesforce.com/s/articleView?id=sf.bi_tableauviews_setup_prereq.htm&type=5) in Salesforce Help, including required licences, account setup, and permissions. ## Publish a view to Salesforce Select one or more views, including dashboards, sheets and stories. Then, choose a destination from a list of CRM Analytics apps to which you have access to edit or manage. 1. Select the view that you want to publish to Salesforce. **Note**: You can select a maximum of 25 views at a time to publish to Salesforce. 3. For Actions, select Publish to Salesforce. 4. Select the Salesforce credentials that you want to use for publishing. 5. Select the destination app that you want to publish to. You can only see apps that you can edit or manage with the signed-in Salesforce user. ![Publish to Salesforce dialog showing the list of apps that you can choose from.](/tableau/current/en-gb/server-linux/en-gb/Img/publish-to-salesforce-dialog.png) 9. Click Publish. ## Who can see the published view in Salesforce? When you publish a view to Salesforce, anyone with access to the selected CRM Analytics app or Lightning page can see that the content exists. However, only those signed in with existing Tableau permissions can see the view. [Skip to main content](#main-content) # Quick Help [Connect to Data](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_connect.htm) [About the Virtual Connection Editor](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_about_editor.htm) [Add Tables to the Connection](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_add_tables.htm) [About Data Policies](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_about_data_policy.htm) [Create and Test Data Policies](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_create_data_policy.htm) Not finding what you need? Go online to see [all Tableau help](https://www.tableau.com/en-gb/support/help) [Skip to main content](#main-content) - [Get Started](https://help.tableau.com/current/server-linux/en-gb/admin.htm) ![Add description of the image](/tableau/current/en-gb/server-linux/en-gb/Img/getstarted_36px_43x43.png) Learn what Tableau Server can do - [Quick Help](https://help.tableau.com/current/server-linux/en-gb/ipa_vconn_start.htm) ![Add description of the image](/tableau/current/en-gb/server-linux/en-gb/Img/producthelp_36px.png) Get help with what you're doing now - [Release Highlights](https://help.tableau.com/current/server-linux/en-gb/ipa_server_whats_new.htm) ![Add description of the image](/tableau/current/en-gb/server-linux/en-gb/Img/whatsnew_36px.png) Learn what's new in Tableau Server - [Training](https://trailhead.salesforce.com/en/search?keywords=tableau+server) ![Add description of the image](/tableau/current/en-gb/server-linux/en-gb/Img/training_36px.png) Video training and tutorials - [Troubleshoot](https://help.tableau.com/current/server-linux/en-gb/trouble.htm) ![Add description of the image](/tableau/current/en-gb/server-linux/en-gb/Img/troubleshoot_36px.png) Troubleshooting and Support articles ## Other articles in this section [Skip to main content](#main-content) # Quick Start: Permissions A permission rule is a set of capabilities that defines what access a group or user has to a piece of content, such as a workbook, project or data source. To efficiently manage permissions: - Remove permissions from the All Users group before creating more groups - Configure template permissions on the **Default** project before creating more projects - Manage permissions for groups, not users - Manage permissions for projects, not content ## Create group permission rules for projects For details on the following steps, see the [main article on permissions](https://help.tableau.com/current/server/en-gb/permissions.htm). This Quick Start guide is an overview and doesn't capture many important details about permissions and permission management. ### 1\. Add users to groups A common way to manage permissions is to use groups for users who should have the same permissions. 1. If necessary, add users to the site. 2. Within a site, select **Groups**. 3. If necessary, create a group using the **Add Group** option. 4. Click a group name to open it, then use the **Add Users** button to add existing users to the group. ### 2\. Access project-level permissions settings The Explore page displays the content on the site. Use the dropdown to display Top-Level Projects or All Projects (to see nested projects as well). Navigate to the project you want to update, open the Actions (…) menu, then select Permissions. ![A dropdown menu with options to share, add to collections, rename, move, change permissions, change owner and delete the project.](/tableau/current/en-gb/server-linux/en-gb/Img/project_permissions_actionmenu.png) ### 3\. Create a permissions rule Select **\+ Add Group/User Rule** to create a new permission rule. The template drop-down offers a shortcut to apply an initial set of capabilities for the group. If desired, customise the permission rule by clicking a capability to set it to **Allowed** or **Denied**, or leave it **Unspecified**. ![Permission levels for project.](/tableau/current/en-gb/server-linux/en-gb/Img/permissionrule.jpg) Whether a user can set permissions is based on their site role, content ownership and how their Set Permissions capability is set. ### 4\. View a user’s effective permissions After you save the permissions rule for the group, you can view the effective permissions for each user. Click a group name to see the group's users and their permissions. Hover over a capability box to see a tooltip with details on whether a capability is allowed or denied. #### Site roles A user’s site role determines the maximum permissions allowed for that user. - Server and site administrators can access all site content and take actions on it. - Owners always get full access to the content they’ve published. When the parent project permissions aren’t locked, owners can change permissions for their published content. For more information, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm) and [Use Projects to Manage Content Access](https://help.tableau.com/current/server-linux/en-gb/projects.htm). #### Permission logic - **Denied** takes precedence over **Allowed**. - **Unspecified** results in **Denied** if no other permissions are specified. - Specific user permissions on content take precedence over group permissions on content. In other words, user permissions trump group permissions. For more information, see [Effective permissions](https://help.tableau.com/current/server-linux/en-gb/permission_effective.htm). [Skip to main content](#main-content) # Quick Start: Refresh Extracts on a Schedule For published workbooks that connect to data extracts, you can set up the server to refresh the extracts on a recurring schedule, so all workbooks connected to them always show the most up-to-date data. To schedule refreshes you need to have administrator or data owner permissions. **Note:** This topic applies to extracts published to Tableau Server. For Tableau Cloud, how you refresh extracts depends on the underlying data they connect to. For more information, see [Keep Data Fresh](https://help.tableau.com/current/online/en-gb/to_keep_data_fresh.htm). ## 1 Set up a schedule on the server Sign in to the server, go to the Schedules page, and click **New Schedule**. ![List of scheduled extract refreshes.](/tableau/current/en-gb/server-linux/en-gb/Img/refresh_extracts1.png) Tableau provides a few refresh schedules. You create additional schedules you need. ## 2 Enable scheduled extract refreshes and failure emails As a server or site administrator, you can enable schedules, as well as email notification when extract refreshes fail. Select Settings, and then go to the General page. - Under Email Notification, select Send email to data source and workbook owners when scheduled refreshes fail. - Under Embedded Credentials, select both tick boxes to allow publishers to embed credentials and schedule extract refreshes. ![General settings with tick boxes for email notifications and embedded credentials.](/tableau/current/en-gb/server-linux/en-gb/Img/refresh_extracts2.png) ## 3 Publish a workbook with an extract In Tableau Desktop, select **Server** > **Publish Workbook**. Sign in to the server if you’re not already. In the **Publish Workbook to Tableau Server** dialog box, click **Schedules & Authentication**. Under **Extract Schedule**, select the schedule from the list. ![A form for publishing a workbook to Tableau Server with options to set a refresh schedule.](/tableau/current/en-gb/server-linux/en-gb/Img/refresh_extracts3.png) If the original data requires authentication, you will also need to select how you want people to access it. ## 4 Monitor refresh performance You can monitor scheduled tasks by viewing **Background Tasks for Extracts** on the **Status** page. ![A list of server status items, including background tasks for extracts.](/tableau/current/en-gb/server-linux/en-gb/Img/refresh_extracts4.png) [Skip to main content](#main-content) # Quick Start: Use Login-based Licence Management with Tableau Server You can use the following steps to get up and running quickly with login-based licence management. ### Step 1: Install Tableau Server To use login-based licence management to activate Tableau, you must install Tableau Server version 2021.1 or later, and activate it with a product key that is enabled for login-based licence management. Login-based licence management enables Tableau Creator users to sign-in and activate Tableau Desktop or Tableau Prep Builder. **Note:** If your Tableau Server product key is not enabled for login-based licence management in the Tableau Customer Portal, contact your Tableau account representative. The following topics provide additional information about installing Tableau Server and using login-based licence management to activate Tableau Desktop and Tableau Prep Builder: - [Install and Configure Tableau Server](https://help.tableau.com/current/server-linux/en-gb/install_config_top.htm) - [Get Started with Tableau Server on Linux](https://help.tableau.com/current/server-linux/en-gb/get_started_server.htm) To change login-based licence management configuration settings, or to disable login-based licence management on Tableau Server, see [Change login-based licence management settings](https://help.tableau.com/current/server-linux/en-gb/license_lblm.htm#Step_2). ### Step 2: Add authorised users to Tableau Server After you activate Tableau Server, you can [add authorised users](https://help.tableau.com/current/server-linux/en-gb/users_add.htm). When adding users, you’ll need to select the site role for that user, for example Creator, Explorer or Site Administrator. Users who will activate Tableau Desktop or Tableau Prep Builder must be assigned to a Creator site role (Creator or Site Administrator Creator). For more information on site roles, see [Set Users’ Site Roles](https://help.tableau.com/current/server-linux/en-gb/users_site_roles.htm). ### Step 3: Activate Tableau Desktop or Tableau Prep Builder A Creator user must download and install Tableau Desktop and/or Tableau Prep Builder on their computer before they can be activated using login-based licence management. For more information, see [Install Tableau Desktop or Tableau Prep Builder from the User Interface](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_download_and_install.htm). 1. Launch Tableau Desktop or Tableau Prep Builder. If this is the first time you’ve launched Tableau Desktop or Tableau Prep Builder, you have the option of starting a 14-day free trial for Tableau Prep Builder, downloading Tableau Desktop Free Edition or activating Tableau. 2. Click Activate Tableau. 3. On the Activate Tableau screen, click Activate by signing in to a server, to sign in and activate Tableau using login-based licence management. 4. When prompted, specify the URL for Tableau Server to sign in using your credentials. 5. After you are authenticated by Tableau Server, Tableau Desktop and/or Tableau Prep Builder are activated and ready to use. [Skip to main content](#main-content) # Re-Configure Tableau Server Repository Your Tableau Server may be configured to use either a local or an external repository. This topic describes the steps needed to reconfigure your existing Tableau Server with one of the following options: - Move a local Tableau Server Repository to an external repository and configure your Tableau Server to use an external repository. - Move the external Tableau Server Repository to your local Tableau Server installation, and configure your Tableau Server to use the local repository. This means that the Tableau Server repository will be installed on the same machine or machines as your Tableau Server. **Note:** Tableau Server must be stopped before you can safely move the repository. To learn more about these options and external repositories, see [Tableau Server External Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo.htm). ## Move local repository to external Tableau Server must be stopped to migrate from a local repository to an external repository. Use the following steps to move Tableau Server Repository from local to external: 1. Activate the Advanced Management product key on your Tableau Server if it is not already activated. Advanced Management licence is required to configure your Tableau Server with an external repository. 2. Configure Amazon PostgreSQL DB instance to use as the external repository. 1. Amazon: [Create a PostgreSQL DB Instance on AWS Relational Database Service (RDS)](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_RDS.htm). 2. Azure Database: [Create an Azure Database PostgreSQL Instance on Azure](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_Azure.htm). 3. Google Cloud Database: [Create a PostgreSQL Instance on Google Cloud](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_gcp.htm) 4. Stand-Alone PostgreSQL Instance: [Create a PostgreSQL Database as a Stand-Alone Installation](https://help.tableau.com/current/server-linux/en-gb/server_external_repo_configure_standalone.htm). 3. Create a json file with the following configuration settings: { "flavor":"", "masterUsername":"", "masterPassword":"", "host":"", "port":5432 } - **flavour:** This is the type of external service you are going to use for Tableau Server repository. - Amazon RDS: use “rds” - Azure Database: use "azure" - Google Cloud Database: use "gcp" - Stand-alone PostgreSQL database: use "generic" - **masterUsername:** - **Amazon RDS:** Use "rails" for the username. This is the user that you specified when creating the RDS instance. > [!IMPORTANT] > > You must use "rails" as the masterUsername. This is required for the external repository to work with Tableau Server properly. - **Azure Database, Google Cloud instance and Stand-alone PostgreSQL instance:** Choose a username that meets your requirements. We recommend using **postgres** as the Administrator username. If you choose to use a different username, make sure that the username does not start with **pg** or **azure**. The username also cannot be **rails**, **tblwgadmin**, **tableau**, **readonly** or **tbladminviews**. When choosing a username other than ‘postgres’, after each backup restore, the suffix ‘\_bak’ will be added to the initial ‘postgres’ system user in the repository, such as ‘postgres\_bak’. - **masterPassword:** This is the same password you specified when creating the PostgreSQL database instance. - **host:** This is the endpoint of your PostgreSQL database instance. - **port:** The database port you specified when creating the PostgreSQL DB instance. 4. Run the following TSM CLI command to configure Tableau Server to use external repository: `tsm topology external-services repository enable -f file.json -c .pem` **Note:** The SSL certificate is needed only if you are using encrypted connections between Tableau Server and the External Repository. If this is not a requirement for you, you must specify the `--no-ssl` option. In this case, the tsm command would look like this: `tsm topology external-services repository enable -f .json --no-ssl` The json file is the file that you created in the first step with the configuration settings. The SSL certificate file can be downloaded as described in [this topic](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.SSL). Running the above command will migrate the local repository to your new external PostgreSQL DB instance. ## Move external repository to local Tableau Server must be stopped to migrate from an external repository to a local repository. Use the following steps to move Tableau Server Repository from external location to the local installation: 1. Run the following TSM CLI command to move the repository to a specific node: `tsm topology external-services repository disable -n nodeN` 2. If you are setting up HA for your repository, install the repository on a second node. For more information, see [Example: Install and Configure a Three-Node HA Cluster](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_install_3node.htm). **Note:** To install the repository on a second node, you must run the command described in the previous step first. The first step migrates your external repository to the local repository. You can then install the repository on a second node on your Tableau Server. ## Who can do this Tableau Server Administrators can reconfigure external repository. You will also need to have access to create PostgreSQL database instance on Amazon or Azure. [Skip to main content](#main-content) # Recommended Baseline Configurations Determining the topology (number of nodes, number of Tableau Server processes) of your Tableau Server deployment requires you to consider these variables: your environment, sources of data and management to provide self-service data access, workload and usage. However you may not have enough information about these variables when you deploy Tableau Server for the first time. This topic describes three baseline architectures that can be used as starting points for your Tableau Server installations. ## Validating your server deployment plan Before you commit to installing a new Tableau Server deployment in your organisation, be sure to carefully evaluate your options. For most organisations, Tableau Cloud will provide a more reliable, performant and cost-effective analytics solution when compared to self-hosting Tableau Server. For information about the viability of Tableau Cloud for your organisation, review this blog post, [Should I move my analytics to the cloud?](https://www.tableau.com/en-gb/blog/should-i-move-my-analytics-cloud) Already running Tableau Server and want to migrate to Tableau Cloud? See [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-gb/emg_intro.htm). ## Hardware recommendations for production installations The hardware recommendations for Tableau Server production installations below are based on the hardware that the Tableau team uses to test Tableau Server scalability. We suggest that you use these recommendations as starting points for your production deployments. For Proof of Concept (PoC) deployments, we recommend you use Tableau Cloud. For more information, see [Minimum installation hardware requirements](https://help.tableau.com/current/server-linux/en-gb/server_hardware_min.htm#MinReq).

Install Type

Processor

CPU

RAM

Free Disk Space

Single node

  • 64-bit (x86_64 chipsets)
  • Must support SSE4.2 and POPCNT instruction sets
  • ARM-based processors are not supported

8 cores (16 vCPUs), 2.0 GHz or higher

Version 2022.3 and later:

  • 128 GB

Version 2021.4.0 to version 2022.1.x:

  • 64 GB

Version 2021.3.x and earlier:

  • 32 GB

500 GB – 1 TB

If you are adding Tableau Prep Conductor to your Tableau Server installation, we recommend you add a second node and dedicate this to running Tableau Server Prep Conductor. This node should have a minimum of 4 cores (8 vCPUs) and 16 GB of RAM.
Recommended swap memory: The square root of the system RAM or 8 GB, whichever is larger.

Multi-node and enterprise deployments

Contact Tableau for technical guidance.

Nodes must meet or exceed the minimum hardware recommendations, except:

  • Dedicated Backgrounder nodes running up to two instances of backgrounder, where 4 cores may be acceptable.

  • Dedicated node for Tableau Prep Conductor: Minimum of 4 cores (8 vCPUs) and 16 GB of RAM.

  • Dedicated node for Independent Gateway: Minimum of 2 cores (4 vCPUs), 8 GB of RAM and 100 GB of free disk space.

**Note:** For deployments using virtual machines, Tableau recommends dedicated CPU affinity. If you are running Tableau Server in a virtual environment, use your VM host's best practices for vCPU allocation in relation to the number of physical CPU cores on the VM host. Typically 2 vCPUs = 1 physical core for Tableau Server. For example, for AWS installations, the 4 core minimum recommendation is equivalent of 8 AWS vCPUs. Similarly, follow the best practices provided by your virtual infrastructure provider to make sure Tableau Server has access to the appropriate compute, memory and data resources. If you are installing Tableau Server in a virtual environment or a cloud-based deployment, see [Virtual Machines and Public Cloud Deployments](#virtual_and_cloud) section later in this topic. ### Estimating Disk Space There are several factors that affect disk space requirements, including whether or not you will be publishing extracts, flows and the number of workbooks to Tableau Server. For more information see [Disk Space Requirements](https://help.tableau.com/current/server-linux/en-gb/requ_diskspace.htm). ## Baseline Configurations - [Single Server Installations](#single_server) - [Two Node Installation – Specialised for extract heavy environments](#two_node_extract_heavy) - [Two Node Installation – Specialised for flow environments](#two-node_flow_heavy) - [High Availability Installations (HA)](#ha) ### Single Server Installations #### Recommendations We recommend using a single machine to install Tableau Server for initial deployments with limited usage and which are not mission critical. Single Server installations can also be expanded to multi-node installation as your workloads grow. Here are some instances when a single server installation may not be right for you: - If your system is considered mission critical and needs to be highly available. High availability is about minimising the system downtime. It is achieved by eliminating single points of failure, and having a reliable failover mechanism. Tableau Server requires a minimum of a three-node configuration to provide redundancy and eliminate the single points of failure. This is one of the primary reasons to move to a multi-node configuration. - If you have a lot of active users and a lot of extract refreshes, the two types of loads may be competing for the same resources on the machine. In such a scenario, a single server configuration may not be the right option as you may need additional specialised nodes to isolate the difference workloads. **Note:** Active users represent the interactive, concurrent requests made to Tableau Server, including consuming dashboards on a laptop or mobile device, web authoring and connecting to and querying Published Data Sources. #### Server Configuration ![Topology diagram for a single-node Tableau Server](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_onenode1.png) - Stand-alone single server node with all the processes installed on one machine. - Below are the number of processes for an 8 core machine: - VizQL Server: Set to 2 instances (Number of physical cores divided by 4, up to a maximum of 4). - Backgrounder, Cache Server and Data Server: Set to 2 instances. - All other processes, only one instance of the process is installed, regardless of hardware. **Note:** One instance of Tableau Prep Conductor is automatically configured with Backgrounder, when you have the Data Management Product Key activated on your server. However, it is recommended that you have a dedicated node for Tableau Prep Conductor. If you plan to have flows on your Tableau Server, we recommend you use two or more nodes and dedicate one of these nodes to run only flows. The example configuration described above does not include Tableau Prep Conductor since it is a single node server. ## Multi-Node Installations Running Tableau Server on more than one machine is called a multi-node installation, or a cluster. There are various reasons why you might want to have a multi-node installation. For example, you may have heavy extract environments which can mean dedicating some hardware resources to Backgrounder process. For systems that have high availability requirements, you need a multi-node environment that has at least three nodes. ### Two Node Installation – Specialised for extract heavy environments #### Recommendations Start with a two node configuration when the following conditions apply to you: - **Extract heavy environment:** Majority of your data sources are extracts. Having just a few, extremely large extracts could put your deployment in this category, as would having very many small extracts. - **Frequent extract refreshes:** Refreshing an extract is a CPU-intensive task. Deployments where extracts are frequently refreshed (for example, several times a day during business hours) are often helped by more emphasis on the background process, which handles refresh tasks. **Important:** Two-node configurations do not meet the minimum requirements for high availability. If you need a system that is highly available, see [High Availability Installations (HA)](#ha). #### Server Configuration ![Topology diagram of a two-node Tableau Server with isolated Backgrounder process on the second node](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_twonode_backgrounder_tsm1.png) - On the initial node, install all the processes except for the backgrounder. Below is the number of instances of the processes for an 8 core machine: - VizQL Server: Set to 2 instances. (default calculation: Number of physical cores divided by 4, up to a maximum of 4). - Cache Server, and Data Server: Set to 2 instances. One instance of Ask Data is automatically configured on the node that has Data Server. - Index and Search Server: Index and Search Server memory can be configured to improve performance by using the `indexandsearchserver.vmopts` TSM configuration option. For more information, see [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). - All other processes, only one instance of the process is installed, regardless of hardware. One instance of Interactive Microservice Container is installed on a node that has Application Server enabled, and one instance of Non-Interactive Microservice Container is installed on a node that has Backgrounder enabled. - Isolate backgrounder on the additional node. To calculate the minimum number of backgrounder processes to run on this node, divide the computer’s total number of physical cores by 4. To calculate the maximum number, divide the computer's total physical cores by 2. In the example shown above, both the nodes are on machines with 8 physical cores. When you install the backgrounder, Tableau Server automatically installs one instance of the Data Engine. **Note:** This configuration assumes that you don't have Tableau Prep Conductor enabled on your Tableau Server. If you are using Tableau Prep Conductor to schedule and manage flows, and have a heavy extract environment, or need to support flows with heavy workloads, we recommend that you have at least 3 nodes and use the 3-node configuration described later in this topic. As you monitor and gather data about the performance and usage, you can fine tune and configure the number of instances for these processes. For example, on the node dedicated to running backgrounder you can initially set the number of backgrounders to the recommended minimum (total number of cores divided by four), and increase the number of backgrounder processes later if you find that: - Extract refreshes are taking a long time to complete - Subscriptions and alerts are not completing on time For dedicated backgrounder or Tableau Prep Conductor nodes, depending on workload and system resources, you may need to increase or decrease the number of backgrounder or Tableau Prep Conductor instances. Adjusting the number of these instances can impact node performance in positive and negative ways. You are responsible for carefully monitoring RAM and CPU resources and other aspects of Tableau Server to determine the best configuration for your environment and workloads. The recommendations outlined here are starting points designed to handle the average use case and may not be suited to your specific needs. If you need further assistance, contact [Tableau Professional Services](https://www.tableau.com/en-gb/resources/teams-organizations/professional-services). For more information on performance tuning, see [Performance Tuning](https://help.tableau.com/current/server-linux/en-gb/perf_tuning.htm) topic. ### Two Node Installation – Specialised for flow environments Start with a two node configuration if you are planning to publish, schedule and manage flows on your Tableau Server. **Important:** Two-node configurations do not meet the minimum requirements for high availability. If you need a system that is highly available, see [High Availability Installations (HA)](#ha). #### Server Configuration ![Two-node topology diagram of Tableau Server with dedicated Prep Conductor second node. ](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_twonode_prepconductor1.png) - On the initial node, install all the processes. Below is the number of instances of the processes for an 8 core machine: - VizQL Server: Set to 2 instances. (default calculation: Number of physical cores divided by 4, up to a maximum of 4). - Cache Server, and Data Server: Set to 2 instances. One instance of Ask Data is automatically configured on the node that has Data Server. - Backgrounder: Minimum 2, maximum 4. The diagram above shows the maximum for an 8 core node. Tableau Prep Conductor is automatically configured on the node where you have backgrounder installed. On the initial node, set the Backgrounder node role to run all job types including flows using the `tsm topology set-node-role` tsm configuration. For more information, see [tsm topology set-node-role](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMSetNodeRole) - Index and Search Server: Index and Search Server memory can be configured to improve performance by using the `indexandsearchserver.vmopts` TSM configuration option. For more information, see [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). - All other processes, only one instance of the process is installed, regardless of hardware. One instance of Interactive Microservice Container is installed on a node that has Application Server enabled, and one instance of Non-Interactive Microservice Container is installed on a node that has Backgrounder enabled. - On the second node, configure backgrounder and Tableau Prep Conductor to support flows. - Isolate the backgrounder on the additional node and configure it to run only flows. Use the `tsm topology set-node-role` tsm command to configure this setting. For more information, see [tsm topology set-node-role](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMSetNodeRole) **Note:** If you have a heavy extract environment and you schedule and manage flows on your server, or need to support flows with heavy workflows, we recommend that you use the 3-node configuration described below. ### High Availability Installations (HA) #### Recommendations A highly available (HA) installation of Tableau Server is a distributed installation that is designed to maximise the availability of Tableau Server. High availability means that the system is available with minimal downtime. To build in redundancy for HA related items such as repository, file redundancy and failover, you need a **minimum of three nodes**. The tolerance for downtime will vary for each organisation and depends on the SLAs you have established in your organisation. High availability is achieved by eliminating single points of failure and detecting failures and setting up a reliable failover system. HA in Tableau Server is mainly achieved by: - File redundancy with multiple File Store/Data Engine instances. - Active/Passive Repository across two nodes. - Index and Search Server across all the three nodes. - Adding an external load balancer to make sure your installation is robust to Gateway failures and make sure that requests only get routed to functioning Gateway processes. #### Server Configuration Three-node configuration: ![Basic three-node high-availability topology for Tableau Server](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_ha_tsm1.png) - To build in redundancy, you need to add additional nodes to host instances of the repository and File Store/Data Engine processes. You can add instances of other processes, including multiple instances of a process on a node. - To build redundancy for the type of backgrounder jobs, have one of the nodes (initial node in this example) run all type of jobs. Backgrounders run all types of jobs by default. On one of the additional nodes, set the backgrounder to run only flows, and the other additional node to run all jobs except for flows. - The successful functioning of Tableau Server depends on a properly functioning Coordination Service. For server installations of three or more nodes, we recommend that you add additional instances of the Coordination Service by deploying a new Coordination Service ensemble. This provides redundancy and improved availability in the event that one instance of the Coordination Service has problems. For more information, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). - Index and Search Server memory is added to all three nodes for redundancy and can be configured to improve performance by using the `indexandsearchserver.vmopts` TSM configuration option. For more information, see [indexandsearchserver.vmopts](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm#indexandsearchserver). - To reduce the system’s vulnerability, you can run multiple gateways and additional instances of some of the server processes. The fewest number of computers required to achieve this configuration is three. - The repository has also been moved from the initial node to one of the additional nodes, and a second, passive instance has been added to the other new node. - One instance of Interactive Microservice Container is installed on a node that has Application Server enabled, and one instance of Non-Interactive Microservice Container is installed on a node that has Backgrounder enabled. For dedicated backgrounder or Tableau Prep Conductor nodes, depending on workload and system resources, you may need to increase or decrease the number of backgrounder or Tableau Prep Conductor instances. Adjusting the number of these instances on the node can impact node performance in positive and negative ways. You are responsible for carefully monitoring RAM and CPU resources, as well as other aspects of Tableau Server to determine the best configuration for your environment and workloads. The recommendations outlined here are starting points designed to handle the average use case and may not be suited to your specific needs. If you need further assistance, contact [Tableau Professional Services](https://www.tableau.com/en-gb/resources/teams-organizations/professional-services). **NOTE:** In certain circumstances you may want to limit the processes running on your initial node. Reasons for doing this include wanting to run as few processes as possible on the node to limit processing requests on the node. You might also remove licensed Tableau Server processes from the node if you have a core-based licence and do not want the initial node cores to count against your core use. For more information on Tableau Server licensed processes, see [Tableau Server Processes](https://help.tableau.com/current/server-linux/en-gb/processes.htm) from the node. ### Virtual Machines and Public Cloud Deployments In general, the considerations and recommendations described in this topic apply to virtual environment and cloud deployments. If you are running Tableau Server in a virtual environment, use your VM host's best practices for vCPU allocation in relation to the number of physical CPU cores on the VM host. Typically 2 vCPUs = 1 physical core for Tableau Server. For example, for AWS installations, the 4 core minimum recommendation is equivalent of 8 AWS vCPUs. For more information on cloud-based deployments, see: - [Self-Host Tableau Server in a Public Cloud Service](https://help.tableau.com/current/server-linux/en-gb/ts_tableau_server_cloud_overview.htm). ## Beyond Baseline Configurations If you are planning a system whose configuration is beyond the limits documented here, contact [Tableau Professional Services](https://www.tableau.com/en-gb/support/consulting). #### High VizQL Peak Usage Considerations For optimal performance for Tableau Server we recommend isolating the repository on a dedicated node in your deployment. If you have an Advanced Management licence, consider running the repository as an external database. If your organisation has a peak load of more than 1000 VizQL sessions per hour, we also recommend running Tableau Server on Linux. In this scenario, VizQL sessions refer to any user actions that display or generate visualisations from Tableau Server. For more information, see [Tableau Server External Repository](https://help.tableau.com/current/server-linux/en-gb/server_external_repo.htm). #### Disaster Recovery Considerations While HA configurations reduce downtime, you may still encounter failures in case of a disaster or hardware failures. In addition to the above considerations, you should evaluate the importance of disaster recovery in your organisation and plan for a deployment that helps you meet your disaster recovery goals and objectives. When planning for disaster recovery (DR) in your Tableau environment, there are two main factors to consider: - Recovery Time Objective (RTO), a measure of how much downtime your business can accept before a full recovery. - Influences how often you restore your backups to an alternative cluster and the amount of infrastructure investment. - Recovery Point Objective (RPO), a measure of how much data loss your business can tolerate. - Influences how often you will need to take backups of your system. - For Tableau Server the RPO cannot be shorter than the time it takes to complete a full backup of your server. The diagram below illustrates how to plan for a range of RTO requirements: ![A diagram displays guidance to plan for recovery time objective requirements.](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_dr.png) #### Tableau Server Scalability These baseline configurations may not be enough as your needs change and grow, and you might need to scale your Tableau Server beyond these configurations. Like other enterprise platforms, Tableau Server scales up by adding processor, memory and disk space to existing nodes, and it scales out by adding more nodes to a cluster. However, scalability and performance are heavily dependent on external systems and user activity. The configuration of your Tableau Server can be different depending on your requirements and variables: ![A diagram illustrates the factors that influence database performance, including environment, data, workload and usage.](/tableau/current/en-gb/server-linux/en-gb/Img/baseline_config_variables.png) For more information on Tableau Server scalability and the variables affecting scalability, see [Tableau Server Scalability whitepaper](https://www.tableau.com/en-gb/learn/whitepapers/tableau-server-scalability-10-5). [Skip to main content](#main-content) # Reconfigure File Store Your Tableau Server may be configured with a locally running File Store or an External File Store. This topic describes the steps needed to reconfigure your existing Tableau Server: - [Reconfigure your Tableau Server to use External File Store](#reconfigure-external). This will move your File Store to a network share. - [Reconfigure your Tableau Server to run File Store locally](#reconfigure-local). This will move your File Store from the external storage to your Tableau Server. - [Configure your Tableau Server to use a different storage](#configure-new-storage). An example of this might be when your current network share is at the end of life and you need to use a new network share with new hardware. ## Reconfigure Tableau Server with External File Store ### Prerequisites - Tableau Server should be version 2020.1 or later. - You must have a network share to use as the external storage. Use **NFS** for Linux installations. Storage and network considerations: See [Performance Considerations for External File Store](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_performance.htm). Estimating the storage size: You must take into account the amount of storage needed for publishing and refreshing extracts. In addition, you must also take into account the repository backup size unless you specifically choose the option to do your repository backup separately as described in the [Option 2: Back up repository separately](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_backup_restore.htm#backup-repository-separately) topic. - Extracts: - Consider the number of extracts that will be published to Tableau Server and the size of each extract. Test your needs by publishing several extracts to Tableau Server and then checking the disk space used. You can use this amount of disk space to help you figure out how many extracts will be published to Tableau Server over time as well as how each existing extract will increase in size. - Consider the space needed by the temp directory during an extract refresh. The temp directory, which is where an extract is stored to during a refresh, may require up to three times the final file size of the extract. - Repository Backup: - To obtain an estimate of the repository data, check the size of `/pgsql/data/base` directory. - To obtain the exact size of the repository data, open the backup file and use the size of the `workgroup.pg_dump` file. - Tableau Server should have a valid and activated Advanced Management licence. ### Step 1: Upgrade Tableau Server Upgrade your Tableau Server to 2020.1 or later: [Upgrading Tableau Server (Linux)](https://help.tableau.com/current/server-linux/en-gb/sug_plan.htm) . If your Tableau Server is already on version 2020.1 or later, you can skip this step. ### Step 2: Activate the Advanced Management licence 1. [View Server Licences](https://help.tableau.com/current/server-linux/en-gb/view_licenses.htm) to make sure you have a Advanced Management licence activated on your Tableau Server. 2. If you don't have a Advanced Managementon your Tableau Server, use the following tsm command to activate the licence. Provide the Advanced Management key as your product key: `tsm licenses activate -k ` ### Step 3: Configure File Store to use an external storage After completing the upgrade and verifying the licences, configure Tableau Server with External File Store. This will move any existing data from your local File Store to the external storage of your choice. 1. Configure a network share. On the File Server: - Create and share a directory to host the files - On all the Tableau Server nodes, map the network share or use a UNC path. 2. Create a tableau directory in your network share and give full access to **tableau user** and **tableau group**. The tableau user will need read and write permissions to the directory on the network share. We recommend calling the directory **tableau**. 3. Enable the network share feature using the following tsm commands: tsm topology external-services storage enable --network-share /mnt//tableau The setup program automatically creates the following directory structure and will move the data from the local File Store to the external storage. The local File Stores will be automatically decommissioned during this process. **Extracts and workbook revisions:** _tableau\_data tabsvc/dataengine/extracts_ _tableau\_data/tabsvc/dataengine/revisions_ **PostgreSQL data backups:** _tableau\_data/tabsvc/repository\_backup_ **Note:** This directory will be created the first time you create a backup. ## Reconfigure Tableau Server to use local File Store 1. Stop Tableau Server by running the following command: `tsm stop` 2. Run the following command to move the File Store data from the external storage to Tableau Server: `tsm topology external-services storage disable –fsn ` 3. Start Tableau Server by running the following command: `tsm start` For a Tableau Server cluster, specify the nodes where File Store should be installed. The data is copied to the first node specified in the command and then replicated to the other nodes. **Note:** When moving File Store from external to local, make sure Data Engine process is not installed by itself on a separate node and is installed along with one of the core services which include File Store, Application Server (VizPortal), VizQL Server, Data Server and Backgrounder. Typically, when you install Tableau Server Data Engine installation happens automatically and is installed on the nodes that have one or more of the core services. However, when you configure Tableau Server to use external storage, you will have the ability to manually install Data Engine on a node on its own without co-locating with the core processes. If you currently have a Data Engine process installed on a separate node, you can either choose to install File Store on that node or remove Data Engine from that node, before running the disable command. If you install File Store on a node that currently does not have Data Engine installed, Data Engine will be added automatically. If you have a Data Engine only node when you run the disable command, it will result in an error. ## Configure Tableau Server to use a different external storage 1. Configure the new network share. On the File Server: 1. Create and share a directory to host the files. 2. On all the Tableau Server nodes, map the network share or use a UNC path. 2. Create a tableau directory in your network share and give full access to **tableau user** and **tableau group**. The tableau user will need read and write permissions to the directory on the network share. We recommend calling the directory **tableau**. 3. Stop Tableau Server by running the following command: `tsm stop` 4. Run the following command to configure Tableau Server to use the new network share: tsm topology external-services storage switch-share --network-share /mnt//tableau 5. Start Tableau Server by running the following command: `tsm start` ## Who can do this Tableau Server Administrators can move File Store locations. In addition, you will need access to the external storage that is used for the External File Store. [Skip to main content](#main-content) # Recover from a Node Failure If there is a problem with one of your server nodes, and you have redundant processes on your other nodes, Tableau Server can continue to run. Your users can continue to sign in and see and use their content after the node fails, but they may experience performance degradation as a result of the failed node. In addition, your server will be at greater risk of catastrophic failure if the bad node was running processes that are no longer redundant. This means you should make a point of removing the bad node and replacing it as soon as you can. If your node fails for reasons that are recoverable in a relatively short amount of time (for example, a hardware failure you can correct), you should first attempt to bring the node back up without using the procedure below. **Note:** If the failed node is your _initial_ node, there are larger implications for your Tableau Server installations. For example, for Prep Web Authoring to work, the cache server must be running on the lowest-numbered node where it is set up. If the cache server is configured on nodes 2, 3 and 4, but it is down on node 2, Prep Web Authoring will not function. For details on how to recover from the failure of an initial node, see [Recover from an Initial Node Failure](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_init_node_fail.htm). For details on Prep Web Authoring not working when the cache server is down, see [Cache Server not running in the lowest-numbered node](https://help.salesforce.com/s/articleView?id=003962421&type=1) in the Knowledge Base. ## General requirements The 2020.1 version of Tableau Server has been updated with improved recovery functionality. The procedure in this topic has been written for Tableau Server 2020.1. If you are attempting to recover a failed node from an earlier version of Tableau Server, you must follow the procedure for that version. To view archived versions of Tableau help, see [Tableau Help](https://www.tableau.com/en-gb/support/help). - There is at least one functioning node with an instance of the File Store on it. - There is at least one functioning node with a Repository on it. - There is at least one functioning node with the Client File Service (CFS) on it. **Note:** This operation includes steps that you may need to perform using the TSM command line. ## Removing a Failed Node To remove a failed node from a Tableau Server cluster: 1. Identify the failed node: tsm status -v The failed node will have a status of "ERROR" and processes will show as unavailable. The node ID is listed as "node" with the machine name following it. For example, `node3`: node3: WIN-OO915SFASVH Status: ERROR 'Tableau Server Gateway 0' status is unavailable. 2. Stop Tableau Server. The remainder of this procedure includes some commands with the `--ignore-node-status` option. When a command is run with the `--ignore-node-status` option, the command will run without consideration of the status of the specified node. To use `--ignore-node-status` , specify the failed node: `tsm stop --ignore-node-status ` For example, if node3 has failed, run the command as follows: tsm stop --ignore-node-status node3 3. Determine any key processes that were running on the node: - If the failed node was running the Messaging Service, you need to remove the service from the failed node and add it to a working node. Remove it from the failed node: tsm topology set-process -pr activemqserver -n -c 0 Add it to a working node: tsm topology set-process -pr activemqserver -n -c 1 - If the failed node was running the Coordination Service, you need to deploy a new ensemble before you can remove the node: tsm topology deploy-coordination-service -n --ignore-node-status - If the failed node was running the only instance of Client File Service (CFS), you need to configure a new instance of CFS on a working node. We recommend that you configure CFS on every node that is running the Coordination Service. For detail steps, see [Configure Client File Service](https://help.tableau.com/current/server-linux/en-gb/distrib_cfs.htm). - If the failed node was running File Store, you need to force-decommission File Store and remove it before you can remove the node. tsm topology filestore decommission -n --delete-filestore Apply pending changes (use `--ignore-warnings` option if you had a three node cluster and a single Coordination Service instance): tsm pending-changes apply --ignore-warnings --ignore-node-status 4. If the cluster was a three-node cluster and there are repositories on the remaining working nodes, you need to either remove one repository, or add a new node. This is because you are limited to a single instance of the repository when you have fewer than three nodes. To remove one repository: tsm topology set-process -n -pr pgsql -c 0 5. Run the command to remove the failed node. This adds the change to the pending changes list: tsm topology remove-nodes -n 6. Verify the node removal is pending: tsm pending-changes list 7. Apply pending changes to remove the node: tsm pending-changes apply 8. Start Tableau Server: tsm start 9. Install Tableau Server on a new node and configure the node with the processes that the old, failed node had been running. 10. On a fresh computer, or on your original computer after completely removing Tableau, install Tableau using your original Setup program and a bootstrap file generated from the initial node. For details on how to do this, see [Install and Configure Additional Nodes](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm). A best practice is to configure any processes you lost when the original node failed, to make sure your cluster is fully redundant. 11. You should also redeploy a new Coordination Service ensemble, once you have your nodes up and running the way you want. For details, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). 12. Finally, if you have not already done this, add an instance of CFS to every node that is running the Coordination Service. For more information, see [Configure Client File Service](https://help.tableau.com/current/server-linux/en-gb/distrib_cfs.htm) [Skip to main content](#main-content) # Recover from an Initial Node Failure The first computer you install Tableau on, the "initial node", has some unique characteristics. Three processes run only on the initial node and cannot be moved to any other node except in a failure situation, the Licence Service (Licence Manager), Activation Service and TSM Controller (Administration Controller). Tableau Server includes a script that automates moving these processes to one of your other existing nodes so you can get complete access back to TSM and keep Tableau Server running. Two other processes are initially included on the initial node but can be added or moved to additional nodes, the CFS (Client File Service) and the Coordination Service. Depending on how your installation was configured with CFS and Coordination Service, you may also need to take steps to redeploy these. ## If an initial node fails If there is a problem with the initial node and you have redundant processes on your other nodes, there is no guarantee that Tableau Server will continue to run. - Tableau Server can continue to run for up to 72 hours after an initial node failure, before the lack of the licensing service impacts other processes. If so, your users may be able to continue to sign in and see and use their content after the initial node fails, but you will not be able to reconfigure Tableau Server because you won't have access to the Administration Controller. - If you are running a version of Tableau Server 2021.4.2 (or older) that is configured for ATR, then problems with the initial node will render all server functionality unavailable. This is true whether the node has a problem or if you intentionally stop it (for instance, to do a system-level patch). Even when configured with redundant processes, _it is possible that Tableau Server may not continue to function after the initial node fails_. This is true even when an installation is configured for high availability. This means you should make a point of moving the two unique processes to another of your running nodes as soon as possible. If your initial node fails for reasons that are recoverable in a relatively short amount of time (for example, a hardware failure you can correct), you should first attempt to bring the node back up without using the procedure below. **Note:** The steps in this article require server downtime and can be disruptive, and should only be used in the event of a catastrophic failure of the initial node. If you are unable to get your initial node running again, use the following steps to move key TSM processes to another node in your cluster. ## General requirements The 2021.1 version of Tableau Server has been updated with improved recovery functionality. The procedure in this topic has been written for Tableau Server 2021.1. If you are attempting to recover a failed node from an earlier version of Tableau Server, you must follow the procedure for that version. To view archived versions of Tableau help, see [Tableau Help](https://www.tableau.com/en-gb/support/help). - As part of the process for setting up a multi-node Tableau Server installation you should have deployed a Coordination Service ensemble. The process below assumes there was a Coordination Ensemble deployed before there was a problem with the initial node. For more information about deploying a Coordination Service ensemble, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). - This process assumes that you have configured instances of Client File Service (CFS) on every node that is running the Coordination Service. If you did not add additional instances of CFS, your only instance was on the initial node, and you will need to add at least one instance of CFS to another node. You will also need to repopulate CFS. Tableau Server requires at least one instance of the CFS. For more information, see [Configure Client File Service](https://help.tableau.com/current/server-linux/en-gb/distrib_cfs.htm) and [Tableau Server Client File Service](https://help.tableau.com/current/server-linux/en-gb/server_process_cfs.htm). **Note:** This operation includes steps that you may need to perform using the TSM command line. ## Move the TSM Controller, Licence Service and Activation Service to another node If there is a problem with the initial node, the TSM Controller, the Licensing Service, and Activation Service need to be started on another node. Follow these steps to use the provided `move-tsm-controller` script and get the TSM Controller, Licensing Service and Activation Service working on another node. 1. On a node that is still working, run the Controller recovery script. At a terminal prompt on a working node, type the following command: `sudo /opt/tableau/tableau_server/packages/scripts./move-tsm-controller -n ` where "nodeID" is the ID for the node you want the TSM Controller to run on. For example: `sudo /opt/tableau/tableau_server/packages/scripts.10400.17.0802.1319/move-tsm-controller -n node2` 2. Verify the Administration Controller is running on the node: `tsm status -v` 3. Stop Tableau Server. The remainder of this procedure includes some commands with the `--ignore-node-status` option. When a command is run with the `--ignore-node-status` option, the command will run without consideration of the status of the specified node. To use `--ignore-node-status` , specify the failed node: `tsm stop --ignore-node-status ` For example, if node1 has failed, run the command as follows: `tsm stop --ignore-node-status node1` 4. Add the Licence Service to the node: `tsm topology set-process -pr licenseservice -n -c 1` 5. Remove the old Licence Service from the original node, where "nodeID" is the initial node that has failed: `tsm topology set-process -pr licenseservice -n  -c 0` 6. If you are running one of the following versions - 2023.3.0 or later - 2023.1.3 or later - 2022.3.7 or later - 2022.1.15 or later _or_ you are running an earlier version and using ATR, add the Activation Service to the new node: `tsm topology set-process -pr activationservice -n  -c 1` 7. If you are running one of these versions or later - 2023.3.0 or later - 2023.1.3 or later - 2022.3.7 or later - 2022.1.15 or later _or_ you are running an earlier version and using ATR, remove the old Activation Service from the original node, where "nodeID" is the initial node that has failed: `tsm topology set-process -pr activationservice -n  -c 0` **Important:** In a cluster, if a node that is running your only instance of CFS fails, any files being managed by CFS will be lost, and you will need to repopulate CFS those files by reimporting certs and custom images, and making any related configuration changes. For a list of files managed by CFS, see [Tableau Server Client File Service](https://help.tableau.com/current/server-linux/en-gb/server_process_cfs.htm). 8. If the initial node had been running the Messaging Service, add the Messaging Service to this node: `tsm topology set-process -pr activemqserver -n node2 -c 1` 9. (Optional) You can also add other processes that had been running on the initial node but are not running on this node. For example, to add an cache server: `tsm topology set-process -pr cacheserver -n node2 -c 1` 10. Apply the changes: `tsm pending-changes apply --ignore-node-status ` If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case, there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behaviour. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply). 11. Restart the TSM Administration Controller (as _tableau_ system account): `sudo su -l tableau -c "systemctl --user restart tabadmincontroller_0.service"` **Note:** It may take a few minutes for tabadmincontroller to restart. If you attempt to apply pending changes in the next step before the controller has fully restarted, TSM will not be able to connect to the controller. You can verify that the controller is running by using the `tsm status -v` command. Tableau Server Administration Controller should be listed as "is running". 12. Apply pending changes (there may not appear to be any, but this step is required): `tsm pending-changes apply --ignore-node-status ` 13. Activate the Tableau Server licence on the new Controller node: `tsm licenses activate -k ` 14. Verify the licence is properly activated: `tsm licenses list` 15. If the initial node was running the Coordination Service, you need to deploy a new Coordination Service ensemble that does not include that node. If you have a three node cluster and the initial node was running the Coordination Service, you must deploy a new, single-instance Coordination Service ensemble on a different node and clean up the old ensemble. In this example, a single instance of the Coordination Service is being deployed to the second node: `tsm topology deploy-coordination-service -n node2 --ignore-node-status node1` 16. If the initial node was running a File Store instance, you need to remove that instance: `tsm topology filestore decommission -n --delete-filestore` Where `nodeID` is the initial node that has failed. 17. Apply pending changes, using the `--ignore-warnings` flag if the new Coordination Service ensemble you deployed above is a single node ensemble: `tsm pending-changes apply --ignore-node-status node1 --ignore-warnings` 18. Remove the initial node, where `nodeID` is the initial node that has failed: `tsm topology remove-nodes -n ` 19. Apply pending changes, using the `--ignore-warnings` flag if the new Coordination Service ensemble you deployed above is a single node ensemble: `tsm pending-changes apply --ignore-warnings` 20. Start Tableau Server: `tsm start` At this point your server should start, and you will be able to use TSM to configure it. The next step is to replace your initial node so your cluster has the original number of nodes. How you do this depends on whether or not you want to reuse the node that failed. We recommend that you only reuse that node if you are able to identify the reason it failed, and take steps to keep the failure from recurring. 21. If you plan to reuse the original node, you first need to completely remove Tableau from it. Do this by running the `tableau-server-obliterate` script. For details on doing this, see [Remove Tableau Server from Your Computer](https://help.tableau.com/current/server-linux/en-gb/remove_tableau.htm). 22. On a fresh computer, or on your original computer after completely removing Tableau, install Tableau using your original Setup program and a bootstrap file generated from the node that is now running the Administration Controller and Licensing Service. This creates an additional node you can configure as part of your cluster. For details on how to add the node, see [Install and Configure Additional Nodes](https://help.tableau.com/current/server-linux/en-gb/install_additional_nodes.htm). A best practice is to configure any processes you lost when the original node failed, to make sure your cluster is fully redundant. You may want to move processes from your new initial node to the newly added additional node to duplicate your original configuration. For example, if your initial node was only running gateway and File Store, you may want to configure the new initial node the same way. 23. You should also redeploy a new Coordination Service ensemble, once you have your nodes up and running the way you want. For details, see [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). 24. Finally, if you have not already done this, add an instance of CFS to every node that is running the Coordination Service. For more information, see [Configure Client File Service](https://help.tableau.com/current/server-linux/en-gb/distrib_cfs.htm) In a cluster, if a node that is running your only instance of CFS fails, any files being managed by CFS will be lost, and you will need to repopulate CFS those files by reimporting certs and custom images, and making any related configuration changes.For a list of files managed by CFS, see [Tableau Server Client File Service](https://help.tableau.com/current/server-linux/en-gb/server_process_cfs.htm). [Skip to main content](#main-content) # Recycle Bin The Recycle Bin allows Site Administrators, Server Administrators and authors with Explorer (can publish) or Creator site roles to restore previously deleted projects, workbooks, data sources and flows. You can access the Recycle Bin from the Home page of your Tableau site. Expand the side pane and then select Recycle Bin. If you don’t see Recycle Bin, the feature must be turned on by your administrator. ## What content is stored in the Recycle Bin? When the Recycle Bin is turned on, the following content types will temporarily move to the Recycle Bin after deletion: - Workbooks (including revision history, views, embedded credentials, embedded data sources and extracts) - Data sources (including extracts and embedded credentials) - Projects (including contained workbooks and data sources) - Tableau Prep flows (Note: Tableau Prep flow drafts are still deleted permanently and will not go to the Recycle Bin) However, when you delete and restore workbooks, data sources and projects, some elements of the original content will be lost, including: - Custom views - Subscriptions - Data-driven alerts - Permissions - Aggregated statistics about the deleted item (view and usage counters) - Tags - Favourite information (if the item was favourited) - Comments - Flow schedules - Extract refresh schedules > [!TIP] > > If you don’t see something that you expect to be in the Recycle Bin, verify that the correct Content Type is selected. ### Content: Notes and best practices - When deleted, supported content types keep their original names. The Restore action will fail if the project you restore to already has an item with the same name. To resolve this issue, restore into a different project, rename the just-restored content and then move the content into the desired location. - Workbooks and data sources stored in the Recycle Bin still take up space on a site. If a workbook or data source uses an extract, that extract size is still counted against the site quota. - When deleted, supported content types do not change their owner. Users who originally owned content are still considered to be an owner. - On restore, restored Items will take on the default permissions set for the container that you restore to. When restoring critical content, the operating user should verify that permissions are set as necessary. The Restore operation will not restore original content permissions. - Users can see content they deleted in the Recycle Bin even if they aren't an admin or don't own the content. ### Projects: Notes and best practices Projects can contain a variety of content or nested projects. Note the following about projects when the Recycle Bin is turned on. **Note**: Recycle Bin respects hierarchy for nested projects on the original delete action and when restoring content. For example, you can delete an entire project branch from the root project to send the root and all nested projects to the Recycle Bin, and you can restore an entire project branch from the Recycle Bin if you restore the root project (and all of the nested projects are still in the Recycle Bin). However, hierarchy is not respected when you delete content from the Recycle Bin. To delete all of the projects from an original project branch from the Recycle Bin, you’ll need to delete each project individually. **Example project**: Project A includes 2 workbooks (A and B), a data source and a flow. - When a project is initially deleted and sent to the Recycle Bin, all content from that project that is compatible with the Recycle Bin is stored individually. For Project A, you’ll see a project, Workbook A, Workbook B and a data source in the Recycle Bin. Other types of content, like flows, are deleted immediately and can’t be recovered. - All compatible content from a project can be restored or deleted individually. For example, you can permanently delete Workbook A from Project A, leaving only a project, Workbook B and the data source in the Recycle Bin. - If you restore a project, all compatible content that is still stored in the Recycle Bin at the time will also be restored. For Project A, if you’ve already deleted Workbook A and then restore Project A, the project will restore with only Workbook B and a data source. - If you delete a project from the Recycle Bin, only the project is deleted. For example, if you delete Project A from the Recycle Bin, Workbook B and the data source remain in the Recycle Bin until they are individually deleted, restored or until the storage time expires. **Example project**: Project A includes Workbook A, Workbook B, a data source and a nested Project B that includes Workbook C. - If a deleted project contains nested projects, any nested projects that are still stored in the Recycle Bin at the time will be restored if the top-level project is restored. For example, restoring the root Project A restores the top-level Project A, Workbook B, a data source, Project B and Workbook C to the selected restore location. - Nested projects in the Recycle Bin can be restored independently from their top-level project. If a nested project is restored independently, and then the top-level project is later restored, the top-level project is restored without any content from the nested project. For example, if you restore Project B independently and then later restore Project A, Project A will be restored with the top-level project, Workbook B and the data source. The restored Project B will no longer be nested within Project A. **Example project**: Project 1 (P1) is a project branch that includes 4 nested projects (P2-P3-P4-P5). **Scenario**: You initially delete P1 and send the whole branch (the root P1 and the nested P2-P3-P4-P5) to the Recycle Bin. - From the Recycle Bin, you can delete any individual project from the original hierarchy (P1-P2-P3-P4-P5). - Deleting nested projects from the Recycle Bin will disrupt the original project hierarchy. - If you delete P3, then P1, P2, P4 and P5 remain in the Recycle Bin. However, P4 is no longer connected to P2. The original single project branch is now divided into two branches: P1-P2 and P4-P5. - With P3 deleted, if you then restore P1, the Restore action will also restore P2, but will leave P4 and P5 in the Recycle Bin. - With P3 deleted, if you restore P4, the Restore action will also restore P5, as P4 is now considered the root for P5. - You can restore any of the originally nested projects individually. - You can’t remove a whole project hierarchy from the Recycle Bin. You must delete each project individually. ## Restore content from the Recycle Bin You can restore content from the Recycle Bin to a project within the storage time frame configured by the administrator. 1. From the Home page, expand the side pane and then select Recycle Bin. 2. For Content Type, select Workbooks, Projects, Data Sources or Flows. 3. Select the More actions menu for the content that you want to restore, and then select Restore. 4. Select a project as the restore location. 5. Select Restore. ## Delete content from the Recycle Bin You can permanently delete content from the Recycle Bin before the end of the storage time frame configured by the administrator. _This action can’t be undone._ 1. From the Home page, expand the side pane and then select Recycle Bin. 2. For Content Type, select Workbooks, Projects, Data Sources or Flows. 3. Select the More actions menu for the content that you want to permanently delete, and then select Delete. 4. Select Delete. ## Enable the Recycle Bin Site or Server Administrators can enable the Recycle Bin for a Tableau site in the Site Settings. For details, see [Site Settings Reference](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm). 1. In multi-site environments, select the site and go to Settings. 2. From the General tab, scroll to the Recycle Bin section. 3. Select the tick box for Allow Recycle Bin for this site. 4. Select the number of days that the content is stored in the Recycle Bin. You can choose 1, 7 or 30 days. > [!IMPORTANT] > > Content is permanently deleted after the selected number of days. 5. Select Save. ## Disable the Recycle Bin > [!WARNING] > > If an administrator disables the Recycle Bin, any content stored in the Recycle Bin will be permanently deleted. Site or Server Administrators can disable the Recycle Bin for a Tableau site in the Site Settings. For details, see [Site Settings Reference](https://help.tableau.com/current/server-linux/en-gb/sites_add.htm). 1. In multi-site environments, select the site and go to Settings. 2. From the General tab, scroll to the Recycle Bin section. 3. Clear the tick box for Allow Recycle Bin for this site. 4. Select Save. ## Contact your administrator The Recycle Bin can only be turned on and configured by a Tableau Site Administrator or Server Administrator. To see contact information for your administrator, from the Home page, select the Show help menu icon, and then select Contact Tableau Administrator. [Skip to main content](#main-content) # Refresh Data on a Schedule You can schedule refresh tasks for published extract data sources and published workbooks that connect to extracts. New schedules can be created by Tableau Server Administrators on the Schedules page. For more information, see [Create or Modify a Schedule](https://help.tableau.com/current/server-linux/en-gb/schedule_manage_create.htm). For information on how to refresh flow outputs, see [](https://help.tableau.com/current/server/en-gb/prep_conductor_schedule_flow_task.htm)[Schedule Flow Tasks](https://help.tableau.com/current/server-linux/en-gb/prep_conductor_schedule_flow_task.htm). To avoid unnecessary scheduled refreshes, consider giving users the permission capability to refresh an extract on demand. For more information, see [Refresh Extracts](https://help.tableau.com/current/server/en-gb/permissions_capabilities.htm) for workbooks or data sources. 1. When you’re signed in to Tableau Server, select Explore from the left navigation pane, and then, depending on the type of content you want to refresh, select All Workbooks or All Data Sources from the drop-down menu. 2. Select the check box for the workbook or data source you want to refresh, and then select Actions > Refresh Extracts. 3. In the Create Extract dialog box, select the Recommended tab and complete the following steps: 1. Select the schedule you want. 2. If available, specify whether you want a full or incremental refresh. A full refresh is performed by default. Incremental refresh is available only if you configured for it in Tableau Desktop or web authoring in Tableau Server before publishing the extract. For more information, see [Refreshing Extracts](https://help.tableau.com/current/pro/desktop/en-gb/extracting_refresh.htm) in the Tableau Help. 3. Click the Schedule Refresh button. ![A dialog box for scheduling extract refreshes.](/tableau/current/en-gb/server-linux/en-gb/Img/schedule_add1.png) [Skip to main content](#main-content) # Refresh Expiration Date and Attributes for the Product Key When using Server ATR and Updatable Subscription Licensing (USL), you don't need to refresh your product key(s) when you purchase a new subscription term, or add roles and/or features to your deployment. That's because USL product keys can be updated to reflect changes to your Tableau Server licence capacity, feature and subscription term over time, and Server ATR automatically refreshes product key(s) for you as a background process. **Note:** If you were recently enabled for USL alongside your subscription renewal, you cannot refresh your licensing as outlined here. Instead, refer to the Tableau Customer Portal for the new USL-compatible product key, which must be activated within your deployment; see [Activate and Register Tableau Server](https://help.tableau.com/current/server-linux/en-gb/activate.htm). Your original product keys have not been renewed and should no longer be used in your deployment. If you aren't using Server ATR, you can refresh your product key(s) manually. If you refresh a subscription (term) product key before the expiration date occurs, the product key will not change but the expiration date will. This can create a mismatch between the product keys listed in the Tableau Customer Portal and those listed in the Tableau Server TSM product key list. The product key will change when the expiration date occurs or shortly thereafter. If a subscription (term) product key is not refreshed and has expired, Tableau will stop working and you will have to activate a new product key from the Tableau Customer Portal to relicense your Tableau Server installation, regardless of whether you are using Server ATR or manual activation methods. On the other hand, if the product key is perpetual (legacy) and its maintenance has expired, Tableau will continue to operate but you will not have access to upgrades until the maintenance is renewed. After renewing the maintenance, if you aren't using Server ATR, you must refresh the existing product key to update its maintenance expiry date. The product key will never change. For more information about different product key types and associated licences, see [tsm licences list](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMLicenseList). **Note**: This topic describes how to refresh the expiration date for Tableau Server, Advanced Management and Data Management. For information about refreshing the maintenance date on Tableau Desktop see [Refresh the product key](https://help.tableau.com/current/desktopdeploy/en-gb/desktop_deploy_automate.htm#refresh-the-product-key-tableau-desktop-only) in the Tableau Desktop and Tableau Prep Deployment Guide. ## Before you begin Verify the expiration date of your licence(s). You can view the expiration date by following the TSM web interface procedure below, or by running [tsm licences list](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMLicenseList) in the CLI. - Compare the date with the date displayed in the [Tableau Customer Portal](http://customer.tableausoftware.com/). - If the portal does not display the date that you expect, contact [Customer Success](https://www.tableau.com/en-gb/support/customer-success). - To renew your licence, visit the [Tableau renewal](https://www.tableau.com/en-gb/support/renew) web page. If the TSM date does not match the date displayed in the Tableau Customer Portal and the following refresh operation fails, contact [Tableau Support](https://www.tableau.com/en-gb/support). **Note:** To refresh your product key in an offline environment, visit the Tableau Customer Portal to obtain the Offline Activation ID for your latest renewal, and then activate it. For more information about offline activation, see [Activate Tableau Server Offline](https://help.tableau.com/current/server-linux/en-gb/activate_off.htm). Activate all product keys before starting Tableau Server. Otherwise some users might become unlicensed. 1. Open TSM in a browser: https://:8850 2. Click **Configuration** and Licensing and click Refresh All: ![Licensing page with the Refresh All button highlighted.](/tableau/current/en-gb/server-linux/en-gb/Img/licensing-refresh.png) 1. Open a command prompt as administrator on the initial node (the node where TSM is installed). 2. Run the following command: `tsm licenses refresh` [Skip to main content](#main-content) # Refresh Parameters in a Tableau Data Story **Important changes for Tableau Data Stories** Tableau Data Stories were retired in Tableau Desktop, Tableau Cloud and Tableau Server in January of 2025 (2025.1). With advances in natural language technologies, we're developing an improved interface that will make it easier to ask questions of your data and stay on top of changes. For more information, see [How Tableau Pulse powered by Tableau AI is Reimagining the Data Experience](https://www.tableau.com/en-gb/blog/tableau-pulse-and-tableau-ai). If you’ve added a parameter to your dashboard and are using Data Stories, you’ll notice that clicking the parameter refreshes your visualisation, but not the story. This happens because the parameter doesn’t refresh the underlying data like a filter does. To refresh your Tableau Data Story with the parameter data, add a "refresh" button to your dashboard that updates your story to align with your parameter. 1. Create a new sheet in your workbook. 2. Create a Calculated Field in the new sheet with the following info: > > Name: Refresh > > > > Contents: "refresh" ![A calculated field that is named "Refresh" and contains the word “refresh”](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_parameter_calcfield.png) 1. Click OK, and then drag the new calculated field (Refresh) onto your new sheet. 2. Right-click in the field and click Show Header to hide the header. ![The open menu for Refresh with “Show Header” selected.](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_parameter_showheader.png) 1. Choose a shape for your button. ![The open menu for the Mark with Square selected.](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_parameter_shape.png) 1. Return to your dashboard and drag the sheet containing the refresh button onto your dashboard next to the parameter. 2. Hover over the button, select More Options and click Title to hide the title. 3. Hover over the button and click Use as Filter. ![The object is selected, the filter icon is clicked and “Use as Filter” is selected.](/tableau/current/en-gb/server-linux/en-gb/Img/data_stories_parameter_refreshfilter.png) 1. Adjust your parameter and then click on the new refresh button. The button updates your story to align with the parameter. [Skip to main content](#main-content) # Release Highlights In Tableau Server version 2025.3: - **Tableau Agent in Tableau Server:** Now get access to Tableau Agent’s generative AI features in Tableau Prep, Tableau Desktop and Web Authoring by signing in to Tableau Server. - **SCIM support:** Allows server administrators to enable site-level SCIM to automate users and groups provisioning and synchronisation when using site-specific SAML authentication. - **Tableau-trusted extensions:** A new subset of securely vetted extensions from Tableau Exchange that are Tableau-hosted, providing governed and seamless functionality, are now available. - **Tableau Mobile changes:** The Tableau Mobile app security setting for malware detection was retired. [See full list](https://help.tableau.com/current/server/en-gb/whatsnew_server.htm) ## Other articles in this section [Skip to main content](#main-content) # Remove a Node If your Tableau Server installation includes a node you no longer need, you can remove it to simplify your installation, and to free up the hardware resources on that node. ## Prerequisites for removing a node There are prerequisites you must satisfy before you can remove a node from your Tableau Server cluster. If your node has one of a number of limitations, you need to address these before you can remove the node. The limitations include confirm that the node has been added with at least one process, and that the node does not include any process that is not also installed on another node. If one of the following configuration limitations applies, you must take action before you can remove the node: - If the node was just added using the Web UI, you need to apply pending changes before you can remove it. If you added it using the command line, you need to configure it with at least one process before you can remove it. - If the node includes the only Repository instance, you need to move the Repository to another node. See [Move the Repository Process](https://help.tableau.com/current/server-linux/en-gb/distrib_rep_move.htm). - If the node is running the only instance of the File Store, you need to move the File Store to another node. See [Move the File Store Process](https://help.tableau.com/current/server-linux/en-gb/distrib_de_move.htm). - If the node is running an instance of the Coordination Service, you must deploy a new Coordination Service ensemble that does not include the node. See [Deploy a Coordination Service Ensemble](https://help.tableau.com/current/server-linux/en-gb/distrib_ha_zk.htm). - If the node is running the Messaging Service, you need to move the Messaging Service to another node. See [Move the Messaging Service Process](https://help.tableau.com/current/server-linux/en-gb/distrib_msg_svc_move.htm). > [!IMPORTANT] > > Do not use the `tableau-server-obliterate` script to remove a node. First remove the node using the TSM UI or the tsm topology remove-nodes command. This leaves the rest of the cluster in a good state. Later, if you want to re-add the node to the cluster, run the `tableau-server-obliterate` script on the node to completely remove Tableau. After removing Tableau from the node, restart the computer and then re-add the node using the normal steps for adding and configuring a node. For details on running the script, see [Remove Tableau Server from Your Computer](https://help.tableau.com/current/server-linux/en-gb/remove_tableau.htm). 1. Open TSM in a browser: https://:8850 For more information, see [Sign in to Tableau Services Manager Web UI](https://help.tableau.com/current/server-linux/en-gb/sign_in_tsm.htm). 2. Click the Configuration tab and, under the node you want to remove, click Remove Node: ![Remove Node button.](/tableau/current/en-gb/server-linux/en-gb/Img/tsm-remove-node-btn.png) If a configuration limitation does not allow you to remove the node (if, for example, it includes a File Store that must first be decommissioned), a message will display letting you know this. See **Prerequisites** above for more information. **Note:** If you just added the node, and have not configured it, you must first apply pending changes before you can remove the node. 3. Click Pending Changes at the top right, and Apply Changes and Restart. Use the `[tsm topology remove-nodes](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMRemoveNodes)` command to remove a node from a cluster. To remove a node from a cluster it must have been configured with a process at some point in the past. If you added a node using the CLI and want to remove it but have not configured any processes, you must add a process on it, run the `[tsm pending-changes apply](https://help.tableau.com/current/server-linux/en-gb/cli_pending-changes.htm#pending-changes-apply)` command, and then remove the node. For example, you might add one instance of Cluster Controller to the node: `tsm topology set-process -n -pr clustercontroller -c 1`. If you are removing a node you added using the Web UI, the Cluster Controller process is automatically added so you do not need to add it before removing the node. 1. On the initial node, open a terminal session. 2. Find the node ID for the node you are changing: `tsm topology list-nodes -v` 3. Remove a node using the remove-nodes command. For example, to remove `node2` from an existing cluster: `tsm topology remove-nodes --node-names "node2"` If a configuration limitation does not allow you to remove the node (if, for example, it includes a File Store that must first be decommissioned), a message will display letting you know this. See **Prerequisites** above for more information. 4. Apply the changes: `tsm pending-changes apply` [Skip to main content](#main-content) # Remove Tableau Server from Your Computer **Warning:** The steps below _completely remove_ Tableau Server on Linux, and delete users and groups created by `initialize-tsm`, all related data, and configuration information. This includes any files in `/tmp` or `/var/tmp` that are owned by users configured in `/etc/opt/tableau/tableau_server/environment.bash` as privileged and unprivileged users (by default, `tsmagent` and `tableau`). Tableau Server licences are also deactivated, unless you omit the `-l` option when running the command shown below and the computer is connected to the internet. If you want to uninstall a particular Tableau Server package to free up disk space (after upgrading, for example), see [Uninstall Tableau Server](https://help.tableau.com/current/server-linux/en-gb/uninstall_server.htm). As part of the regular installation of Tableau Server, a script is installed that provides you a way to completely remove Tableau and all associated files from your computer. This is something you would only do if you did not care about your Tableau data, configuration, or log files, or if you are working with Tableau Technical Support and need to reinstall Tableau Server after an installation or upgrade attempt fails. The obliterate script will not remove any drivers you installed separately, even those you installed to use with Tableau Server. The `tableau-server-obliterate` script is intended for when you want to completely remove Tableau Server from your computer. You might want to do this for a couple of different reasons: - You no longer want Tableau Server installed on the computer. Use the `tableau-server-obliterate` script to remove Tableau Server completely. If this is the case, and the computer is connected to the internet, you can include a `-l` option to deactivate the Tableau Server licence. - Troubleshooting Tableau Server installation problems – If you run into issues installing Tableau, you may need to use the `tableau-server-obliterate` script to completely remove Tableau Server from your computer before reinstalling. Doing this will clean up any older settings or states (such as the `/etc/opt/tableau/tableau_server/environment.bash` file) and allow you to reinstall on a "clean" computer. If you are doing this, you can leave off the `-l` option to preserve licensing information on the computer. When you omit the `-l` option, you will not need to activate your licence when you reinstall Tableau Server. ## What tableau-server-obliterate does The intent of the `tableau-server-obliterate` script is to completely remove Tableau Server from your computer. This includes files, system settings and configurations, and, if you specify, licensing information. When you run `tableau-server-obliterate`, the following steps are taken: - Uninstall is run for all installed versions of Tableau Server (yum erase or apt-get remove). - Most contents of the data directory is removed (by default `/var/opt/tableau/tableau_server`). Backup and log files are preserved by default. See the section below, "Preserving Tableau Server backup and log files." - All semaphores and shared memory segments are deleted. - All temp files owned by the "tableau" user are deleted from `/tmp` and `/var/tmp`. - All users and groups created during install are deleted. - `/etc/opt/tableau` is deleted. - Trusted certificates are removed from `/etc/pki/ca-trust/source/anchors/TableauServer` and `/usr/share/ca-certificates/tableau` - Configuration files are removed from: - /etc/sysctl.d/99-tableau-server.conf - /etc/profile.d/tableau\_server\* - /etc/security/limits.d/99-tableau\_server\* - /etc/systemd/logind.conf.d/tableau\_server\* - /usr/share/bash-completion/completions/tsm - etc/bash\_completion.d/tsm - /usr/share/bash-completion/completions/tabcmd - /etc/bash\_completion.d/tabcmd - /run/tableau - /usr/lib/tmpfiles.d/tableau-server.conf - All server licences are deactivated if you use the `-l` option and the computer is connected to the internet. This option does not work in offline situations. ### Preserving Tableau Server backup and log files Prior to version 2020.1 of Tableau Server, running the `tableau-server-obliterate` script deleted all content from the Data directory. Beginning with version 2020.1, the default behaviour of the `tableau-server-obliterate` script has changed: the script copies and saves Tableau Server backup and log files to the `logs-temp` directory. The default location for the logs-temp directory is at `/var/opt/tableau/logs-temp`. You can set options on the script to disable this new functionality. To change the default behaviour and to remove backup or log files, include one of the following options when running the `tableau-server-obliterate` script: - `-k` Do not copy backups to logs-temp directory. - `-g` Do not copy logs to logs-temp directory. - `-a` Do not copy anything to logs-temp directory. ## Running the tableau-server-obliterate script You can completely remove Tableau Server from a computer, either preserving the licensing information, or removing the licensing information along with all other aspects of Tableau Server. You might want to preserve licensing if you are going to reinstall Tableau Server on the same computer. An older version of `tableau-server-obliterate` may miss files from new versions of Tableau Server. Always run the obliterate script for the version of Tableau Server that is installed on the computer. ### To completely remove Tableau Server without removing server licensing The example script in this procedure also includes the `-a` option to remove Tableau Server backup and log files. **Note:** If you plan to reinstall Tableau Server and [Activate Tableau Server Using the Authorisation-To-Run (ATR) Service](https://help.tableau.com/current/server-linux/en-gb/atr_service.htm), we recommend that you remove licensing information before reinstalling and activating Tableau Server using Server ATR. 1. On the initial node, open a terminal session. 2. Run the `tableau-server-obliterate` script: `sudo /opt/tableau/tableau_server/packages/scripts./tableau-server-obliterate -a -y -y -y` **Note:** If you have already uninstalled Tableau Server and now you want to remove it, run the copy of the `tableau-server-obliterate` script located in the `/var/tmp` directory. If the script is not in that directory, reinstall the Tableau Server package and then run the `tableau-server-obliterate` script. If you have a multi-node (distributed) installation of Tableau Server, run the `tableau-server-obliterate` script on each node in the cluster. 3. Restart each computer you ran the `tableau-server-obliterate` script on. ### To completely remove Tableau Server and licensing The example script in this procedure also includes the `-a` option to remove Tableau Server backup and log files. 1. On the initial node, open a terminal session. 2. Deactivate any active product keys. `[tsm licences deactivate](https://help.tableau.com/current/server-linux/en-gb/cli_licenses_tsm.htm#TSMDeactivate) -k ` 3. Run the `tableau-server-obliterate` script: `sudo /opt/tableau/tableau_server/packages/scripts./tableau-server-obliterate -a -y -y -y -l` The `-l` option removes all licensing files from the computer if the computer is connected to the internet. The script first attempts to deactivate any active licences, but it will remove all licensing information, whether or not deactivation was successful. This is why we recommend you run the `tsm licenses deactivate` command before running the obliterate script. **Note:** If you have already uninstalled Tableau Server and now you want to remove it, run the copy of the `tableau-server-obliterate` script located in the `/var/tmp` directory. If the script is not in that directory, reinstall the Tableau Server package and then run the `tableau-server-obliterate` script. If you have a multi-node (distributed) installation of Tableau Server, run the `tableau-server-obliterate` script on each node in the cluster. You do not need to deactivate licences on any additional nodes. 4. Restart each computer you ran the `tableau-server-obliterate` script on. [Skip to main content](#main-content) # Remove Unneeded Files As a best practice, you should regularly monitor disk space usage on your server. If the Tableau Server computer runs low on disk space, the impact to can be significant, including ultimately causing a failure. If you determine that space is getting low, you can archive any you want to save, and purge unneeded files, freeing up space for Tableau. ## Monitoring disk space usage There are several things you can do to monitor disk space usage: - Notifications: You can configure Tableau Server to send notifications when disk space reaches predetermined levels. For more information, see [Configure Server Event Notification](https://help.tableau.com/current/server-linux/en-gb/email.htm). - Administrative views: You can use a pre-built administrative view to help monitor disk space usage. For more information, [Server Disk Space](https://help.tableau.com/current/server-linux/en-gb/adminview_space_all_nodes.htm). ## Reducing disk space usage To make more disk space available, you can take the following steps: - Archive log files: Tableau Server generates log files when running. These can be helpful in troubleshooting issues, and when you are working with Tableau Support, but you do not need to leave them in place indefinitely. To save disk space without losing logs, you can archive them with the `tsm maintenance ziplogs` command, and then copy the ziplogs archive to a computer that is not part of the Tableau installation for safe keeping. For more information, see [Log File Snapshots (Archive Logs)](https://help.tableau.com/current/server-linux/en-gb/logs_archive.htm). - Clean up unwanted files: After archiving any logs you want to save, use the `tsm maintenance cleanup` command to remove log files older than seven days, temporary files and, optionally, rows from the `http_requests` table in the Tableau Server repository. You should run the cleanup command regularly. For more information about which files are removed, see [tsm maintenance cleanup](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm#cleanup). - Remove other files: Over time Tableau Server can generate files that do not need to be left in place. In addition to the files mentioned above, be aware of files like old backups from previous versions. Tableau Server backup files have a `.tsbak` extension. We strongly recommend regularly backing up Tableau, and saving the backup files to a computer that is not part of the Tableau Server installation for safe keeping, but once you save the file in another location, you can delete it from the Tableau computer. For more information on backup files, including how to create them and where they are saved, see [Back up Tableau Server Data](https://help.tableau.com/current/server-linux/en-gb/db_backup.htm). [Skip to main content](#main-content) # Repository Failover In a Tableau Server installation, the repository (pgsql) database is one of the key required processes. The Tableau Server repository stores information about Tableau Server users, groups and group assignments, permissions, projects, data sources and extract metadata and refresh information. Because it is critical to the server functioning, Tableau Server has a built-in automatic "failover" for the repository when server is installed in a distributed environment that meets certain requirements. ## Automatic repository failover Automatic repository failover means that if there is a problem with the active Tableau Server repository, the server will automatically switch to using the passive repository. This does not happen immediately, to protect against ephemeral issues with the repository that don't justify a switch, but if the repository is unavailable for more than 1–5 minutes, failover occurs. For example, if the underlying PostgresSQL service fails, then failover will occur in about a minute. However other configuration problems may not trigger a failure for up to 5 minutes. For automatic repository failover to work, your Tableau Server installation needs: - A minimum of three nodes - Two instances of the repository installed Optional but highly recommended: - A multi-node Coordination Service ensemble deployed With these conditions satisfied, repository failover will occur if the active repository becomes unavailable, either due to a problem with the process or a problem with the node the process is running on. If the original repository becomes available again (if, for example, the node is restarted and all processes come up properly), it is made the passive repository, available for failover if necessary. ## Manual repository failover There may be reasons you want to shift back to the original repository after failover occurs. One reason would be if that instance of the repository is installed on a computer with more resources. To do this, use the `tsm topology failover-repository` command to manually switch back to the original repository. For more information, see [tsm topology failover-repository](https://help.tableau.com/current/server-linux/en-gb/cli_topology_tsm.htm#TSMFailoverRepository). ## Preferred active repository When you configure Tableau Server you have the option to specify a node as the preferred active repository. When Tableau Server is configured for repository failover, the preferred active repository node is the one used for the active repository. This is an optional step, and if you do not specify a preferred active repository node, Tableau Server will select the active repository node on startup. To configure the preferred active repository, use the `tsm configuration set` command to configure the `pgsql.preferred_host` option: `tsm configuration set -k pgsql.preferred_host -v ""` **Note:** The `host_name` is case-sensitive and must match the node name shown in the output of `tsm status -v`. Configure a preferred active repository node if you want Tableau Server to select a specific node on startup. You might want to do this if you have a particular server you want to use for your active repository (a computer with more disk space or memory for example), or if you are using custom administrative views. Custom administrative views have embedded connection information that refers to the repository for which you created the views. For more information on connecting to the Tableau Server repository, see [Collect Data with the Tableau Server Repository](https://help.tableau.com/current/server-linux/en-gb/perf_collect_server_repo.htm) [Skip to main content](#main-content) # Requirements and Considerations for Using Explain Data Explain Data is always available to authors in Tableau Desktop. For Tableau Cloud and Tableau Server: When Explain Data is enabled for a site, Creators and Explorers with the appropriate permissions can run Explain Data when editing a workbook. All users with the appropriate permissions can run Explain Data in viewing mode in published workbooks. For more information, see [Control Access to Explain Data](https://help.tableau.com/current/server-linux/en-gb/explain_data_control_access.htm). ## What makes a viz a good candidate for Explain Data Explain Data works best on visualisations that require deeper exploration and analysis, rather than infographic-style, descriptive vizzes that communicate summarised data. - Row-level data is necessary for Explain Data to create models of your data and generate explanations. Vizzes with underlying, row-level data, where relationships might exist in unvisualised fields are good candidates for running Explain Data. - Vizzes based on pre-aggregated data without access to row-level data are not ideal for the statistical analysis performed by Explain Data. ## What data works best for Explain Data When you are using Explain Data in a worksheet, remember that Explain Data works with: - **Single marks only** – Explain Data analyses single marks. Multiple mark analysis is not supported. - **Aggregated data** – The view must contain one or more measures that are aggregated using SUM, AVG, COUNT or COUNTD. At least one dimension must also be present in the view. - **Single data sources only** –The data must be drawn from a single, primary data source. Explain Data does not work with blended or cube data sources. When preparing a data source for a workbook, keep the following considerations in mind if you plan to use Explain Data during analysis. - Use a data source with underlying data that is sufficiently wide. An ideal data set has at least 10-20 columns in addition to one (or more) aggregated measures to be explained. - Give columns (fields) names that are easy to understand. - Eliminate redundant columns and data prep artifacts. For more information, see [Change fields used for statistical analysis](https://help.tableau.com/current/server-linux/en-gb/explain_data_lm_status.htm#IncludeExcludeFields). - Don't discard unvisualised columns in the data source. Explain Data considers fields in the underlying data when is analyses a mark. - Low cardinality dimensions work better. The explanation of a categorical dimension is easier to interpret if its cardinality is not too high (< 20 categories). Dimensions with more than 500 unique values will not be considered for analysis. - Don't pre-aggregate data as a general rule. But if the data source is massive, consider pre-aggregating the data to an appropriate level of detail. - Use extracts over live data sources. Extracts run faster than live data sources. With live data sources, the process of creating explanations can create many queries (roughly one query per each candidate explanation), which can result in explanations taking longer to be generated. ## Situations where Explain Data is not available Sometimes Explain Data will not be available for a selected mark, depending on the characteristics of the data source or the view. If Explain Data cannot analyse the selected mark, the Explain Data icon and context menu command will not be available.
Explain Data can't be run in views that use:
  • Map coordinate filters
  • Blended data sources
  • Data sources with parameters
  • Data sources that don't support COUNTD or COUNT(DISTINCT ...) syntax, such as Access.
  • Filters on aggregate measures
  • Disaggregated measures

Explain Data can't be run if you select:

  • Multiple marks
  • Axis
  • Legend
  • Grand total
  • Trend line or reference line
  • A mark in a view that contains a very low number of marks
Explain Data can't be run when the measure to be used for an explanation:
  • Isn't aggregated using SUM, AVG, COUNT, COUNTD
  • Is a table calculation
  • Is used in measure values

Explain Data can't offer explanations for a dimension when it is:

  • A calculated field
  • A parameter
  • Used in Measure Names and Measure Values
  • A field with more than 500 unique values. Dimensions with more than 500 unique values will not be considered for analysis.
[Skip to main content](#main-content) # Requirements for Using OpenID Connect This topic describes the requirements to use OpenID Connect with Tableau Server. **Note:** The TSM authentication configuration commands apply only to OIDC authentication configured in TSM during Tableau Server setup. To make OIDC authentication configuration changes for identity pools, you can use the [Update Authentication Configuration](https://help.tableau.com/current/api/rest_api/en-us/REST/TAG/index.html#operation/AuthnService_UpdateAuthConfiguration) endpoint using Tableau REST OpenAPI. **Summary of requirements** - IdP account - Local identity store - IdP claims – mapping users - Authentication context ## IdP account You must have access to an identity provider (IdP) that supports the OpenID Connect (OIDC) protocol. You must also have an account with the IdP. OpenID Connect is supported by many identity providers. The OIDC protocol is an open and flexible standard, and as such, not all implementations of the standard are identical. As you configure Tableau Server for OIDC, work with your IdP. The Google IdP implementation has been extensively tested with Tableau Server and is the model IdP for the configuration documented in these topics. ## Local identity store To use OpenID Connect on Tableau Server, one of the following must be true: - **If configuring OIDC in TSM during Tableau Server setup**, Tableau Server must be configured to use a local identity store. The server must be configured so that you explicitly create users on the Tableau Server, rather than importing them from an external directory such as Active Directory. Managing users with an external identity store is not supported with OpenID. - **If configuring OIDC using** [identity pools](https://help.tableau.com/current/server-linux/en-gb/identity_pools.htm), OIDC can be configured with 1) a local identity store or 2) AD or LDAP is the identity store configured in TSM during Tableau Server setup. ## IdP claims – mapping users To sign in successfully to Tableau Server, a given user must be provisioned in OpenID and then mapped to a user account on Tableau Server. OpenID uses a method that relies on _claims_ to share user account attributes with other applications. Claims include user account attributes such as email, phone number, given name, etc. To understand how Tableau Server maps IdP claims to user accounts, see [OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth.htm#Authenti). Tableau Server relies on the IdP claims to map user accounts from the IdP to those hosted on Tableau Server. By default, Tableau Server expects the IdP to pass the email claim. Depending on your IdP, you may need to configure Tableau Server to use a different IdP claim. If you are using Google as an IdP, then use the default `email` claim to map IdP identities to Tableau Server user accounts. If you are not using Google as an IdP, then work with your IdP to determine the claim for which you should configure Tableau Server. ### Default: using email claim to map users By default, the user's username in Tableau Server must match the `email` claim in the IdP ID token. Therefore, in the default configuration, you must use email addresses (also referred to as UPN) as the username in Tableau Server. If you use Google as the IdP, the username in Tableau Server must be the user's Gmailaddress (`alice@gmail.com`). Using a complete email address helps to guarantee the uniqueness of the user name in Tableau Server, even when two users have the same email but are on different email hosts. **Note:** When you create a user identity in Tableau Server, you specify a username, password and optionally an email address. For using OpenID Connect in the default configuration, the user name (expressed as an email address) is the value that must match the user's name in the IdP. The optional email address in the Tableau Server user identity is not used for OpenID authentication. #### Ignoring the domain name You can configure Tableau to ignore the domain portion of an email address when matching the IdP `email` claim to a user account on Tableau Server. In this scenario, the `email` claim in the IdP might be `alice@example.com`, but this will match a user named `alice` in Tableau Server. Ignoring the domain name might be useful if you already have users defined in Tableau Server that match the usernames portion of the `email` claim, but not the domain portions. **Important:** We do not recommend ignoring the user domain name without taking precautions. Specifically, verify that user names are unique across the configured domains that you've created in your IdP. Setting Tableau Server to ignore the user domain name has the potential to result in unintended user log on. Consider the case where your IdP has been configured for multiple domains (`example.com` and `tableau.com`). If two users with the same first name, but different user accounts (`alice@tableau.com` and `alice@example.com`) are in your organisation, then the first one to complete the OpenID provisioning sequence will claim the `sub` mapping in the IdP. If the wrong user is mapped, then the other user will be unable to log on until the associated `sub` value is reset. To configure Tableau Server to ignore domain names in user names from the IdP, set `tsm authentication openid configure --ignore-domain` to `true`. For more information, see [tsm authentication openid ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#TSMOIDC). When you change the tsm authentication openid configure `--ignore-domain` option to ignore the domain in user names, all user names in Tableau Server must have a domain name. ### Using custom claims to map users As referenced in [OpenID Connect](https://help.tableau.com/current/server-linux/en-gb/openid_auth.htm#Authenti), the `sub` claim is often included in IdP claims. Typically, the `sub` claim is a unique string that identifies a given user account. The benefit of using a `sub` claim is that it will not change, even if you or another admin updates other user attributes or IdP claims (email, phone number, etc) associated with that account. By default, Tableau Server identifies and verifies OpenID users according to the `sub` claim in the IdP ID token. The OpenID `sub` claim value must be mapped to the corresponding user in Tableau Server. Since the `sub` claim is an arbitrary string, a different claim is used to associate accounts during the first sign-in session. The first time a user signs in to Tableau Server with OpenID, Tableau will match the OpenID user account to a corresponding user account in Tableau Server. By default, Tableau will use the IdP claim, `email`, to identify the Tableau user. Tableau will then update that user's record with the `sub` claim from OpenID. Since the ID token always includes the `sub` claim along with other claims, on subsequent sessions, Tableau will identify that user with the `sub` claim only. For some organisations, mapping user names with the email address is not reliable or not supported by the IdP. Beginning with Tableau Server 10.2, you can map user accounts from any arbitrary IdP claim to the Tableau Server username. The IdP claim you are using must map exactly to a corresponding Tableau Server username. In the example below, the username is `kwilliams`. ![A form to add a new user on Tableau Server.](/tableau/current/en-gb/server-linux/en-gb/Img/users_add_srvruser.png) To change the IdP claim that is used to map identity on Tableau Server, use the `tsm authentication openid map-claims --user-name` command. For more information, see [tsm authentication openid ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#TSMOIDC). ### Changing the `sub` claim As described above, the `sub` claim is the identifier that Tableau Server uses to identify users after the initial mapping session. The `sub` claim is written to the corresponding user account in Tableau Server. If your IdP does not provide a `sub` claim, then you can specify an arbitrary claim to use instead. Like `sub`, the claim value you specify must be unique and should not change when other user claims are updated. To specify a different IdP claim for default sub claim, use the use the `tsm authentication openid map-claims --id` command. For more information, see [tsm authentication openid ](https://help.tableau.com/current/server-linux/en-gb/cli_authentication_tsm.htm#TSMOIDC). Where `arbitraryClaim` is the name of the IdP claim that you want to use as the replacement for the `sub` claim. ## Authentication context If your OpenID Connect IdP requires a specific authentication context, you can specify a list of essential and voluntary ACR values using the `vizportal.openid.essential_acr_values` and `vizportal.openid.voluntary_acr_values` configuration keys. For more information, see [tsm configuration set Options](https://help.tableau.com/current/server-linux/en-gb/cli_configuration-set_tsm.htm). [Skip to main content](#main-content) # Resolve Identity Migration Conflicts During the identity migration, Tableau Server might encounter certain user identities that can’t be migrated to use the Identity Service. When user identities can’t be migrated, they become identity conflicts that require you, the administrator, to manually resolve them. To ensure that user identities are migrated correctly, you must resolve or address all identity conflicts before the identity migration can complete, using the dedicated Identity Migration page. ## Step 1: Resolve identity conflicts You can resolve identity conflicts in a few ways depending on the conflict type. Regardless of the conflict type, all user identities must be resolved or addressed before you can proceed to [Step 2](#step2) below and before the identity migration process can complete. When identity conflicts occur, the identity migration will group the conflicts into types. These types help narrow down the reason why the migration is unable to migrate the user identity automatically. There are a few reasons why identity conflicts can occur. For example, you might see an identity conflict when the migration has identified a Tableau Server user that matches more than one user identity in the external identity store. When identity conflicts are identified, you can address them using one of the following options: - **Retry Migration** - This option moves the selected user identities back into the queue to be migrated again. After the migration jobs have run again, it’s possible that the identity conflicts will resolve on their own, the original identity conflicts will occur again or new identity conflicts will occur. - **Acknowledge** - This option moves the selected user identities to the Acknowledged tab. When you acknowledge user identities, you understand that 1) those users don’t have matching user identities in an identity store and will therefore not be migrated, and 2) those users will be unable to sign in to Tableau Server after you enable the Identity Service in [Step 3](#step3) below. - **Reevaluate** - When conflicts have already been acknowledged, from the Acknowledged tab, this option moves the selected user identities back to their conflict state. This option gives you the chance to see the original conflict, resolve the conflict or acknowledge the identity conflict again. ### Quick reference: Identity conflicts
Conflict typeApplies to configurationConflict reasonAction
All failuresAllThis tab captures all identity conflicts categorised in the No matches, Ambiguous, Duplicate, Not local and Unknown tabs.Retry Migration or Acknowledge
No matchesAD, LDAPThe user identities have no matching users in the external identity store.Retry Migration or Acknowledge
AmbiguousAD, LDAPFor the specified user identities, there is more than one possible match in the external identity store.Retry Migration, Acknowledge or select one of the suggested user identities
DuplicateADTwo user identities were created using one AD account. This is an artefact of legacy functionality that is not supported in the Identity Service.Retry Migration or Acknowledge
Not localLocalUser identities that are associated with an identity store that is not local. This conflict occurs because manual changes were made that are not supported.Retry Migration or Acknowledge
UnknownAllThis conflict might indicate an internal Tableau Server error or an identity conflict caused by a reason not listed in this table.Retry Migration or Acknowledge
AcknowledgedAllThis tab captures all user identities that will not be migrated. Those users will not be able to sign in to Tableau Server after Tableau Server is configured to use the Identity Service.Retry Migration or Acknowledge
To resolve a conflict, follow the steps below. 1. Sign in to Tableau Server as an administrator. 2. From the left navigation pane, select Users (or All Sites > Users for a multi-site Tableau Server) and then click the Identity Migration page. 1. Select one or more user identities in the All Failures tab or in one of the conflict-specific tabs. 2. From the Actions drop-down menu, click Retry Migration or Acknowledge. If you select “Retry Migration”, the user identities might generate different conflict types. In this case, address the conflicts as needed until the All failures tab displays "0" like in the image below. ![Identity migration summary showing zero failures.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_failures_acknowledge.png) **Note:** User identities that are acknowledged are ignored in Active Directory (AD) and LDAP group syncs moving forward. If users associated with these users’ identities require access to Tableau Server at a later time, see [Troubleshoot Issues with the Identity Migration](https://help.tableau.com/current/server-linux/en-gb/identity_migration_troubleshoot.htm#acknowledged) for more information. ## Step 2: Complete the identity migration To complete the identity migration, in addition to all identity conflicts being resolved or addressed, all migration jobs have to run before you can enable the Identity Service for Tableau Server. 1. Do _one_ of the following: - To run the identity migration jobs now, next to the Migration Overview heading, click on the Edit Schedule drop-down arrow, and then select Run Now. ![Dropdown menu for editing the migration schedule with options to disable or run now.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_overview_runnow.png) - Alternatively, you can wait for the migration to run during the next scheduled time. 2. From the Identity Migration page, validate that the Migration Overview displays 100% complete. ![Identity migration progress bar indicating 100% completion.](/tableau/current/en-gb/server-linux/en-gb/Img/id_mig_complete.png) ## Step 3: Configure Tableau Server to use the Identity Service After the identity migration is complete, configure Tableau Server to use the Identity Service to ensure a more secure and immutable identity structure for the user provisioning and authentication process. 1. Open a command prompt as an administrator on the initial node (where TSM is installed) in the cluster. 2. Run the following commands depending on the version of Tableau Server version you are running: - For Tableau Server versions 2022.1.8 (and later), 2022.3.10 (and later), 2023.1.6 (and later) and later: ``` tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled -v false ``` - For Tableau Server versions 2022.1-2022.1.7, 2022.3-2022.3.9 or 2023.1-2023.1.5: ``` tsm authentication legacy-identity-mode disable ``` **Note:** After running one of the commands above, the dedicated Identity Migration page is removed and no longer accessible. The page is accessible only when `tsm configuration set -k wgserver.authentication.legacy_identity_mode.enabled` is `true` or `tsm authentication legacy-identity-mode` is enabled. After Tableau Server is configured to use the Identity Service, when users sign in to Tableau Server, Tableau Server searches for their user identities using their identifiers in the configured identity store. From the identifiers, the universal unique identifiers (UUID) are returned and used to match existing Tableau Server user identities. This process then generates sessions for the users and completes the authentication workflow. ## Step 4: Ensure identity pools is enabled 1. Run the following commands: ``` tsm configuration set -k features.IdentityPools -v true tsm pending-changes apply ``` **Note:** Running these commands causes Tableau Server to restart. [Skip to main content](#main-content) # Resource Monitoring Tool (RMT) Services The Resource Monitoring Tool has two main components: Resource Monitoring Tool Master (RMT Server) and RMT Agent. - The RMT Master is where the data from Tableau Server is collated and served up through a web interface. This is also where you can configure RMT, and monitor and analyse the health and performance of Tableau Server. - An Agent runs on each of the nodes in your Tableau Server cluster to monitor their performance and activity. This topic describes the services installed with RMT. The tables below list the services installed on the RMT Server machine, and those installed on the RMT Agent machines.
RMT Server services
NamePurposeLog file location

Windows: C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\logs\

Linux: /var/opt/tableau/tabrmt/master/logs

Note: For additional information about log files, see: Tableau Resource Monitoring Tool Log Files.

Notes
HostUsed during installation and also to ensure the other processes are running.Windows: host\YYYYMMDD.log

Linux: host/YYYMMDD.log

Responsibilities:
  • Process watcher: Makes sure other processes are running.

  • Config File Watcher: Detects and responds to changes in configuration files.

BackgrounderProcesses the information sent from the agents and maintains the postgres data RMT collects. Also provides admin command line utility. Generates incidents and notifications based on information processed.Windows: background\YYYYMMDD-pts.log

Linux: background/YYYYMMDD-pts.log

Responsibilities:
  • rmtadmin: command line utility that exposes command line functionality for administrator.

  • Agent Data Processing: Handles data collection and processing from various agents

  • TS Status Polling: Periodically polls Tableau Server (TS) status, ensuring the system is active and healthy.

  • Incident Analysis: Analyses incidents, such as errors, failures, reaching thresholds for different measures.

  • Data Cleanup: Responsible for cleaning up old data.

  • Ad Hoc Graph Info Collection: Collects data for on-demand monitoring.

  • Notifications: Manages sending notifications for alerts and incidents.

  • Data Archiving (Disabled): Involves archiving old data to free up resources or for compliance. This is currently disabled.

DirectorKind of a coordination process, and one of its primary responsibilities is to query the Tableau Server for licences status, and to set the system-wide status.Windows: director\YYYYMMDD-pts.log

Linux: director/YYYYMMDD-pts.log

Responsibilities:
  • Cluster Status: Monitors the health and status of the server cluster and sets the system-wide status.

  • Licensing: query the Tableau Server for licences status.

  • Graph Scraping: Extracts data for monitoring and reporting. Likely has access to server database.

  • Database Upgrade: Handles updates to the database schema or version

  • Daily Aggregate Processing: Executes daily processing tasks, like aggregating data for reports or analysis.

WebRuns the web server. Provides user interface. Registers Agents for information gatheringWindows: web\YYYYMMDD-pts.log

Linux: web/YYYYMMDD-pts.log

Responsibilities:
  • Agent Registration: Manages the registration of agents that monitor or collect data on Tableau server.

  • Config UI: Provides a user interface for configuring various system settings and parameters.

  • Performance/Activity/Content UI: Offers a UI for users to view performance metrics, activity logs and content-related data in the system.

PostgreSQLLocal data repositoryWindows: pgsql\*.log and *.csv

Linux: pgsql/*.log and *.csv

 
RabbitMQMessage brokerWindows: \master\logs\rabbitmq\*.log

Linux: master/logs/*.log

 
RMT Agent services
NamePurposeLog file location

Windows: C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\logs\

Linux: /var/opt/tableau/tabrmt/master/logs

Note: For additional information about log files, see: Tableau Resource Monitoring Tool Log Files.

Notes
HostUsed during installation and also to ensure the other processes are running.Windows: host\YYYYMMDD.log

Linux: host/YYYYMMDD.log

Responsibilities:
  • Process watcher: Makes sure other processes are running.

  • Config File Watcher: Detects and responds to changes in configuration files.

BackgrounderProcesses the information sent from the agents and maintains the postgres data RMT collects. Also provides admin commandline utility. Generates incidents and notifications based on information processed.Windows: background\YYYYMMDD-pts.log

Linux: background/YYYMMDD-pts.log

Responsibilities:
  • rmtadmin: command line utility that exposes command line functionality for administrator.

  • Log watcher: Processes the information sent by Tableau server from logs.

WebRuns the web server.

Performs agent registration to master for data publishing.

Windows: web\YYYYMMDD-pts.log

Linux: web/YYYMMDD-pts.log

 

[Skip to main content](#main-content) # Resource Monitoring Tool Upgrade FAQs Find answers to commonly asked questions during upgrade. ## Can I run the scripts without root/Administrator privileges? When scripts run automatically via the installer, the installer has the required privileges. For manual execution, you need root (Linux) or Administrator (Windows) because the scripts inspect service status, file permissions and run commands as the RMT service account. ## What if I don’t know the database password? All PostgreSQL-dependent checks are skipped with **WARN**. The script still runs all other checks. Contact Tableau Support for the password. ## How to retrieve the password for the tabrmtdb database user? You can retrieve the credentials by navigating to the RMT Server directory and running the command appropriate for your operating system: **For Windows**: `.\rmtadmin get db:username db:password` **For Linux:** `rmtadmin get db:username db:password` ## Can I run the pre-upgrade check while RMT is in use? Yes. The script is read-only and safe to run on a production system at any time. ## What happens if the post-upgrade check finds failures? The post-upgrade check never blocks the installer. Failures are surfaced in the report. Some (like ‘Broker unreachable’) are transient and resolve on their own. ## Are the scripts compatible with external PostgreSQL / RabbitMQ? Yes. The post-upgrade script auto-detects external configuration and skips local checks appropriately. The pre-upgrade script’s DB checks require `--db-password` regardless since it connects to the internal RMT database. ## Can I run the scripts on both RMT Server and Agent machines? Yes. Use `--component master` on the RMT Server and `--component agent` on Agents. If unspecified, the script auto-detects. ## What does InstallerContext mean in the report? When the pre-upgrade check runs automatically during a Windows MSI upgrade, the `-InstallerContext` option is set. This relaxes service and port checks – which may report stopped/Disabled because the installer has already disrupted services – to **WARN**, and skips the stranded-process gate (#38a) so the installer can manage process lifecycle itself. When you run the script manually, these checks use their normal severity. [Skip to main content](#main-content) # Restart Multi-Node Tableau Server Computers Restarting the computers running a multi-node installation of Tableau Server requires that you follow a few specific steps. To restart computers running a multi-node installation of Tableau Server: 1. Stop Tableau Server. To do this: 1. On the initial node, open a terminal session. 2. Run this tsm command: tsm stop 3. Wait until Tableau Server is stopped. 2. Restart the additional node computers. These are all the other computers _except_ for the one running TSM Controller. 3. Wait until each of the additional node computers has completely restarted, including the Tableau Services Manager (TSM) processes installed there. 4. Restart the initial node computer (the computer running TSM Controller). When it has completely restarted and Tableau Server is running, connections to each additional node should be restored. [Skip to main content](#main-content) # Restore from a Backup Use the `tsm maintenance restore` command to restore your Tableau Server data. You might do this if you had a system failure and need to restore your data, if you need to switch back to a previous version of Tableau Server (for example, if there is a problem with an upgrade), or if you are moving Tableau Server to new hardware. You can use the `tsm maintenance restore` command to restore Tableau Server backups created using `tabadmin backup` and `tsm maintenance backup`. ## Limitations when restoring Tableau Server - If you perform Blue/Green upgrades or manually upgrade Tableau Server 2021.4 (or earlier) using the [tsm maintenance (backup and restore)](https://help.tableau.com/current/server-linux/en-gb/cli_maintenance_tsm.htm) method, you must enable `legacy-identity-mode` before you can restore to Tableau Server 2022.1 (or later). For more information, see [Troubleshoot Issues with the Identity Migration](https://help.tableau.com/current/server-linux/en-gb/identity_migration_troubleshoot.htm). - Database backups made in other ways, and virtual machine snapshots are not valid sources for restoring Tableau Server. - When you use `tsm maintenance restore` to restore your Tableau data, data extract files and the contents of the PostgreSQL database are overwritten with the content in the backup file (`.tsbak`). If you are running a distributed installation of Tableau Server, perform the restore on the node running the TSM Controller (this is usually the initial node). - You can only restore from a backup that has the same type of identity store as the running server. For example, a backup from a server using local authentication can be restored to a Tableau Server initialised with local authentication, but a backup from a server using Active Directory authentication cannot be restored to a server initialised with local authentication. - You can only restore a backup file to a version of Tableau Server version that is the same or newer than the version the backup was created on. You cannot restore to an older version of Tableau. - Beginning with version 2022.3, backups created using tabadmin ("pre-TSM backups") are not supported. You cannot restore a pre-TSM backup to Tableau Server version 2022.3 or later. - During restore, the restore process will initiate a full re-indexing of the content and external assets managed by Tableau Server. This process consumes CPU resources which may be noticeable during backup and restore. ## Restore Tableau Server from a backup file **Note:** This operation includes steps that you may need to perform using the TSM command line. 1. (Optional) Copy the `.tsbak` file to the default file location. The `restore` command expects a backup file in the directory defined in the TSM `basefilepath.backuprestore` variable. By default: `` `/var/opt/tableau/tableau_server/data/tabsvc/files/backups/` `` For more information about file paths and how to change them, see [tsm File Paths](https://help.tableau.com/current/server-linux/en-gb/cli_default_filepaths_tsm.htm). **Note:** If you are restoring a backup that was copied into the backups folder, ensure that the unprivileged user (by default, `tableau`), has at least Read access to the backup file. Otherwise, the restore process may not be able to unzip the backup file and the restore will fail. 2. Stop the server. At a command prompt, type: `tsm stop` 3. Restore from a backup file. At a command prompt, type: `tsm maintenance restore --file ` In the above line, replace `` with the name of the backup file you want to restore from. **Note:** If you encounter errors when trying to restore from backup, see [Troubleshoot Tableau Server on Linux](https://help.tableau.com/current/server-linux/en-gb/troubleshoot_linux.htm). 4. Restart the server: `tsm start` [Skip to main content](#main-content) # RLS Best Practices for Data Sources and Workbooks Row-level security (RLS) in Tableau restricts the rows of data a certain user can see in a workbook. This differs from Tableau permissions, which control access to content and feature functionality. For example, permissions control whether a user can comment on or edit a workbook, while row-level security enables two users viewing the same dashboard to see only the data each user is allowed to see. There are several ways to implement RLS in Tableau. For example, you can set RLS at the data source or workbook level, or you can set RLS at the connection level using a virtual connection with a data policy (requires Data Management). See the [Overview of Row-Level Security Options in Tableau](https://help.tableau.com/current/server-linux/en-gb/rls_options_overview.htm) for details about alternatives. **Note**: This topic focuses on RLS best practices for data sources and workbooks. For more in-depth examples of the concepts outlined in this topic, refer to the whitepaper [Best Practices for Row Level Security with Entitlement Tables](https://www.tableau.com/en-gb/learn/whitepapers/row-level-security-entitlements-tables) or [How to Set Up Your Database for Row Level Security in Tableau](https://tableauandbehold.com/2016/03/07/how-to-set-up-your-database-for-row-level-security-in-tableau/) on the blog _Tableau and Behold_. ## RLS workflow For live connections and multi-table extracts, the basic RLS workflow is: 1. The user is identified by logging in to Tableau Server or Tableau Cloud - This requires a distinct username per user and secure single sign-on (SSO) - Active Directory, LDAP or the Tableau REST API can be used to synchronise user names and establish permissions 2. The set of data entitlements for the user is retrieved from all possible data entitlements - This requires a data structure that can link entitlements to the Tableau username 3. The data is filtered by the entitlements for that user - This often requires using user functions in a calculated field 4. The published, filtered data is used to build content - Using a published (rather than embedded) data source with a data source filter ensures the RLS cannot be modified by downloading or web editing the workbook How the joins, calculated fields and filters are set up depends on the structure of the data and how users are managed. ## Entitlement tables Any unique combination of attributes that the data can be filtered on is an entitlement. Most commonly, there are separate tables for specifying the entitlements themselves and mapping those entitlements to users or user roles. Denormalising is recommended from a performance standpoint because joins are expensive operations. The entitlements view, consisting of the entitlements mapped to users or roles, is joined with the data. A user-based data source filter is then applied, acting as a WHERE clause that brings in only the entitlements – and therefore the appropriate data rows – for the relevant user. (Query optimisation should ensure the filtering occurs before joining when the query is processed to minimise data duplication. For more information, see [Performance and processing order of operations](#Performa).) ### Entitlement table models Generally, there are two models for representing entitlements: **Full mapping to the deepest level of granularity** - Entitlements are defined fully for every column. - There is one row in the mapping table for every possible entitlement the user has. - This model requires fewer join clauses. **Sparse entitlements** - Entitlements are defined for every level of hierarchy, with NULL used to represent an “all” state. - There is a single row in the mapping table for a particular level in the entitlement hierarchy, which vastly reduces the number of entitlement rows for users at high levels in a hierarchy. - This model requires more complex joins and filters. ### Users and roles Combinations of entitlements are commonly represented as _roles_, which are then linked to users in a many-to-many mapping table. This allows for easily changing or removing a user from the role, while still maintaining a record of the role and its entitlements. Alternatively, a many-to-many mapping table can be created that instead assigns users directly to entitlements as opposed to going through joining a role table. It will require managing the values more directly in the table but does eliminate a join. **Note**: The user values associated with a role or entitlement need to match the username or full name on the Tableau site in order to take advantage of the user functions in Tableau Desktop. ### Joins Regardless of the model used to represent the entitlements, it is advisable to join all entitlements and mapping tables together into a single denormalised entitlements view. While at first this will cause a “blowup” (highly duplicative) version of the entitlements, the data source filter on the user will reduce it back down. You will also want this view if you plan on using an extract. The deepest granularity method can have a performance benefit when everything is hierarchical – you only need to do a single join on the deepest level of the hierarchy. This only works if all of the attributes at the lowest level are distinct. If there is a chance for duplication (for example, a Central sub-region in more than one region), then you’ll need to join on all the columns to achieve the effect of a distinct key value. The actual details and their performance characteristics depend on the data system and require testing. For example, using a single key could potentially improve the performance because the join is then only executing on one column, but correctly indexing all of the columns may give equal performance when other factors are taken into consideration. ## Implement row-level security ### Deepest granularity After the denormalised view of mapped entitlements is created, an inner join is set up between the view and the data in the Tableau data connection dialog. The data can remain in a traditional star schema. Alternatively, the dimension and fact tables can be materialised together into two views. Multi-table extracts will build extract tables to match the joins, so creating the two views will simplify the resulting extract. The SQL will follow this basic pattern: SELECT \* FROM data d INNER JOIN entitlements e ON d.attribute\_a = e.attribute\_a AND d.attribute\_b = e.attribute\_b AND ... WHERE e.username = USERNAME() ### Sparse entitlements If your entitlements more closely resemble the sparse entitlements model, then the custom SQL to join the data to the entitlements would be a little more complex because of the NULL values. Conceptually, it would look like the following:  SELECT \* FROM data d INNER JOIN entitlements e ON (e.region\_id = d.region\_id OR ISNULL(e.region\_id) AND (e.sub\_region\_id = d.sub\_region\_id OR ISNULL(e.sub\_region\_id) AND (e.country\_id = d.country\_id OR ISNULL(e.country\_id) Without using custom SQL, this can be done with a cross join and additional filters in Tableau Desktop. Create a join calculation on both sides of the join dialog that simply consists of the integer 1 and set them equal. This joins every row from the data table with every row in the entitlements table. Then you need a calculation (or individual calculations) to account for the levels in the hierarchy. For example, you could have several calculations that follow this format: `[region_id] = [region_id (Entitlements View)] OR ISNULL([region_id (Entitlements View)]` Or you could have a combined calculation for all levels in one: (\[region\_id\] = \[region\_id (Entitlements View)\] OR ISNULL(\[region\_id (Entitlements View)\]) AND (\[sub\_region\_id\] = \[sub\_region\_id (Entitlements View)\] OR ISNULL(\[sub\_region\_id (Entitlements View)\]) AND (\[country\_id\] = \[country\_id (Entitlements View)\] OR ISNULL(\[country\_id (Entitlements View)\]) The ISNULL function matches any entitlement column to all items in the other column. As always with RLS, these calculations should be added as data source filters. ### Data source filter For both approaches, once the entitlements are correctly joined with the data, a filter needs to be set up to limit the data for a specific user. A calculated field should be created with a user function. For example, a simple Boolean comparison of whether the user listed in the Username field is the same as the username of the person logged into the Tableau site: `[Username] = USERNAME()` This calculation should be used as a data source filter (with TRUE selected). If the data source is embedded and a user has permissions to web edit or download the workbook, then the RLS is nonexistent since the filters enforcing it can be easily removed. The Tableau data source should be published separately as opposed to being left embedded in the workbook. ### All access with deepest granularity There is also a common scenario in which there are two access levels within the organisation: people who can see everything (“all access”) or people with some reasonably definable subset of entitlements. This is most commonly seen for embedded applications – the organisation hosting the data can see everything, but each client can only see their own data. In this case, you need a way to return the full data for the “all access” users, while maintaining the deepest granularity joins for all other users. For this technique, you will use Tableau groups to create an override using a calculation in the join condition. 1. Create a group for users who should see all the data (here called All Access) 2. From the fact view, create a left join with two join conditions - The first join condition should be on the column that represents the deepest level of granularity - The second join condition should be two calculations: - On the left side (the fact view), for the calculation, enter `True` - On the right side (the entitlements view), the calculation should be: `IF ISMEMBEROF('All Access') THEN False ELSE True END` 3. On a sheet, create a calculation structured as: `[Username] = USERNAME() OR ISMEMBEROF(['All Access'] ([Entitlements View)])` 4. Create a data source filter on the username calculation If a user is a member of the All Access group, then the join becomes a left join on `True = False`. This means there are no matches at all in the entitlements view, so the entire fact view is returned with NULLs for the columns from the entitlements view (zero duplication). In the case where the user is not part of the All Access group, the `True = True` join condition doesn’t change anything and the join will function as expected. The user calculation used as a data source filter is true for all rows when the group override is working, or it will filter down to only the user’s deepest granularity in the hierarchy. ### Performance and processing order of operations When a visualisation is viewed in Tableau Desktop, Tableau Server or Tableau Cloud, Tableau sends an optimised query to the RDBMS which then processes the query and sends results back to Tableau to render the visualisation with the resulting data. The order of operations for when joins, calculations and filters are carried out depends on the query optimiser and how the query is executed. #### Live connections When using a live connection to a data source in Tableau, the performance of the query execution is dependent on the query optimiser which translates the incoming SQL into an efficient plan for retrieving the data. There are two ways the query can be processed: 1. Filter the entitlement rows to the user then join to the fact table 2. Join the entitlements to the fact table then filter to the user’s rows In an ideal situation, the query optimiser will ensure the database processes the query by _filtering then joining_. If a user is entitled to everything, this means the maximum number of rows processed will be the number of rows in the data table. If the database processes the query by _joining then filtering_, there may be duplication of data. The maximum number of rows processed will be the number of users entitled to see that particular row times each row in the data table. It will be clear if this second scenario happens: your queries take a long time to finish, you get errors or there is an indication of performance issues in the database. Your total data volume will expand exponentially, which could cause inordinate system strain on the backend. #### Extracts When the data source in Tableau is a live connection, Tableau sends every query that is necessary to render a particular viz or dashboard to the RDBMS. When the data source is an extract, the process of querying data from the underlying data source only happens at extract creation and refresh. All of the individual queries for visualisations are answered by the extract engine from the extract file. The same order of operations issue is present when building single table extracts. However, the “blowup” will happen both on the underlying data source and within the resulting extract itself. ## Considerations with extracts Starting in Tableau 2018.3, the data engine can create a multi-table extract and RLS can be implemented as described above. Using multiple table extracts reduces the time it takes to generate an extract with many-to-many relationships by not materialising the join. The extract should be built with a _data object_ and an _entitlements object_. This is the simplest storage in the extract and results in the best performance. - The _data object_ is the table, view or custom SQL query that represents the denormalised combination of the fact and necessary dimension tables - The _entitlements object_ is a denormalised table, view or custom SQL query of whatever entitlements are necessary to filter the data at the most granular level, which requires: - A column for username matching the exact usernames in Tableau Server or Tableau Cloud - A row for each of the most granular entitlements to the data object This format is laid out in the deepest granularity method above. Multi-table extracts use the same method, with the caveat that only two data objects are being joined and any field-specific filtering is already applied within the object. Because multiple table extracts have extract filters disabled, you can filter either in the views or tables you connect to in the data source, or define the filters in custom SQL objects in the Tableau data connection dialog. **Note**: As with live connections, if the data source is embedded and a user has permissions to web edit or download the workbook, then the RLS is nonexistent since the filters enforcing it can be easily removed. The extract should be published separately as opposed to being left embedded in the workbook. ### Single table extracts The following method is only recommended when using a version of Tableau prior to 2018.3 – multiple table extracts are preferable if available. Single table extracts materialise any joins you build when constructing the Tableau data source and stores everything as a single table through one query, the results of which are transformed in a single table in the extract file. This denormalisation carries the risk of causing massive data duplication, as every row that was allocated to more than one entitlement or user would be duplicated as a result of the many-to-many relationship. To prevent this duplication: 1. Create a Security Users Field that contains the usernames for that entitlement - for example, a value may be “bhowell|mosterheld|rdugger” 2. Use the CONTAINS() function within Tableau to correctly identify individual users - For example, `CONTAINS([Security Users Field], USERNAME())` This method obviously has some caveats. It requires that you go from your entitlements in rows to a single column separated correctly using SQL, and that column can only contain so many characters. Partial matches can be trouble, and you need to use separators that will never be valid in the IDs themselves. Although it is performant within the Tableau Data Engine, as a string calculation it will be very slow for most databases. This limits your ability to switch back to a live connection. Alternatively, you can take different extracts per “role” or entitlement level, so that only the data appropriate to that person or level is contained within the extract, but this will require processes to appropriately permission and leverage template publication within Tableau Server, generally via the APIs. ## Use built-in row-level security in a database Many databases have mechanisms for RLS built in. If your organisation has already put effort into building row-level security in a database, you might be able to take advantage of your existing RLS. It's not necessarily easier or better to implement a built-in RLS model vs. building it with Tableau in mind; these techniques are generally leveraged when an organisation has already invested in these technologies and they want to take advantage of the investment. The main benefit of using built-in RLS is that administrators can implement and control their data security policy in one place: their databases. For more information, see [Row-Level Security in the Database](https://help.tableau.com/current/server-linux/en-gb/rls_datasource.htm). [Skip to main content](#main-content) # RMT Agent Initialisation Script Options After installing the RMT Agent you need to initialise the Agent. By default the only required flag you must include when running the initialisation script is `--accepteula`. Other options give you flexibility to customise the installation based on your environment and the security requirements of your enterprise. ## RMT Agent initialisation options \--accepteula Required. Indicates you have read and accepted the terms of the End User Licence Agreement (EULA). \-a Optional. Add the provided username to the appropriate groups, instead of the user running the initialise script. This gives the user access to the resources owned by the groups. This is not the same as the Run As user account. Default: the user running the initialisation script \-f Optional. Bypass warning messages or distribution version check. \-h | -? Optional. Displays the script's help text. \-q Optional. Quiet, suppress output except for errors and warnings. \--debug Optional. Print each command as it is run for debugging purposes. Produces extensive output. \--default-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that allows authorisation to access Tableau RMT Agent. If specified then `--unprivileged-user` must also be specified. \---disable-account-creation **Version:** Added in version 2023.1.0. Optional. Accounts/groups, that do not exist, will not be created. If specified, then you must also specify the `--unprivileged-user` parameter and a combination of the `--default-group` and/or other `--rmt-<...>-group` parameters. The user ID and groups those parameters refer to must already exist. \--rmt-authorised-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the install base install directory and the `install_dir/prerequisites` folder. If specified then `--unprivileged-user` must also be specified. Default: "`rmtagentapp`" or `--default-group` value \--rmt-config-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/agent/config` directory. If specified then `--unprivileged-user` must also be specified. Default: "`rmtagentconfig`" or `--default-group` value \--rmt-logs-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/agent/logs` directory. If specified then `--unprivileged-user` must also be specified. Default: "`rmtagentlogs`" or `--default-group` value \--unprivileged-user= **Version:** Added in version 2023.1.0. Optional. Name of the unprivileged user account used to run Tableau RMT Agent. You cannot change the account after initialising RMT. Default: "`tabrmt-agent`" [Skip to main content](#main-content) # Default Installation Permissions – Tableau Resource Monitoring Tool The following topic provides the default permissions set on various system accounts or groups during installation. If your environment or organisation requires you to use non-default accounts, this helps you determine what permissions are necessary for Resource Monitoring Tool (RMT) to function properly. **Note:** Resource Monitoring Tool (RMT) server and agent are not Federal Information Processing Standard (FIPS) 140-2 compliant and will not function properly on operating systems running with FIPS mode enabled. ## Windows installations By default, Tableau Resource Monitoring Tool creates these accounts when installed: - NT SERVICE\\TableauResourceMonitoringTool - NT SERVICE\\TableauResourceMonitoringToolPostgreSQL - NT SERVICE\\TableauResourceMonitoringToolRabbitMQ If you want or need to use other accounts in place of the default accounts, you can specify these after installation using the `rmt-admin` command line utility. For details, see [rmtadmin Command Line Utility](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-cmdline.htm#rmtadmin-service-setup). The permissions used by these default service accounts are shown below, as well as the minimum required permissions. Your service accounts should match the minimum permissions or the default permissions:
Service AccountResourceDefault permissionsRequired minimum permissions
Tableau Resource Monitoring Tool Master   
 Application files

Tableau Resource Monitoring Tool\master

Full control: read, write, execute, modify

Full control
 Log directories and files

Tableau Resource Monitoring Tool\master\logs

Full control: read, write, execute, modify

Read, write
 Configuration directory

Tableau Resource Monitoring Tool\master\config

Full control: read, write, execute, modify

Full control
    
Tableau Resource Monitoring Tool PostgreSQL   
 Application directory

Tableau Resource Monitoring Tool\prerequisites\postgresql<nn>

Full control: read, write, execute, modifyFull control
 

Data directory

Tableau Resource Monitoring Tool\data\postgresql<nn>

Full control: read, write, execute, modifyFull control
 Logs directory

Tableau\Tableau Resource Monitoring Tool\master\logs\pgsql

Full control: read, write, execute, modifyRead, write.
    
Tableau Resource Monitoring Tool RabbitMQ   
 

Data directory

Tableau Resource Monitoring Tool\data\rabbitmq

Full control: read, write, execute, modifyFull control
 

Application files

Tableau Resource Monitoring Tool\prerequisites\rabbitmq

Tableau Resource Monitoring Tool\prerequisites\erlang

Full control: read, write, execute, modifyFull control
 

Log files

Tableau Resource Monitoring Tool\master\logs\rabbitmq

Full control: read, write, execute, modifyRead, write
    
Tableau Resource Monitoring Tool Agent   
 

Application files

Tableau Resource Monitoring Tool\agent

Full control: read, write, execute, modifyFull control
 

Log directory and files

Tableau Resource Monitoring Tool\agent\logs

Full control: read, write, execute, modifyRead
 

Configuration directory

Tableau Resource Monitoring Tool\agent\config

Full control: read, write, execute, modifyFull control
## Linux installations By default Tableau Resource Monitoring Tool creates certain accounts when installed. If you want or need to use groups and users in place of the defaults, you can specify these after installation using the `rmt-admin` command line utility. For details, see [rmtadmin Command Line Utility](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-cmdline.htm#rmtadmin-service-setup). The default permissions used by these service accounts are shown below. Your permissions should match these permissions:
Service AccountResourcepermissions
Tableau Resource Monitoring Tool Master  
 Application files

/var/opt/tableau/tabrmt/master

Owner – Full permissions (read, write, execute)

Group – read, write, execute

Others – read, execute

 Log directories and files

/var/opt/tableau/tabrmt/master/logs

Owner – Full permissions (read, write, execute)

Group – read, write, execute

Others – read, execute

 Configuration directory

/var/opt/tableau/tabrmt/master/config

Owner – Full permissions (read, write, execute)

Group – read, write, execute

Others – read, execute

   
Tableau Resource Monitoring Tool PostgreSQL  
 Application directory

/opt/tableau/tabrmt/prerequisites/postgresql13

Owner – Full permissions (read, write, execute)

Group – read, execute

Others – read, execute

 

Service directory

/var/opt/tableau/tabrmt/data/postgresql13/pg_*

Owner – Full permissions (read, write, execute)

Group – none

Others – none

 

Data directory

/var/opt/tableau/tabrmt/data/postgresql13/

Owner – Full permissions (read, write, execute)

Group – read, write, execute

Others – read, execute

 

Logs directory

/var/opt/tableau/tabrmt/master/logs/pgsql

Owner – Full permissions (read, write, execute)

Group – read, write, execute

Others – execute

 Other directories under the PostgreSQL directory not mentioned above

/var/opt/tableau/tabrmt/data/postgresql13/<not mentioned above>

Owner – read, write

Group – none

Others – none

 /var/opt/tableau/tabrmt/data/postgresql13/base

/var/opt/tableau/tabrmt/data/postgresql13/global

Owner – Full permissions (read, write, execute)

Group – none

Others – none

 /var/opt/tableau/tabrmt/data/postgresql13/certificatesOwner – Full permissions (read, write, execute)

Group – Full permissions (read, write, execute)

Others – execute

   
Tableau Resource Monitoring Tool RabbitMQ  
 

Data directory

/var/opt/tableau/tabrmt/data/rabbitmq

Owner – Full permissions (read, write, execute)

Group – read, write and execute

Others – read, execute

 

Application files

/var/opt/tableau/tabrmt/rabbitmq/prerequisites/rabbitmq

/var/opt/tableau/tabrmt/rabbitmq/prerequisites/erlang

Owner – Full permissions (read, write, execute)

Group – read, execute

Others – read, execute

 

Log files

/var/opt/tableau/tabrmt/master/logs/rabbitmq

Owner – Full permissions (read, write, execute)

Group – read, write and execute

Others – execute

 

Other directories (under /rabbitmq directory)

/var/opt/tableau/tabrmt/data/rabbitmq/certificates

/var/opt/tableau/tabrmt/data/rabbitmq/mnesia

Owner – Full permissions (read, write, execute)

Group – read, write and execute

Others – execute

 /var/opt/tableau/tabrmt/data/rabbitmq/<other than mentioned>Owner – read, execute

Group – read, execute

Others – none

   
Tableau Resource Monitoring Tool Agent  
 

Application files

/var/opt/tableau/tabrmt/agent

Owner – Full permissions (read, write, execute)

Group – read, write and execute

Others – read, execute

 

Log directory and files

/var/opt/tableau/tabrmt/agent/logs

Owner – Full permissions (read, write, execute)

Group – read, write and execute

Others – read, execute

 

Configuration directory

/var/opt/tableau/tabrmt/agent/config

Owner – Full permissions (read, write, execute)

Group – read, write and execute

Others – read, execute

### Who can do this To do all the steps described above you need be an admin on the machine that you are installing Resource Monitoring Tool, and be a Tableau Server Administrator. [Skip to main content](#main-content) # RMT Server Initialisation Script Options After installing the RMT Server you need to initialise the Server. By default the only required flag you must include when running the initialisation script is `--accepteula`. Other options give you flexibility to customise the installation based on your environment and the security requirements of your enterprise. \--accepteula Required. Indicates you have read and accepted the terms of the End User Licence Agreement (EULA). \-a Optional. Add the provided username to the appropriate groups, instead of the user running the initialise script. This gives the user access to the resources owned by the groups. This is not the same as the Run As user account. Default: the user running the initialisation script \-f Optional. Bypass warning messages or distribution version check. \-h | -? Optional. Displays the script's help text. \-q Optional. Quiet, suppress output except for errors and warnings. \--debug Optional. Print each command as it is run for debugging purposes. Produces extensive output. \--default-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that allows authorisation to access Tableau RMT Agent. If specified then `--unprivileged-user` must also be specified. \---disable-account-creation **Version:** Added in version 2023.1.0. Optional. Accounts/groups, that do not exist, will not be created. If specified, then you must also specify the `--unprivileged-user` parameter and a combination of the `--default-group` and/or other `--rmt-<...>-group` parameters. The user ID and groups those parameters refer to must already exist. \--enable-fips **Version:** Added in version 2025.3.0. RHEL 8 Linux only. For more information, see [FIPS Compliance in Tableau Resource Monitoring Tool](https://help.tableau.com/current/server-linux/en-gb/rmt-fips-compliance.htm). Optional. Enable FIPS mode in RMT when installing on RHEL 8 computers. \--rmt-authorised-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the install base install directory and the `install_dir/prerequisites` folder. If specified then `--unprivileged-user` must also be specified. Default: "`rmtmasterapp`" or `--default-group` value \--rmt-config-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/master/config` directory. If specified then `--unprivileged-user` must also be specified. Default: "`rmtmasterconfig`" or `--default-group` value \--rmt-logs-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/master/logs` directory. If specified then `--unprivileged-user` must also be specified. Default: "`rmtmasterlogs`" or `--default-group` value \--rmt-openssl-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/prerequisites/openssl` directory. Default: "`rmtopenssl`" or `--default-group` value \--rmt-postgres-app-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/prerequisites/postgresql13` directory. Default: "`rmtpostgresapp`" or `--default-group` value \--rmt-postgres-data-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the install\_dir/master/logs directory. If specified then `--unprivileged-user` must also be specified. Default: "`rmtmasterlogs`" or `--default-group` value \--rmt-rabbitmq-app-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/prerequisites/rabbitmq` directory. Default: "`rmtrabbitmqapp`" or `--default-group` value \--rmt-rabbitmq-data-group= **Version:** Added in version 2023.1.0. Optional. Name of the group that owns the `install_dir/data/rabbitmq` directory. Default: "`rmtrabbitmqdata`" or `--default-group` value \--unprivileged-user= **Version:** Added in version 2023.1.0. Optional. Name of the unprivileged user account to run Tableau RMT Master. You cannot change the account after initialising RMT. Default: "`tabrmt-master`" [Skip to main content](#main-content) # RMT Upgrade Health Check Scripts Starting with the 2025.3.6 release, the RMT installer includes a pre-upgrade and a post-upgrade health check script to validate your Tableau Resource Monitoring Tool (RMT) environment before and after upgrading. These scripts identify pre-existing issues in your environment like misconfiguration, permission drift, disk space shortages, expired certificates or service failures that were present before and can cause any upgrade failure. The pre-upgrade and post-upgrade health check scripts can identify the following issues: - **Database and Disk Readiness**: Detects if a large database or excessive WAL files will cause the migration to hang or exhaust disk space. - **Permission and Security Integrity**: Identifies shifted file ownership or expired SSL certificates that would otherwise block services from restarting or agents from reconnecting. - **Dependency Validation**: Ensures required Windows components, like the Visual C++ 2022 Redistributable and OpenSSL 3.x, are present before PostgreSQL 15 is installed. - **Version Logic Safety**: Prevents ‘false downgrade’ errors caused by version metadata regressions. ## Pre-upgrade script The pre-upgrade script runs automatically when you start an upgrade. It inspects your RMT Server or Agent host while the existing installation is still intact and generates a PASS / FAIL / WARN report. For **Linux**, the pre-upgrade check runs automatically as part of: sudo bash upgrade-rmt-master ... sudo bash upgrade-rmt-agent ... To skip the automatic check (not recommended): sudo bash upgrade-rmt-master --skip-pre-upgrade-check ... For **Windows**, the installer runs the pre-upgrade check automatically. During installation, you are also prompted with the option to skip the upgrade. However, that is not recommended. ### Manual pre-upgrade check You can run the script manually to preview any potential issues. To run it manually, use the following steps based on your operating system: **For Linux:** Run the commands as a root user. To include database checks, use the export command to securely pass your password. sudo bash /opt/tableau/tabrmt/master/install-scripts/rmt-pre-upgrade-check.sh To run with PostgreSQL checks enabled, use the following command: export RMT\_DB\_PASSWORD="" sudo -E bash /opt/tableau/tabrmt/master/install-scripts/rmt-pre-upgrade-check.sh To run with a specific component and output path, use the following command: sudo bash rmt-pre-upgrade-check.sh --component master --output /tmp/rmt-report.txt **For Windows:** The pre-upgrade files for RMT Server are installed by default in the following location: `C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\scripts\pre-upgrade\rmt-pre-upgrade-check.ps1` The pre-upgrade files for Agent are installed by default in the following location: `C:\Program Files\Tableau\Tableau Resource Monitoring Tool\agent\scripts\pre-upgrade\rmt-pre-upgrade-check.ps1` To run the script manually, launch PowerShell as Administrator and run: `cd "C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\scripts\pre-upgrade"` .`\rmt-pre-upgrade-check.ps1` To run with PostgreSQL checks enabled, use the following command: $env:RMT\_DB\_PASSWORD = "" .\\rmt-pre-upgrade-check.ps1 To run with a specific component and output path, use the following command: .\\rmt-pre-upgrade-check.ps1 -Component master -OutputPath C:\\temp\\rmt-report.txt ### Additional options Use the following options to customise the pre-upgrade check: `-Component` Specify RMT server or agent. The script auto-detects this if omitted `--db-password / -DbPassword` The internal RMT database admin password. Required for PostgreSQL checks. `--output / -OutputPath` Specify where to save the report. By default, it is saved to `/tmp/ (Linux) or C:\temp\ (Windows).` `--target-version / -TargetVersion` The RMT version you plan to install; enables version-specific checks. `--quiet / -Quiet` Filters output to show only FAIL and WARN results. `--verbose / -Verbose` Output displays detailed technical data for every check performed. ### Script results and required actions The following table explains the script result and the action:
ResultStatusAction
PASSEXIT CODE 0No issues found. The upgrade proceeds.
WARNEXIT CODE 1The upgrade proceeds, but you must review the report for non-critical risks.
FAILEXIT CODE 2Upgrade Aborted. You must resolve these issues before re-running the upgrade.
## Post-upgrade script The post-upgrade health check scripts run automatically at the end of every RMT installation and upgrade. It verifies that all services started correctly, infrastructure is healthy and configuration is intact. The post-upgrade check does not block the installer. All identified failures are recorded in the final report. ### Manual post-upgrade check To run it manually, use the following steps based on your operating system: **For Linux:** Run the following commands as a root user or with `sudo` privileges: - For the RMT Server: sudo bash /opt/tableau/tabrmt/master/install-scripts/rmt-post-upgrade-check --component master --mode upgrade - For Agent: sudo bash /opt/tableau/tabrmt/agent/install-scripts/rmt-post-upgrade-check --component agent --mode upgrade **For Windows:** The post-upgrade files for RMT Server are installed by default in the following location: `C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\scripts\post-upgrade\rmt-post-upgrade-check.ps1` The post-upgrade files for Agent are installed by default in the following location: `C:\Program Files\Tableau\Tableau Resource Monitoring Tool\agent\scripts\post-upgrade\rmt-post-upgrade-check.ps1` To run the scripts manually, open PowerShell as an Administrator and navigate to your RMT installation directory before running the commands: - For RMT server: .\\rmt-post-upgrade-check.ps1 -Component master -Mode upgrade - For Agent: .\\rmt-post-upgrade-check.ps1 -Component agent -Mode upgrade ### Additional options You can use the following options to customise the script: `--component / -Component` Specify RMT server or agent. The script will try to auto-detect this, if omitted. `--db-password / -DbPassword` The password for the internal RMT database admin. This is required to enable PostgreSQL checks. `--output / -OutputPath` The path where the report file will be saved. Defaults to `/tmp/ (Linux)` or `C:\temp\ (Windows)`. `--target-version / -TargetVersion` The specific RMT version you are upgrading to, used for version-specific checks. `--quiet / -Quiet` Reduces output to show only **FAIL** and **WARN** results. `--verbose / -VerboseOutput` Provides detailed technical output for every check performed. Note: We recommend setting RMT\_DB\_PASSWORD as an environment variable rather than passing it on the command line, as command-line arguments are visible in the process list. ### Script results and required actions The following table explains the script result and the action:
ResultStatusAction
PASSEXIT CODE 0System is healthy. No action required.
WARNEXIT CODE 1Review the warnings; most resolve on their own (e.g. transient RabbitMQ startup lag).
FAILEXIT CODE 2One or more critical checks failed – investigate and remediate.
## Reports You can find the pre-upgrade reports here: - Linux: `/tmp/rmt-precheck-.txt` - Windows (Manual): `C:\temp\rmt-precheck--.txt` You can find the post-upgrade reports here: - Linux: `/rmt-postcheck-report.txt` - Windows (Manual): `C:\temp\rmt-postcheck--.txt` - Windows (via Installer): When the installer runs the check, it uses fixed file names: - `C:\temp\rmt-postcheck-master-report.txt` - `C:\temp\rmt-postcheck-agent-report.txt` For information about pre-upgrade and post-upgrade checks in the report, see the [Upgrade Reference](https://help.tableau.com/current/server-linux/en-gb/rmt-admin-upgrade-reference.htm) section. ### Sample report Following is a sample pre-upgrade health check report: \================================================================== RMT Pre-Upgrade Health Check Report Script Version : 1.0.0 Generated : 2026-04-08 14:30:00 Component : master Hostname : rmt-master-01.example.com RMT Version : 2025.1.9 \================================================================== OVERALL STATUS : UPGRADE WITH CAUTION (2 warning(s) -- review before proceeding) PASS: 44 FAIL: 0 WARN: 2 INFO: 10 SKIP: 3 \================================================================== WARNINGS -- Review Before Upgrading \================================================================== \[WARN\] #21d Hangfire schema is 1.2 GB Check 21g for delete\_hash() volatility bug \[WARN\] #24 1 queue(s) with >10000 messages (max: 15234) Resolve backlogs before upgrading [Skip to main content](#main-content) # RMT Upgrade: Technical Reference This section is a technical reference guide for the operational thresholds, system paths and network ports checked during the upgrade process. Use these tables to quickly diagnose validation failures and align your environment with required RMT baselines. **Note**: To align with our company values of Equality, we have updated RMT Master to RMT Server. In some cases, RMT Server installation paths and commands may use the term ‘master’ instead of ‘server’. So, you may continue to see the term in CLI commands and options, installation folders, configuration files and other instances. For more information, see [About Tableau Help](https://help.tableau.com/current/tableau/en-gb/about-tableau-help.htm).. ## Pre-upgrade health checks The pre-upgrade health check inspects your RMT Server or Agent host while the existing installation is still intact like services running, database accessible and generates a detailed PASS / FAIL / WARN report. It runs over 80 individual checks across system resources, accounts, file permissions, PostgreSQL, RabbitMQ, networking, configuration files and RMT services. The following table lists the checks performed before the upgrade. If any item returns a **FAIL** status (Exit Code 2), the upgrade is cancelled. ### System and hardware
Check IDName PlatformsFailure (FAIL) / Warning (WARN) Condition
#1Operating SystemLinux, WindowsWARN OS version is not in the pre-check allow-list. The supported list is RHEL 8.x/9.x, Ubuntu 20.04/22.04/24.04, CentOS Stream 8/9, Oracle Linux 8.x/9.x, AlmaLinux 8.x/9.x, Rocky Linux 8.x/9.x, Amazon Linux 2023, Windows Server 2019/2022
#2Disk SpaceLinux, WindowsFAIL RMT Server < 20 GB or Agent < 5 GB free. WARN RMT Server < 50 GB or Agent < 10 GB free
#2aDisk TypeLinux, WindowsINFO Reports if the drive is SSD or HDD
#3

RAM

Linux, WindowsWARN RMT Server < 8 GB (minimum) or Agent < 4 GB (minimum)
#4CPU CoresLinux, WindowsWARN RMT Server < 8 GB (minimum) or Agent < 4 GB (minimum)
#4aCPU InstructionsLinux, WindowsFAIL (Linux): Missing sse4_2 or popcnt. WARN (Windows): Older CPU detected.
#4bVC++ RedistWindowsFAIL Visual Studio 2022 C++ Redistributable missing.
#4cOpenSSL DLLsWindowsINFO Checks for libcrypto-3-x64.dll and libssl-3-x64.dll
#5System uptimeLinux, WindowsINFO: Notes if < 10 minutes (very recent reboot) or > 90 days (pending patches)
#6Systemd runningLinuxFAIL systemd not running, PASS : Running or degraded
#7FIPS ModeLinux, WindowsFAIL (Windows): Enabled in registry, PASS FIPS disabled . WARN (Linux) Mismatch with config.json. PASS OS and config match
#7aPowerShell versionWindowsINFO PowerShell version
#7bSystem localeWindowsINFO System locale information
#7cWMI HealthWindowsWARN WMI repository is inconsistent
### Accounts and permissions
Check IDNamePlatformFailure (FAIL) / Warning (WARN) Condition
#8Service AccountLinux, WindowsFAIL RMT service account or Windows service not found
#9Group MembershipLinuxFAIL Required service groups (e.g. rmtmasterapp, rmtmasterconfig, and so on) missing
#10User SystemdLinuxFAIL User systemd daemon/linger is not active
#44pamtester installedLinuxWARN if not installed. To fix this, install yum install pamtester or apt install libpam-runtime
#### Directory ownership and permissions for Linux
Check IDDirectoryExpected Owner:GroupExpected Mode
#11Config dirtabrmt-master:rmtmasterconfig2775
#12Log dirtabrmt-master:rmtmasterlogs2775
#13Data dir (+ PG/RMQ subdirs)Component-appropriate2775
#14Prerequisites dirsroot or component user755
#14arabbitmq-defaults fileGroup-writable requiredg+w
#15SSL cert dirtabrmt-master:rmtopenssl2775
#15aHome directoryComponent user770
#15b/etc/profile.d/tabrmt-*.shrootdefault
#15cConfig dir setgid bit--2xxx required
#16environment.bashComponent usergroup-writable
Severity: **FAIL** on ownership only for the data-dir set (#13 and #15). All other Linux directory checks (#11, #12, #14, #14a, #15a–c, #16) emit **WARN** on ownership/mode mismatches because the installer’s post install re-applies ownership during upgrade. **WARN** if permission mode is wrong but ownership is correct. #### Directory ownership and permissions for Windows
CheckNameSeverity
#11Config dir ACLsFAIL if service user lacks FullControl
#12Log dir ACLsFAIL if service user lacks Modify
#13Data dir ACLs (RMT Server)FAIL if service user lacks FullControl on PG/RMQ data dirs
#14Prereqs dir ACLs (RMT Server)WARN if missing ReadAndExecute (advisory – every upgrade reinstalls the prereq MSIs and their post-install actions re-apply ACLs)
#15SSL cert dir ACLs (RMT Server)FAIL if service user lacks FullControl
#16aService user identityPASS (informational -- shows which user the service runs as)
#16bSeServiceLogonRight privilegeINFO if found; WARN if not found or secedit fails
#16cService user ACLs on RMT dirsFAIL if service user lacks required rights
### Database (PostgreSQL) All PostgreSQL checks run only on the RMT Server.
Check IDNameRequires --db-password optionFailure (FAIL) / Warning (WARN) Condition
#17PG ServiceNoFAIL Local service Stopped AND Disabled
#18Port 5555 listeningNoWARN (security group / VPC / RDS hint) Not listening
#19DB ConnectionYesWARN Unable to connect to internal DB (SSL, password or network issue)
### Messaging (RabbitMQ) The Messaging (RabbitMQ) checks run only on the RMT Server.
Check IDNameFailure (FAIL) / Warning (WARN) Condition
#22RMQ ServiceFAIL Local service Stopped AND Disabled
#24Queue BacklogWARN Any queue that has > 10,000 messages
#25RabbitMQ usersWARN if default guest user still exists
#26Active connectionsINFO only. Reports active connection count
#27Erlang cookie accessibleWARN if cookie file missing, if permissions wrong (should be mode 400 or 600)
#27aERLANG_HOME setWARN (Windows only) if `ERLANG_HOME` not set or path does not exist.
#27bSSL ValidityFAIL Certificates are expired
#27cDisk AlarmFAIL < 10 GB free on RMQ partition (Upgrade will hang)
#45Certificate directory populatedWARN if cert dir exists but is empty or missing expected certificate files (server cert, key, CA cert)
### Network and configuration
Check IDNameFailure (FAIL) / Warning (WARN) Condition
#28a/bAgent-Master CommsWARN Agent cannot reach Master on 5671, 5672, 80 or 443
#33-35JSON/Bash ConfigFAIL Missing or invalid config.json, setup.json or environment.bash
#36aKnown-Bad VersionFAIL Current version is 2025.3.0 (Regression blocks upgrade)
### Services and backup
Check IDNameFailure (FAIL) / Warning (WARN) Condition
#38All RMT services runningWARN for each stopped service
#38aStranded ProcessesFAIL Lingering tabrmt-* processes found after services stopped
#39Background processor runningWARN if the host process is not running
#40Pre-upgrade backup reminderWARN as a reminder to back up configuration before upgrading
#41TopologyINFO only. Reports Master/Agent node type and (with DB) active agent count
#42Component version inventoryINFO only. Reports RMT, PostgreSQL, RabbitMQ, OpenSSL versions
#43Machine specs summaryINFO only. Reports OS, CPU cores, RAM, free disk space
## Post-upgrade health checks These checks run after the upgrade. They are non-blocking and failures do not stop the upgrade but indicate post-install issues.
Check IDNameComponentFailure (FAIL) / Warning (WARN) Condition
#1a-dServices and processesRMT Server, AgentFAIL Main, PG or RMQ services are not running
#2Host process SupervisorRMT Server, AgentWARN Host supervisor process missing (No auto-recovery)
#3a-bConfiguration file integrityRMT Server, AgentFAIL if missing or invalid JSON
#4a-bFile PermissionsRMT Server, AgentFAIL Config/Log dirs not readable/writable by service account
#5a-dPort ListeningRMT ServerFAIL Web (443), AMQP (5672), or DB (5555) not listening
#6PostgreSQL ConnectivityRMT ServerFAIL PostgreSQL not accepting connections
#7RabbitMQ statusRMT ServerSKIP if external. FAIL after all retries exhausted.
#8aQueue ConsumersRMT ServerWARN Backlog exists but no active consumers (Master workers disconnected)
#9RMQ AlarmsRMT ServerFAIL Active Memory or Disk resource alarms detected
#10RabbitMQ SSL certificateRMT ServerFAIL if certificate expired. WARN if certificates expires within 30 days
#11FIPS MatchRMT Server, AgentFAIL OS FIPS state mismatches isFIPSEnabled config
#12Web server HTTP responseRMT ServerMakes HTTP GET to ‘https://localhost:<port>/authentication/login’. PASS on 200 or 302. FAIL on connection refused/timeout. WARN on other errors.
#13HTTPS certificate validityRMT ServerFAIL Web server TLS certificate is expired
#14a-dDisk SpaceRMT Server, AgentFAIL < 1 GB free. WARN: < 5 GB free
#15Recent Log ErrorsRMT Server, AgentFAIL FATAL errors in logs. WARN: CRITICAL errors
#16RMT StatusRMT Server, AgentFAIL rmtadmin status returns failure patterns
#17Agent log historyAgentChecks log tracking files (.history, .json) in the agent data directory. WARN if files are unreadable or corrupt
#18a-fInventory VersionRMT Server, AgentINFO about RMT version, PostgreSQL version, RabbitMQ version, Erlang/OTP version, .NET Runtime (Windows) / OS (Linux), OS version (Windows) / Kernel (Linux)
## Health check exit codes Use the following exit codes to interpret the results of both the pre-upgrade and post-upgrade health check scripts. ### Pre-upgrade scripts
Exit CodeStatusUpgrade Behaviour
0READY TO UPGRADEUpgrade proceeds
1UPGRADE WITH CAUTIONUpgrade proceeds; review warnings
2Do not upgradeUpgrade cancelled
3Script ErrorCheck execution environment
### Post-upgrade scripts
Exit CodeStatus
0ALL PASSED
1WARNINGS PRESENT
2CRITICAL FAILURES
## InstallerContext severity changes When run with `-InstallerContext` during automatic Windows MSI upgrades, the following checks behave differently from the manual default. The default (non-InstallerContext) behaviour is \*already\* WARN for ‘stopped but not Disabled’ / ‘port not listening’ states; FAIL is reserved for ‘Stopped+Disabled’. Under \`-`InstallerContext`\`, even the ‘Disabled’ branch is reported as WARN so an in-flight installer-driven upgrade is never vetoed by a transient state the installer is about to fix.
CheckNameDefaultInstallerContext
#17PG ServiceWARN if Stopped, FAIL if Stopped and Disabled, INFO if all stoppedWARN
#18PG PortWARN if not listening, INFO if all services stoppedWARN
#22RabbitMQ ServiceWARN if Stopped, FAIL if Stopped+Disabled, INFO if all stoppedWARN
#23Port 5672 (AMQP)WARN if not listening, INFO if all services stoppedWARN
#38aStranded RMT Processes(see check description)SKIP (installer manages process lifecycle)
### Pre-upgrade thresholds
ThresholdRMT ServerAgentUnit
Disk space FAIL205GB free
Disk space WARN5010GB free
Temp dir FAIL55GB free
Temp dir WARN1010GB free
RAM FAIL84GB
RAM WARN168GB
CPU FAIL42cores
CPU WARN84cores
Database size FAIL500-GB
Database size WARN200-GB
Hangfire schema FAIL10-GB
Hangfire schema WARN1-GB
WAL dir FAIL (Windows)10-GB
WAL dir FAIL (Windows)2-GB
WAL dir FAIL (Linux)10-GB
Mnesia dir WARN5-GB
RabbitMQ disk alarm FAIL10-GB free
Queue backlog WARN10,000-messages
Certificate expiry WARN3030days
Cleanup retention WARN180-days
Dead tuple ratio WARN20-percent
Agent heartbeat stale15-minutes
Network driver age WARN3-years
Log dir size WARN55GB
Log dir size WARN (severe)2020GB
### Post-upgrade thresholds
ThresholdValueUnit
Disk space FAIL1GB free
Disk space WARN5GB free
Certificate expiry WARN30days
Queue backlog WARN10,000messages
Log scan window60minutes
RabbitMQ startup retry6 attempts x 5 sec30 seconds total
## Minimum supported component versions
ComponentMinimum Version
RabbitMQ>= 3.10.10
Agent version>= 2023.1.0
### Automation and CI/CD Integration **For Linux:** \`\`\`base \# Linux sudo bash rmt-pre-upgrade-check.sh --component master --db-password "$DB\_PASSWORD" EXIT\_CODE=$? if \[ $EXIT\_CODE -eq 2 \]; then echo "BLOCKED: Fix critical issues before upgrading" exit 1 fi \`\`\` **For Windows:** \`\`\`powershell \# Windows .\\rmt-pre-upgrade-check.ps1 -Component master if ($LASTEXITCODE -eq 2) { Write-Error "BLOCKED: Fix critical issues before upgrading" exit 1 } \`\`\` ## Installation directory reference To manually invoke the underlying diagnostic utilities or verify your installation structure, refer to the platform-specific directory paths: ### Linux directory structure \`\`\` `/opt/tableau/tabrmt/ # Install root` +`-- master/ # Master application binaries` `+-- agent/ # Agent application binaries` `+-- prerequisites/ # Bundled dependencies` `/var/opt/tableau/tabrmt/ # Data root` `+-- master/config/ # config.json, setup.json` `+-- master/logs/ # Application logs` `+-- data/postgresql15/ # PostgreSQL data files` `+-- data/rabbitmq313/ # RabbitMQ data/mnesia` `+-- data/ssl/ # TLS certificates` `/etc/opt/tableau/tabrmt/` `+-- master/environment.bash # Master environment variables` `+-- agent/environment.bash # Agent environment variables` \`\`\` ### Windows directory structure \`\`\` `C:\Program Files\Tableau\Tableau Resource Monitoring Tool\ # Install root` `C:\ProgramData\Tableau\Tableau Resource Monitoring Tool\ # Data root` \`\`\` ### Required network ports
PortServiceDirection
80RMT Web UI (HTTP)Inbound
443RMT Web UI (HTTPS)Inbound
5672RabbitMQ AMQPInbound on RMT Server
5671RabbitMQ AMQP over TLSInbound on RMT Server
15672RabbitMQ Management UILocal
25672RabbitMQ inter-nodeLocal
5555Internal PostgreSQLLocal
[Skip to main content](#main-content) # rmtadmin Command Line Utility Resource Monitoring Tool includes a command line interface, `rmtadmin.cmd`, located in the installation folder. The default installation folder is: - RMT Server `/var/opt/tableau/tabrmt/master/`. - Agent: `/var/opt/tableau/tabrmt/agent/`. > `rmtadmin` is included in both the **RMT Server** and **Agent** installations. Some commands may vary based on whether you are using the RMT Server or Agent `rmtadmin` command line utility. E.g. the `users` command only works from the _RMT Server_. The `ziplogs` command is available everywhere but only includes the log files from the application the command is run on. **Note:** You must run these commands as the `tabrmt-master` user: `sudo su --login tabrmt-master` Here are the commands that can be used with the `rmtadmin` command line: **Note:** The `rmtadmin` commands use both positional parameters and options. The positional parameters should be specified using only the values. You don't need to specify the actual keyword. The option keyword and the value should be specified using an equals sign. Example: `rmtadmin --