Pular para o conteúdo

recursos e tecnologia

O que sustenta o venda.plus


Para quem cuida de TI, segurança e integrações: como o sistema isola, protege e entrega os dados da sua empresa.

Uma instalação por empresa

Cada cliente roda a própria instalação, com domínio, banco de dados, arquivos e segredos isolados. Nada é compartilhado entre empresas.

  • Endereço próprio no formato suaempresa.crm.venda.plus, com o app e a API no mesmo domínio.
  • Backup diário do banco e dos arquivos, com retenção de 14 dias.
  • Migrações automáticas na subida e atualização sem derrubar o serviço.
  • Sondas de saúde: o processo está de pé, o banco responde.
Tela de dados da organização, com identificação, contato e endereço preenchido pela consulta de CEP.
Os dados da organização, com o endereço preenchido pela consulta de CEP.

Papéis e permissões

Papéis configuráveis por organização. Três nascem prontos — proprietário, administrador e membro — e cada um tem permissões e escopos de dados próprios.

  • Escopo de clientes e de pedidos, separadamente: todos ou só os seus.
  • Ninguém concede o que não tem: nem permissão nem escopo maior que o de quem salva.
  • O acesso é relido a cada requisição: mudou o papel, valeu na hora.
  • O que a pessoa não pode ver responde 404, não 403 — o sistema não confirma nem que o registro existe.
Tela de papéis e acessos, com os papéis Proprietário, Administrador e Membro e as permissões de cada um.
O menu esconde o que a pessoa não pode fazer; a API valida de novo, sempre.

API de lembretes

Chaves criadas em Configurações, com autenticação Bearer numa árvore de rotas separada: sessão e chave não se misturam.

  • Escopo disponível: lembretes — criar, atualizar, concluir e apagar lembretes vindos de outro sistema, endereçados a uma pessoa e com link de destino.
  • Chamada idempotente pela dupla sistema de origem + id externo: repetir atualiza em vez de duplicar.
  • O segredo aparece uma única vez; o banco guarda só o hash. A lista mostra quem criou e o último uso, e a chave é revogável.
  • Documentação OpenAPI/Swagger própria.
Tela de integrações com a lista de chaves de API, prefixo, escopo, quem criou e último uso.
Chave revogável, com o último uso à vista.

Segurança no detalhe


O que não aparece na tela, mas protege a operação todos os dias.

Login e sessão

Senha de 10 a 128 caracteres com hash argon2id. Token de acesso de 15 minutos e renovação com detecção de reuso: token antigo reapresentado revoga a sessão inteira.

Tentativas e limites

Cinco falhas seguidas travam a conta por 15 minutos. Limite por IP no login e na recuperação de senha, e limite geral por usuário. Proteção CSRF por origem.

Isolamento no banco

Toda tabela de negócio carrega a organização, e as referências usam chaves compostas com ela: o banco recusa apontar para dado de outra, não só a aplicação.

Segredos cifrados

Senha do SMTP e chave de notificação ficam cifradas no banco. A senha do e-mail nunca volta para a tela.

Anexos

Guardados em object store compatível com S3, com download por link assinado. Quem vê o registro anexa; registro arquivado não recebe anexo novo.

Logs que não expõem

Logs estruturados que não registram a busca digitada — ela pode conter nome, telefone ou CPF.

os detalhes

O que se percebe no terceiro dia de uso


R$ 0,01 Dinheiro guardado em centavos inteiros. Nenhum arredondamento de ponto flutuante, em lugar nenhum.
2026-0001 Número de pedido sequencial por ano, de contador transacional: nunca repete, nunca pula.
joão = joao Busca por trecho e sem acento, com índice de trigramas. Ninguém precisa acertar a grafia.
15 min Validade do token de acesso, com renovação automática e revogação da sessão ao detectar reuso.
30 s Janela de tolerância da renovação. Fora dela, token antigo reapresentado derruba a sessão inteira.
14 dias Retenção do backup diário do banco de dados e dos arquivos.

A tecnologia


Ferramentas maduras, escolhidas pela previsibilidade.

Interface
Next.js (App Router), TypeScript, Tailwind CSS e shadcn/ui
API
Node.js e TypeScript com Fastify, validação por schema em toda entrada e saída
Banco de dados
PostgreSQL com Prisma; IDs em UUID v7
Arquivos
Object store compatível com S3
Infraestrutura
Docker Swarm com Traefik v3; app e API no mesmo domínio, sem CORS
Rotinas de fundo
Idempotentes: várias réplicas da API não duplicam trabalho

próximo passo

Organize sua operação comercial


Conte como sua equipe trabalha hoje e mostramos como fica dentro do venda.plus: clientes, vendas, pedidos, tarefas e recebimentos em um só lugar.

Sem compromisso. Usuários ilimitados, ambiente exclusivo e backup diário.