# Multi-Tenancy y aislamiento SUMMARY: Cómo Synapse aísla los datos entre usuarios y minds — explicación de los límites de seguridad. Multi-Tenancy y aislamiento Synapse es multi-tenant: múltiples usuarios, cada uno con múltiples minds, completamente aislados entre sí. Esta página explica el modelo de aislamiento. Jerarquía de tenants [CODE BLOCK] Niveles de aislamiento Nivel 1: Aislamiento de usuario Cada cuenta de usuario está aislada. Alice no puede: - Ver los minds de Bob - Acceder a las memorias de Bob (incluso con su JWT) - Listar la información de la cuenta de Bob Aplicado por: columna en todas las tablas, el JWT contiene , todas las consultas filtran por . Nivel 2: Aislamiento de mind Dentro de un usuario, cada mind está aislado. Mind A no puede: - Ver las memorias de Mind B - Acceder a tareas, chat, scripts de Mind B Aplicado por: columna en todas las tablas de datos, el Mind Key contiene , todas las consultas filtran por . > [!CRITICAL] > El aislamiento por Mind Key es el límite de seguridad principal. Un Mind Key > filtrado otorga acceso completo a los datos de ese mind — pero SOLO a ese > mind. Tokens de autenticación | Token | Ámbito | A qué puede acceder | |-------|-------|-------------------| | Mind Key | Un solo mind | Solo los datos de ese mind | | JWT | Cuenta de usuario | Gestión de cuenta (crear/listar/eliminar minds) | | Computer Token | Una sola computadora | Los comandos de esa computadora | Acceso entre minds Dentro del mismo usuario El usuario puede acceder a todos sus minds vía JWT (p. ej. los lista todos). Pero para leer/escribir datos de memoria, necesita el Mind Key específico. Entre usuarios Los usuarios no pueden acceder a los datos de los demás — A MENOS que compartan explícitamente un mind vía la API de Sharing: [CODE BLOCK] Tras compartirlo, Bob puede acceder a Mind A vía su JWT (solo lectura si ). Límites de seguridad [CODE BLOCK] Patrones comunes de multi-tenancy Patrón 1: Un usuario, un mind El más común para usuarios individuales de agentes LLM. - 1 cuenta de usuario - 1 mind - 1 Mind Key - Todas las memorias en un ámbito Patrón 2: Un usuario, múltiples minds Para usuarios con múltiples contextos (trabajo, personal, proyectos). - 1 cuenta de usuario - N minds (p. ej. "trabajo", "personal", "proyecto-x") - N Mind Keys - Cada sesión LLM usa un Mind Key Patrón 3: Mind compartido en equipo Para equipos que colaboran en un proyecto. - 1 usuario crea el mind (obtiene el Mind Key) - El creador lo comparte con los miembros del equipo vía JWT - Todos los miembros acceden vía JWT (o Mind Key compartido) > [!WARNING] > Compartir un Mind Key otorga acceso completo de lectura/escritura. Para > colaboración en equipo, prefiera la API de Sharing (basada en JWT) sobre > compartir Mind Keys directamente. Patrón 4: Proveedor SaaS Para aplicaciones que integran Synapse como su capa de memoria. - Cada cliente = 1 cuenta de usuario - Cada proyecto de cliente = 1 mind - La app almacena los Mind Keys por cliente/proyecto - Aislamiento completo entre clientes Verificación de aislamiento Test: Un Mind Key no puede acceder a otros minds [CODE BLOCK] Test: Un JWT no puede leer datos de memoria directamente [CODE BLOCK] Mejores prácticas > [!TIP] > - Use un mind por proyecto/contexto — el aislamiento es su aliado > - Nunca comparta Mind Keys — use la API de Sharing en su lugar > - Rote los Mind Keys si se comprometen (elimine el mind, cree uno nuevo) > - Audite los minds compartidos — revise periódicamente > - Use JWT para la interfaz humana — nunca exponga Mind Keys a usuarios finales Próximos pasos - Autenticación - Mind Key vs JWT - Arquitectura