Infrastructure & Data Storage

Technical information about VivaEdu's infrastructure, data storage architecture, and security measures. Designed for institutional IT teams, security officers, and data protection officers.

Summary

  • All infrastructure hosted in AWS UK (eu-west-2, London)
  • Transcription via Microsoft Azure UK South
  • No third-country data transfers
  • All storage encrypted at rest and in transit

Hosting Infrastructure

AWS UK (eu-west-2, London)

VivaEdu is deployed per institution as a dedicated environment. Each institution receives a dedicated Lightsail instance (with database and cache), plus a dedicated S3 bucket for object storage.

ServiceResourcePurpose
Application HostingAWS Lightsail (Node.js)Web application and background workers
DatabasePostgreSQL (on Lightsail instance)User data, assignments, sessions, grades
Object StorageAWS S3Audio, video, essays, exports
Cache & QueueRedis (on Lightsail instance)Job queue, session state
TLS CertificatesTLS certificate on deploymentHTTPS encryption with auto-renewal

Microsoft Azure UK South

Audio transcription is processed via Microsoft Azure Speech Services in the UK South region:

  • Speech-to-Text: Student audio recordings transcribed to text
  • Translation: Multilingual viva responses translated (when enabled by institution)
  • Processing Location: UK South region only, no data leaves the UK

Microsoft Azure OpenAI UK South (Optional)

For institutions that enable branching questions, Azure OpenAI (UK South) provides follow-up question routing:

  • Purpose: Select the appropriate follow-up question from teacher-authored candidates
  • Input: Student transcript excerpt, teacher routing hints, candidate questions
  • Output: Selection of an existing teacher-authored question (no new content generated)
  • Processing Location: UK South region only
  • Feature Status: Feature-flagged, enabled per institution

OpenAI Text-to-Speech (Question Reading Only)

Important: OpenAI receives ONLY teacher-authored question text for text-to-speech playback. Student submissions, transcripts, audio, and video are never sent to OpenAI.

  • Purpose: Accessibility feature for reading questions aloud
  • Input: Teacher-authored question text only
  • Guardrails: API endpoint fetches question text by questionId from the database, does not accept arbitrary text
  • Disabled Services: OpenAI translation is disabled (returns HTTP 410)

Data Storage Architecture

PostgreSQL Database

All structured data is stored in a PostgreSQL 15 database on the Lightsail instance:

  • User accounts: Student and instructor profiles, authentication data
  • Classes and enrollments: Course sections, student enrollments
  • Assignments: Viva configurations, rubrics, due dates
  • Sessions and responses: Student viva attempts, status tracking, text transcripts
  • Grades and feedback: Teacher evaluations, rubric scores, feedback text
  • LTI integration data: Platform configurations, context mappings
  • Audit logs: Comprehensive logs of sensitive actions

Object Storage (AWS S3)

Large files are stored in S3 with structured key prefixes. Each institution has a dedicated bucket.

  • Audio recordings: Student viva responses (.webm, .mp3)
  • Video recordings: Student responses (when enabled), instructor video prompts
  • Essay uploads: PDF and DOCX files submitted by students
  • Question images: Images and diagrams used in viva questions
  • Context cards: Reference materials (PDFs, images) students see during vivas
  • Export archives: ZIP files generated for data exports

Data Isolation

Each institution operates in a fully isolated environment:

  • Dedicated Lightsail instance: Separate compute, database, and cache per institution
  • Dedicated S3 bucket: Media and files stored in institution-specific bucket
  • No data commingling: Institutional data is never shared or mixed with other institutions
  • Demo isolation: Demo environments use tenant IDs with automatic 2-hour expiration and complete data deletion

Security Measures

Encryption

TypeImplementation
In TransitTLS 1.2+ for all HTTPS connections. Enforced HTTPS redirects (no plain HTTP).
At RestS3 objects use server-side encryption. Database storage protected by OS/volume controls on the Lightsail instance.

Access Control

  • Role-based access control (RBAC): STUDENT, TEACHER, TA, and ADMIN roles with authorization checks on every request
  • Least privilege principle: Users can only access data relevant to their role and institutional relationships
  • Class scoping: Teachers access only classes they created or teach; students access only classes they are enrolled in
  • Signed URLs: S3 objects served via time-limited signed URLs (15 minutes to 7 days) with strict permissions

Application Security

  • Authentication: JWT-based with secure refresh tokens, bcrypt password hashing
  • Input validation: All API inputs validated using Zod schemas
  • File upload restrictions: MIME type validation, size limits (100MB), content type enforcement
  • Content Security Policy: CSP headers restrict embedding to trusted LMS domains only
  • Rate limiting: Login attempts and file uploads are rate-limited
  • XSS protection: React escaping and markdown sanitization

Subprocessors

The following third parties process personal data on behalf of institutions using VivaEdu:

SubprocessorServicePurposeProcessing Location
Amazon Web ServicesLightsail, S3Application hosting, object storageUK (eu-west-2)
MicrosoftAzure Cognitive ServicesSpeech-to-text transcriptionUK South
MicrosoftAzure OpenAIBranch routing (optional, feature-flagged)UK South
OpenAIText-to-SpeechQuestion reading (teacher text only)Vendor-managed

OpenAI Guardrails: The TTS endpoint fetches question text from the database by questionId. It does not accept arbitrary text input. Student submissions, transcripts, audio, and video are never sent to OpenAI.

AWS Certifications

AWS UK infrastructure (eu-west-2) holds the following certifications:

  • ISO 27001: Information security management systems
  • ISO 27017: Cloud-specific information security controls
  • ISO 27018: Protection of personally identifiable information in public clouds
  • SOC 2 Type II: Service organization control reports
  • GDPR: AWS Data Processing Agreement and GDPR-compliant data handling

Backup & Recovery

Current Status

Automated daily snapshots are not yet confirmed as enabled for all institutional deployments. RPO (Recovery Point Objective) and RTO (Recovery Time Objective) are not guaranteed until backups are configured and tested.

Target State (Before Production Use)

  • Daily Lightsail instance snapshots with defined retention period
  • Tested restore procedures documented
  • Object storage durability provided by AWS S3 (high durability across availability zones)

Backup configuration for each institutional deployment is confirmed during onboarding. Contact your VivaEdu representative to verify backup status for your deployment.

Related Topics

Comments

Leave a comment, question, or feedback. Comments are public — please don’t include personal data.

Loading comments…