{"id":20204195,"url":"https://github.com/openbridge/tabcmd","last_synced_at":"2026-02-03T13:31:15.939Z","repository":{"id":73272244,"uuid":"573496853","full_name":"openbridge/tabcmd","owner":"openbridge","description":null,"archived":false,"fork":false,"pushed_at":"2022-12-02T16:41:05.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-04T21:06:44.209Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openbridge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-02T15:48:56.000Z","updated_at":"2022-12-02T16:41:09.000Z","dependencies_parsed_at":"2023-03-05T21:15:41.045Z","dependency_job_id":null,"html_url":"https://github.com/openbridge/tabcmd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/openbridge/tabcmd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbridge%2Ftabcmd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbridge%2Ftabcmd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbridge%2Ftabcmd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbridge%2Ftabcmd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openbridge","download_url":"https://codeload.github.com/openbridge/tabcmd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openbridge%2Ftabcmd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29046560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T10:09:22.136Z","status":"ssl_error","status_checked_at":"2026-02-03T10:09:16.814Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T05:09:04.797Z","updated_at":"2026-02-03T13:31:15.913Z","avatar_url":"https://github.com/openbridge.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `tabcmd` Docker Service\n\nTableau provides a `tabcmd` command-line utility which you can use to automate site administration tasks on your Tableau Server site. For example, creating or deleting users, projects, and groups.\n\n# Background\nThis is a Docker service packages `tabcmd` as an image to be run as a container. Docker is required for this service to run.\n\n## What is Docker?\nIf you don't know what Docker is read \"[What is Docker?](https://www.docker.com/what-docker)\".\n\n### Get Docker\n\nOnce you have a sense of what Docker is, you can then install the software. It is free: \"[Get Docker](https://www.docker.com/products/docker-desktop)\". Select the Docker package that aligns with your environment (ie. OS X, Linux or Windows). If you have not used Docker before, take a look at the guides:\n\n- [Engine: Get Started](https://docs.docker.com/engine/getstarted/)\n- [Docker Mac](https://docs.docker.com/docker-for-mac/)\n- [Docker Windows](https://docs.docker.com/docker-for-windows/)\n\nIf you already have a Linux instance running as a host or VM, you can install Docker command line. For example, on CentOS you would run `yum install docker -y` and then start the Docker service.\n\nWe also strongly suggest installing `docker-compose`. Compose allowws you to package runtime definitions for your container. More on this is here: https://docs.docker.com/compose/install/\n\n# Getting Started\n\n## Step 1: Determine Your Tableau Server Version\nThe first step for using `tabcmd` is getting a Docker image built. You will need to know in advance which Tableau Server version you want to connect `tabcmd` to. There is a tight coupling between the Server version and the `tabcmd` version. For example, if you are using Tableau Server version `2019-3-0` then you must use the `2019-3-0` version of `tabcmd` in your build. Note that you **can** create multiple Docker images for each version\n\n\n## Step 2: Build Your `tabcmd` Docker image\n With your version number in-hand, you need to set this value as part of your Docker build command. This is done via the Docker `--build-arg` variable.\n\n The build statement will look like this:\n```bash\ndocker build --build-arg \"TABLEAU_SERVER_VERSION=2019-3-0\" -t tabcmd:latest .\n```\n### Build Versions\nIf you want to use an different version of `tabcmd` you set the version number accordingly. For example, you need to need `tabcmd` for Tableau Server version `2019-2-0`. You would then build the image with this version of the software:\n```bash\ndocker build --build-arg \"TABLEAU_SERVER_VERSION=2019-2-0\" -t tabcmd:2019-2-0 .\n```\nThis allows you to version your image according to current and past releases for `tabcmd`. Typically, you will use `latest` in your image for the most current release:\n```bash\ndocker build --build-arg \"TABLEAU_SERVER_VERSION=2019-3-0\" -t tabcmd:latest .\n```\n\n# Using Amazon ECR\nRetrieve the login command to use to authenticate your Docker client to your registry.\nUse the AWS CLI:\n```bash\n$(aws ecr get-login --no-include-email --region us-east-1)\n```\nBuild your Docker image using the following command. For information on building a Docker file from scratch see the instructions here . You can skip this step if your image is already built:\n```bash\ndocker build --build-arg \"TABLEAU_SERVER_VERSION=2019-3-0\" -t tabcmd:latest .\n```\nAfter the build completes, tag your image so you can push the image to this repository:\n```bash\ndocker tag tabcmd:latest xxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/tabcmd:latest\n```\nRun the following command to push this image to your newly created AWS repository:\n```bash\ndocker push xxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/tabcmd:latest\n```\n# Example Usage\n\nHere is an example of remotely `createsite` command for \"East Coast Sales\":\n```bash\ndocker run -it ob_tabcmd tabcmd createsite \"East Coast Sales\" --server 3.82.223.16:80 --username admin --password admin\n```\nThe output will show the status of the operation:\n```bash\n+ exec tabcmd createsite 'East Coast Sales' --server 3.82.223.16:80 --username admin --password admin\n===== Creating new session\n=====     Server:   http://3.82.223.16:80\n=====     Username: admin\n===== Connecting to the server...\n===== Signing in...\n===== Auto-sign in to site: Default\n===== Creating new session\n=====     Server:   http://3.82.223.16:80\n=====     Username: admin\n===== Connecting to the server...\n===== Signing in...\n===== Succeeded\n===== Succeeded\n===== Create site 'East Coast Sales' on the server...\n===== Succeeded\n```\nHere is an example of running a remote `deletesite` command for the same site:\n```bash\ndocker run -it ob_tabcmd tabcmd deletesite \"East Coast Sales\" --server 3.82.223.16:80 --username admin --password admin\n```\nThe output of the command confirms the deletion:\n```bash\n+ exec tabcmd deletesite 'East Coast Sales' --server 3.82.223.16:80 --username admin --password admin\n===== Creating new session\n=====     Server:   http://3.82.223.16:80\n=====     Username: admin\n===== Connecting to the server...\n===== Signing in...\n===== Auto-sign in to site: Default\n===== Creating new session\n=====     Server:   http://3.82.223.16:80\n=====     Username: admin\n===== Connecting to the server...\n===== Signing in...\n===== Succeeded\n===== Succeeded\n===== Deleting site 'East Coast Sales' from the server...\n===== 0% complete\n===== 100% complete\n===== Finished deleting site 'East Coast Sales'.\n```\nHere is an example of downloading a workbook from the server:\n```bash\ndocker run -it -v /ssh:/tmp ob_tabcmd tabcmd get \"/workbooks/Regional.twbx\" -f \"/tmp/Regional.twbx\" --server 3.82.223.16:80 --username admin --password admin\n```\nNotice in this example we used the `-v` or volume command. Why? When the file is downloaded from the container we want to make sure it is stored on the host running the command. In this example we mount the `ssh` on the host to the `tmp` inside the container.\n```bash\n+ exec tabcmd get /workbooks/Regional.twbx -f /tmp/Regional.twbx --server 3.82.223.16:80 --username admin --password admin\n===== Creating new session\n=====     Server:   http://3.82.223.16:80\n=====     Username: admin\n===== Connecting to the server...\n===== Signing in...\n===== Auto-sign in to site: Default\n===== Creating new session\n=====     Server:   http://3.82.223.16:80\n=====     Username: admin\n===== Connecting to the server...\n===== Signing in...\n===== Succeeded\n===== Succeeded\n===== Requesting '/workbooks/Regional.twbx' from the server...\n===== Saved /workbooks/Regional.twbx to '/tmp/Regional.twbx'\n```\n\nFor a complete list of commands, visit: https://help.tableau.com/current/server/en-us/tabcmd_cmd.htm\n\n**Note:** When you use the `tabcmd` login command, you cannot use SAML single sign-on (SSO), even if the server is configured to use SAML. To log in, you must pass the user name and password of a user who has been created on the server. You will have the permissions of the Tableau Server user that you're signed in as. For more information, see Set Users’ Site Roles and Permissions.\n\n# Firewall\nIf you are running Tableau behind a firewall and running `tabcmd` remotely, make sure the system you are running it on has been whitelisted.\n\n# Build Notes\n\nMake sure you take note of the exact version number and format. Tableau may switch the format at some point from `XXXX-X-X`. They already use `XXXX.X.X` in the path to the RPM file. We convert the version `XXXX-X-X` to the version to the path `XXXX.X.X` format.\n\n```bash\n\u0026\u0026 tabPath=\"$(echo $TABLEAU_SERVER_VERSION | tr '-' '.')\" \\\n```\nThis line may need to be adjusted, enhanced or refactored to reflect any changes to the formatting\n\n# References\n* https://help.tableau.com/current/server-linux/en-us/tabcmd_cmd.htm\n* https://help.tableau.com/current/server/en-us/tabcmd.htm\n* https://www.tableau.com/support/releases/server\n* https://help.tableau.com/current/server-linux/en-us/config_firewall_linux.htm\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbridge%2Ftabcmd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenbridge%2Ftabcmd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbridge%2Ftabcmd/lists"}