Release identity
SHA-256 of the pack file bytes: 4d892167fd32c0d8ec7615e53570b2afec595b7cfd29ab50e87fd94b4a7f5476
Not in the distributable release manifest. The binary carries a digest-bound manifest of the distributable library; a pack whose bytes differ from its manifest entry — endpoint, tier, allowlist, or credential edited, with provider, version, and review block preserved — fails the digest check, loses distributability, and renders MODIFIED rather than as the shipped reviewed artifact. Review state and artifact status are different facts: the first is a documentation-review declaration, the second is the identity of the exact bytes.
Capabilities (8)
tableau.workbooks.read v1.0.0R0
- 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
List the workbooks on one site (a filtered, sorted list of all or selected fields per the documented Query Workbooks 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
- 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
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
- 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
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 registered at the pii class. 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
- 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 a workbook's details. This registration does not restrict which fields the request body may carry, and the body can change the workbook's owner and its project: moving a workbook into a project changes its effective permissions through project permission inheritance, which is an access change on content other people see, and changing the owner transfers ownership of the content to another user — so the capability declares update, share and transfer at the R3 floor, and share and transfer are among the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer). A reviewer who intends metadata-only edits must impose that in policy; an installer's intention is not a restriction. 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.workbook.publish v1.0.0R3
- 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 a workbook to the site, as a single part or as the commit of a multi-part upload. Registered with the deploy action at the R3 floor rather than as an ordinary create: publishing puts content in front of the site's viewers and, with the overwrite parameter, replaces a workbook people already consume — a deploy-equivalent act that cannot be un-seen once viewed. Deploy is one of the IRREVERSIBLE ACTIONS. The multipart body can carry a connectionCredentials element with embed=true, which writes database credentials into the server alongside the workbook; a request body containing those values is itself sensitive, and this registration does not restrict the body. SITE_ID is a placeholder the deployment binds before enabling and the path pins REST API version 3.29 (see the pack notes).
tableau.datasource.refresh v1.0.0R3
- 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 a published data source's extract now (the documented Update Datasource Now method on the data sources resource). Registered with the deploy action at the R3 floor: 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 IRREVERSIBLE ACTIONS. 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
- 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 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 R3 floor; delete is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer). 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
- 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 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 R3 floor; delete is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer). 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 pack names a reference, never a secret. Installing a pack registers capabilities and makes them governable; registration is not connectivity. The credential is created at the provider and held in the client's own secret manager under the reference the pack names, and deployment testing is still required to show the credential path works and cannot be bypassed.
- Reference
secret-ref-tableau-session-token- Custody
- customer_vault
- Injection
- header (X-Tableau-Auth)
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 fetched 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 fetched 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_IDtableau-site-users(api, pii):https://tableau-instance.invalid/api/3.29/sites/SITE_ID/users
Pack notes 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, stated honestly: 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). A documented exclusion, not an approximated capability. Tiering rationale: publish and extract refresh are registered with the deploy action at the R3 floor — they change the content and data every viewer of the site consumes, which is deploy-equivalent; deploy is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer). Update Workbook is registered update, share and transfer at the R3 floor 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.
Review record
Draft review record dated 2026-09-21 · Reviewer: aaes-eng (an opaque id that resolves internally to the responsible reviewer)
- https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_auth.htm (retrieved 2026-09-21)
- https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_workbooks_and_views.htm (retrieved 2026-09-21)
- https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_data_sources.htm (retrieved 2026-09-21)
- https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_users_and_groups.htm (retrieved 2026-09-21)
A pack review is not a vendor or examiner attestation. A retrieval date says when a source page was read; it does not by itself establish what the page said then. No pack is vendor-endorsed, and none has been connectivity-tested against a live vendor tenant.
