How we protect your school's data, user accounts, and communications across every layer of the platform.
JWT Authentication
Every request is verified with a signed JSON Web Token. Tokens carry an issued-at claim that is validated server-side so revoked sessions cannot be reused.
Role-Based Access
Five distinct roles — Super Admin, Teacher, Parent, Admissions Officer, and Finance Officer — each with strictly scoped permissions. No role can access data beyond its function.
Encrypted at Rest & In Transit
All data is encrypted at rest using AES-256 and in transit over TLS 1.2 or higher. No unencrypted channels are used anywhere in the platform.
Full Audit Trail
Every administrative action is logged with a timestamp, user identity, and change detail. Logs are exportable and tamper-resistant.
ZenCampus uses Supabase Auth as its authentication backbone, which implements the OAuth 2.0 and OpenID Connect standards. Users authenticate with email and password credentials. Upon successful login, Supabase issues a signed JSON Web Token (JWT) that is used to authorise every subsequent request.
Passwords are never stored in plaintext. Supabase hashes passwords using bcrypt before storage. We do not have access to your raw password at any point.
iat claim) is validated server-side on every API callAccess within ZenCampus is governed by a three-tier role model. Roles are assigned by the school's Super Admin and cannot be self-elevated. Each role has a strictly defined set of permitted actions — no role can access data or operations beyond its designated scope. Students are managed as data entities within the system; they do not hold user accounts.
| Role | Scope |
|---|---|
| Super Admin | Full platform access. Manages users, settings, billing, academic years, fee configuration, announcements, and all data. |
| Teacher | Access to assigned classes only. Can mark attendance, enter grades, create assessments, manage timetable, apply for leave, and view finance records for their students. |
| Parent | Read-only view of their linked child's attendance, grades, announcements, and academic calendar. Cannot modify any data. |
Row-level security (RLS) policies enforced at the database layer ensure that even if an API request bypasses application-level checks, the database will not return data belonging to other schools or unauthorised users.
ZenCampus provides administrators with the ability to revoke active sessions for any user at any time. When a session is revoked, the user is immediately signed out on all devices and cannot re-use any previously issued token.
Session revocation is enforced through a sessions_revoked_at timestamp stored on the user's profile. Every API request checks the token's iat (issued-at) claim against this timestamp. If the token was issued before the revocation time, the request is rejected with a 401 Unauthorised response.
All data stored in the ZenCampus database — including student records, attendance data, fee information, academic grades, and personal details — is encrypted at rest using AES-256. Encryption is managed at the infrastructure level by Supabase, which runs on top of AWS.
All communication between your browser and ZenCampus servers is encrypted using TLS 1.2 or TLS 1.3. HTTP connections are automatically redirected to HTTPS. There are no unencrypted endpoints in the platform.
WhatsApp Business API credentials and phone number IDs are stored as encrypted environment variables and are never exposed in API responses or client-side code. Token values are masked in all audit log entries.
All ZenCampus API endpoints are protected by a layered middleware stack that runs before any business logic is executed:
Authorization headerDatabase queries use parameterised statements exclusively. String concatenation in query construction is not used anywhere in the codebase, preventing SQL injection by design.
ZenCampus maintains a comprehensive audit log of all significant administrative actions taken within the platform. The audit trail is available to Super Admins from the Audit Log section of the dashboard.
Each log entry records:
Audit logs can be exported in CSV format for offline review or compliance reporting. Log entries cannot be deleted or modified by any user role within the application — they are append-only.
ZenCampus is hosted on Supabase, which runs on AWS infrastructure. Supabase holds SOC 2 Type II certification and applies security best practices including network isolation, automated backups, and intrusion detection.
ZenCampus does not operate its own physical data centres. All infrastructure security obligations — including physical security, hardware maintenance, and network-level DDoS mitigation — are handled by Supabase and AWS.
ZenCampus integrates with the WhatsApp Business API to deliver attendance alerts and school announcements to parents. This integration is built with the following security controls:
We welcome responsible disclosure of security vulnerabilities. If you discover a security issue in ZenCampus, please report it to us before public disclosure so we can investigate and remediate the issue.
For security-related questions or to report a vulnerability:
Found a security issue?
Report it responsibly and we'll respond within 2 business days.
Report a Vulnerability