Modelo de integración
Para obtener los metadatos relacionados con Tableau (sites, projects y workbooks) se usan las siguientes apis rest de Tableau:
-
Sign in → ‘{host}/api/{version}/auth/signin’
-
Sign out → ‘{host}/api/{version}/auth/signout’
-
Query sites → ‘{host}/api/{version}/sites’. Se envían los parámetros pageSize y pageNumber para habilitar la paginación, el parámetro pageSize es configurable hasta 1000 (máximo de Tableau) según se indica más adelante en el apartado Configuración
-
Graphql → ‘{host}/relationship-service-war/graphql’
Extracción de metadatos
Para poder hacer extracción de metadatos de workbooks de Tableau, el usuario visualiza la siguiente jerarquía de estructuras de la tecnología con sites, proyectos y workbooks:
-
Site1
-
Prj1
-
Wrk1
-
Wrk2
-
-
Prj2
-
Wrk3
-
Wrk4
-
-
…
-
SiteN
-
PrjN
-
WrkM
-
-
Se recomienda crear un subtipo específico de entidad WORKBOOK debido a que el metadato extraído es muy específico de esta tecnología.
El plugin extrae los siguientes atributos de los workbooks (deben llamarse igual en la tabla attribute_definition, campo name para que aparezcan en la plantilla).
-
path con la concatenación de los valores de site, proyecto y workbook (siteName/projectName/workbookName)
-
infrastructure con el valor seleccionado
-
technology con el valor seleccionado
-
zone con el valor seleccionado
-
physicalName y name con el mismo valor, el nombre del workbook
Los atributos a crear en Anjana deben de tener los siguientes tipos:
Nombre de atributo |
Tipo de atributo |
physicalName |
INPUT_TEXT |
path |
INPUT_TEXT |
infrastructure |
SELECT |
technology |
SELECT |
zone |
SELECT |
name |
INPUT_TEXT |
A continuación se indican los metadatos opcionales relativos al site y al workbook que se pueden incluir en la plantilla del objeto para que al extraer el metadato del workbook se vean reflejados.
Metadatos del workbook
Nombre de atributo |
Tipo de atributo |
workbookLuid |
INPUT_NUMBER |
workbookId |
INPUT_NUMBER |
workbookContainsUnsupportedCustomSql |
INPUT_CHECKBOX |
workbookProjectVizportalUrlId |
INPUT_NUMBER |
workbookProjectName |
INPUT_TEXT |
workbookProjectLuid |
INPUT_NUMBER |
workbookContainerType |
INPUT_TEXT |
workbookContainerName |
INPUT_TEXT |
workbookOwnerId |
INPUT_NUMBER |
workbookOwnerUserName |
INPUT_TEXT |
workbookDescription |
INPUT_TEXT |
workbookUri |
INPUT_TEXT |
workbookVizportalUrlId |
INPUT_NUMBER |
workbookCreatedAt |
INPUT_DATE |
workbookUpdatedAt |
INPUT_DATE |
workbookTags |
INPUT_TEXT |
Metadatos del site
Se recomienda crear una sección dentro de la plantilla de la entidad WORKBOOK para incluir los metadatos del site
Nombre de atributo |
Tipo de atributo |
siteName |
INPUT_TEXT |
siteId |
INPUT_NUMBER |
siteContentUrl |
INPUT_TEXT |
siteAdminMode |
INPUT_TEXT |
siteRevisionHistoryEnabled |
INPUT_CHECKBOX |
siteDisableSubscriptions |
INPUT_CHECKBOX |
siteState |
INPUT_TEXT |
siteRevisionLimit |
INPUT_NUMBER |
siteSubscribeOthersEnabled |
INPUT_CHECKBOX |
siteAllowSubscriptionAttachments |
INPUT_CHECKBOX |
siteGuestAccessEnabled |
INPUT_CHECKBOX |
siteCacheWarmupEnabled |
INPUT_CHECKBOX |
siteDataAlertsEnabled |
INPUT_CHECKBOX |
siteCommentingEnabled |
INPUT_CHECKBOX |
siteCommentingMentionsEnabled |
INPUT_CHECKBOX |
siteFlowsEnabled |
INPUT_CHECKBOX |
siteEditingFlowsEnabled |
INPUT_CHECKBOX |
siteSchedulingFlowsEnabled |
INPUT_CHECKBOX |
siteExplainDataEnabled |
INPUT_CHECKBOX |
siteExtractEncryptionMode |
INPUT_TEXT |
siteCatalogingEnabled |
INPUT_CHECKBOX |
siteDerivedPermissionsEnabled |
INPUT_CHECKBOX |
siteWebExtractionEnabled |
INPUT_CHECKBOX |
siteAskDataMode |
INPUT_TEXT |
siteRunNowEnabled |
INPUT_CHECKBOX |
siteUserVisibilityMode |
INPUT_TEXT |
siteRequestAccessEnabled |
INPUT_CHECKBOX |
siteAuthoringEnabled |
INPUT_CHECKBOX |
siteCustomSubscriptionEmailEnabled |
INPUT_CHECKBOX |
siteCustomSubscriptionFooterEnabled |
INPUT_CHECKBOX |
siteNamedSharingEnabled |
INPUT_CHECKBOX |
siteUseDefaultTimeZone |
INPUT_CHECKBOX |
siteSelfServiceScheduleForRefreshEnabled |
INPUT_CHECKBOX |
siteAutoSuspendRefreshEnabled |
INPUT_CHECKBOX |
siteAutoSuspendRefreshInactivityWindow |
INPUT_NUMBER |
sitePersonalSpaceEnabled |
INPUT_CHECKBOX |
sitePersonalSpaceStorageQuota |
INPUT_NUMBER |
siteDqwSubscriptionsEnabled |
INPUT_CHECKBOX |
Credenciales requeridas
Extracción de metadatos
Es necesario un token de acceso personal para obtener el token con el que después se harán las llamadas api rest para obtener la información de site, projects y workbooks. Dicho token se crea en Tableau Server y su nombre y valor se deben incluir en el yml antes de usar el plugin en las propiedades:
-
totplugin.connection.personalAccessTokenName
-
totplugin.connection.personalAccessTokenSecret
El usuario con el que se genera el PAT debe tener acceso a todos los sites que se quieran gobernar (tener el rol Server Administrator en cada site). El tiempo de vida del token de acceso personal es de un año por lo que es responsabilidad del cliente actualizarlo antes de que expire para su correcto funcionamiento.
Para poder usar la api de metadata Graph hay que habilitarla antes con el comando:
tsm maintenance metadata-services enable
que tiene que lanzar el cliente antes de usar el plugin.
Configuración
Aquí se incluye el detalle de la configuración específica del plugin.
En la Guía de Configuración técnica se explica la configuración común.
server:
port: 15022
totplugin:
location: http://totplugintableauserver:15022/plugin/tableau/api/v1
pagination:
pageSize: 100
anjana:
tagsSeparator: "_-"
server:
url: http://totserver:15000/tot/
connection:
server: https://tableau.anjanadata.org
version: 3.17
personalAccessTokenName: test
personalAccessTokenSecret: test
aris:
- ari: "anja:totplugin:extract:/tableau/tableau/tableau/"
-
server.port → Puerto donde se despliega el plugin
-
totplugin.location → Url base del plugin
-
totplugin.pagination.pageSize → Número de elementos por página en la llamada para obtener los sites. El máximo son 1000 elementos
-
totplugin.anjana.tagsSeparator → Separador de los tags cuando se envían a Anjana
-
totplugin.server.url → Url de tot
-
totplugin.connection.server → Url Tableau Server
-
totplugin.connection.version → Versión que se rellena en la url de llamada a las apis
-
totplugin.connection.personalAccessTokenName → Nombre del token de acceso personal
-
totplugin.connection.personalAccessTokenValue → Valor del token de acceso personal
-
totplugin.connection.aris → Listado de aris que indican los servicios disponibles en el plugin