- Is TherapyVault GDPR compliant?
- Yes. TherapyVault is built around GDPR principles: every user can export their personal data as a downloadable ZIP archive, can request account deletion with a configurable grace window (30 days by default), and can see exactly which cookies are used (only essential authentication cookies — no marketing, no analytics tracking). Sensitive secrets like two-factor authentication seeds are encrypted at rest with AES-256-GCM.
- How are the videos protected?
- Videos are stored in private object storage and are never publicly accessible. Every playback request reaches the TherapyVault server first, which checks the viewer's session, their role, and their active access grants. Only after that check passes does the server return a short-lived signed URL or proxy the stream. URLs cannot be shared with someone else — they expire within minutes and are tied to a single client's session.
- What kinds of access can I grant to a client?
- Five types. Forever (lifetime access with downloads enabled). Time-limited (access until a chosen date). View-limited (a fixed number of viewings, then access ends). Download-limited (downloads count down to zero but viewing stays unlimited). Combined (set any of the above together). Every grant can be disabled in one click.
- Can clients download a video, or only stream it?
- That is your decision per grant. If you allow downloads, the platform serves a signed download URL tied to that single grant and decrements the remaining download counter. The audit log records every download with timestamp, IP address, and grant id.
- Do you support coupons and paid access?
- Yes. You can create coupons that grant free access, give a percentage or fixed discount on a paid product, add download credits, or add viewing credits. Paid products run through Stripe (one-time and subscriptions); a Mollie integration is available as a stub and can be activated once API keys are configured.
- What languages does TherapyVault support?
- TherapyVault ships with English and Dutch out of the box, with all UI text routed through a translation function so adding more languages is a translation-file task only. Each user's locale is remembered in their account and the language switcher is available on every page.