Skip to content

Splinker log table#445

Open
feliperm17 wants to merge 5 commits into
developmentfrom
splinker-log-table
Open

Splinker log table#445
feliperm17 wants to merge 5 commits into
developmentfrom
splinker-log-table

Conversation

@feliperm17

Copy link
Copy Markdown
Contributor

No description provided.

…campos id, data_hora, max_tombo_hcf, sucesso (booleano) e log_saida (texto) para ter histórico de auditoria das execuções do JAR.

Adequação da Imagem Docker: O Dockerfile da pasta splinker foi modificado para instalar também o ecossistema do Node.js e o pacote pg. Isso garante que o container que roda o java também seja capaz de executar nossa ponte de captura em JS.
Script de Ingestão (save_logs.js): Criação de um script Node focado em ler de forma assíncrona a entrada de fluxo (process.stdin). Após receber todo o payload, ele avalia as expressões de sucesso no log, conecta ao PostgreSQL usando as credenciais vigentes, faz a query do MAX(hcf) da tabela tombos e persiste o relatório final na nova tabela de logs.
Pipeline via Bash (run_splinker.sh): Para não sujar o cron, criamos um shell script dedicado que basicamente roda o comando Java e faz o pipe da saída (stdout e stderr) direto para o script Node (java -jar ... | node save_logs.js).
Resolução de Escopo do Cron: Como daemons de cron limpam o contexto das variáveis de ambiente, o entrypoint.sh foi atualizado para extrair as variáveis do banco (do .env injetado pelo Docker) em um arquivo acessível que o shell script possa dar source antes de rodar o Node.js.
Comment thread splinker/compose.yml Outdated
Comment thread splinker/Dockerfile Outdated
Comment thread splinker/Dockerfile Outdated
Comment thread splinker/Dockerfile Outdated
Comment thread splinker/entrypoint.sh Outdated
Comment thread splinker/save_logs.ts Outdated
Comment thread splinker/save_logs.ts Outdated
Comment thread splinker/save_logs.ts Outdated
Comment thread splinker/save_logs.ts Outdated
Comment thread tsconfig.json Outdated
Comment thread splinker/run_splinker.sh Outdated
@feliperm17

Copy link
Copy Markdown
Contributor Author

O passo a passo de como rodar

  1. npm run migration:apply — cria a tabela splinker_execucoes
  2. cd splinker/ && cp .env.example .env — configura as variáveis DATABASE_*
  3. docker compose build — constrói a imagem
  4. docker compose up -d — sobe o container
  5. docker exec splinker /app/run_splinker.sh — executa manualmente para testar
  6. docker logs splinker — confirma que a saída do JAR aparece nos logs
  7. "SELECT * FROM splinker_execucoes " — confirma o registro no banco
  8. docker compose down — para tudo quando terminar

@edvaldoszy edvaldoszy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@feliperm17 faltou uma coisa só.
O projeto utiza yarn por padrão, e você está usando npm dentro do splinker. Converte para yarn, por favor.

@feliperm17 feliperm17 requested a review from edvaldoszy June 10, 2026 00:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants