commit facbe2e340858d843a707ab6b95216ccb7fb195b Author: Gustavo Santos Date: Thu Oct 1 14:25:48 2026 -0300 chore: initialize Slack coordinator reports monorepo Co-Authored-By: Claude Sonnet 5.5 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8c469df --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +.env +.env.* +!.env.example +node_modules/ +*.log +logs/ +*.sqlite +*.db +*.sql +output/ +tmp/ +.DS_Store +Thumbs.db diff --git a/README.md b/README.md new file mode 100644 index 0000000..6899b11 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# SLACK_COORD_RELATORIO + +Monorepo com dois componentes relacionados de automação GLPI/Slack, ambos +implementados como workflows n8n com lógica em Node.js testável: + +| Diretório | Componente | Função | +|---|---|---| +| `coordenador/` | Coordenador GLPI | Analisa os chamados abertos no GLPI em dias úteis, classifica cada um com IA e envia no Slack os 10 que precisam de ação humana. | +| `relatorio/` | Resumo/Relatório Operacional GLPI | Gera e envia ao Slack o resumo diário/semanal de chamados, com números determinísticos (SQL) e insights opcionais de IA. | + +Cada diretório tem README, testes e documentação próprios; comece por eles. + +## Relação entre os componentes + +- São projetos independentes em código: não há imports, arquivos ou paths + compartilhados entre `coordenador/` e `relatorio/`. +- Compartilham infraestrutura/runtime: a mesma instância n8n, o acesso + somente leitura ao MySQL do GLPI e o mesmo bot/canal Slack. +- Cada um mantém suas próprias Data Tables no n8n. + +## Testes + +```bash +cd coordenador && node --test +cd relatorio && node --test test/*.test.js +``` + +Os scripts de build (`tools/build*.js`) regravam os workflows gerados; leia o +README do componente antes de executá-los. + +## Histórico + +Os históricos Git originais dos dois projetos foram preservados nesta +consolidação (`git subtree add` sem squash). + +## Segredos + +Nenhum segredo vive neste repositório. Credenciais ficam no credential store +do n8n e os arquivos `.env` são ignorados (apenas `.env.example` é versionado).