Saltar al contenido principal

Seguridad y arquitectura

Diseñado para el revisor de InfoSec empresarial.

Este es el complemento técnico de /safety. Diagramas de arquitectura, detalles de autenticación, retención de auditoría, postura de cumplimiento y descarga del cuestionario de seguridad. Si tu revisión necesita un ID de control que no hayamos cubierto, escribe a security@showops.ai — respondemos en un día hábil.

Arquitectura

Aislamiento entre tenants aplicado en el servidor, nunca en la UI.

Cada límite entre tenants se aplica en la capa más baja posible. Row-Level Security en cada tabla. Org-scoping en cada ruta de consulta. Sin filtros en la capa de UI que puedan eludirse con un truco de URL.

Tenancy y aislamiento de datos

Row-Level Security (RLS) en cada tabla de todos los esquemas de tenant. Las políticas de RLS comparan organization_id con el claim del JWT del usuario vía current_user_org_id(); en las rutas que se ejecutan bajo el rol restringido de base de datos, las lecturas y escrituras cross-tenant se bloquean en la propia base de datos, y toda consulta del lado del servidor se filtra además por organization_id — verificado por un CI lint de org-scoping en todos los esquemas de tenant. El cliente del navegador con clave anónima devuelve cero filas de cualquier esquema multi-tenant. Las nuevas tablas requieren RLS en la misma migración (guardrail de CI).

PRUEBA →RLS respaldado por JWT vía current_user_org_id() · SELECT anónimo revocado · CI lint de org-scoping

Límite de aprendizaje por tenant (Shape B)

Múltiples salvaguardas independientes. Wrapper de cliente con scope a nivel de aplicación (orgId es invariante del constructor). Grep en CI (check-learning-scope.ts) que falla la build si cualquier archivo fuera de lib/learning/ toca el esquema. RLS estricto a nivel de BD con FORCE ROW LEVEL SECURITY y política basada en variable de sesión. El código de aplicación llega al SDK de Anthropic por un único punto de paso (lib/intelligence/llm/anthropic.ts, con lib/anthropic.ts como shim de retrocompatibilidad), y check-anthropic-choke.ts falla la build ante cualquier import fuera de una lista breve y comentada; check-no-training.ts garantiza que no haya headers de fine-tuning. Sin entrenamiento agrupado. Sin consultas entre tenants. Nunca.

PRUEBA →lib/learning/client.ts · scripts/ci/check-learning-scope.ts · learning schema FORCE RLS

Hosting y cifrado

Todos los datos en reposo cifrados por Supabase (AES-256). Todo el transporte con TLS 1.2+, HSTS preload. CSP con nonce por solicitud (sin scripts unsafe-inline). Los campos financieros sensibles (coste de BOM, sourcing, lead times) y los refresh tokens OAuth de integraciones externas llevan una capa adicional de cifrado AES-256-GCM a nivel de aplicación en reposo. Las claves se gestionan mediante cifrado de sobre en GCP KMS con rotación cada 90 días; cada escritura nueva pasa por KMS y las filas anteriores al corte se están reenvolviendo con un proceso de backfill. Sin datos de cliente en el edge de Vercel más allá de las páginas públicas de marketing en caché del CDN.

PRUEBA →Vercel (US primario) · Supabase (US East) · TLS 1.2+ en todo

Residencia de datos

Todos los datos de cliente se procesan y almacenan en una única región de EE. UU. — Supabase y Vercel, ambos en us-east-2. No se ofrece actualmente residencia de datos en la UE ni en otras regiones.

PRUEBA →Solo US hoy · Supabase + Vercel us-east-2

Autenticación y control de acceso

8 roles, scoping por sede, RBAC de agentes.

Cada decisión de acceso pasa por tres capas: rol → módulo → scope de sede. Los agentes añaden una cuarta: rol → acceso del agente → scope de sede → filtro de datos.

RolNivel de accesoScope de sede
account_ownerCompleto · más facturación, SSO y ciclo de vida de la organizaciónToda la organización
adminCompleto · todos los módulos · todas las sedesToda la organización
executive_producerCompleto · todos los módulosToda la organización
producerCompleto · todos los módulosToda la organización
technical_directorNivel técnico · LLD + despachoToda la organización
venue_managerLectura con scope + check-inFiltrado por sede
stakeholderLectura resumida · hitos + alertasToda la organización (filtrado)
viewerSoporte solo lectura · sin datos de infraestructuraToda la organización (mínimo)

Gestión de sesiones

Cookies firmadas con HMAC-SHA256, expiración a las 12 horas, renovación con ventana deslizante al 50 % de su vida útil (6 h). La service role key nunca sale del servidor. Las invitaciones de administrador por magic link (TTL de 72 h, un solo uso, hasheadas en reposo) sustituyen por completo el alta de administradores con contraseña.

SSO — Okta / SAML 2.0

SAML 2.0 está implementado de extremo a extremo en el servidor. Cada dominio de cliente se registra contra su propio proveedor de identidad y un usuario SAML se aprovisiona en el primer acceso a partir de una invitación existente: el rol en ShowOps.AI se resuelve desde los claims de grupo del IdP y se vuelve a comprobar en cada reautenticación, de modo que un cambio de grupo en el IdP mueve el rol aquí. El acceso con Google Workspace y Microsoft Entra ID está conectado en la pantalla de aceptación de invitación. La redirección SAML por dominio desde el formulario de acceso está construida pero aún no activada, así que damos de alta a los tenants SAML con nosotros en lugar de en autoservicio. El aprovisionamiento SCIM sigue en la hoja de ruta, aún sin publicar. Calendario disponible bajo petición.

Auditoría y monitorización

Antes, después, cuándo, quién.

Cada mutación escribe un registro de auditoría con instantáneas antes/después. Retención de 24 meses. Exportación a CSV bajo petición. Nada de cumplimiento al estilo "confía en mí": el log es la prueba.

Retención

24 meses

Cada registro de auditoría se conserva 24 meses con instantáneas antes/después. Exportación a CSV disponible bajo petición para extraer datos del periodo de retención.

Cobertura

100 % de las mutaciones

Cada escritura a través de la API genera un registro de auditoría. Los trabajos en segundo plano (sync, reconcile) también se auditan. El acceso de lectura se registra a nivel de ruta.

Ejecuciones de agentes

Totalmente trazables

Cada invocación de agente de IA queda registrada en intelligence.agent_runs con entradas, salidas, versión del prompt, modelo y conteo de tokens. Las ejecuciones enlazan con los datos que citaron.

Monitorización

Sentry + BetterStack

Sentry para errores y rendimiento (muestreo por endpoint). BetterStack para uptime externo y paging. El security advisor de Supabase se ejecuta de forma continua.

Postura de cumplimiento

Alineado con SOC 2. Atestación en la hoja de ruta.

Arquitectura alineada con SOC 2 con análisis interno de brechas finalizado. La mayoría de los controles de Common Criteria están cubiertos hoy con evidencia en producción; las brechas restantes se trazan explícitamente en nuestro documento de trabajo interno. Atestación Type 1 en la hoja de ruta. Compartiremos el análisis de brechas bajo NDA si lo solicitas.

Publicados hoy: DPA, AUP, Privacidad, Cookies, Términos, Seguridad (esta página) y Safety. La postura GDPR sigue lo establecido en el DPA. CCPA se gestiona a través de la política de Privacidad.

Solicita un mapeo control por control en security@showops.ai.

Respuesta a incidentes

Cómo respondemos cuando algo falla.

Calendario de divulgación publicado, política de postmortem publicada, un único SLA para cualquier reportador: interno, investigador o revisor enterprise.

SLA de divulgación

1 día laborable

Cada reporte a security@showops.ai recibe respuesta humana en un día laborable. Bienvenida la divulgación coordinada: damos crédito con tu permiso.

Clasificación de incidentes

P1–P4

P1 (exposición de datos / caída > 15 min): paging inmediato. P2 (servicio degradado): misma hora. P3/P4: triaje programado. Tenants afectados notificados según los términos del DPA.

Postmortems

Publicados

Los incidentes P1 / P2 reciben un postmortem sin culpables compartido con los tenants afectados en un plazo de 7 días. Causa raíz, cronología, remediación y cambios estructurales.

Contacto de seguridad

Para el revisor que indaga: pide lo que necesites.

Mapeo de controles (CAIQ-lite, SIG-lite, SOC 2), diagramas de red, acuerdos con sub-procesadores, resúmenes de pen-test (cuando estén disponibles), términos del DPA. Compartiremos lo que tenemos y señalaremos lo que no. Si tu revisión identifica una brecha que no hayamos abordado, es justo lo que queremos oír.

Seguridad · ShowOps.AI