Política · Vita by Lucernas.AI
Políticas de privacidad y cumplimiento
Última actualización: 2026-10-11 · Cambio: aclarados el restablecimiento de datos, la solicitud de eliminación de cuenta y su cancelación (PR-010). Se conservan las aclaraciones LEG-03, LEG-08 y LEG-06 de 2026-10-04.
Esta es la versión canónica de la política, en español. Las versiones en inglés y portugués son traducciones de cortesía y, en caso de discrepancia, prevalece el texto en español.
Esta es la declaración técnica auditable de cómo Vita maneja la voz, la conversación y los datos derivados de las familias que nos confían el cuidado de sus padres y abuelos. La política está dividida en dos contextos porque las garantías son distintas según cómo se use el producto:
- El demo público en
/app/demo — sesiones anónimas de hasta 10 minutos.
- La aplicación familiar (
/app/) — uso con cuenta para cuidar a un ser querido todos los días.
1. Demo público (/app/demo)
No guardamos el audio crudo del demo. Esta garantía se limita al audio: durante la llamada sí existe una transcripción de trabajo en memoria y, si la sesión cumple los mínimos de duración y participación, se usa para producir el resumen descrito abajo.
Flujo de datos verificable
- Audio y transcripción de trabajo. El navegador envía audio PCM por un WebSocket seguro a Vita, y Vita lo transmite a Google Gemini Live. El audio se mantiene en memoria para la llamada. El código del demo no persiste el audio crudo ni la transcripción cruda en Firestore, disco o almacenamiento de objetos. Al terminar el procesamiento, esas representaciones de trabajo se descartan.
- Datos operativos.
vita_demo_tickets guarda el ticket aleatorio de un solo uso, emisión, vencimiento y consumo. vita_demo_rate_limits_v1 guarda un hash SHA-256 de la IP con el contador diario; vita_demo_global_v1 guarda el contador diario global. vita_demo_sessions_v1 guarda el identificador de sesión, fecha, duración, idioma y motivo de cierre. En el registro de sesión se usa un marcador, no la IP real ni su hash.
- Resumen derivado. Para sesiones de al menos 30 segundos y dos intervenciones del visitante, la transcripción de trabajo se envía a Gemini para producir señales estructuradas y un resumen breve.
vita_demo_insights_v1 puede guardar idioma, duración, número de intervenciones, modelo, tono, preguntas parafraseadas, capacidades exploradas, solicitudes, objeciones, intención de compartir con la familia y resúmenes en español e inglés. El objetivo de quitar nombres, teléfonos, direcciones y ciudades se aplica mediante una instrucción al modelo, no un control determinista de redacción. Por eso no garantizamos que un resumen nunca contenga datos personales introducidos por el visitante.
- Lista de espera voluntaria. Si el visitante envía su correo,
vita_demo_waitlist guarda ese correo, la fuente, el motivo de cierre y la fecha. El demo no lo guarda si el visitante no envía el formulario.
- Aislamiento de los datos familiares. La demo se ejecuta en el mismo servicio Cloud Run (
vita-advisor) y con la misma identidad de ejecución que la aplicación familiar. No usa una identidad IAM separada de privilegio mínimo. Las barreras verificables son controles de la capa de aplicación: ticket de demo, ninguna identidad de cuenta familiar en el WebSocket, UID vacío, lista cerrada de herramientas y contenido ilustrativo para las lecturas de medicamentos y citas. Esos controles impiden que el flujo público solicite registros familiares; no son una frontera IAM independiente.
- Procesamiento por Google. A fecha de esta política, la voz usa
gemini-3.8-live durante el WebSocket y el resumen derivado usa gemini-3.7-flash con la cadena de respaldo configurada. El tratamiento que Google haga de esos datos se rige por los términos y acuerdos aplicables de Google. El repositorio puede verificar qué se envía y qué guarda Vita, pero no puede verificar por código las prácticas contractuales de entrenamiento o retención del proveedor.
2. Aplicación familiar (/app/) — seguridad y datos
Esta es la realidad operativa actual y honesta. Si cuidas a tu mamá con Vita, los datos de tus conversaciones no son efímeros — son el producto (el Libro de Vida). Por transparencia te decimos exactamente qué guardamos, dónde, y por cuánto tiempo.
Lo que SÍ guardamos
| Dato | Dónde | Cifrado | Retención actual | Retención objetivo (PR-3) |
| Audio crudo de la voz | Nunca persistido | n/a | n/a | n/a |
| Transcripción de la conversación | vita_sessions.transcript | Cifrado en reposo (Google-managed) | Hasta que el usuario borre su cuenta | 30 días automáticos + cifrado a nivel de campo (CMEK + envelope) |
| Memorias derivadas (preferencias, recuerdos, historias) | vita_memory.fact | Cifrado en reposo (Google-managed) | Hasta que el usuario borre su cuenta | Cifrado a nivel de campo + acceso solo por API autenticada |
| Medicamentos, citas, signos vitales | vita_medications, vita_appointments, vita_vitals | Cifrado en reposo (Google-managed) | Hasta que el usuario borre su cuenta | Cifrado a nivel de campo (CMEK) |
| Contactos familiares (nombres, teléfonos, emails) | vita_family_members | Cifrado en reposo (Google-managed) | Hasta que el usuario borre su cuenta | Cifrado a nivel de campo |
| Documentos subidos (recetas, exámenes, fotos) | vita_documents + GCS vita-docs | Cifrado en reposo (Google-managed) | borrado automático por categoría: médico, legal y personal no vencen automáticamente; financiero 10 años más 30 días de gracia; temporal 90 días más 30 días de gracia | Regla actual aplicada por el barrido nocturno |
| Datos de pago | Stripe (no almacenamos tarjetas) | Stripe PCI-DSS | Según política de Stripe | Sin cambios |
Categorías de documentos
| Categoría | Qué incluye | Retención actual |
medical | Laboratorio, recetas y notas médicas | Hasta que la familia lo elimine. Sin vencimiento automático. |
legal | Testamento, poder y contratos | Hasta que la familia lo elimine. Sin vencimiento automático. |
financial | Seguros, impuestos y recibos | A los 10 años se oculta y abre una ventana de gracia de 30 días. Después, el siguiente barrido nocturno elimina el registro e intenta eliminar el archivo. |
personal | Fotos, cartas y recuerdos del Libro de Vida | Hasta que la familia lo elimine. Sin vencimiento automático. |
media | Subidas temporales | A los 90 días se oculta y abre una ventana de gracia de 30 días. Después, el siguiente barrido nocturno elimina el registro e intenta eliminar el archivo. |
La regla está activa y el barrido se ejecuta cada noche. Durante la gracia, un administrador puede restaurar el documento. Los documentos anteriores al 2026-05-07 quedan como personal por defecto.
Proveedores externos y datos que reciben
Vita no vende datos familiares. Para prestar funciones concretas, estos proveedores o destinos reciben los datos indicados. Una función que no se usa no envía los datos propios de esa función.
| Proveedor o destino | Función | Datos que recibe |
| Google Cloud y Google Gemini | Hospedaje, Firestore, Cloud Storage, voz, texto y visión | Identificadores de cuenta y los registros familiares que la función necesita procesar o almacenar; audio, transcripciones de trabajo, prompts y respuestas; documentos, fotos e imágenes cuando la familia usa esas funciones. |
| Google Gmail (SMTP) | Alertas, verificaciones, invitaciones y reportes | Dirección destinataria, asunto, cuerpo y adjuntos. Según el mensaje, puede incluir nombres, alertas, medicamentos, citas, detalles de cuidado y reportes. |
| Stripe | Checkout, suscripción y facturación | Identificador interno del titular, plan, código de beta y estado e identificadores de suscripción o pago. Los datos de tarjeta y facturación se introducen en Stripe; Vita no almacena números de tarjeta. |
| Google Firebase Cloud Messaging | Notificaciones push | Token del dispositivo, título, cuerpo y datos de la notificación, que pueden incluir recordatorios de medicamentos o alertas de cuidado. |
| Google YouTube | Búsqueda y reproducción de videos | Consulta de búsqueda, idioma y región. Al reproducir un video incrustado, recibe el identificador del video y datos normales de red y dispositivo del navegador. |
| OpenWeatherMap | Clima y pronóstico | Ciudad e idioma seleccionados y metadatos técnicos de la solicitud del servidor. |
| GNews | Contenido positivo de noticias | Consultas editoriales predefinidas, idioma y metadatos técnicos de la solicitud. El código no agrega el perfil, nombre ni expediente familiar. |
| Wikipedia / Wikimedia | Imágenes para tarjetas informativas | Término de búsqueda derivado de la solicitud y metadatos técnicos de la solicitud del servidor. |
| BigDataCloud | Autocompletar ubicación durante el alta | Coordenadas redondeadas a dos decimales, IP y datos normales del navegador, después de que la persona autoriza la ubicación. |
| ipapi.co | Completar el país de una lista de espera | Dirección IP pública de la lista de espera, solo cuando un administrador ejecuta manualmente el proceso. |
| WhatsApp (Meta), SMS y la aplicación de correo | Compartir invitaciones, enlaces o iniciar contacto | Nombre del mayor, enlace de acceso de un solo uso, texto preparado y, cuando aplica, teléfono del destinatario. El dispositivo entrega los datos solo cuando la persona pulsa la opción de compartir o contactar. |
| Unsplash, LoremFlickr y sitios originales de artículos | Imágenes y contenido de entretenimiento | URL de imagen o artículo, etiquetas de búsqueda de LoremFlickr y metadatos de red del navegador o servidor. Vita no agrega deliberadamente el expediente familiar. |
Lo que NO guardamos
- Audio crudo. Nunca. Solo se transmite a Gemini en tiempo real y se descarta.
- Voces de familiares. No hacemos clonación de voz ni almacenamos muestras.
- Datos para entrenar modelos. Acuerdo con Google Cloud: nuestras conversaciones no se usan para entrenar Gemini ni ningún otro modelo fundacional.
Derecho de borrado (Right to Erasure) — implementado
Vita honra tu derecho a eliminar tus datos bajo GDPR Art. 17 y la Ley 1581 de 2012 de Colombia. Hay dos niveles de borrado:
- Borrado por documento —
DELETE /api/more/documents/{doc_id}. Borrado inmediato. UI: botón "Eliminar" en cada tarjeta dentro de Salud → Documentos.
- Solicitud de eliminación de cuenta. No hay una pantalla de eliminación de cuenta en la aplicación actual. Escribe a privacy@lucernas.ai para solicitarla o pedir ayuda para cancelar; no envíes datos de salud ni documentos de identidad por correo. El servicio
POST /api/account/delete-request atiende la identidad autenticada de persona mayor o uso personal, con ELIMINAR MI CUENTA. No borra todos los roles: cuidador + uso personal requiere scope=self_only y conserva la cuenta de cuidador y sus familiares. Cuidador y enfermería se atienden por el contacto de privacidad. El servicio guarda deletion_status=pending y una fecha a 30 días; su ejecutor protegido procesa solicitudes vencidas, elimina las colecciones y archivos de su cascada y el perfil correspondiente, y reintenta fallos. El correo de aviso se intenta enviar al solicitar y al completar; la entrega no está garantizada ni condiciona la eliminación.
- Restablecer datos no elimina la cuenta. La opción de Ajustes inicia inmediatamente el restablecimiento de datos de cuidado y configuración. Conserva uid, nombre, vínculo familiar, fecha de inicio de cuidado y zona horaria confirmada. No elimina la cuenta del cuidador ni el perfil básico de la persona mayor; no tiene período de 30 días. Los borrados secundarios son de mejor esfuerzo: un error de conexión no demuestra que nada se haya borrado. Revisa el estado antes de repetir.
En enfermería, POST /api/nurses/me/delete-request y POST /api/nurses/me/delete-cancel están conectados al servidor y solo atienden a la enfermera autenticada, con la misma ventana de 30 días. Su ejecutor borra el ámbito de enfermería, no los perfiles de las familias. No hay un control de eliminación de cuenta en la interfaz actual; usa el contacto de privacidad para ayuda.
Cancelación: durante los 30 días, POST /api/account/delete-cancel cancela la solicitud autenticada; para ayuda, escribe a privacy@lucernas.ai. Si tu cuenta tiene acceso de cuidador, puedes cancelarla en Vita: Ajustes › Cuenta › Cancelar la eliminación. Iniciar sesión no cancela la solicitud. Una vez eliminados los datos, no se pueden recuperar.
Qué se conserva por ley: registros de facturación de Stripe (10 años, normativa fiscal/contable), logs de auditoría en vita_audit_logs (365 días, traza inmutable de compliance — Ley 1581 §17). Todo lo demás se elimina físicamente.
Si no puedes esperar los 30 días: escribe a privacy@lucernas.ai. La gestión manual requiere verificar identidad y alcance; no es el restablecimiento de datos y no tiene un plazo automático garantizado.
Roadmap pendiente
- Cifrado a nivel de campo (envelope encryption con Cloud KMS) sobre los campos sensibles listados en la tabla anterior.
- TTL automático de 30 días sobre la transcripción cruda en
vita_sessions.transcript.
- Endpoint de exportación
GET /api/user/me/export que entrega un ZIP firmado con todos los datos del usuario.
3. Cumplimiento normativo
- Ley 1581 de 2012 (Habeas Data, Colombia) y normativa colombiana de protección de datos sensibles de salud.
- GDPR y LGPD para usuarios en Europa y Brasil respectivamente.
- HIPAA para usuarios en Estados Unidos (Vita opera bajo BAA con Google Cloud).
Encargado del Tratamiento de Datos (DPO): (designación pendiente; responsable temporal: Carlos Guzmán — privacy@lucernas.ai)
4. Cambios a esta política
Toda modificación material a esta política se notifica por correo a los usuarios activos con al menos 14 días de anticipación. La fecha de "última actualización" en la cabecera siempre refleja la última versión publicada.
Policy · Vita by Lucernas.AI
Privacy & Compliance Policy
Last updated: 2026-10-11 · Change: clarified care-data reset, account-deletion requests and cancellation (PR-010). The LEG-03, LEG-08 and LEG-06 clarifications from 2026-10-04 remain.
This is a courtesy English translation. The canonical version is the Spanish text — in case of any discrepancy, the Spanish version prevails.
This is the auditable technical statement of how Vita handles voice, conversation, and derived data from the families who entrust us with the care of their parents and grandparents. The policy is split in two contexts because the guarantees differ depending on how the product is used:
- The public demo at
/app/demo — anonymous sessions of up to 10 minutes.
- The family application (
/app/) — account-based use to care for a loved one every day.
1. Public demo (/app/demo)
We do not store the demo's raw audio. This guarantee is limited to audio: a working transcript exists in memory during the call and, when the session meets the minimum duration and participation thresholds, it is used to produce the summary described below.
Verifiable data flow
- Audio and working transcript. The browser sends PCM audio over a secure WebSocket to Vita, and Vita streams it to Google Gemini Live. Audio remains in memory for the call. The demo code does not persist raw audio or raw transcript to Firestore, disk, or object storage. Those working representations are discarded after processing.
- Operational data.
vita_demo_tickets stores the random single-use ticket plus issue, expiry, and consumption data. vita_demo_rate_limits_v1 stores a SHA-256 IP hash with its daily counter; vita_demo_global_v1 stores the global daily counter. vita_demo_sessions_v1 stores the session identifier, timestamp, duration, language, and close reason. The session record uses a placeholder, not the real IP or its hash.
- Derived summary. For sessions lasting at least 30 seconds with two visitor turns, the working transcript is sent to Gemini to produce structured signals and a short summary.
vita_demo_insights_v1 may store language, duration, turn count, model, tone, paraphrased questions, capabilities explored, requests, objections, family-sharing intent, and Spanish and English summaries. Removing names, phone numbers, addresses, and cities is a model instruction, not a deterministic redaction control. We therefore do not guarantee that a summary can never contain personal data entered by the visitor.
- Optional waitlist. If the visitor submits an email,
vita_demo_waitlist stores that email, source, close reason, and timestamp. The demo does not store it unless the visitor submits the form.
- Family-data isolation. The demo runs in the same Cloud Run service (
vita-advisor) and with the same Cloud Run runtime identity as the family application. It does not use a separate least-privilege IAM identity. The verifiable barriers are application-layer controls: a demo ticket, no family-account identity in the WebSocket, an empty UID, a closed tool allowlist, and illustrative fixtures for medication and appointment reads. Those controls prevent the public flow from requesting family records; they are not an independent IAM boundary.
- Google processing. As of this policy date, voice uses
gemini-3.8-live during the WebSocket and the derived summary uses gemini-3.7-flash with the configured fallback chain. Google's handling of that data is governed by the applicable Google terms and agreements. The repository can verify what Vita sends and stores, but code cannot verify the provider's contractual training or retention practices.
2. Family application (/app/) — security & data
This is the current, honest operational reality. If you care for your mom with Vita, your conversation data isn't ephemeral — it is the product (the Book of Life). For transparency, we tell you exactly what we store, where, and for how long.
What we DO store
| Data | Where | Encryption | Current retention | Target retention (PR-3) |
| Raw voice audio | Never persisted | n/a | n/a | n/a |
| Conversation transcript | vita_sessions.transcript | At-rest (Google-managed) | Until user deletes account | 30-day automatic + field-level (CMEK + envelope) |
| Derived memories (preferences, family memories, life stories) | vita_memory.fact | At-rest (Google-managed) | Until user deletes account | Field-level + access only via authenticated API |
| Medications, appointments, vitals | vita_medications, vita_appointments, vita_vitals | At-rest (Google-managed) | Until user deletes account | Field-level (CMEK) |
| Family contacts (names, phones, emails) | vita_family_members | At-rest (Google-managed) | Until user deletes account | Field-level |
| Uploaded documents (prescriptions, lab results, photos) | vita_documents + GCS vita-docs | At-rest (Google-managed) | automatic category retention: medical, legal, and personal have no automatic expiry; financial expires after 10 years with a 30-day grace period; temporary media expires after 90 days with a 30-day grace period | Current rule enforced by the nightly sweep |
| Payment data | Stripe (we don't store cards) | Stripe PCI-DSS | Per Stripe policy | Unchanged |
Document categories
| Category | What it includes | Current retention |
medical | Lab results, prescriptions, and doctor notes | Until the family deletes it. No automatic expiry. |
legal | Wills, powers of attorney, and contracts | Until the family deletes it. No automatic expiry. |
financial | Insurance, tax, and receipts | At 10 years it is hidden and enters a grace period of 30 days. After that, the next nightly sweep deletes the record and attempts to delete the file. |
personal | Photos, letters, and Libro de Vida memories | Until the family deletes it. No automatic expiry. |
media | Temporary uploads | At 90 days it is hidden and enters a grace period of 30 days. After that, the next nightly sweep deletes the record and attempts to delete the file. |
The rule is active and the sweep runs every night. During the grace period, an administrator can restore the document. Documents uploaded before 2026-05-07 default to personal.
External providers and the data they receive
Vita does not sell family data. To provide specific features, these providers or destinations receive the stated data. A feature that is not used does not send that feature's data.
| Provider or destination | Function | Data received |
| Google Cloud and Google Gemini | Hosting, Firestore, Cloud Storage, voice, text, and vision | Account identifiers and family records needed to process or store the requested feature; audio, working transcripts, prompts, and responses; documents, photos, and images when the family uses those features. |
| Google Gmail (SMTP) | Alerts, verification, invitations, and reports | Recipient address, subject, body, and attachments. Depending on the message, this can include names, alerts, medications, appointments, care details, and reports. |
| Stripe | Checkout, subscriptions, and billing | Internal account-owner identifier, plan, beta code, and subscription or payment status and identifiers. Card and billing details are entered into Stripe; Vita does not store card numbers. |
| Google Firebase Cloud Messaging | Push notifications | Device token, notification title, body, and data, which can include medication reminders or care alerts. |
| Google YouTube | Video search and playback | Search query, language, and region. When an embedded video is played, it also receives the video identifier and ordinary browser network and device data. |
| OpenWeatherMap | Weather and forecast | Selected city and language plus technical metadata from the server request. |
| GNews | Positive news content | Predefined editorial queries, language, and technical request metadata. The code does not add the family profile, name, or care record. |
| Wikipedia / Wikimedia | Images for information cards | A search term derived from the request plus technical metadata from the server request. |
| BigDataCloud | Location autofill during onboarding | Coordinates rounded to two decimal places, IP address, and ordinary browser data, after the person authorizes location access. |
| ipapi.co | Country completion for a waitlist record | The waitlist public IP address, only when an administrator manually runs the completion process. |
| WhatsApp (Meta), SMS and the email app | Sharing invitations or links and starting contact | Elder name, single-use access link, prepared message text, and the recipient phone number when applicable. The device hands off the data only when the person taps the share option or contact action. |
| Unsplash, LoremFlickr and original article sites | Images and entertainment content | Image or article URL, LoremFlickr search tags, and browser or server network metadata. Vita does not deliberately append the family care record. |
What we do NOT store
- Raw audio. Never. Only transmitted to Gemini in real time and discarded.
- Family voice samples. No voice cloning, no sample storage.
- Data for model training. Per Google Cloud agreement: our conversations are not used to train Gemini or any other foundation model.
Right to Erasure — implemented
Vita honors your right to delete your data under GDPR Art. 17 and Colombia's Ley 1581 de 2012. Account deletion and care-data reset are different:
- Per-document delete —
DELETE /api/more/documents/{doc_id}. Immediate, audit-logged. UI: "Delete" button on each card under Health → Documents.
- Account-deletion request. There is no account-deletion screen in the current app. Write to privacy@lucernas.ai to request deletion or cancellation help; do not email health data or identity documents.
POST /api/account/delete-request supports the authenticated elder or personal-use identity with DELETE MY ACCOUNT. It does not erase every role: caregiver + personal-use requires scope=self_only, preserving the caregiver account and relatives. Caregiver and nurse accounts use the privacy contact. The service stores deletion_status=pending and a date 30 days ahead; its protected executor processes due requests, deletes the collections and files in its cascade and the corresponding profile, and retries failures. Notice email delivery is attempted on request and completion; delivery is not guaranteed and does not control deletion.
- Care-data reset is not account deletion. The Settings action starts care-data reset and setup reset immediately. It preserves uid, name, family link, care start date and confirmed time zone. It does not delete the caregiver account or the elder's basic profile; it has no 30-day window. Secondary deletions are best-effort: a connection error does not prove nothing was deleted. Check the current state before repeating.
For nurses, POST /api/nurses/me/delete-request and POST /api/nurses/me/delete-cancel are mounted on the server and serve only the authenticated nurse, with the same 30-day window. The nurse executor deletes the nurse scope, not family profiles. There is no account-deletion control in the current interface; use the privacy contact for help.
Cancellation window: within 30 days, POST /api/account/delete-cancel cancels the authenticated request; contact privacy@lucernas.ai for help. If your account has caregiver access, you can cancel it in Vita: Settings › Account › Cancel deletion. Signing in does not cancel the request. Deleted data cannot be recovered.
What's retained by law: Stripe billing records (10 years, fiscal/accounting standard), audit logs in vita_audit_logs (365 days, immutable compliance trail — Ley 1581 §17). Everything else is physically deleted.
Cannot wait 30 days? Write to privacy@lucernas.ai. Manual handling requires identity and scope verification; it is not care-data reset and has no guaranteed automatic execution time.
Roadmap pending
- Field-level encryption (envelope encryption with Cloud KMS) over the sensitive fields listed in the table above.
- Automatic TTL of 30 days on the raw transcript in
vita_sessions.transcript.
- Export endpoint
GET /api/user/me/export that delivers a signed ZIP with all user data.
3. Regulatory compliance
- Law 1581 of 2012 (Habeas Data, Colombia) and Colombian sensitive-health-data protection regulations.
- GDPR and LGPD for users in Europe and Brazil respectively.
- HIPAA for users in the United States (Vita operates under BAA with Google Cloud).
Data Processing Officer (DPO): (designation pending; interim responsible: Carlos Guzmán — privacy@lucernas.ai)
4. Changes to this policy
Any material modification to this policy is notified by email to active users at least 14 days in advance. The "last updated" date in the header always reflects the latest published version.
Política · Vita by Lucernas.AI
Política de privacidade e conformidade
Última atualização: 2026-10-11 · Mudança: esclarecidas a redefinição de dados, a solicitação de exclusão da conta e seu cancelamento (PR-010). Permanecem as explicações LEG-03, LEG-08 e LEG-06 de 2026-10-04.
Esta é uma tradução de cortesia em português. A versão canônica é o texto em espanhol — em caso de divergência, prevalece a versão em espanhol.
Esta é a declaração técnica auditável de como a Vita lida com voz, conversa e dados derivados das famílias que nos confiam o cuidado de seus pais e avós. A política está dividida em dois contextos porque as garantias diferem segundo o uso do produto:
- O demo público em
/app/demo — sessões anônimas de até 10 minutos.
- A aplicação familiar (
/app/) — uso com conta para cuidar de um ente querido todos os dias.
1. Demo público (/app/demo)
Não armazenamos o áudio bruto do demo. Esta garantia se limita ao áudio: durante a chamada existe uma transcrição de trabalho na memória e, se a sessão cumprir os limites mínimos de duração e participação, ela é usada para produzir o resumo descrito abaixo.
Fluxo de dados verificável
- Áudio e transcrição de trabalho. O navegador envia áudio PCM por um WebSocket seguro para a Vita, e a Vita o transmite para o Google Gemini Live. O áudio permanece na memória durante a chamada. O código do demo não persiste o áudio bruto nem a transcrição bruta no Firestore, em disco ou no armazenamento de objetos. Essas representações de trabalho são descartadas após o processamento.
- Dados operacionais.
vita_demo_tickets armazena o ticket aleatório de uso único, emissão, vencimento e consumo. vita_demo_rate_limits_v1 armazena um hash SHA-256 do IP com o contador diário; vita_demo_global_v1 armazena o contador diário global. vita_demo_sessions_v1 armazena o identificador da sessão, data, duração, idioma e motivo de encerramento. O registro da sessão usa um marcador, não o IP real nem seu hash.
- Resumo derivado. Para sessões com pelo menos 30 segundos e duas falas do visitante, a transcrição de trabalho é enviada ao Gemini para produzir sinais estruturados e um resumo breve.
vita_demo_insights_v1 pode armazenar idioma, duração, número de falas, modelo, tom, perguntas parafraseadas, capacidades exploradas, solicitações, objeções, intenção de compartilhar com a família e resumos em espanhol e inglês. A remoção de nomes, telefones, endereços e cidades é uma instrução ao modelo, não um controle determinístico de redação. Portanto, não garantimos que um resumo nunca contenha dados pessoais inseridos pelo visitante.
- Lista de espera opcional. Se o visitante enviar seu e-mail,
vita_demo_waitlist armazena esse e-mail, a fonte, o motivo de encerramento e a data. O demo não o armazena se o visitante não enviar o formulário.
- Isolamento dos dados familiares. O demo é executado no mesmo serviço Cloud Run (
vita-advisor) e com a mesma identidade de execução que a aplicação familiar. Ele não usa uma identidade IAM separada de privilégio mínimo. As barreiras verificáveis são controles da camada da aplicação: ticket do demo, nenhuma identidade de conta familiar no WebSocket, UID vazio, lista fechada de ferramentas e conteúdo ilustrativo para as leituras de medicamentos e consultas. Esses controles impedem que o fluxo público solicite registros familiares; eles não constituem uma fronteira IAM independente.
- Processamento pelo Google. Na data desta política, a voz usa
gemini-3.8-live durante o WebSocket e o resumo derivado usa gemini-3.7-flash com a cadeia de fallback configurada. O tratamento desses dados pelo Google é regido pelos termos e acordos aplicáveis do Google. O repositório pode verificar o que a Vita envia e armazena, mas o código não pode verificar as práticas contratuais de treinamento ou retenção do provedor.
2. Aplicação familiar (/app/) — segurança e dados
Esta é a realidade operacional atual e honesta. Se você cuida da sua mãe com a Vita, os dados de suas conversas não são efêmeros — são o produto (o Livro da Vida). Por transparência, dizemos exatamente o que guardamos, onde, e por quanto tempo.
O que SIM guardamos
| Dado | Onde | Criptografia | Retenção atual | Retenção objetivo (PR-3) |
| Áudio bruto da voz | Nunca persistido | n/a | n/a | n/a |
| Transcrição da conversa | vita_sessions.transcript | Em repouso (Google-managed) | Até que o usuário apague a conta | 30 dias automáticos + nível de campo (CMEK + envelope) |
| Memórias derivadas (preferências, lembranças familiares, histórias) | vita_memory.fact | Em repouso (Google-managed) | Até que o usuário apague a conta | Nível de campo + acesso apenas por API autenticada |
| Medicamentos, consultas, sinais vitais | vita_medications, vita_appointments, vita_vitals | Em repouso (Google-managed) | Até que o usuário apague a conta | Nível de campo (CMEK) |
| Contatos familiares (nomes, telefones, e-mails) | vita_family_members | Em repouso (Google-managed) | Até que o usuário apague a conta | Nível de campo |
| Documentos enviados (receitas, exames, fotos) | vita_documents + GCS vita-docs | Em repouso (Google-managed) | retenção automática por categoria: médico, jurídico e pessoal não expiram automaticamente; financeiro expira após 10 anos com 30 dias de carência; mídia temporária expira após 90 dias com 30 dias de carência | Regra atual aplicada pela varredura noturna |
| Dados de pagamento | Stripe (não armazenamos cartões) | Stripe PCI-DSS | Conforme política da Stripe | Sem mudanças |
Categorias de documentos
| Categoria | O que inclui | Retenção atual |
medical | Laboratório, receitas e notas médicas | Até que a família o exclua. Sem vencimento automático. |
legal | Testamento, procuração e contratos | Até que a família o exclua. Sem vencimento automático. |
financial | Seguros, impostos e recibos | Aos 10 anos, fica oculto e entra em uma janela de carência de 30 dias. Depois disso, a próxima varredura noturna exclui o registro e tenta excluir o arquivo. |
personal | Fotos, cartas e lembranças do Libro de Vida | Até que a família o exclua. Sem vencimento automático. |
media | Envios temporários | Aos 90 dias, fica oculto e entra em uma janela de carência de 30 dias. Depois disso, a próxima varredura noturna exclui o registro e tenta excluir o arquivo. |
A regra está ativa e a varredura é executada todas as noites. Durante a carência, um administrador pode restaurar o documento. Documentos enviados antes de 2026-05-07 ficam como personal por padrão.
Provedores externos e os dados que recebem
A Vita não vende dados familiares. Para fornecer funções específicas, estes provedores ou destinos recebem os dados indicados. Uma função que não é usada não envia os dados próprios dessa função.
| Provedor ou destino | Função | Dados recebidos |
| Google Cloud e Google Gemini | Hospedagem, Firestore, Cloud Storage, voz, texto e visão | Identificadores de conta e registros familiares necessários para processar ou armazenar a função solicitada; áudio, transcrições de trabalho, prompts e respostas; documentos, fotos e imagens quando a família usa essas funções. |
| Google Gmail (SMTP) | Alertas, verificações, convites e relatórios | Endereço destinatário, assunto, corpo e anexos. Conforme a mensagem, pode incluir nomes, alertas, medicamentos, consultas, detalhes de cuidado e relatórios. |
| Stripe | Checkout, assinaturas e faturamento | Identificador interno do titular, plano, código beta e status e identificadores de assinatura ou pagamento. Os dados do cartão e faturamento são inseridos na Stripe; a Vita não armazena números de cartão. |
| Google Firebase Cloud Messaging | Notificações push | Token do dispositivo, título, corpo e dados da notificação, que podem incluir lembretes de medicamentos ou alertas de cuidado. |
| Google YouTube | Busca e reprodução de vídeos | Consulta de busca, idioma e região. Ao reproduzir um vídeo incorporado, também recebe o identificador do vídeo e dados normais de rede e dispositivo do navegador. |
| OpenWeatherMap | Clima e previsão | Cidade e idioma selecionados e metadados técnicos da solicitação do servidor. |
| GNews | Conteúdo positivo de notícias | Consultas editoriais predefinidas, idioma e metadados técnicos da solicitação. O código não adiciona o perfil, nome nem prontuário familiar. |
| Wikipedia / Wikimedia | Imagens para cartões informativos | Termo de busca derivado da solicitação e metadados técnicos da solicitação do servidor. |
| BigDataCloud | Preenchimento de localização durante o cadastro | Coordenadas arredondadas para duas casas decimais, IP e dados normais do navegador, depois que a pessoa autoriza a localização. |
| ipapi.co | Completar o país de um registro da lista de espera | Endereço IP público da lista de espera, somente quando um administrador executa manualmente o processo. |
| WhatsApp (Meta), SMS e o aplicativo de e-mail | Compartilhar convites, links ou iniciar contato | Nome da pessoa idosa, link de acesso de uso único, texto preparado e, quando aplicável, telefone do destinatário. O dispositivo entrega os dados somente quando a pessoa toca na opção de compartilhar ou contatar. |
| Unsplash, LoremFlickr e sites originais de artigos | Imagens e conteúdo de entretenimento | URL da imagem ou artigo, etiquetas de busca do LoremFlickr e metadados de rede do navegador ou servidor. A Vita não adiciona deliberadamente o prontuário familiar. |
O que NÃO guardamos
- Áudio bruto. Nunca. Apenas transmitido ao Gemini em tempo real e descartado.
- Vozes de familiares. Não fazemos clonagem de voz nem armazenamos amostras.
- Dados para treinar modelos. Acordo com Google Cloud: nossas conversas não são usadas para treinar Gemini ou qualquer outro modelo fundacional.
Direito de exclusão (Right to Erasure) — implementado
A Vita honra seu direito de excluir seus dados sob o GDPR Art. 17 e a Ley 1581 de 2012 da Colômbia. Há dois níveis:
- Exclusão por documento —
DELETE /api/more/documents/{doc_id}. Exclusão imediata. UI: botão "Excluir" em cada cartão dentro de Saúde → Documentos.
- Solicitação de exclusão da conta. Não há uma tela de exclusão da conta no aplicativo atual. Escreva para privacy@lucernas.ai para solicitar exclusão ou ajuda com o cancelamento; não envie dados de saúde nem documentos de identidade por e-mail.
POST /api/account/delete-request atende à identidade autenticada do idoso ou de uso pessoal, com EXCLUIR MINHA CONTA. Não apaga todos os papéis: cuidador + uso pessoal exige scope=self_only, preservando a conta de cuidador e seus familiares. Cuidador e enfermagem usam o contato de privacidade. O serviço grava deletion_status=pending e uma data para 30 dias; seu executor protegido processa solicitações vencidas, exclui as coleções e arquivos de sua cascata e o perfil correspondente, e tenta novamente em caso de falha. O serviço tenta enviar o aviso por e-mail na solicitação e conclusão; a entrega não é garantida nem condiciona a exclusão.
- Redefinir dados não exclui a conta. A opção em Configurações inicia imediatamente a redefinição dos dados de cuidado e da configuração. Mantém uid, nome, vínculo familiar, data de início do cuidado e fuso horário confirmado. Não exclui a conta do cuidador nem o perfil básico do idoso; não tem prazo de 30 dias. As exclusões secundárias são de melhor esforço: um erro de conexão não prova que nada foi excluído. Confira o estado antes de repetir.
Na enfermagem, POST /api/nurses/me/delete-request e POST /api/nurses/me/delete-cancel estão conectados ao servidor e atendem somente à enfermeira autenticada, com o mesmo prazo de 30 dias. Seu executor exclui o âmbito da enfermagem, não os perfis das famílias. Não há controle de exclusão de conta na interface atual; use o contato de privacidade para ajuda.
Cancelamento: dentro de 30 dias, POST /api/account/delete-cancel cancela a solicitação autenticada; para ajuda, escreva para privacy@lucernas.ai. Se sua conta tem acesso de cuidador, você pode cancelar no Vita: Ajustes › Conta › Cancelar a exclusão. Entrar não cancela a solicitação. Dados excluídos não podem ser recuperados.
O que é mantido por lei: registros de faturamento da Stripe (10 anos, padrão fiscal/contábil), logs de auditoria em vita_audit_logs (365 dias, trilha imutável de compliance — Ley 1581 §17). Todo o resto é fisicamente excluído.
Não pode esperar 30 dias? Escreva para privacy@lucernas.ai. A gestão manual exige verificar identidade e alcance; não é redefinição de dados e não tem prazo automático garantido.
Roadmap pendente
- Criptografia em nível de campo (envelope encryption com Cloud KMS) sobre os campos sensíveis listados na tabela acima.
- TTL automático de 30 dias sobre a transcrição bruta em
vita_sessions.transcript.
- Endpoint de exportação
GET /api/user/me/export que entrega um ZIP assinado com todos os dados do usuário.
3. Conformidade regulatória
- Lei 1581 de 2012 (Habeas Data, Colômbia) e normativa colombiana de proteção de dados sensíveis de saúde.
- GDPR e LGPD para usuários na Europa e Brasil respectivamente.
- HIPAA para usuários nos Estados Unidos (Vita opera sob BAA com Google Cloud).
Encarregado de Tratamento de Dados (DPO): (designação pendente; responsável temporário: Carlos Guzmán — privacy@lucernas.ai)
4. Mudanças nesta política
Toda modificação material a esta política é notificada por e-mail aos usuários ativos com pelo menos 14 dias de antecedência. A data de "última atualização" no cabeçalho sempre reflete a versão mais recente publicada.