graphql_query
Run read-only GraphQL queries against Tableau Metadata API to explore content lineage, impact analysis, and dependencies.
Instructions
Run ANY read-only GraphQL query against the Tableau Metadata API. This is the general-purpose tool; use it for any lineage question. Returns {"data": ..., "errors": ...}.
The Metadata API is a GraphQL graph of Tableau content (workbooks, sheets, dashboards,
datasources, fields) and, with the Data Management add-on, physical assets (databases,
tables, columns) and their upstream/downstream lineage.
How to write a correct query:
- Filters are EXACT and case-sensitive: `filter: {name: "X"}` or `filter: {nameWithin: ["X","Y"]}`
(nameWithin is the only multi/OR match; there is NO substring or regex).
- Every list field has a `<name>Connection` variant with `first`/`offset`/`after` + `pageInfo`
(page size max 1000). Keep one query under ~20,000 nodes; narrow filters and page.
- Fields is an interface; branch with `__typename` and inline fragments
(`... on ColumnField { columns { name } }`, `... on CalculatedField { formula }`).
- Reach a field's owning workbook via `datasource { ... on EmbeddedDatasource { workbook { name } } }`.
- `downstream*` fields (downstreamWorkbooks/Owners, external tables/columns) need Data Management
(Tableau Catalog) and are often empty otherwise; then resolve via core lineage
(referencedByFields -> sheets -> workbook), or just call the `where_used` tool.
Entry points include: workbooks, sheets, dashboards, publishedDatasources, embeddedDatasources,
fields, columnFields, calculatedFields, columns, databaseTables, customSQLTables, databases,
flows, tableauUsers, dataQualityWarnings. Call `lineage_examples` for ready-made query templates
and a schema cheat-sheet, or `introspect_schema` to inspect any type's exact fields.
Read-only: mutation and subscription operations are rejected. If a query exceeds the
~20,000-node limit, the response is flagged with `partial_results: true` and a `warning`
(it does NOT auto-page an arbitrary query) so you never mistake a truncated result for a
complete one.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| variables | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||