Skip to main content

Data Security

Is Holistics GDPR-compliant?

Yes we are. Please see our GDPR page for more information.

Is Holistics SOC2-compliant?

Holistics is SOC2 Type 2 compliant. We acquired our SOC2 report in December 2022. We’ve achieved our SOC 2 Report by partnering with Prescient Assurance, an independent auditor, and Vanta - the leading automated security platform - for continuous SOC2 compliance monitoring.

You can read the official blog post or community post for more information. Please fill out this form to get access to our SOC2 report.

Where are Holistics' servers located?

All of our servers are hosted with reputable data center providers:

  • Our Asia-Pacific servers are located in Singapore
  • Our Europe servers are located in Frankfurt, Germany
  • Our US servers are located in San Francisco

Does Holistics store my data?

Holistics does not store your raw data in our servers. This means that your data sits securely within your system at all times. You retain full ownership and control over your data.

When a user runs a report or explores a dataset, Holistics will generate and send an SQL query to your database for processing. Once the query completes, Holistics will display the results on your browser.

Holistics only stores a few things:

  • Metadata: the definitions and settings of your reports, dashboards, models... etc. For examples: report's query, description, chart type, delivery schedules...
  • Cache: Holistics gives you the option to set a cache for your reports, dashboards and filters. This speeds up access to your data and also protects your database against repeated queries. Cached data will expire after a determined period of time. No cache data will ever be stored forever on Holistics servers.

What does your cache store?

The cache layer only stores the query results (not the raw data of your database). For further technical details of Holistics's cache system, please refer to our docs about Holistics Reporting Mechanism.

When exactly does your cache store the data, and for how long?

There are two occasions when we store your query result on our cache server.

First, when we first retrieve the query result from your database. You can configure the duration we cache data from the Settings tab of the report.

Second, when someone uses the Report Export feature (export to Excel/CSV file), we will generate the file and store it on our storage server. We then generate a secure download link for the end-users to download.

  • The exported files stored on our cloud storage (using AWS S3) are encrypted and automatically removed after 24 hours.
  • You can request to have the exported files stored on your S3 cloud storage instead of ours. As this feature is available on our Enterprise plan, please have your account admin(s) send a support ticket in-app if you want this implemented.

When I persist my SQL data model into a physical table, where is the table stored?

As shared in your docs about Storage Settings, if you want to speed up your SQL model load time, you can turn the result set of that SQL into a physical table in your database.

Just like with reports, dashboards, filters, etc., what is stored in Holistics is only the model's metadata (SQL, model description, custom field formula...)

My database is behind a private firewall. How do I give access to Holistics?

As mentioned in Connect Database, to securely open your DB for Holistics to access, there are two ways:

  • IP Whitelist: You can add Holistics' IP addresses to your whitelist so that Holistics can connect to your DB. For more information, please refer to Direct Connection section.
  • SSH Tunnel: You can setup a secure SSH tunnel from your DB to Holistics Network, so that all traffic will go through this channel. For more information, please refer to Setup Reverse SSH Tunnels section.

Since our database credentials are stored in Holistics's system, how do you protect them?

We apply AES encryption before storing your credentials in our database. The credentials are then decrypted on the fly whenever we make a connection to your DB server, and the raw credentials are never persisted anywhere. The encryption key resides in a server separated from the DB server.

Our DB server is under a private VPC network and is only accessible by our app servers.

How do I track what data/reports my team has accessed?

Please refer to Monitoring Dashboard for more information.

Let us know what you think about this document :)