Capability library / Application package

Tableau package v1.0.0

Tableau REST API on the customer's own Tableau Server or Tableau Cloud site: read workbooks, data sources and users, update and publish workbooks, refresh data source extracts, and delete workbooks and data sources.

Review state: Reviewed · Distributable: yes, digest matches the release manifest

This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern

Before you enable this package

The endpoint host 'tableau-instance.invalid' is a reserved .invalid placeholder that fails closed until you substitute the real host in both the endpoint URLs and the egress allowlist.

Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.

Capabilities (8)

Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/tableau.json and embeds a copy in the release binary.

Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.

On supported execution paths routed through AAES Govern, the R3 actions listed below require approval by an authorized person. Bypass paths and observation-only registrations are outside that guarantee. A provider's restoration feature does not remove this approval requirement. A provider-side approval, such as approving a GitLab merge request, is also separate from AAES Govern human approval. The capability matrix shows which execution paths are implemented, restricted to lab use, or refused at startup. Live compatibility must be tested in your environment.

Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.

tableau.workbooks.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://tableau-instance.invalid/api/3.29/sites/SITE_ID/workbooks
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
internal

Read workbooks.

List the workbooks on one site (a filtered, sorted list of all or selected fields per the documented Query Workbooks for Site method); this pack registers the collection read only — single-workbook reads and workbook content downloads are not registered. Workbook names, projects and owners reveal the organization's reporting layout. SITE_ID is a placeholder the deployment binds before enabling and the path pins REST API version 3.29 (see the pack notes); the host is a reserved placeholder.

tableau.datasources.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://tableau-instance.invalid/api/3.29/sites/SITE_ID/datasources
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
internal

Read data sources.

List the published data sources on one site; this pack registers the collection read only — Query Data Source (GET .../datasources/{datasource-id}), connection-detail reads and .tdsx downloads are not registered. Data source names, types and projects reveal where the organization's reporting data lives. SITE_ID is a placeholder the deployment binds before enabling and the path pins REST API version 3.29 (see the pack notes); the host is a reserved placeholder.

tableau.users.read v1.0.0R0

Kind
tool
Action
read
Endpoint
GET https://tableau-instance.invalid/api/3.29/sites/SITE_ID/users
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
pii

Read users.

List the users on one site (the documented Get Users on Site method): names and site roles, which are personal data, so the read is classified as pii (personal data). This pack registers the collection read only — single-user reads are not registered, and Add User to Site is a documented exclusion (see the pack notes). SITE_ID is a placeholder the deployment binds before enabling and the path pins REST API version 3.29 (see the pack notes); the host is a reserved placeholder.

tableau.workbook.update v1.0.0R3

Kind
tool
Actions
update, share, transfer
Endpoint
PUT https://tableau-instance.invalid/api/3.29/sites/SITE_ID/workbooks/WORKBOOK_ID
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
internal

Update workbook.

Update workbook details. The unrestricted body can also change its project or owner. Moving projects changes effective access through inherited permissions; changing owner transfers the content to another user. The capability therefore declares update, share, and transfer at R3.

Enforce any restriction to metadata-only edits in policy. Bind SITE_ID and WORKBOOK_ID before enabling. The path pins REST API version 3.29; see the package notes.

tableau.workbook.publish v1.0.0R3

Kind
tool
Action
deploy
Endpoint
POST https://tableau-instance.invalid/api/3.29/sites/SITE_ID/workbooks
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
internal

Publish workbook.

Publish a workbook to a site, either in one part or by committing a multipart upload. Publishing exposes content to site viewers; overwrite replaces a workbook they already use. Registered as deploy at R3. A later replacement cannot undo what viewers have already seen.

The unrestricted multipart body can include connectionCredentials with embed=true, which stores database credentials on the server beside the workbook. Handle a body containing those values as secret material.

Bind SITE_ID before enabling. The path pins REST API version 3.29; see the package notes.

tableau.datasource.refresh v1.0.0R3

Kind
tool
Action
deploy
Endpoint
POST https://tableau-instance.invalid/api/3.29/sites/SITE_ID/datasources/DATASOURCE_ID/refresh
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
internal

Refresh data source.

Refresh a published data source's extract now (the documented Update Data Source Now method on the data sources resource). Registered with the deploy action at the minimum R3 tier: the refresh queries the underlying source system and rewrites the extract that every dependent workbook serves to its viewers — the data the organization sees changes as a direct effect of this call, which is deploy-equivalent, and deploy is one of the designated actions requiring human approval. SITE_ID and DATASOURCE_ID are placeholders the deployment binds before enabling and the path pins REST API version 3.29 (see the pack notes).

tableau.workbook.delete v1.0.0R3

Kind
tool
Action
delete
Endpoint
DELETE https://tableau-instance.invalid/api/3.29/sites/SITE_ID/workbooks/WORKBOOK_ID
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
internal

Delete workbook.

Delete a workbook. Per the documentation, deleting a workbook deletes all of its assets with it — associated views, data connections and so on — so the blast radius is the whole workbook, not one record, and subscribers and embedded links break. Registered as delete at the minimum R3 tier; delete is one of the designated actions requiring human approval. SITE_ID and WORKBOOK_ID are placeholders the deployment binds before enabling and the path pins REST API version 3.29 (see the pack notes).

tableau.datasource.delete v1.0.0R3

Kind
tool
Action
delete
Endpoint
DELETE https://tableau-instance.invalid/api/3.29/sites/SITE_ID/datasources/DATASOURCE_ID
Connector
http
Custody
customer_vault
Credential ref
secret-ref-tableau-session-token
Data class
internal

Delete data source.

Delete a published data source. Per the documentation, its associated data connection is deleted with it, and workbooks that use the data source are not deleted but no longer work properly — the blast radius extends to every dependent workbook. Registered as delete at the minimum R3 tier; delete is one of the designated actions requiring human approval. SITE_ID and DATASOURCE_ID are placeholders the deployment binds before enabling and the path pins REST API version 3.29 (see the pack notes).

Credential reference

The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.

Reference
secret-ref-tableau-session-token
Custody
customer_vault
Injection
header (X-Tableau-Auth)

Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.

Complete credential requirements

A Tableau credentials token (session token) for one site, held in the client's own secret manager. The stored material must be the complete X-Tableau-Auth header value — the token string returned by Sign In, verbatim. Token issuance is an external process this pack does not register: the deployment's custody job calls Sign In (POST /api/{api-version}/auth/signin) with a personal access token name and secret and the site's contentUrl, parses the credentials token, site LUID and user LUID out of the response, and writes the token under this reference.

Tableau strongly recommends PAT sign-in over username and password; on Tableau Cloud with MFA, a PAT (or a connected-app/UAT JWT flow, which this pack does not register) is required. The PAT itself is long-lived (Tableau Server: one year by default; Tableau Cloud: per the site setting; unused PATs expire after 15 consecutive days) and should live in a separate vault entry the sign-in job reads — the value under THIS reference is the session token.

Expiry and revocation: the credentials token expires after 240 minutes IDLE by default, tunable via wgserver.session.idle_limit — an idle timeout, not a bounded maximum lifetime: active use keeps extending the session, and the reviewed documentation states no hard cap — and the token is site-scoped: it returns 403 against any other site. The custody job must re-sign-in and update the stored value before expiry; an expired value fails closed with a 401.

Sign Out invalidates the token immediately. Note carefully: the reviewed documentation does NOT state whether revoking a PAT invalidates credentials tokens already issued from it — the deployment must assume an issued token may remain usable until it expires or is signed out, so the session idle timeout is the effective revocation window and should be set accordingly.

Least privilege: issue the PAT to a dedicated service-account user with the minimum site role that covers these capabilities, and use one PAT per integration so revocation is granular (a user may hold multiple PATs).

Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • tableau-site-content (api, internal): https://tableau-instance.invalid/api/3.29/sites/SITE_ID
  • tableau-site-users (api, pii): https://tableau-instance.invalid/api/3.29/sites/SITE_ID/users

Technical package and review record

Complete provider requirements and exclusions

The endpoint host 'tableau-instance.invalid' is a reserved non-production placeholder (an RFC 2606 reserved TLD): substitute the customer's Tableau Server base URL — or, for Tableau Cloud, the pod host such as <pod>.online.tableau.com — before enabling, in every endpoint, in the resource locators and in every egress allowlist entry; the allowlist matches exactly, so all three must be substituted together, and substitution is a required deployment step. SITE_ID, WORKBOOK_ID and DATASOURCE_ID in the paths are placeholders the deployment binds to concrete values before enabling, and SITE_ID is the site LUID returned by the Sign In response for the site the deployment governs.

The paths PIN REST API version 3.29: the fetched reference pages present 3.29 as the current version and the operation contracts registered here were reviewed against those pages — a deployment that binds a different version must re-review the operations, because capabilities vary by version. Session-token model, these endpoints do not accept the stored vault secret directly. An external deployment process calls Sign In (POST /api/{version}/auth/signin) with a personal access token name and secret plus the site's contentUrl, receives a short-lived credentials token and the site LUID, and stores the token as the complete X-Tableau-Auth value under the vault reference — see the credential note for the full lifecycle.

This pack registers no auth/signin or auth/signout capability: session establishment is the credential process, not a governed business operation.

Documented exclusions — this pack does not register: Add User to Site and site-role changes (access granting — share-class operations requiring their own review); the permissions endpoints (Add/Delete Workbook or Data Source Permissions — direct ACL grants on content); Create Subscription (emails workbook content to recipients on a schedule — send-class, and a share of rendered data outside the platform); Publish Data Source and publish-append/replace modes (content publication the integration does not require); server-administration endpoints (Create Site, server settings, server-info configuration); flow and extract-refresh task management; Sign In with the user element (server-administrator impersonation of another user); connected-app and unified-access-token JWT sign-in flows; and the encrypted keychain endpoints (retrieveKeychain/uploadKeychain migrate embedded credentials between servers — credential-material movement, excluded outright).

These operations are excluded.

Approval classification: publish and extract refresh are registered with the deploy action at the minimum R3 tier — they change the content and data every viewer of the site consumes, which is deploy-equivalent; deploy is one of the designated actions requiring human approval. Update Workbook is registered update, share and transfer at the minimum R3 tier because its unrestricted body can change the workbook's owner and project, and moving a workbook into a project changes its effective permissions through project permission inheritance — an access change, not a cosmetic edit.

Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.

The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.

Review block

This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.

Review completed: 2026-09-22

4 sources, retrieved 2026-09-21

Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.

Release identity

SHA-256 of the pack file bytes: 4747abf39e2cdff2cfa944752ce033408f2e51249c27a55ad6d795f50e849c56

Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.