Skip to content

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.

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.

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.

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.

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.

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

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.

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.

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.