1. Siga o fluxo correto de integração
O CRM depende de uma ordem específica de criação de entidades. Pular etapas ou criar entidades fora de sequência pode levar a integrações quebradas e dados faltantes em fluxos posteriores. O fluxo esperado é:
- Criar o Holder — representando o indivíduo ou organização.
- Criar a Alias Account — vinculando o Holder a uma conta do Midaz Ledger.
- Verificar ambos — antes de prosseguir com quaisquer fluxos posteriores.
2. Proteja suas chaves de criptografia
O CRM criptografa e aplica hash nos campos sensíveis antes de armazená-los. A segurança desses dados depende inteiramente de como você gerencia suas chaves.
- Gere chaves únicas para
LCRYPTO_HASH_SECRET_KEYeLCRYPTO_ENCRYPT_SECRET_KEYusandoopenssl rand -hex 32. - Armazene as chaves em um gerenciador de secrets (AWS Secrets Manager, Azure Key Vault, HashiCorp Vault ou equivalente). Nunca codifique-as diretamente em arquivos de configuração, código-fonte ou controle de versão.
- Planeje a rotação de chaves. Se uma chave for comprometida, você deve gerar uma nova e re-criptografar todos os dados afetados. Este é um processo manual — projete seus runbooks operacionais de acordo.
- Use Kubernetes Secrets em produção. Referencie secrets existentes via
useExistingSecreteexistingSecretNamenos seus valores de Helm em vez de armazenar chaves inline.
3. Nunca armazene dados sensíveis em metadata
O objeto
metadata nas entidades do CRM não é criptografado. Ele é armazenado em texto plano e destinado apenas para informações auxiliares não sensíveis.
Não use metadata para:
- Números de identificação pessoal (CPF, SSN, passaporte)
- Detalhes de contas financeiras
- Informações de contato (email, telefone)
- Quaisquer dados sujeitos à LGPD, GDPR ou regulamentações similares
4. Não exponha o CRM diretamente em camadas de borda
O CRM é um serviço interno. Expô-lo diretamente através de API gateways, balanceadores de carga ou aplicações frontend aumenta sua superfície de ataque e contorna os controles de acesso no nível da aplicação. Em vez disso:
- Roteie o tráfego do CRM através dos seus serviços backend ou uma camada de API interna.
- Use o Access Manager para aplicar autenticação e autorização se você precisar de controle granular.
- Restrinja o acesso de rede aos pods do CRM usando Kubernetes NetworkPolicies ou os grupos de segurança do seu provedor de nuvem.
5. Use soft delete como padrão
O CRM suporta tanto soft delete quanto hard delete:
- Soft delete (padrão): Marca o registro com um timestamp
deletedAt. O registro é excluído das consultas padrão, mas permanece no banco de dados para fins de auditoria e recuperação. - Hard delete: Remove permanentemente os dados sem possibilidade de recuperação.
6. Valide os dados antes de enviá-los ao CRM
O CRM atua como uma camada de dados neutra e persistente. Ele não aplica regras de negócio, não valida formatos de documentos nem verifica conformidade KYC. A integridade dos dados é sua responsabilidade. Antes de criar ou atualizar registros:
- Valide os formatos de documentos (CPF, CNPJ, números de passaporte) na sua camada de aplicação.
- Certifique-se de que os valores de
ledgerIdeaccountIdcorrespondem a entidades reais no Midaz. - Sanitize as entradas para evitar armazenar dados malformados ou inconsistentes.
7. Mantenha o CRM e o Midaz alinhados em versões
O plugin CRM é versionado junto com o Midaz Core. Antes de atualizar:
- Consulte a tabela de compatibilidade de versões para confirmar que suas versões-alvo são compatíveis.
- Sempre atualize o Midaz Core primeiro, depois o CRM.
- Teste a atualização em um ambiente de staging antes de aplicá-la em produção.
- Faça backup dos seus dados do MongoDB e valores de Helm antes de qualquer atualização maior.
8. Monitore a saúde e o desempenho do banco de dados
O CRM usa MongoDB para armazenamento de dados. Em ambientes de produção:
- Monitore o uso do pool de conexões. O valor padrão de
MONGO_MAX_POOL_SIZEé 1000. Ajuste-o com base nos seus padrões de tráfego e quantidade de réplicas. - Configure alertas para uso de disco do MongoDB, atraso de replicação e saturação de conexões.
- Habilite backups. Seja usando o MongoDB Bitnami incluído ou uma instância externa, garanta que backups automatizados estejam configurados e testados regularmente.
- Habilite OpenTelemetry (
ENABLE_TELEMETRY: true) para coletar traces e métricas do CRM. Integre com sua stack de observabilidade para visibilidade de ponta a ponta.
9. Revise as recomendações de segurança
O CRM lida com dados pessoais e sensíveis. Além das práticas específicas do plugin, certifique-se de que seu deploy siga as Recomendações de segurança da plataforma, que cobrem:
- Segmentação de rede e Arquitetura Zero Trust
- Aplicação de TLS 1.2+ para todas as comunicações
- Configuração de IAM e RBAC
- Planejamento de resposta a incidentes
- Gerenciamento de patches e varredura de vulnerabilidades

