Skip to main content
Schoolyi

Browse docs

Security & compliance

Security overview

Authentication, sessions, password policy, activity audit export, PWA shell, and day-school MVP boundaries.

Security & compliance guide for day and boarding schools.

Last updated August 27, 2026

Schoolyi uses credential-based sign-in with NextAuth sessions. Passwords are hashed with bcrypt. API routes validate sessions server-side; sensitive operations check role capabilities. Parents and students may also sign in with a one-time magic-link email.

Core controls

  • Sign-in at /signin - password for all personas; magic link for parent and student only (15 min expiry)
  • Session validation on API mutations - unauthorized returns 401, forbidden returns 403
  • Forced password change when mustChangePassword is set - redirects to /profile (enrollment and admin-created accounts)
  • Activity log - auditable record of sign-ins and data mutations (90 days in MySQL); CSV and SIEM NDJSON export from /activity-log
  • Public marketing, documentation at /docs, and admissions apply paths are explicitly allowlisted in middleware
  • Logged-in header Docs icon (BookOpen) opens /docs without leaving the app shell

Installable PWA shell

A minimal Progressive Web App shell supports parents and drivers on mobile: public/manifest.webmanifest (standalone, start_url /parent-dashboard), public/sw.js (network-first app routes; offline fallback), /offline page, and PwaRegister in the root layout. Live data still requires a network connection - the offline page is a reconnect prompt, not a cached app.

Common security issues

SymptomCheckFix
User gets 403 on a screen they needRole capabilitiesReview role template at /roles; assign correct role at /users. Teachers are scoped to assigned classes.
Session expires immediatelyClock and cookiesCheck server time sync; clear browser cookies; verify NEXTAUTH_URL matches public URL.
Activity log export emptyRetention windowLog retains ~90 days in MySQL; export CSV or SIEM NDJSON from /activity-log before purge if longer retention required.
Parent sees another familys dataPortal scopingEscalate immediately — verify parent-student links at /parents; APIs filter by linked children only.

Common questions

Quick answers in plain language.

What security controls does Schoolyi provide out of the box?+

Bcrypt password hashing, NextAuth sessions validated on every API mutation, RBAC per screen, 90-day activity log with CSV/SIEM export at /activity-log, magic-link for parent/student (15 min), and forced password change for provisioned accounts.

Related searches

School leaders and IT teams often search for: session security SIS, and audit log school ERP.