Inspiration

Since Tableau 2019.4 sslmode can be specified for Greenplum data sources, but on the previously created data sources this option remained missing in the xml. If an organization chooses to require SSL for all connections, republishing thousands of data sources manually might be cumbersome.

What it does

Validation

The tool downloads the xml of all Greenplum data sources and validates whether sslmode=require is blank or missing from the xml. Output of the validation is excel.

Updating XML

The tool downloads the xml of all Greenplum data sources, validates whether sslmode=require is missing from the xml. Based on the validation the tool downloads the complete data source where sslmode is not set to require, it updates the xml and republishes the data source. Only data sources with known credentials can be updated. Credentials should be provided in excel.

How we built it

We altered the DocumentAPI in some places for the xml parsing, so sslmode can be retrieved and modified. We added our own code in module addsslmoderequire.py. Tableauserverclient is used for downloading and publishing the data sources.

Challenges we ran into

The tool cannot handle data sources with special characters in their name.

Accomplishments that we're proud of

The tool can save tremendous amount of manual work.

What we learned

  • Modifying open source library
  • Building own package
  • Path handling
  • XML parsing
  • RestAPI
  • GIT

What's next for add-sslmode-require-to-greenplum

  • Error handling
  • Transferring ownership back to original owner and re-adding credentials after transfer
  • Data sources with special characters

Built With

  • documentapi
  • python
  • tableauserverrestapi
Share this project:

Updates