Data Flow
This page describes the lifecycle of data as it moves through the Ouva platform. For a visual overview of the components involved, see the Architecture Diagram.
Application Loading
Section titled “Application Loading”When a user opens https://app.ouva.co, the SPA is served over HTTPS from the CDN. The application loads entirely in the browser — no local installation is required.
Authentication
Section titled “Authentication”On sign-in, the browser authenticates through Supabase Auth using magic link, password, or SSO (OIDC / SAML 2.0). A session token is issued and used for all subsequent API requests. In SSO deployments, authentication is routed through the customer’s identity provider before a session is established.
Data Reads
Section titled “Data Reads”After authentication, the app reads scene library, program, profile, and progress data from Supabase using authenticated REST/RPC requests. Realtime WebSocket channels deliver live updates for check-ins and scene state while relevant screens are open.
On-Device Rendering and Processing
Section titled “On-Device Rendering and Processing”Interactive 3D scenes render locally in the browser using WebGL. For camera-enabled scenes, MediaPipe model and runtime assets are downloaded from external CDN endpoints on first use or cache miss and processed on-device using WebAssembly. No raw camera data is sent to backend services.
Data Writes
Section titled “Data Writes”During use, the app writes operational data back to Supabase:
- Check-ins — user presence and scene associations
- Activity sessions — start, heartbeat (every 60 seconds), and end events with duration metrics
- Program progress — item completion status and timestamps
- Settings updates — user and deployment configuration changes
Text-to-Speech (if enabled)
Section titled “Text-to-Speech (if enabled)”When companion messaging includes text-to-speech, the browser sends speech requests to Ouva’s generate-speech edge function. The edge function calls ElevenLabs server-side and returns generated audio and lip-sync data to the browser. The browser never contacts ElevenLabs directly.
Kiosk Monitoring (always-on deployments)
Section titled “Kiosk Monitoring (always-on deployments)”In kiosk deployments, a monitoring agent sends periodic heartbeats and event-based alerts covering device online/offline state, display signal status, and session health. This monitoring is limited to operational uptime signals and does not capture scene content.
Application Updates
Section titled “Application Updates”New frontend builds are deployed as immutable releases through the CDN. Browser users receive updates on next page load. Kiosk devices pick up updates on browser restart or during scheduled maintenance windows.