Integraciones
26.1 25.2 25.1
26.1 25.2 25.1 Spanish English

Tableau

1. Introducción

El conector de Tableau permite a Anjana descubrir y catalogar los workbooks de un site de Tableau, organizados en la jerarquía site → proyectos → workbooks. Cada conexión configurada en el plugin trabaja sobre un único site de Tableau.

  • Descubrimiento: el plugin presenta al usuario el site configurado y, dentro de él, los proyectos con los workbooks que contiene. Solo se listan los workbooks que pertenecen a un proyecto.

  • Extracción de metadatos: al seleccionar un workbook, el plugin obtiene sus metadatos (identificadores, proyecto, contenedor, propietario, descripción, fechas de creación y modificación y etiquetas) junto con la configuración del site al que pertenece.

El conector es compatible con Tableau Server y Tableau Cloud; los pasos específicos de cada uno se indican en los apartados Técnico y Conectividad.

El plugin es de solo lectura: no crea, modifica ni elimina contenido en Tableau.

2. Integración con Anjana

El plugin genera los siguientes metadatos para cada workbook. Los atributos deben crearse en Anjana con el mismo nombre que figura en la columna «Nombre del campo» para que aparezcan en la plantilla del objeto. Se recomienda crear un subtipo específico de entidad WORKBOOK, y agrupar los metadatos del site en una sección propia de la plantilla.

2.1 Metadatos internos

Campos cuyo valor proviene de la petición de extracción o de la configuración del plugin, no de la API de Tableau.

Nombre del campo

Descripción

Tipo de atributo

infrastructure

Infraestructura seleccionada al extraer

SELECT

technology

Tecnología seleccionada al extraer

SELECT

zone

Zona seleccionada al extraer

SELECT

path

Ruta del workbook tal y como se recibe en el body de entrada, con el formato siteContentUrl/proyecto/workbook

INPUT_TEXT

2.2 Metadatos del site

Nombre del campo

Descripción

Tipo de atributo

siteName

Nombre del site

INPUT_TEXT

siteId

Identificador del site

INPUT_TEXT

siteContentUrl

URL de contenido del site

INPUT_TEXT

siteAdminMode

Modo de administración de contenido del site

INPUT_TEXT

siteRevisionHistoryEnabled

Historial de revisiones habilitado

INPUT_CHECKBOX

siteDisableSubscriptions

Suscripciones deshabilitadas

INPUT_CHECKBOX

siteState

Estado del site

INPUT_TEXT

siteRevisionLimit

Número máximo de revisiones conservadas

INPUT_NUMBER

siteSubscribeOthersEnabled

Permite suscribir a otros usuarios

INPUT_CHECKBOX

siteAllowSubscriptionAttachments

Permite adjuntos en las suscripciones

INPUT_CHECKBOX

siteGuestAccessEnabled

Acceso de invitados habilitado

INPUT_CHECKBOX

siteCacheWarmupEnabled

Precalentamiento de caché habilitado

INPUT_CHECKBOX

siteDataAlertsEnabled

Alertas de datos habilitadas

INPUT_CHECKBOX

siteCommentingEnabled

Comentarios habilitados

INPUT_CHECKBOX

siteCommentingMentionsEnabled

Menciones en comentarios habilitadas

INPUT_CHECKBOX

siteFlowsEnabled

Flows habilitados

INPUT_CHECKBOX

siteEditingFlowsEnabled

Edición de flows habilitada

INPUT_CHECKBOX

siteSchedulingFlowsEnabled

Programación de flows habilitada

INPUT_CHECKBOX

siteExplainDataEnabled

Explain Data habilitado

INPUT_CHECKBOX

siteExtractEncryptionMode

Modo de cifrado de extractos

INPUT_TEXT

siteCatalogingEnabled

Catalogación habilitada

INPUT_CHECKBOX

siteDerivedPermissionsEnabled

Permisos derivados habilitados

INPUT_CHECKBOX

siteWebExtractionEnabled

Extracción web habilitada

INPUT_CHECKBOX

siteAskDataMode

Modo de Ask Data

INPUT_TEXT

siteRunNowEnabled

Ejecución inmediata (Run Now) habilitada

INPUT_CHECKBOX

siteUserVisibilityMode

Modo de visibilidad de usuarios

INPUT_TEXT

siteRequestAccessEnabled

Solicitud de acceso habilitada

INPUT_CHECKBOX

siteAuthoringEnabled

Edición web (authoring) habilitada

INPUT_CHECKBOX

siteCustomSubscriptionEmailEnabled

Email personalizado de suscripción habilitado

INPUT_CHECKBOX

siteCustomSubscriptionFooterEnabled

Pie personalizado de suscripción habilitado

INPUT_CHECKBOX

siteNamedSharingEnabled

Uso compartido con nombre habilitado

INPUT_CHECKBOX

siteUseDefaultTimeZone

Zona horaria por defecto del site

INPUT_CHECKBOX

siteSelfServiceScheduleForRefreshEnabled

Programación de refrescos en autoservicio habilitada

INPUT_CHECKBOX

siteAutoSuspendRefreshEnabled

Suspensión automática de refrescos habilitada

INPUT_CHECKBOX

siteAutoSuspendRefreshInactivityWindow

Ventana de inactividad para la suspensión automática de refrescos

INPUT_NUMBER

sitePersonalSpaceEnabled

Espacio personal habilitado

INPUT_CHECKBOX

sitePersonalSpaceStorageQuota

Cuota de almacenamiento del espacio personal

INPUT_NUMBER

siteDqwSubscriptionsEnabled

Suscripciones DQW habilitadas

INPUT_CHECKBOX

2.3 Metadatos del proyecto

Datos del proyecto al que pertenece el workbook, obtenidos junto con el propio workbook.

Nombre del campo

Descripción

Tipo de atributo

workbookProjectName

Nombre del proyecto del workbook

INPUT_TEXT

workbookProjectLuid

Identificador (LUID) del proyecto del workbook

INPUT_TEXT

workbookProjectVizportalUrlId

Identificador del proyecto en las URLs del portal web de Tableau

INPUT_NUMBER

2.4 Metadatos del workbook

Nombre del campo

Descripción

Tipo de atributo

name

Nombre del workbook

INPUT_TEXT

physicalName

Nombre físico del workbook (mismo valor que name)

INPUT_TEXT

workbookLuid

Identificador (LUID) del workbook

INPUT_TEXT

workbookId

Identificador interno del workbook

INPUT_TEXT

workbookContainsUnsupportedCustomSql

Indica si el workbook contiene SQL personalizado no soportado

INPUT_CHECKBOX

workbookContainerType

Tipo de contenedor del workbook

INPUT_TEXT

workbookContainerName

Nombre del contenedor del workbook

INPUT_TEXT

workbookOwnerId

Identificador del propietario del workbook

INPUT_TEXT

workbookOwnerUserName

Nombre de usuario del propietario del workbook

INPUT_TEXT

workbookDescription

Descripción del workbook

INPUT_TEXT

workbookUri

URI del workbook

INPUT_TEXT

workbookVizportalUrlId

Identificador del workbook en las URLs del portal web de Tableau

INPUT_TEXT

workbookCreatedAt

Fecha de creación del workbook

INPUT_DATE

workbookUpdatedAt

Fecha de última modificación del workbook

INPUT_DATE

workbookTags

Etiquetas del workbook concatenadas en un único texto con el separador configurado en totplugin.anjana.tagsSeparator

INPUT_TEXT

3. Técnico

3.1 Autenticación

  • El plugin se autentica en Tableau con un token de acceso personal (PAT): envía el nombre y el secreto del PAT, junto con el contentUrl del site configurado, mediante una petición POST de inicio de sesión.

  • Tableau devuelve un token de sesión que el plugin envía en la cabecera X-Tableau-Auth en las llamadas posteriores.

  • La sesión no se reutiliza ni se almacena: el plugin inicia sesión en cada operación y cierra la sesión (sign out) tras usar el token. En la extracción de metadatos de un workbook se realizan dos inicios de sesión (uno para consultar el site y otro para la consulta GraphQL), cada uno con su cierre de sesión. En el listado de proyectos y workbooks se realiza un único inicio de sesión.

  • El secreto del PAT se lee de la configuración del plugin.

3.2 APIs utilizadas

API

Endpoint

Método

Finalidad

REST de Tableau (autenticación)

{server}/api/{version}/auth/signin

POST

Iniciar sesión con el PAT en el site configurado y obtener el token y el id del site

REST de Tableau (autenticación)

{server}/api/{version}/auth/signout

POST

Cerrar la sesión e invalidar el token

REST de Tableau (sites)

{server}/api/{version}/sites/{siteId}

GET

Obtener la configuración del site (metadatos del site)

Metadata API de Tableau (GraphQL)

{server}/relationship-service-war/graphql, con la consulta GraphQL en el parámetro query

GET

Obtener los proyectos y workbooks del site, con sus metadatos, propietario y etiquetas

Notas:

  • La consulta GraphQL por defecto solicita, para el site, los workbooks con los campos id, luid, name, containsUnsupportedCustomSql, projectVizportalUrlId, projectName, projectLuid, containerType, containerName, owner, description, uri, vizportalUrlId, createdAt, updatedAt, tags y views. Puede sustituirse con la propiedad queryGraphql (ver apartado Configuración). Los views se consultan pero no se vuelcan a Anjana.

3.3 Versión de la API

La versión de la API REST no está fijada en el plugin: se toma de la propiedad version de la conexión y se incluye en la URL (/api/{version}/...). La configuración de ejemplo del plugin utiliza la versión 3.17. La Metadata API (GraphQL) no incluye versión en la URL.

4. Conectividad

4.1 Credenciales del usuario de servicio

  • Un token de acceso personal (PAT) con su nombre y su secreto, creado en Tableau por el usuario de servicio. Ambos valores se incluyen en la configuración del plugin (personalAccessTokenName y personalAccessTokenSecret).

  • El contentUrl del site sobre el que se trabaja (siteContentURL). El PAT debe ser válido en ese site.

  • El PAT tiene caducidad: es responsabilidad del cliente renovarlo antes de que expire.

4.2 Rol y permisos

  • Rol en el site: Site Administrator (Creator o Explorer), o Server Administrator. El plugin consulta la configuración del site, operación que Tableau restringe a administradores de servidor y de site.

  • Proyectos y workbooks: permiso de lectura (View) sobre todos los proyectos y workbooks que se quieran catalogar. La Metadata API solo devuelve el contenido sobre el que el usuario tiene permisos. Un administrador del site accede a todo el contenido del site.

  • El plugin no escribe en Tableau: no se necesitan permisos de modificación, publicación ni eliminación.

  • Tableau Server: es necesario habilitar la Metadata API antes de usar el plugin, ejecutando en el nodo inicial de TSM el comando tsm maintenance metadata-services enable. Lo debe hacer el cliente. En Tableau Cloud la Metadata API está siempre habilitada.

4.3 Requisitos de red

  • Conectividad saliente desde el plugin hacia el servidor de Tableau configurado en la propiedad server, con el protocolo y el puerto que contenga esa URL. Todas las llamadas (REST y GraphQL) van al mismo host.

  • En Tableau Cloud la URL del servidor debe incluir el nombre del pod.

  • El plugin no configura proxy ni timeouts en las llamadas a Tableau, por lo que se aplican los valores por defecto del entorno de ejecución.

5. Configuración

Propiedades específicas del plugin. Se excluyen las genéricas para todos los plugins. Las propiedades technology se definen dentro de cada elemento de la lista totplugin.connection.

Propiedad

Descripción

Obligatoria

Valor por defecto

totplugin.connection[].name

Nombre de la conexión de Tableau. Debe ser único entre las conexiones, porque se usa para asociar cada conexión con su configuración de technology.

Sí

—

totplugin.connection[].aris[].ari

ARIs que indican los servicios disponibles en la conexión. Para la extracción debe empezar por anja:totplugin:extract: y terminar en /{infraestructura}/{tecnología}/{zona} (con o sin barra final) de la tripleta seleccionada en Anjana.

Sí

—

totplugin.connection[].technology.server

URL base del servidor de Tableau (Tableau Server o Tableau Cloud), sin barra final.

Sí

—

totplugin.connection[].technology.version

Versión de la API REST de Tableau que se incluye en la URL de las llamadas (por ejemplo 3.17).

Sí

—

totplugin.connection[].technology.personalAccessTokenName

Nombre del token de acceso personal del usuario de servicio.

Sí

—

totplugin.connection[].technology.personalAccessTokenSecret

Secreto del token de acceso personal del usuario de servicio.

Sí

—

totplugin.connection[].technology.siteContentURL

contentUrl del site de Tableau sobre el que trabaja la conexión. El plugin falla si está vacío (no se admite el site por defecto con contentUrl vacío) y, al extraer, la primera parte del path del workbook debe coincidir exactamente con este valor.

Sí

—

totplugin.pathSeparator

Carácter que separa site, proyecto y workbook en el path. El path debe tener exactamente tres partes; con más o con menos el plugin devuelve error.

No

/

totplugin.anjana.tagsSeparator

Separador con el que se concatenan las etiquetas del workbook en el campo workbookTags. Si se deja vacío se usa el valor por defecto.

No

_-

totplugin.pagination.pageSize

Número de elementos por página en la consulta paginada de sites de Tableau. Máximo 1000: si se configura un valor mayor, el plugin usa 1000. Los flujos actuales del plugin (listado y extracción) no realizan esa consulta.

No

100

totplugin.connection[].technology.queryGraphql

Consulta GraphQL que se envía a la Metadata API para obtener los workbooks del site. Los campos que se vuelcan a Anjana son los descritos en el apartado Integración con Anjana; si se sustituye la consulta debe seguir devolviendo todos ellos.

No

query getSitesWorkbooksProjects {tableauSites{id luid name workbooks {id luid name containsUnsupportedCustomSql projectVizportalUrlId projectName projectLuid containerType containerName owner {id username} description uri vizportalUrlId createdAt updatedAt tags {id name} views{id luid name createdAt updatedAt}}}}