Seguridad enterprise por diseño, no por checklist
Cada decisión de arquitectura — desde el aislamiento de datos hasta el manejo de prompts — está diseñada para sobrevivir el escrutinio de un CISO. Esta página describe los controles reales que corren hoy en producción.
Cumplimiento normativo
Construido para los marcos regulatorios que importan en LATAM y para los que su organización exigirá mañana.
LFPDPPP — México
Aviso de privacidad publicado, principios de licitud, finalidad, lealtad y proporcionalidad aplicados al tratamiento de datos del proveedor. Retención configurable por cliente.
GDPR — Unión Europea
Diseño compatible con derechos ARCO+ del titular: acceso, rectificación, cancelación, oposición y portabilidad. DPA template disponible bajo NDA para clientes con presencia EU.
ISO 27001 — Roadmap
Controles del Anexo A mapeados a la implementación actual. Roadmap formal de certificación abierto. Documentación de SoA y políticas internas disponibles para due diligence.
SOC 2 Type II — En proceso
Trust Services Criteria de seguridad, disponibilidad y confidencialidad bajo evaluación. Período de observación arrancando. Reporte gap-assessment disponible para clientes activos.
Aviso de privacidad publicado
Versionado, accesible desde el footer, identifica responsable, finalidades, transferencias y mecanismos de ejercicio de derechos. Notificación proactiva ante cambios materiales.
Retención configurable
Cada cliente define ventanas de retención sobre conversaciones, documentos cargados y trazas de auditoría. Borrado verificable a la baja del contrato.
Aislamiento multi-tenant a nivel schema
Cada cliente vive en su propio schema dedicado de Postgres. La separación es física en la base, no únicamente lógica en la aplicación.
Schema-per-tenant en Postgres
Cada cliente vive en tenant_<slug> con sus propias tablas, índices y políticas. No existen tablas compartidas con datos de negocio. Backups y exportaciones operan por schema.
Middleware fail-closed
El tenant se valida en cada request antes de tocar la base. Si falta, es ambiguo o no corresponde al token, la respuesta es 401 — nunca un acceso por defecto.
Hooks pre-commit
El propio repositorio bloquea el merge de código que pudiera permitir consultas cross-tenant. La defensa empieza antes de que el código exista en main.
Verificación activa
Token de cliente A presentado al portal de cliente B → 401 inmediato. Test de regresión automatizado en CI evita que cualquier release rompa esta garantía.
Observabilidad por tenant
Métricas, logs y costo de LLM se etiquetan con el tenant en origen. Cualquier cruce de identificadores en runtime se vuelve un alerta operativo.
Portal independiente por cliente
Cada cliente recibe un subdominio dedicado con su propia base de datos, su propio set de credenciales y su propia configuración de SSO.
Cómo viaja un request de extremo a extremo
Cada capa añade una validación. Un fallo en cualquiera rechaza el request — nunca abre por defecto.
Encriptación en tránsito y en reposo
Estándares modernos sin tolerar configuraciones legadas. La criptografía no es una superficie a debatir.
TLS 1.3 en tránsito
Solo TLS 1.3 negociable en endpoints públicos. Cipher suites legacy deshabilitadas. Certificados rotados automáticamente.
AES-256 en reposo
Encriptación at rest manejada por Supabase sobre toda la base. Llaves gestionadas por el proveedor de infraestructura, fuera del alcance de la aplicación.
HSTS habilitado
Strict-Transport-Security forzado. El navegador nunca permite un downgrade a HTTP en el dominio del cliente.
Content Security Policy
CSP estricta más X-Frame-Options DENY para bloquear clickjacking. Headers de seguridad auditados en cada deploy.
Secrets fuera del código
Credenciales en archivos .env con permisos 0600 en disco. Hooks anti-leak (detect-secrets) bloquean cualquier llave que intente entrar al repo.
Headers de seguridad
X-Content-Type-Options, Referrer-Policy, Permissions-Policy y X-Frame-Options DENY aplicados desde el reverse proxy.
Identidad, sesiones y control de acceso
SSO corporativo de primera clase, fallbacks endurecidos y rate limiting activo en todos los puntos de autenticación.
Azure AD SSO
OAuth Authorization Code Flow con parámetro state para defensa CSRF. Provisioning y de-provisioning controlados desde el directorio corporativo del cliente.
Hashing bcrypt 12 rounds
Para usuarios legacy sin SSO, contraseñas con bcrypt a 12 rounds. Sin algoritmos rotos, sin almacenamiento en claro, sin recuperación reversible.
Sesiones con TTL 12h
Tokens con vencimiento de 12 horas. Daemon de cleanup diario expira sesiones huérfanas. Logout invalida server-side, no solo borra cookie.
RBAC por rol
Roles diferenciados admin y asesor con permisos validados en cada handler. Privilegio mínimo aplicado a operaciones sensibles.
Rate limiting
5 intentos de login cada 15 minutos, 20 por hora por origen. Bloqueo automático y telemetría para cualquier patrón de fuerza bruta.
Defensa CSRF en SSO
Parámetro state firmado en el redirect URI. Cualquier callback sin state válido es rechazado antes de tocar el handler de identidad.
Manejo seguro de datos del proveedor
Documentos, archivos cargados e inputs hacia el LLM están sometidos a las mismas reglas: validar, encriptar, auditar.
Datos del proveedor encriptados
RFC, CSF, CLABE, identificaciones y comprobantes residen encriptados at rest y se transmiten siempre sobre TLS 1.3.
Signed URLs de 30 minutos
Acceso a documentos vía URLs firmadas con expiración corta. No existen enlaces públicos persistentes a archivos del cliente.
MIME whitelist · 25 MB cap
Solo tipos de archivo en la lista blanca son aceptados. Tamaño máximo 25 MB. Verificación del MIME real, no solo de la extensión declarada.
Defensa contra path traversal
Normalización estricta de rutas, allow-list de directorios destino, rechazo categórico de cualquier intento de salir del scope del tenant.
Defensa contra prompt injection
Inputs del usuario envueltos en tags XML aislados del system prompt. Salidas validadas con Pydantic. Acciones del agente restringidas a una allow-list explícita.
Mínimo PII en logs
Los logs operativos no contienen identificadores fiscales ni datos sensibles del proveedor. La trazabilidad usa identificadores opacos.
Cinco capas, cada una independiente
Ningún control individual protege al negocio. La defensa real está en que atravesar una no implica atravesar la siguiente.
Auditoría completa y observabilidad
Toda mutación deja huella. Toda llamada a un LLM tiene un costo trazable. Toda alerta llega antes que el incidente.
historial_acciones
Tabla append-only que registra TODA mutación generada desde el dashboard: quién, qué, cuándo, sobre qué entidad y con qué payload anterior/nuevo.
Logs SSE en vivo
Server-Sent Events transmiten la actividad del agente al operador en tiempo real. Investigaciones forenses no requieren bajar archivos a una laptop.
Métricas por cliente
Throughput, latencia y errores etiquetados por tenant. Dashboards independientes con visibilidad inmediata de degradaciones.
Costo LLM trackeable
Cada llamada al modelo está atribuida a un tenant, un módulo y un caso de uso. Permite auditoría financiera y detección de uso anómalo.
Retención configurable
Período de retención del historial definido por contrato. Borrado verificable y reportable, no diferido a un cron silencioso.
Exportación bajo demanda
El cliente puede solicitar exportación de su historial de auditoría en cualquier momento. Formato estructurado, listo para SIEM o data lake.
Disponibilidad y entrega continua
SLA real, backups gestionados y un pipeline de CI/CD que no permite que un cambio inseguro llegue a producción.
SLA 99.9% Enterprise
Objetivo de disponibilidad mensual del 99.9% para clientes Enterprise. Reportes mensuales y créditos de servicio si el SLA se incumple.
Redundancia Supabase
Base gestionada con replicación, backups automatizados con point-in-time recovery y monitoreo de salud continuo.
Deploy con rollback
Cada release puede revertirse en menos de un minuto. Migraciones de base diseñadas para ser hacia adelante y reversibles cuando es posible.
CI con tests obligatorios
Suite de pytest verde en cada PR. No se mergea código rojo. Tests cubren autenticación, autorización y lógica de negocio crítica.
Linters y supply chain
ruff sobre el código, pip-audit sobre dependencias y detect-secrets sobre commits. Cualquier alerta detiene el pipeline.
Anti-print · commit-convention
Hooks bloquean print() en producción y exigen mensajes de commit estructurados. La trazabilidad operativa es parte del contrato del repo.
Documentación disponible para due diligence
Material listo para acelerar revisiones de su equipo legal, de seguridad y de procurement. Algunos requieren NDA por contenido sensible.
Solicita el security questionnaire completo
Le hacemos llegar el cuestionario respondido, el DPA template y la documentación que su equipo de seguridad necesite para cerrar la revisión.