Política de privacidad de FinBrain Research
Última actualización: 26 de octubre de 2026.
Resumen: FinBrain Research es una herramienta personal de un único usuario (Nicolas). Lee en modo solo lectura los correos de su Gmail que tienen la etiqueta FinBrain/Research, extrae con código el contenido de esos informes y lo guarda en una base de datos de Cloudflare para mostrárselo a él mismo. No modifica ni envía correos, no vende ni comparte datos y hoy no envía el contenido a modelos de IA externos.
1. Quién opera la aplicación y a quién se aplica
FinBrain Research es desarrollada y usada por Nicolas para su análisis financiero personal. La única cuenta de Google conectada es la cuenta personal de Gmail de Nicolas. La aplicación no ofrece registro ni acceso a otras personas. Contacto: nicozerep@gmail.com.
2. Datos de Google a los que accede
La aplicación usa la Gmail API con un único permiso de OAuth: https://www.googleapis.com/auth/gmail.readonly (ver mensajes y configuración de correo, solo lectura). Si Google informa que la autorización incluye un permiso más amplio, el proceso se detiene sin leer nada.
Todas las llamadas a Google pasan por una lista cerrada de operaciones permitidas en el código. Solo puede:
- Renovar el token de acceso de corta duración (OAuth).
- Listar las etiquetas de la cuenta, únicamente para encontrar el identificador interno de la etiqueta
FinBrain/Research. - Listar los mensajes que tienen esa etiqueta.
- Leer cada uno de esos mensajes (encabezados y cuerpo) y descargar sus adjuntos PDF. Antes de procesar un mensaje, se vuelve a comprobar que siga teniendo la etiqueta.
Aclaración: Google no ofrece un permiso limitado a una sola etiqueta. El permiso gmail.readonly técnicamente concede acceso de lectura a todo el buzón. La restricción a la etiqueta FinBrain/Research la impone el código de FinBrain Research, no Google.
3. Lo que la aplicación no hace
- No modifica, elimina, archiva, envía ni reenvía correos, ni los marca como leídos o no leídos. El código no tiene acceso a esas operaciones de la API.
- No consulta mensajes fuera de la etiqueta
FinBrain/Research. - No vende datos, no los usa para publicidad y no los comparte con terceros para sus propios fines.
- Actualmente no envía el contenido de los informes a modelos de inteligencia artificial externos. La extracción y los resúmenes se hacen con código determinístico. Existe un interruptor de configuración (
FINBRAIN_RESEARCH_LLM_ENABLED_DEV) que está apagado; si en el futuro se decidiera usar un modelo externo, esta política se actualizaría antes de hacerlo.
4. Para qué se usan los datos
Únicamente para que Nicolas consulte sus propios informes de research: identificar la fuente y la fecha de cada informe, extraer el texto y las cifras relevantes (tickers, tasas, estimaciones), evitar duplicados y mostrarle resúmenes atribuidos a la fuente, separados de los cálculos propios de FinBrain con datos de mercado.
Algunos correos de proveedores no traen el informe completo sino un enlace. Para las fuentes configuradas de ese tipo, la aplicación descarga el documento desde la dirección pública https indicada en el correo para extraer su texto. El archivo descargado no se guarda; solo se guardan el texto extraído y los datos descriptivos indicados abajo.
Los resúmenes se muestran a Nicolas a través de su bot personal de FinBrain en Telegram, por lo que los fragmentos que él consulta viajan por los servidores de Telegram como cualquier mensaje de ese servicio.
5. Dónde se procesan y guardan los datos
El procesamiento se hace en un Cloudflare Worker (la aplicación de servidor de FinBrain, entorno de desarrollo «FinBrain Lab») y los datos se guardan en una base de datos Cloudflare D1 de uso exclusivo de FinBrain. Cloudflare actúa como proveedor de infraestructura. No hay otros servidores.
| Dato | Qué se guarda |
|---|---|
| Credenciales de OAuth | El ID de cliente, el secreto del cliente y el refresh token se guardan como secrets del Worker en Cloudflare, no en la base de datos. El token de acceso de corta duración solo existe en memoria durante cada ejecución y no se guarda ni se registra. |
| Cada mensaje de la etiqueta | Identificador del mensaje y del hilo de Gmail (para no procesarlo dos veces), asunto, remitente, fecha de recepción, estado de procesamiento y cantidad de intentos. |
| Mensajes de la etiqueta que no corresponden a una fuente configurada | Solo los datos de la fila anterior; no se guarda el cuerpo. |
| Informes procesados | Fuente y nombre del informe, fecha del informe, el texto extraído del correo y de sus PDF o del documento enlazado (hasta 24.000 caracteres, o 48.000 si viene de un documento enlazado), una huella SHA-256 del contenido para detectar duplicados, los datos estructurados extraídos (fragmentos de texto, tickers, métricas y valores) y metadatos de los adjuntos (nombre, tipo, tamaño, páginas). |
| Documentos enlazados | La dirección del documento con los parámetros que parecen tokens ocultados, una huella de la dirección completa, el dominio final, tipo, tamaño, páginas, estado y fechas. No se guarda el archivo. |
| Estado y errores | Fecha de la última consulta, estado y contador de fallos; un registro de errores que contiene solo códigos de categoría y los últimos 8 caracteres del identificador del mensaje (nunca tokens ni contenido). |
6. Cuánto tiempo se conservan
- El registro de errores se borra automáticamente a los 30 días.
- Para el resto de los datos (informes, texto extraído, datos estructurados y metadatos) no hay hoy un plazo de borrado automático definido: se conservan hasta que Nicolas los elimina de la base de datos.
- Las credenciales se conservan hasta que se borran los secrets del Worker o se revoca el acceso en Google.
7. Cómo revocar el acceso y borrar los datos
- Revocar la autorización en Google: https://myaccount.google.com/permissions → FinBrain Research → Quitar acceso. A partir de ese momento el refresh token deja de funcionar y la aplicación no puede leer nada más.
- Detener la lectura: poner la variable
FINBRAIN_RESEARCH_GMAIL_ENABLED_DEVenfalseen el Worker de Cloudflare. - Eliminar las credenciales: borrar los secrets
FINBRAIN_GMAIL_CLIENT_ID_DEV,FINBRAIN_GMAIL_CLIENT_SECRET_DEVyFINBRAIN_GMAIL_REFRESH_TOKEN_DEVdel Worker en Cloudflare. - Borrar los datos guardados: eliminar las filas de las tablas de research de la base de datos D1 (
finbrain_research_reports_dev,finbrain_research_items_dev,finbrain_research_documents_dev,finbrain_research_mail_state_dev,finbrain_research_mail_log_dev).
8. Política de datos de usuario de los servicios de API de Google
El uso que hace FinBrain Research de la información recibida de las API de Google, y su transferencia a cualquier otra aplicación, se ajusta a la Política de datos de usuario de los servicios de API de Google, incluidos los requisitos de uso limitado (Limited Use). En concreto: los datos de Gmail se usan solo para la función descrita en esta política para su propio usuario; no se transfieren a terceros salvo a los proveedores de infraestructura necesarios para prestar esa función (Cloudflare para procesamiento y almacenamiento, y Telegram para mostrarle los resultados a Nicolas); no se usan para publicidad; no se venden; y nadie más que el propio usuario lee su contenido.
9. Seguridad
Las comunicaciones con Google, Cloudflare y Telegram usan HTTPS. Las credenciales se guardan como secrets de Cloudflare, el código solo puede llamar a las operaciones de lectura enumeradas en la sección 2 y los registros no contienen tokens ni contenido de los correos. Ningún sistema es completamente seguro y esta política no ofrece otras garantías ni certificaciones.
10. Cambios y contacto
Si cambia la forma en que la aplicación usa los datos de Google, esta página se actualizará y se modificará la fecha de arriba. Consultas: nicozerep@gmail.com.
Privacy Policy (English)
Last updated: October 26, 2026. If the two versions differ, the Spanish version above prevails.
Who and what
FinBrain Research is a personal financial-analysis tool developed and used by a single person, Nicolas. The only connected Google Account is Nicolas's own personal Gmail account. There is no sign-up and no other users. Contact: nicozerep@gmail.com.
Google data accessed
The app uses the Gmail API with one OAuth scope only: https://www.googleapis.com/auth/gmail.readonly; if Google reports a broader grant, the run stops. Every Google request goes through a code allowlist that only permits: refreshing the short-lived access token, listing labels (only to find the ID of the FinBrain/Research label), listing messages with that label, and reading those messages and their PDF attachments (the label is re-checked before processing). Google does not offer a per-label scope: gmail.readonly technically grants read access to the whole mailbox, and the restriction to the FinBrain/Research label is enforced by the app's code.
What it does not do
It never modifies, deletes, archives, sends or forwards email and never marks email as read. It does not query messages outside that label. It does not sell data, use it for advertising or share it with third parties for their own purposes. It currently does not send report content to external AI models (a configuration switch for that is off; this policy would be updated before any change).
Use, processing and storage
Data is used only so that Nicolas can review his own research reports: identifying source and date, extracting text and figures, de-duplicating, and showing him attributed summaries in his personal FinBrain Telegram bot (so the fragments he views pass through Telegram). For configured providers whose email only contains a link, the app downloads that public https document to extract its text; the file itself is not stored. Processing runs in a Cloudflare Worker and data is stored in a Cloudflare D1 database used only by FinBrain. Stored: Gmail message and thread IDs (for de-duplication), subject, sender, received date and processing status; for processed reports, the extracted text (up to 24,000 characters, or 48,000 for linked documents), a SHA-256 content hash, extracted structured data and attachment metadata; for linked documents, a redacted URL, a URL hash and descriptive metadata; and an error log containing category codes only. Messages in the label that match no configured source keep metadata only. OAuth client ID, client secret and refresh token are stored as Cloudflare Worker secrets; the access token lives in memory only.
Retention
The error log is deleted automatically after 30 days. No automatic deletion period is currently defined for the other data; it is kept until Nicolas deletes it.
Revoking access and deleting data
Revoke access at https://myaccount.google.com/permissions → FinBrain Research → Remove access; set FINBRAIN_RESEARCH_GMAIL_ENABLED_DEV to false; delete the Worker secrets FINBRAIN_GMAIL_CLIENT_ID_DEV, FINBRAIN_GMAIL_CLIENT_SECRET_DEV and FINBRAIN_GMAIL_REFRESH_TOKEN_DEV; and delete the rows of the research tables in the D1 database.
Google API Services User Data Policy
FinBrain Research's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. Gmail data is used only to provide the feature described here to its own user; it is not transferred to third parties except the infrastructure providers needed to provide that feature (Cloudflare and Telegram); it is not used for advertising, not sold, and not read by anyone other than the user.
Security
Connections to Google, Cloudflare and Telegram use HTTPS; credentials are kept as Cloudflare secrets; logs contain no tokens or email content. No system is completely secure, and no other guarantees or certifications are claimed.