Rotina de sincronismo de chamados entre ServiceNow e GLPI
Go to file
Rafael Lopes 00b573d60d HOTFIX: Correção do Bug Em PROD
- Travas foram adicionadas para que a reabertura nao seja feita
- Regra de desatribuição de usuario caso seja "Fora de Escopo"
2026-03-11 17:02:27 -03:00
config FIX: Correções de sincronização SN<->GLPI 2026-02-24 17:42:33 -03:00
docs HOTFIX: Reordenação de regras de negócio 2026-03-11 10:44:09 -03:00
src HOTFIX: Correção do Bug Em PROD 2026-03-11 17:02:27 -03:00
.env.example FIX: Mensagem de fechamento de chamado atualizado para versão menos agressiva 2026-03-04 17:33:57 -03:00
.gitignore FEATURE: Chamados reabertos possuem uma nova coloração 2026-03-04 18:15:53 -03:00
cron.js REFACTOR/BUG: Correção de bugs e alteção de run 2025-11-19 16:01:37 -03:00
ecosystem.config.js REFACTOR/BUG: Correção de bugs e alteção de run 2025-11-19 16:01:37 -03:00
package-lock.json CHORE: Unificando versoes 2026-02-19 11:05:52 -03:00
package.json REFACTOR/BUG: Correção de bugs e alteção de run 2025-11-19 16:01:37 -03:00
README.md DOC: Ajuste final para release em PROD 2026-03-04 16:48:23 -03:00

Sistema de Integracao ServiceNow <-> GLPI

Middleware Node.js para integrar chamados entre ServiceNow e GLPI, usando PostgreSQL como banco intermediario e acesso ao banco do GLPI.

Estado atual

  1. Coleta de tickets SN por watermark.
  2. Criacao/vinculo de tickets no GLPI.
  3. Sincronizacao de comentarios e tasks em duas direcoes.
  4. Preenchimento do campo "Ticket Externo" no SN com o ID GLPI.
  5. Monitor GLPI para status=5 (resolver SN) e status=6 (encerrar definitivamente no SN).
  6. Flags para desligar sincronizacao legada de status.

Fluxo do ciclo

Executado pelo main():

  1. processErrorController
  2. processTicketsController
  3. processCommentsController
  4. processGlpiClosureController (quando ENABLE_GLPI_CLOSE_CRON=true)
  5. processStatusAndClosureController apenas quando ENABLE_STATUS_SYNC=true

Documentacao detalhada

  1. Fluxo tecnico: docs/fluxo.md
  2. Regras de negocio completas: docs/regrasdenegocio.md
  3. Casos de uso: docs/casosdeuso.md
  4. Plano e checklist de rollout: docs/checklist.md

Variaveis de ambiente importantes

Feature flags

  1. ENABLE_STATUS_SYNC
    • true: liga fluxo legado de status bidirecional
    • false: desliga fluxo legado de status
  2. ENABLE_GLPI_CLOSE_CRON
    • true: liga monitor de fechamento definitivo GLPI=6
    • false: desliga monitor de fechamento definitivo

ServiceNow

  1. SERVICENOW_TABLE_INCIDENT_URL
  2. SERVICENOW_TABLE_REQUEST_URL
  3. SERVICENOW_TABLE_JOURNAL_URL
  4. SERVICENOW_SC_ITEM_OPTION_URL
  5. SERVICENOW_DEFAULT_USER
  6. SERVICENOW_IGNORE_DEFAULT_USER_JOURNAL
  7. SERVICENOW_EXTERNAL_TICKET_FIELD (default: u_external_ticket)

GLPI e banco intermediario

  1. GLPI_DB_*
  2. SNGLPI_DB_*
  3. GLPI_OOS_SOLUTION_TYPE_ID

Desenvolvimento

  1. Instalar dependencias:
npm install
  1. Criar env:
copy .env.example .env.development
  1. Executar:
npm run dev

Producao

  1. PM2:
pm2 start ecosystem.config.js --env production

Observacoes

  1. O projeto ainda nao tem suite automatizada robusta.
  2. O rollout recomendado e por fases com feature flags.
  3. Nao remover schema legado antes de estabilizar o fluxo novo.
  4. Consulte docs/checklist.md antes de cada deploy para validar pre e pos-subida.