Switchboard

Access control policy

Effective 18 October 2026 · Version 1.0

1. Principles

People get the least access they need to do their job, through their own account, and nothing more. Access is approved by the practice owner (or, for the service itself, the Security Officer), is checked by the software on every request, and is removed the day it is no longer needed.

2. Roles

OwnerEverything, including staff accounts, connections to other services, settings, the activity record, and exporting or erasing a person's data. Only an owner can change another owner.
AdminThe whole inbox, contacts, calendar, clinical notes (read and write), automatic-message rules and the activity record. Cannot manage staff accounts or connections.
ClinicianMessages, contacts, calendar and clinical notes (read and write). No rules, settings or staff management.
Front deskMessages, contacts and calendar. No access to clinical notes.

The permissions behind each role are fixed in the software; adding a feature means assigning it to a permission, not inventing a special case. A person's role is looked up from the database on every request, so changing a role or switching an account off takes effect at once, not when a session expires. People cannot change their own role.

3. Accounts and sign-in

4. Two-step sign-in

Two-step sign-in with an authenticator app (time-based one-time passwords, RFC 6238) is available to every account. It is required for owners and administrators: new and existing owner and administrator accounts have 14 days to set it up, after which they cannot use the application until it is on. Each code works once. Eight recovery codes are issued at setup, stored only as hashes, and each works once. Turning two-step off or issuing new recovery codes needs the password and a current code. If someone loses both their phone and their recovery codes, the owner resets their two-step sign-in after confirming who they are, and the reset is recorded.

5. Sessions and lockout

6. Reviewing access

At least every quarter, and whenever staff change, an owner reviews the Team page: who has an account, what role, whether two-step sign-in is on, and when they last signed in. Accounts no longer needed are switched off. Switched-off accounts are kept (not deleted) so past messages and notes keep their author.

7. When someone leaves

The owner switches their account off the same day. If they had access to any connection or key, those are replaced. If they had access to the server, their key is removed.

8. Administrator and server access

Access to the server is by SSH key only (password login is switched off), limited to the Security Officer, using keys held only on the Security Officer's own devices and never shared. Multi-factor authentication is on for the hosting (DigitalOcean) and domain and DNS (Cloudflare) accounts used to manage the service, and is being switched on for the source code, Meta developer and TikTok developer accounts; none of these accounts is shared. Secrets are never sent by email or chat.

9. Records

Sign-ins and failed sign-ins (including attempts on a locked account), role and account changes, two-step changes and resets, reads of clinical notes, and exports and erasures are written to the activity record. Owners and administrators can read it in the app (Team, then Access log). Each person can also see their own recent sign-ins, including failed attempts on their email, under Your account.