Seguranca e propriedade dos dados
O QuoteNode foi concebido para organizacoes que tratam os dados comerciais como um ativo estrategico. Cada decisao arquitetural prioriza isolamento, auditabilidade e controlo.
Isolamento single-tenant
Cada instancia do QuoteNode corre em isolamento total. A tua base de dados, o teu armazenamento de ficheiros e o teu processo aplicacional nao sao partilhados com outros clientes. Nao existe mistura de dados multi-tenant, pools de ligacoes partilhados nem risco de fuga entre tenants.
Isto nao e uma promessa de marketing sobre “separacao logica”. E isolamento real em cada camada.
Deploy self-hosted
Escolhes onde vivem os teus dados. Faz deploy no teu proprio servidor, numa cloud privada ou numa rede fechada sem acesso a internet. O QuoteNode funciona totalmente offline — sem telemetria, sem callbacks de analytics e sem pings para um servidor de licencas.
O sistema e distribuido como contentores Docker com um template Docker Compose. Tu controlas a infraestrutura, a topologia de rede, a estrategia de backup e o perimetro de acesso.
Autenticacao e controlo de acesso
- Controlo de acesso baseado em perfis (RBAC) com cinco perfis: Admin, Manager, Salesperson, Viewer e Public (para links de propostas).
- Verificacoes de permissao por endpoint — cada chamada API e autorizada com base no perfil do utilizador.
- Autenticacao baseada em sessao com cookies cifrados e duracao configuravel.
- Autenticacao de dois fatores (TOTP) — opcional para todos os utilizadores e exigivel para administradores.
- Protecao contra brute force — bloqueio da conta apos 5 tentativas falhadas consecutivas de login (cooldown de 30 minutos).
- Lista branca de IP — possibilidade de restringir o acesso a aplicacao a IP ou intervalos especificos.
Trilho de auditoria
Cada mutacao no sistema e registada num log de auditoria append-only:
- Quem executou a acao (ID do utilizador, perfil, endereco IP)
- O que mudou (tipo de entidade, ID da entidade, estado before/after)
- Quando aconteceu (timestamp do lado do servidor)
O log de auditoria e imutavel — as entradas nao podem ser editadas nem apagadas, nem mesmo por administradores. Isto fornece uma cadeia de custodia verificavel para cada proposta, registo de cliente e alteracao de configuracao.
Seguranca das propostas
Os links publicos de propostas estao protegidos por varias camadas:
- Tokens criptograficos — tokens aleatorios de 256 bits, armazenados na base de dados apenas como hashes SHA-256. O token em texto simples e devolvido uma unica vez e nunca e armazenado.
- Protecao opcional por palavra-passe — os links podem exigir um PIN com hash bcrypt.
- Acesso revogavel — qualquer link pode ser revogado instantaneamente pelo comercial.
- Rate limiting — limites por token e por IP reduzem abusos (60 aberturas/hora, 5 acoes/hora).
- Detecao de bots — validacao temporal e campos honeypot rejeitam submisses automatizadas.
- Rastreio de interacoes — cada abertura, download, resposta e decisao e registada com IP anonimizado e codigo de pais GeoIP.
Protecao de dados
- Cifragem em transito — TLS para todas as ligacoes (reverse proxy via Caddy com HTTPS automatico).
- Cifragem em repouso — delegada a tua infraestrutura (cifragem de disco, volumes cifrados).
- Cifragem opcional de PII ao nivel da coluna — quando ativada (
ENCRYPT_PII=true), a informacao pessoal identificavel (nomes de clientes, emails, numeros de telefone, identificadores fiscais) e cifrada com AES-256-GCM ao nivel da aplicacao antes de ser escrita na base de dados. Blind indexes (HMAC-SHA256) preservam consultas exatas sem expor texto simples. Um validador de arranque evita corrupcao de dados causada por chaves erradas ou alteracoes acidentais de flags. - Anonimizacao de IP — job configuravel para aplicar hash a enderecos IP apos N dias para conformidade RGPD.
- Sem dependencias externas — sem analytics de terceiros, pixels de tracking ou dependencias CDN na configuracao por defeito.
- Controlos de retencao — periodos configuraveis de retencao para documentos gerados, logs de auditoria e dados de tracking.
Backup e recuperacao de desastre
Os teus dados so estao seguros se os conseguires recuperar:
- Backups diarios automatizados — dumps da base de dados e arquivos de ficheiros agendados sem downtime (configuraveis via
BACKUP_CRON). - Cifragem GPG em repouso — os backups podem ser cifrados antes do armazenamento, garantindo que nem o teu fornecedor de armazenamento consegue ler os dados.
- Armazenamento remoto — upload automatico para S3, SFTP, Google Cloud Storage, Azure ou qualquer um dos mais de 70 fornecedores suportados pelo rclone.
- Verificacao de integridade — cada backup inclui um manifesto de checksum SHA-256 para detecao de adulteracao.
- Download com um clique — os administradores podem descarregar os arquivos de backup diretamente a partir do painel de administracao.
- Politica de retencao — limpeza automatica de backups antigos para manter o uso de disco previsivel (por defeito: 7 backups mais recentes).
- Recuperacao de desastre — um script de restore dedicado reconstrui uma instancia completa a partir de um ficheiro de backup num servidor novo com um unico comando.
- Monitorizacao — o painel de administracao avisa se os backups estiverem desativados ou se nao tiver sido registado nenhum backup com sucesso nas ultimas 48 horas.
Para o guia completo de backup e restore, consulta a wiki Backup e recuperacao.
Snapshots imutaveis de propostas
Quando uma proposta e enviada, o sistema captura um snapshot completo e imutavel: dados do cliente, todas as linhas, precos, taxas de cambio, branding e condicoes comerciais. Este snapshot e a fonte de verdade para a geracao de PDF e para auditoria.
Os snapshots nao podem ser alterados apos a criacao. Se uma proposta for reenviada, e criada uma nova versao do snapshot. Isto fornece um registo verificavel do que foi proposto e em que data.
Seguranca do licenciamento
As licencas do QuoteNode sao ficheiros assinados com Ed25519 e verificados totalmente offline. Nenhum servidor externo e contactado para validacao da licenca. As licencas pagas sao anuais — se uma licenca expirar, todas as funcionalidades continuam a funcionar normalmente. A unica alteracao visivel e a apresentacao do selo “Powered by QuoteNode” nas superficies voltadas para o cliente e de um lembrete de renovacao na interface. Nenhuma funcionalidade e desativada.