Skip to content

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.