Skip to content
Security & data handlingSeguridad y manejo de datos

How your data is protectedCómo protegemos tus datos

Every table that holds portfolio data, uploaded documents, or Family Office inquiries has row-level security enforced by the database itself — not application code alone. A signed-in session can only ever read or write its own rows; that’s a database-level guarantee, not something a bug in the app could accidentally bypass.

What’s in place

  • Row-level security on every table holding portfolio, document, or inquiry data — enforced by Postgres itself.
  • Uploaded documents (leases, appraisals, tax records, loan paperwork) live in a private storage bucket with no public URL. Every download requires a short-lived signed link issued to the file’s owner.
  • Profile fields that control tier, billing, or verification status can’t be changed by a signed-in client directly — those writes are server-only.
  • All traffic is encrypted in transit (HTTPS).
  • Hosted on Supabase (Postgres, on AWS infrastructure) and Vercel.

The site itself carries the standard hardening headers: HSTS with preload (a browser that has loaded Fundamento once will refuse to load it over plain HTTP again, on any network), a restrictive Content-Security-Policy that limits which scripts and domains can run on the page at all, X-Frame-Options set to deny so the site can't be embedded in someone else's iframe, and a Permissions-Policy that blocks camera, microphone, and geolocation access outright — nothing on Fundamento asks for any of them.

Card numbers never reach Fundamento's servers: checkout runs through Stripe's own hosted forms, so a card number is typed directly into Stripe, not into anything we control. Sign-in credentials work the same way — Supabase Auth manages passwords and issues session tokens, and Fundamento's own database never stores a password, hashed or otherwise.

What we don’t have yet: a completed third-party audit, such as SOC 2. It’s on the roadmap — ask us for current status and a target timeline.

Cada tabla que guarda datos de portafolio, documentos subidos o consultas de Family Office tiene seguridad a nivel de fila aplicada por la base de datos misma — no solo por el código de la aplicación. Una sesión iniciada solo puede leer o escribir sus propias filas; es una garantía a nivel de base de datos, no algo que un error en la aplicación pudiera saltarse por accidente.

Qué protege tus datos hoy

  • Seguridad a nivel de fila en cada tabla que guarda datos de portafolio, documentos o consultas — aplicada por Postgres mismo.
  • Los documentos que subes (contratos de arrendamiento, avalúos, registros fiscales, papeles de préstamo) viven en un bucket de almacenamiento privado, sin URL pública. Cada descarga requiere un enlace firmado de corta duración, emitido solo para el dueño del archivo.
  • Los campos de tu perfil que controlan el plan, la facturación o el estado de verificación no se pueden cambiar directamente desde el cliente — esas escrituras son exclusivas del servidor.
  • Todo el tráfico va cifrado en tránsito (HTTPS).
  • Alojado en Supabase (Postgres, sobre infraestructura de AWS) y Vercel.

El sitio en sí lleva las cabeceras de endurecimiento estándar: HSTS con preload (un navegador que ya cargó Fundamento una vez se niega a cargarlo por HTTP simple otra vez, en cualquier red), una Content-Security-Policy restrictiva que limita qué scripts y dominios pueden correr en la página, X-Frame-Options en modo denegar para que nadie pueda incrustar el sitio en un iframe ajeno, y una Permissions-Policy que bloquea de plano el acceso a cámara, micrófono y ubicación — nada en Fundamento los pide.

Los números de tarjeta nunca llegan a los servidores de Fundamento: el checkout corre sobre los formularios propios y alojados de Stripe, así que un número de tarjeta se escribe directamente en Stripe, no en algo que nosotros controlemos. Las credenciales de inicio de sesión funcionan igual — Supabase Auth administra las contraseñas y emite los tokens de sesión, y la base de datos propia de Fundamento nunca guarda una contraseña, ni siquiera cifrada.

Lo que todavía no tenemos: una auditoría externa completa, como SOC 2. Está en el roadmap — pregúntanos por el estado actual y la fecha objetivo.

Common questionsPreguntas frecuentes

Do you ever see my card number?¿Alguna vez ven mi número de tarjeta?

No. Checkout is Stripe's own hosted flow — card details are typed directly into Stripe's form and never pass through Fundamento's servers or database.No. El checkout es el flujo propio y alojado de Stripe — los datos de la tarjeta se escriben directamente en el formulario de Stripe y nunca pasan por los servidores ni la base de datos de Fundamento.

What happens to my data if I cancel?¿Qué pasa con mis datos si cancelo?

Your account data stays in place while the account is active. After cancellation, billing records are retained for 7 years for tax compliance, then deleted; scenario and calculator data is deleted 90 days after cancellation unless you ask us to delete it sooner.Los datos de tu cuenta se quedan en su lugar mientras la cuenta está activa. Después de cancelar, los registros de facturación se conservan 7 años por cumplimiento fiscal y luego se eliminan; los datos de escenarios y calculadoras se eliminan 90 días después de cancelar, a menos que nos pidas eliminarlos antes.

Is my connection to the site encrypted?¿Mi conexión al sitio va cifrada?

Yes — every connection to Fundamento runs over HTTPS, enforced by an HSTS header with preload, so a browser that has visited once will refuse to load the site over plain HTTP again, even on a hostile network.Sí — cada conexión a Fundamento corre sobre HTTPS, reforzada por una cabecera HSTS con preload, así que un navegador que ya visitó el sitio una vez se niega a cargarlo por HTTP simple otra vez, incluso en una red hostil.