Pular para o conteúdo

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.

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.

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.

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.

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.

Quando necessário, você pode habilitar:

SDK.verbose = true;

Isso ajuda durante desenvolvimento e depuração local.

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.
  • 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.