Apresentando o plugin Enterprise do Simmetric Chat
SSO com SAML 2.0 e OIDC, provisionamento SCIM, log de auditoria imutável, white-label, backups criptografados e licenciamento air-gap para equipes regulamentadas.
Enterprise é um plugin, não um fork
A forma mais comum de projetos open-source entregarem um nível enterprise é um fork: um branch privado que se afasta do código da comunidade até que a atualização vire um projeto de migração. O Simmetric Chat escolheu o outro caminho. O nível enterprise é entregue como um pacote de plugin opcional - @simmetric-chat/enterprise - carregado pelo servidor da comunidade no boot através de um carregador de plugins. O servidor da comunidade sonda o pacote na inicialização:
- Encontrado e válido → o plugin registra suas rotas e os recursos enterprise ficam ativos.
- Não instalado → uma linha de log no nível info anota a build da comunidade e o servidor continua inalterado.
- Encontrado, mas quebrado → o servidor sai em voz alta. Uma instalação enterprise quebrada nunca degrada silenciosamente para comunidade - um stack de SSO pela metade é pior do que nenhum.
A mesma licença governa o nível. O código da comunidade é AGPL-3.0; o plugin enterprise é um pacote comercial licenciado separadamente, e um JWT de licença (LICENSE_KEY) é o que desbloqueia os recursos. Sem uma licença válida, as rotas enterprise ainda montam, mas todo recurso com gating responde 402 com um payload JSON explícito nomeando o recurso e o nível - seu código de integração pode ramificar com base no estado da licença em vez de adivinhar.
Identidade: SSO e SCIM prontos para uso
O login único suporta os dois protocolos que as empresas realmente executam: SAML 2.0 (com endpoints de login, callback e metadata para fluxos iniciados pelo IdP) e OIDC (login e callback para o fluxo de redirecionamento do navegador, construído sobre uma biblioteca cliente OpenID Connect atual). Ambos se vinculam ao mesmo painel SSO configurável pelo admin.
A configuração é flexível onde importa. O OIDC pode ser configurado inteiramente pelo painel SSO do admin (armazenado criptografado em repouso no banco de dados), inteiramente por variáveis de ambiente, ou por ambos - env tem precedência quando definida, então implantações infrastructure-as-code podem fixar as configurações do provedor enquanto o painel permanece a fonte da verdade nos demais casos. Provedores integrados cobrem Google, GitHub e Microsoft Entra, e um provedor genérico aceita qualquer documento de discovery.
SCIM 2.0 fecha o ciclo de vida: provisionamento de usuários e grupos pelo protocolo SCIM padrão com um endpoint protegido por token Bearer. Quando o RH desativa um usuário no seu provedor de identidade, a conta dele no Simmetric Chat é desativada pelo mesmo fluxo - sem contas órfãs, sem desprovisionamento guiado por planilhas. Juntos, SSO e SCIM significam que seu IdP permanece a única autoridade sobre quem existe e quem pode entrar.
O log de auditoria que não pode ser reescrito
Logs de auditoria têm uma propriedade desconfortável: quanto mais valiosos são, mais valiosos são para modificar. O log de auditoria enterprise do Simmetric Chat impõe imutabilidade na camada do banco de dados, não na camada da aplicação.
Um papel Postgres dedicado - simmetric_audit_writer - possui apenas um privilégio INSERT na tabela de auditoria. O plugin enterprise escreve eventos de auditoria através de um pool de conexões separado que se autentica como esse papel, então UPDATE e DELETE falham no nível do banco, não por convenção da aplicação. Leitores seguem um caminho deliberadamente separado pela conexão padrão da aplicação, que tem SELECT mas é um papel totalmente diferente - o escritor não pode ler, e o leitor não pode escrever.
A garantia é honesta sobre sua própria configuração: quando a senha do escritor está definida, o log de boot confirma que a garantia de imutabilidade está ativa; quando falta, o log de auditoria ainda registra eventos, mas um aviso de boot afirma que a imutabilidade no nível do banco não é aplicada. Padrões à prova de falhas mais um log de boot verdadeiro - o padrão que esta plataforma usa em todos os lugares.
O log de auditoria é exposto aos admins através de um visualizador de registro de eventos, com gating por um flag de licença audit_log_immutable. Eventos de autenticação, operações de documentos, mudanças de configuração, bypasses de DLP, mudanças de retenção - a trilha é a resposta para "o que realmente aconteceu?", e ela compõe com a história de RBAC da comunidade: o acesso ao próprio log é uma permissão.
White-label e backups criptografados
Dois recursos visam equipes que entregam o Simmetric Chat aos próprios clientes ou o executam como infraestrutura interna com políticas de dados rígidas:
O white-label remove o chrome do produto das superfícies voltadas ao cliente - o widget incorporado, os padrões de branding, a personalização no nível da UI - sob um flag de licença dedicado. Uma consultoria que implanta um assistente de conhecimento para um cliente pode apresentar o assistente como se fosse do cliente; a plataforma permanece em segundo plano.
Os backups vão além de dumps de banco: jobs agendados e sob demanda produzem arquivos de backup criptografados, políticas de retenção decidem o que manter e por quanto tempo, e uma divisão de permissões separa quem pode configurar um destino, quem pode executar um job, quem pode inspecionar logs e quem pode restaurar. Essa última distinção importa - disparar um backup e restaurar dados de produção em um workspace arbitrário são níveis diferentes de confiança, e o modelo de permissões os trata assim.
Licenciamento air-gap para ambientes regulamentados
Os ambientes que precisam de SSO, auditoria imutável e backups controlados costumam ser os mesmos ambientes sem acesso à internet. O licenciamento enterprise é construído para isso: a licença é um JWT assinado com RS256 cuja chave pública incorporada viaja com o servidor da comunidade. A verificação acontece localmente - o servidor confere a assinatura contra a chave incorporada, então nenhum servidor de licença precisa estar acessível. Defina LICENSE_KEY no ambiente do servidor, reinicie, e os recursos desbloqueiam; remova-o, e eles fecham de volta para a comunidade com respostas 402 explícitas.
Esse design significa que uma implantação enterprise roda inteiramente dentro de um data center: LLMs locais via Ollama, armazenamentos vetoriais locais, embeddings locais, OCR local e agora validação de licença local. Air-gap não é um modo degradado parafusado depois - é a forma de implantação em torno da qual este produto foi projetado.
O que isso significa para a linha v0.22
As linhas comunidade e enterprise andam juntas. O servidor da comunidade declara o plugin enterprise como uma dependência par opcional; o carregador o resolve no boot e o contexto compartilhado do plugin injeta as preocupações centrais (auth, crypto, banco de dados, logger), então o plugin só pode depender do contrato compartilhado, nunca de internals da comunidade. Releases da comunidade e enterprise são construídos contra a mesma versão compartilhada, e uma incompatibilidade de versão falha alto no boot em vez de se comportar mal no runtime.
Para operadores, o resumo prático: instale o pacote do plugin, defina um LICENSE_KEY válido, configure o SSO no painel de administração, defina a senha do escritor de auditoria e reinicie. O log de boot diz exatamente quais desses passos tiveram sucesso. O nível comunidade permanece AGPL-3.0 e totalmente funcional - SSO, auditoria e backups são aditivos por cima, com gating por licença em vez de por um fork de código.


