Documentação
Segurança e Isolamento
Como a Elohia protege dados de cada empresa, as decisões de arquitetura que suportam multi-tenancy e o que esta sob sua responsabilidade.
Isolamento por tenant
Cada empresa recebe um slug próprio no signup (acme, globex, ...). Todas as collections do tenant vivem no MongoDB prefixadas por esse slug — acme__agents, acme__conversations, acme__agent_memory, etc. O helper tenantCollection(slug, name) e o único caminho autorizado; getDb().collection(...) direto e proibido fora dos 2 arquivos de bootstrap.
Autenticação
- Senha armazenada com bcryptjs (cost 12).
- JWT HS256 com TTL de 24h — claims: sub (userId), email, tslug (tenant), role.
- JWT_SECRET de 64 bytes, obrigatorio com >=32 chars no boot.
- Tokens de reset de senha e verificacao de email TTL em auth_tokens (collection global).
Criptografia em repouso
Credenciais sensiveis armazenadas no Mongo (tokens Slack, OAuth Claude, secrets de webhooks) passam por AES-256-GCM com ENCRYPTION_KEY. A chave e configurada no boot — sem ela o backend falha rápido. Rotacao da chave invalida tokens salvos, então ela não deve ser trocada sem plano.
MCP allowlist por plano
Como a plataforma e aberta, MCPs são avaliados antes de virar processo. A policy combina (a) lista de comandos aceitos (npx, uvx, pipx, node, python3 conforme plano), (b) regex dos pacotes verificados e (c) limite de número de MCPs simultaneos. O que for rejeitado não entra em .mcp.json — o agente loga o motivo.
Observabilidade e auditoria
- <slug>__agent_events: crashes, restarts, starts — dentro do tenant
- <slug>__security_events: injection attempts, violacoes de escopo — dentro do tenant
- audit_log global: eventos de signup, criação de tenant, etc — uso operacional
- Endpoint /agents/:id/diagnose consolida sinais em healthScore + issues priorizadas
O que e sua responsabilidade
- Dar acesso de owner/admin apenas a quem precisa dentro do tenant
- Não compartilhar JWTs — eles são pessoais e expiram em 24h
- Revisar os guardrails dos agentes antes de conectar a canais públicos
- Tratar credenciais de MCP como secrets — armazene-as no envVars do AgentDoc, não em texto em CLAUDE.md
LGPD
A Elohia opera como operadora dos dados que você insere na plataforma, você continua como controlador. Para questões formais (exercício de direitos do titular, DPO, relatório de impacto), escreva para [email protected]. Detalhes na Política de Privacidade.
