# Multi-tenancy e isolamento SUMMARY: Como o Synapse isola dados entre usuários e minds — fronteiras de segurança explicadas. Multi-tenancy e isolamento O Synapse é multi-tenant: múltiplos usuários, cada um com múltiplos minds, totalmente isolados entre si. Esta página explica o modelo de isolamento. Hierarquia de tenants [CODE BLOCK] Níveis de isolamento Nível 1: isolamento de usuário Cada conta de usuário é isolada. Alice não pode: - Ver os minds do Bob - Acessar as memórias do Bob (mesmo com o JWT dela) - Listar informações da conta do Bob Aplicado por: coluna em todas as tabelas, JWT contém , todas as consultas filtram por . Nível 2: isolamento de mind Dentro de um usuário, cada mind é isolado. Mind A não pode: - Ver as memórias do Mind B - Acessar tarefas, chat, scripts do Mind B Aplicado por: coluna em todas as tabelas de dados, Mind Key contém , todas as consultas filtram por . > [!CRITICAL] > O isolamento por Mind Key é a fronteira de segurança primária. Uma Mind Key > vazada concede acesso total aos dados daquele mind — mas SOMENTE àquele mind. Tokens de autenticação | Token | Escopo | O que pode acessar | |-------|--------|---------------------| | Mind Key | Mind único | Apenas dados daquele mind | | JWT | Conta de usuário | Gerenciamento de conta (criar/listar/excluir minds) | | Computer Token | Computador único | Comandos daquele computador | Acesso cross-mind Dentro do mesmo usuário O usuário pode acessar todos os seus minds via JWT (ex.: lista todos). Mas para ler/escrever dados de memória, ele precisa da Mind Key específica. Entre usuários Usuários não podem acessar dados um do outro — A MENOS que compartilhem explicitamente um mind via API de Compartilhamento: [CODE BLOCK] Após compartilhar, Bob pode acessar o Mind A via seu JWT (somente leitura se ). Fronteiras de segurança [CODE BLOCK] Padrões comuns de multi-tenancy Padrão 1: usuário único, mind único Mais comum para usuários individuais de agentes LLM. - 1 conta de usuário - 1 mind - 1 Mind Key - Todas as memórias em um escopo Padrão 2: usuário único, múltiplos minds Para usuários com múltiplos contextos (trabalho, pessoal, projetos). - 1 conta de usuário - N minds (ex.: "work", "personal", "project-x") - N Mind Keys - Cada sessão LLM usa uma Mind Key Padrão 3: mind compartilhado em equipe Para equipes colaborando em um projeto. - 1 usuário cria o mind (recebe a Mind Key) - O criador compartilha com membros da equipe via JWT - Todos os membros acessam via JWT (ou Mind Key compartilhada) > [!WARNING] > Compartilhar uma Mind Key concede acesso total de leitura/escrita. Para > colaboração em equipe, prefira a API de Compartilhamento (baseada em JWT) > em vez de compartilhar Mind Keys diretamente. Padrão 4: provedor SaaS Para apps que incorporam o Synapse como sua camada de memória. - Cada cliente = 1 conta de usuário - Cada projeto do cliente = 1 mind - O app armazena Mind Keys por cliente/projeto - Isolamento total entre clientes Verificação de isolamento Teste: Mind Key não pode acessar outros minds [CODE BLOCK] Teste: JWT não pode ler dados de memória diretamente [CODE BLOCK] Melhores práticas > [!TIP] > - Use um mind por projeto/contexto — isolamento é seu amigo > - Nunca compartilhe Mind Keys — use a API de Compartilhamento > - Faça rotação de Mind Keys se comprometidas (exclua o mind, crie um novo) > - Audite minds compartilhados — revise periodicamente > - Use JWT para interface humana — nunca exponha Mind Keys a usuários finais Próximos passos - Autenticação - Mind Key vs JWT - Arquitetura