If you are a SaaS client, your TaskFlow instance is hosted at Hetzner's main data centre in Johannesburg with a standby instance at Hetzner's data centre in Cape Town. Hetzner's data centres are all equipped with CCTV cameras and access is granted to Hetzner employees via biometric access. We try our absolute best to secure your data and prevent unauthorised access while keeping your data accessible whenever it is needed.
We do accommodate clients who want to host TaskFlow on premises, in which case it is the client's responsibility to provide us with a server. On premises clients have the responsibility to restrict access to the server and are also responsible for making backups and storing the backups securely.
Backups / Disaster Recovery
We keep 7 days full backups for each TaskFlow instance hosted on our servers. Backups are replicated (via a secure channel) between data centres as well as to a physical location outside of Hetzner's data centre. Backups are made at 00:00 every day. Backups are not sent across the boarder - i.e. the data remains in South Africa.
In addition to daily backups, all databases are replicated in real time to a slave server. Databases hosted in Hetzner's Johannesburg data centre are replicated to a slave server located in Hetzner's Cape Town data centre and vice versa. Data replication remains inside South African boarders at all times.
- All of our servers' hard drives run in a RAID 1 configuration. In case a server fails completely due to hardware issues, we will be able to spin up all of the clients on the counterpart slave server within 4 hours.
- RPO (Recovery Point Objective): Clients will never lose more than 24 hours worth of data. This will only happen when we are unable to restore a slave server and have to restore your TaskFlow instance from the previous days' backup.
- RTO (Recover Time Objective): Clients will be offline for a maximum of 4 hours in case an entire data centre becomes unavailable.
Daily backups are constantly monitored. We also monitor real time database replication. Emails are automatically sent to system administrators when crucial events occur.
Your database is only accessible via your TaskFlow URL (e.g. demo.taskflow.co.za). Although all clients' databases run on one cluster there is no data sharing between clients' databases what so ever. Your database is replicated over a secure connection using key pair authentication.
Direct database access (read-only) can be provided to clients who wish to mine their data with BI tools. An email can be sent to firstname.lastname@example.org to request access. We will follow the necessary steps to ensure that the person requesting access is authorised to do so.
Login details are hashed using industry standard hashing techniques. Not even TaskFlow staff has access to your passwords. In the event that a client loses their password, the only option is to send password reset instructions. When logging into TaskFlow, if you're a SaaS client, your data is always transmitted via HTTPS. You can verify this from within the browser by making sure that a "lock" icon is present.
TaskFlow employees have access to the administrator account on your TaskFlow instance. We may log on from time to time in order to assist with support requests. We use our discretion to only access data that relates to the support request and we have policies in place to ensure that TaskFlow employees do not copy data without authorisation from the client.
Only a select few TaskFlow engineers have access to the server clusters. The only means of logging in is using secure key pair authentication via SSH. We only allow TaskFlow engineers access to the server clusters from our office's location (i.e. no access is granted to any IP address other than our static IP at our office).
We use a hardened Linux distribution as our operating system and have configured our firewall to only allow access on certain ports. Our servers are also resilient against DDoS attacks. We make every best effort to adhere to best practice / standards when securing our network, infrastructure and data.
TaskFlow as a framework is designed in such a way that it prevents all of the most common types of attacks:
- SQL injections are impossible since the ORM ensures that no piece of code can manually execute SQL statements
- The framework's templating engine ensures that XSS attacks are impossible by using various techniques such as escaping all data that is rendered
- RPC calls do not have access to private methods in the framework
- The login page is rendered with a CSRF token which makes Cross Site Request Forgery impossible
- All code evaluations are done in a sandboxed environment making RFI attacks impossible
All code changes made to the TaskFlow framework is evaluated and reviewed by TaskFlow engineers before it is deployed to our clients.