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
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
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
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
Para testes, o SDK expõe o flag:
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
Quando necessário, você pode habilitar:
Isso ajuda durante desenvolvimento e depuração local.
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
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.
Last updated