Build, deploy e testes
O SDK atual não cobre apenas runtime. Ele também participa do empacotamento do projeto, da estratégia de logging e dos testes locais.
Build e empacotamento
Seção intitulada “Build e empacotamento”O pacote público expõe tooling de build em @tunnelhub/sdk/building e o bin tunnelhub-sdk-esbuild.
Esse fluxo lê a configuração do projeto, usa tunnelhub.yml como referência e normalmente gera um artefato ZIP para deploy.
Na prática, isso ajuda a padronizar:
- entrypoint;
- runtime;
- memória e timeout;
- arquivos incluídos no bundle;
- artefato final esperado pela CLI.
Estratégia de logging
Seção intitulada “Estratégia de logging”O SDK escolhe entre logging em tempo real e logging em lote conforme o volume e o perfil da execução.
Em alto nível:
- cargas pequenas tendem a usar logging em tempo real;
- cargas muito grandes tendem a usar modo em lote;
- flows podem ajustar limiares protegidos para adaptar o comportamento.
Esse desenho melhora custo e performance sem exigir lógica manual em cada integração.
Observabilidade
Seção intitulada “Observabilidade”Os logs da automação alimentam as telas de monitoramento da plataforma. A qualidade dos metadados e das mensagens impacta diretamente a capacidade de suporte e investigação.
Boas práticas:
- incluir identificadores de negócio nos metadados;
- evitar mensagens genéricas demais;
- diferenciar erro técnico de erro funcional;
- usar
setupInterceptor()apenas quando o ganho investigativo justificar.
Testes locais
Seção intitulada “Testes locais”Para testes, o SDK expõe o flag:
SDK.testMode = true;Esse modo é recomendado para suítes Jest e cenários de mock de serviços AWS ou chamadas externas.
Para SqlTables, o modo de teste apenas desativa a validação de runtime no construtor. Faça mock explícito dos métodos
usados, como queryRows e insertRow; ele não cria SQLite local, EFS ou persistência. Consulte Tabelas de Apoio
para um exemplo com fixtures JSON e armazenamento em memória.
Modo verboso
Seção intitulada “Modo verboso”Quando necessário, você pode habilitar:
SDK.verbose = true;Isso ajuda durante desenvolvimento e depuração local.
O que vale testar em uma automação
Seção intitulada “O que vale testar em uma automação”Checklist mínimo:
- handler chama
AutomationExecution.executeAutomation(...)corretamente; - flow instancia sem erro com payload mínimo;
defineMetadata()está válida;- principal caminho feliz da integração está coberto;
- erros relevantes retornam mensagens operacionais úteis.
Troubleshooting comum
Seção intitulada “Troubleshooting comum”- parâmetro obrigatório ausente: valide o cadastro no produto e o helper usado no código;
- Tabela De/Para ou Sequência não encontrada: confirme código, ambiente e associação correta;
- erro de metadata: revise labels reservadas e tipos inválidos;
- artefato inconsistente: confira
tunnelhub.yml, entrypoint e caminho do ZIP antes do deploy.