Security Practices
This document summarises the security controls and practices Auriga employs to protect student and institutional data. It is intended for school IT administrators and procurement teams conducting security reviews.
Last updated: April 2026
Data Encryption
Encryption at rest
All data stored in Google Cloud (Firestore and Cloud SQL) is encrypted at rest using AES-256 by default, managed by Google Cloud KMS. No additional configuration is required to enable this protection.
Encryption in transit
All traffic between clients and Auriga services is encrypted with TLS 1.2 or higher. Older cipher suites are disabled. HSTS headers enforce HTTPS-only access.
Authentication & Access Control
Firebase Authentication
User authentication is handled by Google Firebase Auth. Auriga never stores plaintext passwords. Passwords are hashed and managed entirely by Firebase.
Multi-Factor Authentication (MFA)
TOTP-based MFA is available for all users via an authenticator app (Google Authenticator, Authy, etc.). School administrators can require MFA for all users in their institution.
Token-based API access
All API requests require a short-lived Firebase ID token (1-hour expiry). Tokens are verified server-side on every request. No long-lived API keys are issued to end users.
Multi-tenant isolation
Every database query is scoped to a tenant ID. Cross-tenant data access is prevented at the middleware layer. Requests missing a valid tenant scope are rejected by default.
Session Security
Idle session timeout
Authenticated sessions automatically expire after 30 minutes of inactivity on the server. The browser client shows a 60-second warning before automatic logout. Users can extend their session by clicking 'Stay Logged In'.
Secure cookies
Authentication cookies are set with HttpOnly, Secure, and SameSite=Strict flags to prevent CSRF and XSS attacks.
Infrastructure Security
Google Cloud Platform
Auriga runs on Google Cloud Platform (GCP), which is SOC 2 Type II, ISO 27001, and FedRAMP certified. GCP's shared responsibility model provides physical security, hardware security, and network perimeter controls.
Cloud Run (serverless)
Application services run on Google Cloud Run. Each request is served in an isolated container. There is no persistent server state between requests.
Rate limiting
All API endpoints are protected by Redis-backed rate limiting. Different tiers apply to authenticated and unauthenticated routes. Excessive request rates trigger temporary blocks.
Security headers
HTTP security headers are enforced on all responses: Content-Security-Policy (CSP), X-Frame-Options (DENY), X-Content-Type-Options (nosniff), Referrer-Policy, and Permissions-Policy.
Audit Logging
Comprehensive audit trail
All data access and modification events across 52+ API endpoints are recorded in an append-only audit log. Each entry captures the user ID, tenant ID, action, resource type, resource ID, and timestamp.
Audit log retention
Audit logs are retained for 7 years (2,555 days) in accordance with FERPA record-keeping standards. Logs are stored in Firestore with restricted access.
Admin access
School administrators can view the audit log for their institution through the compliance dashboard at /admin/compliance.
Vulnerability Management
Dependency scanning
Dependencies are automatically scanned for known vulnerabilities using GitHub Dependabot. Critical and high-severity vulnerabilities are patched within 72 hours.
Responsible disclosure
We accept responsible disclosure reports at security@auriga.education. We aim to acknowledge reports within 48 hours and release fixes within 14 days for critical issues.
Security Questions
For security inquiries, vulnerability reports, or to request a security questionnaire completion, contact: security@auriga.education
See also: Student Privacy Pledge · DPA Template