Security
How your school's data is kept separate.
Written for the person at your school who has to ask the awkward questions. Everything here describes how the software is built; where we hold no certification, we say so.
One school cannot reach another
Every school is a separate tenant. Each query carries the school it belongs to, applied in the database layer rather than remembered by individual screens, so a request that guesses another school’s record identifier returns nothing rather than data.
This is covered by automated tests that fail the build if a query could cross the boundary — including by listing, counting, aggregating, or supplying a different school’s identifier deliberately.
Inside a school, access follows the role
Twelve roles are defined, each a set of specific permissions rather than a rank. Beyond that, some roles are restricted by row: a parent reaches their own children, a teacher their own classes. Holding the permission to view students does not mean viewing all of them.
A record of who did what
Fee collection, refunds, result publication, permission changes and student record edits are written to an audit trail with the person, the time and the change. Sensitive values are redacted before they are stored.
Accounts and sessions
Passwords are hashed with bcrypt. Sessions are cookie-based, marked secure in production, and bound to the school they were issued for — a valid session from one school is worthless on another. Repeated failed sign-ins lock an account.
Credentials a school gives us for its own mail server are encrypted at rest and are never returned to a browser.
What we do not claim
SchoolOS holds no ISO, SOC 2 or similar certification, and we will not imply otherwise. Postgres row-level security ships with the product as an optional hardening layer and is not enabled by default. If your IT team wants to review any of this in detail, we will walk them through it.
Questions
Bring your IT lead to the demonstration.
They will get straight answers about architecture, hosting, backups and data ownership, including where the answer is that something is not built yet.
What a demonstration involves
- Thirty to forty minutes, on a call, with your screen or ours
- Roughly how many students and staff you have
- What you use today for fees and attendance
- Whether you run one campus or several
No obligation, and no pricing pressure on the first call. If SchoolOS is the wrong fit for your school we would rather say so then.