Seguridad

Ninguna clave en el chat. Ninguna promesa que no podamos respaldar.

Qué guarda Tofu y qué no guarda nunca, qué puede hacer tu agente cuando lo apruebas y exactamente qué lee la revisión de seguridad antes de un despliegue, con los límites escritos al lado de cada afirmación.

franks-kitchen / Environment variables
  • MAIL_API_KEYsecret••••Qm7xProdPreview
  • SMS_API_KEYsecret••••c9d2Prod
  • NEXT_PUBLIC_SITE_URLhttps://frankskitchen.comProdPreviewDev
  • DATABASE_URLmanaged••••••ProdPreview

Secrets are write-only — once saved, the value is hidden and never shown again.

What Tofu keeps
key
"SMS_API_KEY"
secret
true
value
null
preview
"••••c9d2"

The value went to the hosting provider, write-only.

Lo que Tofu nunca tiene

Hay cosas que nunca llegan a Tofu. Así no pueden filtrarse desde ahí.

Los valores más sensibles se quedan con el servicio al que pertenecen: tu proveedor de alojamiento, Google o GitHub, tu proveedor de DNS, Stripe.

  • Valores secretos

    El valor de un secreto que guardas.

    Va directo al proveedor de alojamiento como un valor de solo escritura. Tofu guarda el nombre, los alcances y una vista previa enmascarada; ni el panel ni Tofu pueden volver a leer el valor.

  • Contraseñas

    Una contraseña para tu cuenta.

    Inicias sesión con Google o GitHub. Tofu nunca crea ni guarda una contraseña para ti, así que no hay ninguna que perder.

  • Claves de proveedor

    Una clave o un token que pegaste tú.

    Nada en Tofu te pide pegar una clave o un token para conectar un proveedor. Conectar el DNS es una aprobación que das en la propia pantalla del proveedor, y la credencial que resulta queda en manos de Tofu, que la guarda y puede revocarla.

  • Números de tarjeta

    Los datos de tu tarjeta.

    Los ingresas en la página de pago de Stripe y nunca llegan a Tofu. Tofu guarda tu plan y el estado de la suscripción.

Hay una excepción, y es tuya. Para una base de datos administrada, la acción Mostrar la clave de la base de datos, disponible solo para el propietario, reconstruye esa clave cuando lo solicitas. Cada llamada escribe una línea de auditoría, ningún agente puede llegar a esa acción y la rotación de la contraseña no está implementada.

La autoridad de tu agente

Tu agente actúa por ti. Solo después de que lo apruebes.

Un agente de programación se conecta como una app de TV al iniciar sesión: muestra un código y tú apruebas ese código en tu propio navegador, con tu sesión de Tofu iniciada.

El mensaje de configuración que copias incluye el tamaño y el SHA-256 del cliente y de la skill, y le pide a tu agente que verifique ambas descargas y que se detenga, sin ejecutar nada, si alguna de las dos no coincide.

Your agent

tofu · login

Approve this sign-in in your browser. The code is

7F3A-C09B-21DE

app.trytofu.ai/dashboard/agent?code=7F3A-C09B-21DE

Approve only a code your own agent printed.

Connect Claude Code (MCP)?

Check that this code matches the one in your coding agent:

7F3A-C09B-21DE

Approve this connectionMhello@trytofu.ai
  1. Tu agente lo pide

    El cliente de Tofu dentro de tu agente inicia una solicitud de inicio de sesión y te muestra un código con el formato XXXX-XXXX-XXXX. La solicitud vence a los diez minutos.
  2. Comparas y luego apruebas

    Abre la página de aprobación en la dirección de Tofu donde iniciaste sesión y aprueba solo si el código coincide con el que mostró tu propio agente.
  3. Dura siete días

    El cliente guarda la credencial de forma privada, ligada a una sola dirección de Tofu, y Tofu almacena solo su hash. Puedes revocarla en cualquier momento desde la página Agente de programación del panel; borrar solo los archivos locales no la revoca.

Qué puede hacer una conexión aprobada

This connection can upload your app’s source or import it from a public GitHub repository, download your app’s code into a new folder on your computer when the agent runs there, get the link that opens your app in Tofu’s builder, which you open yourself, run the safety check, deploy it — its build runs any migration step it has — once you have a hosting plan, save and remove your app’s public settings — an address, a feature flag, a key meant to be public — when the agent runs on your computer, but never a hidden value, which you type yourself in Keys & settings, create the app’s managed database, on its own or in the same call as a deploy, which Tofu runs and pays for as part of your plan, read the app’s build and runtime diagnostics, restore a previous deployment, connect, verify, release or withdraw the authorization for a domain you already own, read domain quotes and prepare a dashboard link for you to review a fresh price, agreements and payment when the agent runs on your computer — it cannot place an order or submit payment, read the stored status of domains you bought through Tofu and ask the registrar to send its confirmation email again to the registrant, without seeing your owner details or changing renewal settings, read and add DNS records on a domain you bought through Tofu, and delete one of yours — never its mail (MX) or verification (TXT) records, which stay with you, read your app’s own traffic — the first read for an app that has no counter yet issues its key — and turn that counter on or off, read whether your app is answering its visitors, and turn Tofu’s emails about it on or off, change how your app’s users sign in and how its sign-in email is sent, see who has an account in your app, add a person by email or remove one — which signs them out — choose whether anyone can sign up or only the people you add, and make the app private — only people with a link can open it — or open to everyone again, send a short message to up to ten of your app’s users, from your app’s own email address, get an invite link that lets one person into your private app — you hand the link out yourself, and the first person who opens it gets in for up to 30 days — list the links you made and turn one off again, choose who can open your app — anyone with the link, only people you list by email, or anyone with a code you share, which puts a sign-in page in front of the whole app — add or remove those people, make a new code, sign everyone out, and keep exact paths open for services like webhooks, connect your app to your own Stripe account when the agent runs on your computer — you install Tofu’s app on Stripe’s own page — then create payment links there, pass their payment events to the app or disconnect it, with the money going straight to you and nothing in its reach that moves money out of your account, set up email your app sends from its own address, pause it, give it a new key or remove it, when the agent runs on your computer — Tofu writes the app’s sending key into its settings, and nothing is sent until the app sends email itself, restore an archived database into a new one Tofu runs and pays for as part of your plan, and hand you a short-lived link to download its archive, keep a database Tofu warned you about from being archived for going unused, list your database’s daily backups and ask a person at Tofu to put it back to one, which loses what was saved after it, see which of your app’s database setup steps are done, choose whether Tofu runs them for an app, and mark one as done so it never runs, when the agent runs on your computer, delete an app — the source you uploaded is kept until you ask Tofu to erase it — or its database, with nothing kept, send Tofu’s team a problem report you approved word for word, with your app’s status attached, sign in to Tofu, read the account’s id and email address, report the plan and the account’s GitHub state, and turn automatic updates off.

It cannot buy, renew or transfer a domain, submit a payment, read domain owner details, an environment value or a database password or connection string, change your plan or billing, or import a private repository from GitHub. Those stay with you.

Your agent acts on your instructions, and Tofu tells it to ask for your agreement before any call that spends money, writes to a live service or destroys something. Tofu can’t see your conversation with it, so it can’t check that the agent asked: connect only agents and apps you trust, and disconnect any of them on the Coding agent page.

La revisión de seguridad

Dice qué leyó. Y qué no.

Antes de una compilación, Tofu revisa los archivos exactos que va a desplegar. La promesa es limitada a propósito: Tofu dice exactamente qué revisó, y nada más.

Herramientas que usa tu agente

  • detect
  • setFramework
  • scan

Una alarma antes de cada despliegue

Una clave de producción incluida en el código, un formulario de inicio de sesión que envía datos a otro sitio o un recolector de frases semilla detienen el despliegue; también lo detiene un archivo que no se puede leer. Se ejecuta sobre los archivos exactos que se van a subir.

Reglas, no un modelo

Las reglas deterministas leen lo que se sube: una clave de servicio expuesta, una tabla con la seguridad a nivel de fila desactivada, una política que permite escribir a cualquiera, un webhook de Stripe sin verificar, y formas de malware conocidas, como código que se decodifica y se ejecuta por sí solo o un script de instalación que descarga y ejecuta. Un hallazgo que podría perjudicar a otras personas bloquea el despliegue: una forma de malware conocida, phishing o una clave filtrada. Las decisiones que solo afectan a tu propia app, como una tabla que cualquiera puede editar, se informan como advertencias y nunca bloquean.

Cada resultado muestra su cobertura

Cuántos archivos se leyeron de cuántos se entregaron, qué comprobaciones se ejecutaron y la lista de riesgos que ninguna comprobación busca. Esa lista nunca está vacía.

Un hallazgo sobre el que puedes actuar

Cada hallazgo indica su regla y su archivo, explica qué significa e incluye un mensaje de corrección que puedes entregar directamente a tu agente de programación.

Cuando nada bloquea el despliegue, el resultado dice
No blocking finding among the checks that ran.
Cuando no se leyó ningún archivo, el resultado dice
Nothing was inspected, so this is not a pass.
Antes de que algo esté en línea

En línea solo cuando responde. La última versión que funcionaba sigue en pie.

  • Comprobación de estado

    Se comprueba antes de que la dirección cambie.

    Cuando una compilación termina, primero se hace una solicitud a su propia dirección de despliegue. La dirección de tu app cambia a esa versión solo si responde.

  • Compilaciones fallidas

    Una compilación que falla no cambia nada en línea.

    La versión anterior sigue respondiendo. Si falla una migración de base de datos dentro de la compilación, cuenta como compilación fallida.

  • Revertir

    Un paso atrás, sin volver a compilar.

    Revertir apunta la dirección de tu app a un despliegue anterior que está listo y responde. Tus datos no vuelven atrás con él.

Qué guarda Tofu y dónde

Dónde viven tus datos. Cada cosa con nombre, sin suposiciones.

Un resumen de la Política de privacidad, que es la lista completa e incluye cuánto tiempo se conserva cada cosa y cómo pedirnos que la borremos. Leer la Política de privacidad.

QuéDóndeQué significa
Tu cuentaSupabaseTu correo, el proveedor con el que iniciaste sesión y el nombre y la foto que ese proveedor comparte. Sin contraseña.
Proyectos y desplieguesLa base de datos de control de TofuNombres, framework detectado, historial, estado y ajustes. Cada lectura se limita a la cuenta a la que pertenece el proyecto.
El código fuente que nos entregasAlmacenamiento privadoNunca se sirve al público. Se conserva para compilar y desplegar, y hasta que nos pidas que lo borremos.
Los archivos publicados de una app estáticaCloudflareLo que publica una app en el alojamiento estático de Tofu, que se sirve a sus visitantes en su dirección de ontofu.app.
Variables de entornoNombres: Tofu · valores: VercelTofu guarda los nombres, los ámbitos y la marca de secreto. El valor de un secreto solo lo guarda el proveedor de alojamiento, que lo acepta pero no puede devolverlo.
Registros de compilación y de solicitudesDesde VercelLo que devuelve el proveedor de alojamiento: una ventana reciente, no un archivo histórico.
Plan y facturaciónStripeTu plan y el estado de tu suscripción. Los datos de la tarjeta se quedan en la página de pago de Stripe.

Los visitantes de tu app. Se cuentan, no se rastrean.

Si activas el contador de tráfico de Tofu para una app, cuenta las vistas de página en el endpoint propio de Tofu, y el tráfico es tuyo: se muestra en tu panel, se desactiva desde ahí y Tofu no lo usa para nada propio.

  • No se coloca ninguna cookie en el navegador de tus visitantes.
  • No se añade ningún script de analíticas de terceros a tu app.
  • No se guarda la dirección IP.
  • No se guarda la URL completa: se descartan la cadena de consulta y el fragmento, y del sitio de procedencia solo se conserva el nombre de host.
  • Do Not Track y Global Privacy Control impiden que se cuente una vista.
  • Se conserva 90 días por defecto, nunca más de 365, y se elimina junto con la app.
Informar una vulnerabilidad

¿Encontraste un fallo? Cuéntanoslo primero.

Escríbenos qué encontraste y los pasos para reproducirlo. Prueba solo con tu propia cuenta y tus apps, y danos la oportunidad de corregirlo antes de publicarlo.

La misma dirección está publicada en /.well-known/security.txt, donde las herramientas de los investigadores la buscan primero.

/.well-known/security.txt
Contact: mailto:hello@trytofu.ai
Expires: 2027-09-27T00:00:00.000Z
Preferred-Languages: en
Canonical: https://trytofu.ai/.well-known/security.txt
Policy: https://trytofu.ai/security#report

Lo que esto no cubre

  • No es una garantía contra el malware. La revisión de seguridad detecta las formas que ya conoce, no la intención. No mira lo que hace una app cuando ya está en marcha, ni el contenido de su base de datos, ni las dependencias más allá de las entradas directas de package.json.

  • No hay un informe de seguridad más profundo ni desglosado. No existe. El panel lo dice en vez de mostrar hallazgos de ejemplo.

  • Una conexión no se limita a un proyecto ni es de solo lectura. Un agente aprobado abarca todos los proyectos y las operaciones que permite tu cuenta. Revócalo en la página Agente de programación del panel cuando termines.

  • Una suma de comprobación no es una firma. El SHA-256 fijado detecta una descarga que no coincide o está dañada. La frontera de confianza es el HTTPS desde la dirección propia de Tofu, así que no puede detectar un servidor de distribución comprometido.

  • El filtrado de los registros tiene límites. Tofu filtra el texto que parece una credencial de los registros que muestra, pero no puede leer de vuelta un secreto de solo escritura para encontrar todas sus copias. Una app no debe imprimir sus propios secretos.

  • Eliminar una app conserva el código fuente que subiste. La copia archivada se queda en el almacenamiento privado hasta que nos pidas que la borremos.

  • No puedes eliminar tu cuenta tú mismo. Escribe a hello@trytofu.ai. Atendemos las solicitudes a mano y te decimos qué se eliminó y qué no se pudo eliminar.

  • Sin certificación. Tofu no tiene certificación SOC 2 ni ISO 27001, no publica ningún informe de auditoría y no afirma que el servicio cumpla con el GDPR.

Pega un prompt. En línea en 10 minutos.

Tu app, su base de datos, tu dominio y tu inicio de sesión: desde el agente que ya usas, en unos 10 minutos.

Empezar gratis