Security & LGPD
Encryption, ownership-based access control, and LGPD principles built into the architecture, not bolted on afterward.
Data protection
Data in transit is protected by TLS; data at rest is stored encrypted in the analytics database.
Each session report is tied to the ownership of the responsible professional — access restricted per account, not freely shared per session.
Aggregated metrics used for internal research rely on session and patient hashes, with no directly identifiable data in the analytics layer.
How it works, without oversimplifying
We'd rather describe the full operation than summarize it in a way that sounds simpler than it is.
Remote sessions use WebRTC; when a direct connection between devices isn't possible, a TURN server acts as a relay. A meaningful share of the metrics is calculated in the professional's browser; audio segments may be sent to FROID's backend and to a specialized transcription provider for voice, image, and text processing.
Transcripts, reports, and authorized records are stored on FROID's infrastructure, which may include hosting in Estonia and providers for payments, AI, email, and calendaring — which may involve international data transfer, protected by the applicable contractual and technical mechanisms. Backups are encrypted and periodically verified.
Each organization's data (clinic or independent professional) is segregated via Row-Level Security (RLS) in the database — by construction, one organization cannot access another's records.
Access, changes, exports, and denied access attempts on patient reports and data are logged in an audit trail, tied to the account that performed the action.
Compliance
We treat LGPD's principles — purpose, necessity, transparency, and security — as architectural requirements, not a checklist applied afterward. This follows the same rationale applied by international health SaaS standards (HIPAA, GDPR): compliance needs to be built into encryption, audit trails, and role-based access control, not just into a contract.
For clinics and professionals who contract FROID, we make data processing terms available as part of the professional onboarding process.
As with any health SaaS, security is split: FROID is responsible for the platform infrastructure (encryption, backups, application access control); the contracting clinic/professional is responsible for managing their team's access and for the consent obtained from the patient.
FastAPI backend with DuckDB persistence for aggregated analytics; report ownership control via _can_access_report() and _report_owner_email(); anonymous session hashing via _anonymous_session_hash() before any statistical aggregation.
MultiFernet; passwords with PBKDF2-HMAC-SHA256 (120,000 iterations + salt).X-Content-Type-Options, X-Frame-Options: DENY, Referrer-Policy and Permissions-Policy (grants camera/microphone only).no-new-privileges, dropped Linux capabilities (cap_drop: ALL) and a process limit.SELECT/WITH, read_only connection, restricted tables); rate limiting on authentication and ingestion; body limits and timeouts at the edge.