TableauFS is a FUSE based userspace file system driver built on top of Tableau's repository server. It allows to mount tableau servers with its datasources and workbooks directly to the file system. File information and contents are retrieved on-access without any local persistence or caching. By default the file system connects directly to the postgresql database using readonly
credentials, however, read-write mode is also implemented using twlwgadmin user.
TableauFS helps Tableau Server administrators in several cases:
- Save/copy workbooks or data sources to other, persistent file systems
- Run workbook audit tools like Workbook Audit Tool or TWIS
- Version control objects with any file based version control system (git, git-annex, subversion, mercurial, p4, etc.)
- Directly modify files in the repository without using any API
- Migrate contents between servers
- Grep strings in workbook definitions
Your Tableau published objects will be visible as ordinary files, thus, the possibilities are unlimited. For more information please visit http://databoss.starschema.net/introducing-tableaufs-file-system-on-tableau-server-repository/
At the moment only Linux, FreeBSD and OSX are supported. If you have to use files from Windows you can still run it form docker or mount thru WebDAV. If required, I can make a dokan or callbackfs based windows port, however, at the moment I am happy with this *nix only version.
To compile the application you need at cmake
(=> 2.6), libpq
(>= 9.0) and fuse
(=>2.9).
Just type cmake . && make && make install
and you will have everything installed.
To exploit all features (include read-write mode) you need tblwgadmin
or similar user with superuser privilege while for read only access readonly
user is almost enough.
The steps here:
- Enable readonly user with
tabadmin dbpass --username readonly <password>
- Check your pgsql admin password in
tabsvc.yml
file. The default location is C:\ProgramData\Tableau\Tableau Server\config but depending on your ProgramData folder, this can be different. lease note that ProgramData folder can be hidden. - Go to Tableau Server\9.0\pgsql\bin folder and issue
psql -h localhost -p 8060 -U tblwgadmin workgroup
command and paste the password fromtabsvc.yml
- Execute the
grant select on pg_largeobject to readonly;
statement
to leverage the full read only experience. It will not harm your system (this is still read only) but unsupported.
To mount a tableau server type:
# tableaufs -o pghost=tabsrver.local,pgport=8060,pguser=readonly,pgpass=readonly /mnt/tableau-dev
where -o stands for file system options. After executing you will see the file system in the mount list:
tableaufs on /mnt/tableau-dev type fuse.tableaufs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
To unmount, simple umount /mnt/tableau-dev
TableauFS maps Tableau repository to the following directory structure:
/Sitename/Projectname/Workbook 1.tbw[x]
/Sitename/Projectname/Workbook 2.tbw[x]
/Sitename/Projectname/Datasource 1.tds[x]
Read operations are fully supported while write support is implemented but still highly experimental. For rw mode you need read-write access to workbooks, datasources and pg_largeobjects tables. Last modification time is read from last_updated columns while file sizes are actual sizes of the pg_largeobjects.
Is this supported or allowed by Tableau or any 3rd party?
Tableau FS uses the supported readonly
repository user by default which is supported and allowed by Tableau. The file system part is completely unsupported, however, we are trying to help you on best effort basis.
Accessing your repository in read-write mode is not supported.
I need this on windows, can I?
You should ramp up a unix server, install a webdav server on it (like apache+mod_dav) and mount it. The Docker image with webdav + tableaufs is here: https://registry.hub.docker.com/u/tfoldi/fuse-tableaufs/
Do you have a binary installer?
No, but you can find a Dockerfile in docker folder, that should help.
Can I move my files to a version control repo?
Sure you can, here is how.
I have strange error regarding fuse device when I execute TableauFS from docker
Add --privileged
to your docker exec
command line.
Please send a pull request or open an issue if you have any problems.
Copyright . 2015 Tamas Foldi (@tfoldi), Starschema Ltd.
Distributed under BSD License.