01Row-level isolation
Clinic data tables carry access policies that tie each row to the clinic that owns it, so a signed-in user sees only their own clinic’s rows. User requests that servers run with higher privileges check the user’s access to the clinic before they read or write, while scheduled jobs such as reminders run on the server for each clinic separately.
02Team accounts, roles and permitted screens
Each team member has an account, a role and an allowed_screens list aligned with responsibility. Reception can reach appointments, a dentist the permitted patient records, and an accountant the permitted numbers, instead of every user receiving unrestricted access.
03Owner-only actions enforced in the database
Changing sensitive permissions and doctor commissions, and permanently deleting team records, is restricted to the clinic owner. Owner-only triggers protect these actions and the database refuses an attempt by another user even if the interface sends it.
04Private files use temporary links
Eligible private files use temporary signed links rather than public storage. Clinic, practitioner, service and working-hour settings remain separate and sensitive platform administration stays protected by platform privileges.
05Encrypted in transit
All traffic between the browser and our servers runs over HTTPS/TLS, with a policy that instructs the browser to use the encrypted connection on every later visit.
06Hardened web responses
Security headers stop the site being embedded in a foreign frame, block unapproved scripts, prevent file-type guessing, and restrict what the page may request — camera and location included.
07Verified message origin
Messages arriving from external services such as WhatsApp are not trusted on content. Each is accepted only after its cryptographic signature is verified; an unsigned message is rejected before it is read.
08External keys encrypted at rest
Tokens linking your clinic to external platforms are stored encrypted, and the decryption key is held outside the database — so it is not exposed even to someone reading the tables.