Postura de seguridad
Lista para el Artículo 28 del RGPD · Proveedor de Servicios de la CCPA · SOC 2 Tipo I en curso
Ataski opera una única base de datos Postgres multiinquilino con Row Level Security aplicada en la capa de base de datos; un registro de auditoría de solo anexado en cada acción; y barreras de coste por inquilino para contener el daño de cualquier compromiso de una sola credencial. Esta página es el resumen listo para adquisiciones — para la superficie contractualmente vinculante, consulta el Acuerdo de Tratamiento de Datos.
Multiinquilino
Cada tabla de datos de cliente incluye una columna tenant_id y una política de Row Level Security de Postgres que filtra cada lectura y escritura a la variable de sesión del inquilino vinculado. La aplicación establece la variable a partir del principal autenticado al inicio de cada solicitud; la base de datos rechaza cualquier consulta que intente leer o escribir fuera del inquilino vinculado, con independencia de la corrección de la capa de aplicación.
Defensa en profundidad para las superficies que quedan fuera de Postgres: la caché de LiteLLM separa por espacios de nombres cada prompt mediante una sal por inquilino, de modo que los aciertos de caché no puedan cruzar inquilinos; las cargas útiles de los flujos de trabajo duraderos se cifran con claves por inquilino en el límite del flujo de trabajo; y el almacén de objetos R2 separa por espacios de nombres cada clave bajo tenants/<uuid>/…, de modo que una URL filtrada no pueda enumerar otros inquilinos.
Registro de auditoría
Cada llamada a LLM, cada llamada a API externa y cada modificación de datos se escribe en una única tabla audit_log de solo anexado indexada por (tenant_id, correlation_id). La tabla está bloqueada en la capa de base de datos (REVOKE UPDATE, DELETE sobre el rol de la aplicación) — la única vía para mutar el historial de auditoría es el acceso administrativo directo por parte de las operaciones de Ataski, que a su vez produce filas de auditoría bajo un marcador distinto actor_type="ops".
Cifrado
- En reposo. Cada credencial de cliente (token de actualización de OAuth, clave API, secreto de webhook) se envuelve con Fernet (AES-128 en modo CBC con autenticación HMAC-SHA-256) antes de persistirse como BYTEA. Las claves de cifrado de datos por inquilino están en la hoja de ruta; el cifrado de la capa de almacenamiento (AES-256) lo proporcionan hoy Neon para Postgres y Cloudflare R2 para el almacenamiento de objetos.
- En tránsito. TLS 1.3 es el mínimo en cada endpoint público y en cada llamada saliente a un subencargado.
Controles de acceso
La autenticación se delega en WorkOS (SSO, SAML, sin contraseña). La autorización está restringida por rol en la capa de ruta: las acciones de alto riesgo (aprobación del paquete para el consejo, envío de la actualización mensual a inversores, lanzamiento de campaña saliente) requieren un rol nombrado (founder o finance_lead) en el espacio de trabajo.
Alcances de los conectores
Cada sistema conectable por el operador se ejecuta contra un conjunto documentado de alcances del lado del proveedor. La lista de abajo se genera a partir de nuestro manifiesto interno de alcances — lo que ves es lo que el cliente OAuth (o credencial equivalente) solicita realmente.
- Anthropic (Bring Your Own Key). Routes every Anthropic worker + supervisor LLM call through your own Anthropic API key (sk-ant-*). Ataski stores the key Fernet-encrypted at rest and reads it only through the LiteLLM gateway proxy at call time; no copy lives anywhere else. Anthropic invoices you directly; Ataski's invoice excludes LLM cost for any traffic routed through this key. Rotate or deactivate from /app/llm-keys at any time.
- HubSpot. Reads deals, contacts, and companies. Cannot create or modify any HubSpot record.
- NetSuite. Reads GL transactions, AR aging, AP aging, accrual snapshots, and subsidiary roster via NetSuite Token-Based Authentication (TBA) — an OAuth 1.0a-flavoured credential the customer generates inside their NetSuite UI (Setup → Users/Roles → Access Tokens). NetSuite does not offer OAuth 2.0 for SuiteTalk REST; the customer creates the Integration record + Access Token bound to a read-only NetSuite role of their choice, and Ataski only issues read queries against it. Cannot post journal entries, modify records, or close accounting periods.
- OpenAI (Bring Your Own Key). Routes every OpenAI supervisor + embedding call through your own OpenAI API key (sk-*). Ataski stores the key Fernet-encrypted at rest and reads it only through the LiteLLM gateway proxy at call time; no copy lives anywhere else. OpenAI invoices you directly; Ataski's invoice excludes LLM cost for any traffic routed through this key. Rotate or deactivate from /app/llm-keys at any time.
- QuickBooks Online. Reads chart of accounts, P&L, balance sheet, cash flow, invoices, customers, and vendors. Cannot write or modify any QuickBooks data.
- Recall.ai. Creates bots that join scheduled meetings and reads back their transcripts and engagement metadata. Write surface is limited to dispatching the bot; cannot mutate any calendar, video-conference, or meeting-host data.
- Sage Intacct. Reads GL accounts, journal entries, AR/AP, and trial balance via a customer-provisioned read-only Web Services user. Sage Intacct does not offer OAuth; the customer creates the WS user inside their Sage Intacct admin and supplies its credentials. Cannot post journal entries or modify any Sage Intacct data.
- Stripe. Reads subscriptions, invoices, customers, refunds, and payment intents via a customer-provided Restricted API key. Cannot create, modify, or refund charges.
- Xero. Reads the P&L, reports, invoices, and organisation settings via OAuth. Cannot create or modify any Xero data.
Tratamiento de PII
Ataski actúa como Proveedor de Servicios de la CCPA (Cal. Civ. Code §1798.140(ag)), no como intermediario de datos. Los registros de contacto permanecen en el ámbito RLS por inquilino y nunca se agregan entre inquilinos; los datos firmográficos no PII (nombre de empresa, sector, registros públicos de negocio) pueden almacenarse en caché entre inquilinos por rendimiento. No dependemos de proveedores intermediarios de datos de búsqueda de correos (Hunter, Apollo, Findymail, ZoomInfo, Coresignal); el descubrimiento de contactos utiliza patrones de composición de fuentes públicas. Eliminación por destinatario en un plazo de 45 días desde la solicitud a través de /privacy/optout.
Subencargados
La lista canónica de subencargados se publica en /legal/subprocessors y actualmente comprende 18 proveedores. Los cambios de subencargados se notifican con 30 días de antelación mediante un aviso en la aplicación y un correo electrónico al administrador del espacio de trabajo; el Cliente puede oponerse por motivos razonables durante ese periodo.
Acuerdo de Tratamiento de Datos
El DPA maestro cubre el Artículo 28 del RGPD, el RGPD del Reino Unido y las obligaciones de Proveedor de Servicios de la CCPA: léelo en /legal/dpa. La versión autenticada en /app/legal/dpa rellena los campos del Responsable a partir del espacio de trabajo y admite la firma electrónica por parte del fundador o del responsable financiero del espacio de trabajo.
Respuesta a incidentes
Los errores y excepciones se capturan en Bugsink (sustituto alojado de Sentry); la rotación de guardia revisa la gravedad del incidente en la hora siguiente a la primera señal. El estado de los endpoints operativos se publica en la página de estado pública. Ante cualquier incidente que afecte a Datos del Cliente, notificamos al Responsable afectado sin demora indebida y dentro de las 72 horas conforme al Artículo 33 del RGPD.
Postura de cumplimiento
- Listo para el Artículo 28 del RGPD. DPA maestro disponible para descarga y firma electrónica; lista de subencargados publicada y con huella.
- Proveedor de Servicios de la CCPA. Postura del Cal. Civ. Code §1798.140(ag) — sin actividad de intermediario de datos, ámbito por inquilino en todos los datos de contacto, endpoint de eliminación publicado.
- SOC 2 Tipo I en curso. Definición del alcance de la auditoría completa; el periodo de observación comienza en el tercer trimestre de 2026. El informe estará disponible bajo NDA una vez emitido.