Files
GTI_GERENCIADOR_FISCAL/docs/ONBOARDING_PRIMEIRO_CLIENTE_REAL.md
T

7.3 KiB

Roteiro de Onboarding Seguro e Prontidão para o Primeiro Cliente Real — GTI Fiscal

Este documento estabelece as salvaguardas operacionais, os requisitos técnicos e o protocolo de segurança para a ativação do primeiro cliente real (~70 clientes da carteira), preservando a regra de ouro de não causar impacto no ERP operacional e não efetuar escrita sem aprovação prévia.


1. Checklist de Onboarding Seguro (C.1)

Requisitos de Rede e Conectividade

  • Comunicação 100% Outbound: O Agent necessita exclusivamente de saída HTTPS (porta 443 TCP) para o endereço público do Hub (https://hub.gtisistemas.com.br ou IP público configurado).
  • Sem Portas Abertas Inbound: Nenhuma porta de entrada precisa ser liberada no roteador/firewall do cliente.
  • Sem Necessidade de VPN: O tráfego trafega encapsulado via TLS 1.3 com autenticação mútua baseada em tokens HMAC / JWT por instalação.

Impacto de Leitura no Firebird do Cliente

  • Modo de Transação Estritamente Não-Bloqueante:
    • Parâmetros de transação no driver Firebird (fdb): read_committed, rec_version (Record Versioning), read_only e wait=5 (timeout máximo de 5 segundos).
    • Nunca bloqueia transações de escrita do PDV/SGV (concorrência limpa com MVCC do Firebird).
  • Throttling e Lotes Controlados:
    • Consulta de produtos particionada em lotes pequenos de 50 a 100 produtos por job.
    • Pausa forçada (throttling) de 50ms a 100ms entre os lotes, liberando os ciclos de CPU e buffers do Firebird Server.
  • Horário de Carga Inicial:
    • A varredura completa inicial do catálogo de produtos deve ser programada para horário de baixo movimento ou encerramento do expediente (ex.: após as 19h ou antes das 08h).
    • Durante o expediente comercial, o Agent opera exclusivamente em modo incremental (sincronizando apenas produtos com alteração de data/hora no C000025).

Comportamento sob Carga ou Conflito no Firebird

  • Caso o Firebird Server retorne erro de lock (lock conflict on no wait transaction), deadlock ou timeout:
    • O Agent aborta imediatamente a transação de leitura (ROLLBACK automático).
    • Aciona backoff exponencial com jitter (15s, 30s, 60s, até 5 minutos).
    • O Agent jamais insiste em loop fechado e jamais trava o processo do SGV.
    • Registra evento de severidade WARNING no heartbeat para notificação no painel do Hub.

Plano de Contingência e Rollback Imediato

  • Se o operador ou a equipe do cliente relatar qualquer lentidão no PDV ou no ERP:
    1. Pausa Instantânea via Hub: Na tela da instalação no Hub, clicar em "Pausar processamento" (o Agent mantém apenas heartbeat passivo de 60s sem executar nenhum job no Firebird).
    2. Interrupção de Serviço Local: No Windows do cliente, via PowerShell/Prompt administrativo:
      net stop GTIFiscalAgent
      
    3. Desinstalação Rápida e Limpa: Executar C:\Program Files\GTI Fiscal Agent\uninstall.exe /S. O Agent é completamente desacoplado (processo externo ao ERP, sem triggers, sem procedures e sem DLLs injetadas no banco de dados).

2. Revisão de Segurança da Comunicação Agent-Hub (C.2)

  • Autenticação por Instalação:
    • Cada instalação possui installation_id único (UUID v4) e segredo criptográfico provisionado durante o enrollment.
    • O token de enrollment é temporário, descartável e expira em 1 hora ou após o primeiro uso.
  • Rotação e Expiração de Credenciais:
    • Sessões de comunicação utilizam tokens assinados com renovação periódica via heartbeat.
  • Protocolo em Caso de Vazamento de Token:
    • No Hub, o administrador aciona o botão "Revogar Instalação" (Revoke Installation).
    • A instalação tem seu status alterado para REVOKED no banco PostgreSQL.
    • O Hub recusa imediatamente qualquer chamada subsequente daquele token com HTTP 401/403, sem expor metadados internos.
  • Rate Limit por Instalação:
    • Middleware de proteção no Hub limita requisições de heartbeat e sincronização por instalação (máximo de 60 requisições/minuto por IP/instalação), prevenindo tempestades de requisições ou ataques de negação de serviço.
  • Higienização de Logs (Data Privacy):
    • O Agent e o Hub são configurados para registrar apenas metadados técnicos (código interno do produto, NCM, tipo de job, latência).
    • Zero dados sensíveis: É estritamente vedado o registro em logs de senhas de banco, tokens de autenticação completos, CPF/CNPJ de consumidores de notas fiscais, ou dados de pagamento.

3. Modo de Operação Recomendado para o Primeiro Cliente (C.3)

Protocolo Inicial: Somente Leitura e DRY-RUN

  • Para o primeiro cliente piloto, o sistema deve ser configurado com:
    • enrichment_mode = 'DRY_RUN' (Simulação ativa no Hub, geração de propostas e auditoria em memória, sem emissão de payload de gravação).
    • corrector_enabled = False (Sem correção automática de catálogo histórico).
    • write_allowlist desativada (WRITE_ALLOWED = False para todos os campos).

Número de Execuções e Período de Observação (N)

  • Duração Recomendada: Mínimo de N = 3 sincronizações completas ou 7 dias de operação contínua.

Critérios Objetivos de Saída do Modo Dry-Run

A transição do modo DRY_RUN para autorização de gravação assistida exige o cumprimento de 100% dos seguintes critérios:

  1. Zero Impacto no Firebird: Nenhuma ocorrência de timeout de conexão, lock conflict ou queixa de lentidão pelos operadores de caixa nos 7 dias.
  2. Revisão Humana das Propostas: 100% das propostas fiscais geradas pelo motor no relatório de simulação revisadas e aprovadas pelo operador/contador responsável.
  3. Conferência de Integridade do Catálogo: Ausência de propostas contraditórias entre produtos do mesmo grupo/família.
  4. Assinatura do Termo de Homologação: Aval formal do responsável contábil do cliente atestando que a parametrização atende ao regime tributário do estabelecimento.

4. Critérios de Seleção do Primeiro Cliente Piloto (C.4)

O operador deve avaliar as seguintes perguntas objetivas para selecionar a primeira loja piloto:

  1. Porte e Volume de Dados:
    • A loja possui catálogo pequeno a moderado (menos de 2.000 itens ativos) e até 3 caixas emissores?
    • (Recomendação: Evitar redes grandes ou supermercados com mais de 10.000 itens para o primeiro piloto).
  2. Regime Tributário (CRT):
    • O cliente é optante pelo Simples Nacional (CRT 1) e não é contribuinte de IPI?
    • (Recomendação: CRT 1 possui regras operacionais mais estáveis e menor complexidade de débitos/créditos em relação ao Regime Normal).
  3. Nicho de Atuação:
    • O cliente atua em segmento de comércio varejista simples (ex.: mercearia, papelaria, conveniência, pet shop) com produtos industrializados portadores de código de barras comercial (EAN-13)?
    • (Recomendação: Evitar açougues puros ou padarias com 100% de produtos pesáveis sem GTIN no primeiro teste).
  4. Relacionamento e Abertura do Cliente:
    • O proprietário da loja e a assessoria contábil estão cientes e concordam em participar do piloto tecnológico, com canal de comunicação direto para feedback?
    • (Recomendação: O cliente piloto deve ser parceiro próximo, acessível e receptivo).