Pular para o conteúdo principal

Integração com ServiceNow

A integração com ServiceNow (Admin > Configurações > ServiceNow) permite a sincronização bidirecional entre o Canopy e seu ServiceNow CMDB. Este guia cobre tudo, desde a configuração inicial até receitas avançadas e melhores práticas operacionais.

Integração com ServiceNow

Por que Integrar o ServiceNow com o Canopy?

O ServiceNow CMDB e as ferramentas de Arquitetura Empresarial servem a propósitos diferentes, mas complementares:

ServiceNow CMDBCanopy
FocoOperações de TI — o que está em execução, quem é responsável, quais incidentes ocorreramPlanejamento estratégico — como a cenário deve ser daqui a 3 anos?
Mantido porOperações de TI, Gestão de AtivosEquipe de EA, Arquitetos de Negócio
Ponto forteDescoberta automatizada, fluxos de trabalho ITSM, precisão operacionalContexto de negócio, mapeamento de capacidades, planejamento de ciclo de vida, avaliações
Dados típicosNomes de host, IPs, status de instalação, grupos de atribuição, contratosCriticidade de negócio, adequação funcional, débito técnico, roadmap estratégico

O Canopy é o sistema de registro para sua cenário de arquitetura — nomes, descrições, planos de ciclo de vida, avaliações e contexto de negócio residem aqui. O ServiceNow complementa o Canopy com metadados operacionais e técnicos (nomes de host, IPs, dados de SLA, status de instalação) provenientes de descoberta automatizada e fluxos de trabalho ITSM. A integração mantém os dois sistemas conectados, respeitando que o Canopy lidera.

O que Você Pode Fazer

  • Sincronização pull — Alimente o Canopy com CIs do ServiceNow e depois assuma a propriedade. Pulls subsequentes atualizam apenas campos operacionais (IPs, status, SLAs) que o SNOW descobre automaticamente
  • Sincronização push — Exporte dados curados pelo EA de volta para o ServiceNow (nomes, descrições, avaliações, planos de ciclo de vida) para que as equipes ITSM vejam o contexto do EA
  • Sincronização bidirecional — O Canopy lidera a maioria dos campos; o SNOW lidera um pequeno conjunto de campos operacionais/técnicos. Ambos os sistemas permanecem sincronizados
  • Mapeamento de identidade — Rastreamento persistente de referência cruzada (sys_id <-> card UUID) garante que os registros permaneçam vinculados entre sincronizações

Arquitetura da Integração

+------------------+ HTTPS / Table API +------------------+
| Canopy | <--------------------------------> | ServiceNow |
| | | |
| Cards | Pull: SNOW CIs -> Turbo Cards | CMDB CIs |
| (Application, | Push: Turbo Cards -> SNOW CIs | (cmdb_ci_appl, |
| ITComponent, | | cmdb_ci_server, |
| Provider, ...) | Identity Map tracks sys_id &lt;-> UUID | core_company) |
+------------------+ +------------------+

A integração utiliza a Table API do ServiceNow sobre HTTPS. As credenciais são criptografadas em repouso usando Fernet (AES-128-CBC) derivado da sua SECRET_KEY. Todas as operações de sincronização são registradas como eventos com source: "servicenow_sync" para uma trilha de auditoria completa.


Planejando sua Integração

Antes de configurar qualquer coisa, responda a estas perguntas:

1. Quais tipos de card precisam de dados do ServiceNow?

Comece pequeno. Os pontos de integração mais comuns são:

PrioridadeTipo no CanopyOrigem no ServiceNowPor quê
AltaApplicationcmdb_ci_business_appAplicações são o núcleo do EA — o CMDB possui nomes, proprietários e status oficiais
AltaITComponent (Software)cmdb_ci_spkgProdutos de software alimentam o rastreamento de EOL e o radar tecnológico
MédiaITComponent (Hardware)cmdb_ci_serverPaisagem de servidores para mapeamento de infraestrutura
MédiaProvidercore_companyRegistro de fornecedores para gestão de custos e relacionamentos
BaixaInterfacecmdb_ci_endpointEndpoints de integração (frequentemente mantidos manualmente no EA)
BaixaDataObjectcmdb_ci_databaseInstâncias de banco de dados

2. Qual sistema é a fonte da verdade para cada campo?

Esta é a decisão mais importante. O padrão deve ser Canopy lidera — a ferramenta de EA é o sistema de registro para sua cenário de arquitetura. O ServiceNow deve liderar apenas para um conjunto restrito de campos operacionais e técnicos provenientes de descoberta automatizada ou fluxos de trabalho ITSM. Todo o resto — nomes, descrições, avaliações, planejamento de ciclo de vida, custos — é de propriedade e curadoria da equipe de EA no Canopy.

Modelo recomendado — "Canopy lidera, SNOW complementa":

Tipo de CampoFonte da VerdadePor quê
Nomes e descriçõesTurbo lideraA equipe de EA cura nomes oficiais e escreve descrições estratégicas; nomes no CMDB podem ser confusos ou gerados automaticamente
Criticidade de negócioTurbo lideraAvaliação estratégica da equipe de EA — não são dados operacionais
Adequação funcional / técnicaTurbo lideraPontuações do modelo TIME são uma preocupação do EA
Ciclo de vida (todas as fases)Turbo lideraPlan, phaseIn, active, phaseOut, endOfLife — todos são dados de planejamento do EA
Dados de custoTurbo lideraO EA rastreia o custo total de propriedade; o CMDB pode ter itens de contrato, mas o EA possui a visão consolidada
Tipo de hospedagem, categoriaTurbo lideraO EA classifica aplicações por modelo de hospedagem para análise estratégica
Metadados técnicosSNOW lideraIPs, versões de SO, nomes de host, números de série — dados de descoberta automatizada que o EA não mantém
SLA / status operacionalSNOW lideraStatus de instalação, metas de SLA, métricas de disponibilidade — dados operacionais ITSM
Grupo de atribuição / suporteSNOW lideraPropriedade operacional rastreada nos fluxos de trabalho do ServiceNow
Datas de descobertaSNOW lideraPrimeira/última descoberta, último escaneamento — metadados de automação do CMDB

3. Com que frequência você deve sincronizar?

CenárioFrequênciaObservações
Importação inicialUma vezModo aditivo, revise cuidadosamente
Gestão ativa da cenárioDiariamenteAutomatizado via cron fora do horário de pico
Relatórios de conformidadeSemanalmenteAntes de gerar relatórios
Ad-hocConforme necessárioAntes de grandes revisões ou apresentações de EA

Passo 1: Pré-requisitos do ServiceNow

Criar uma Conta de Serviço

No ServiceNow, crie uma conta de serviço dedicada (nunca use contas pessoais):

PapelFinalidadeObrigatório?
itilAcesso de leitura às tabelas do CMDBSim
cmdb_readLeitura de Configuration ItemsSim
rest_api_explorerÚtil para testar consultasRecomendado
import_adminAcesso de escrita nas tabelas de destinoApenas para sincronização push

Melhor prática: Crie um papel personalizado com acesso somente leitura apenas às tabelas específicas que planeja sincronizar. O papel itil é amplo — um papel com escopo personalizado limita o raio de impacto.

Requisitos de Rede

  • O backend do Canopy deve alcançar sua instância SNOW via HTTPS (porta 443)
  • Configure regras de firewall e listas de IPs permitidos
  • Formato da URL da instância: https://empresa.service-now.com ou https://empresa.servicenowservices.com

Escolher o Método de Autenticação

MétodoVantagensDesvantagensRecomendação
Basic AuthConfiguração simplesCredenciais enviadas a cada requisiçãoApenas para desenvolvimento/testes
OAuth 2.0Baseado em token, com escopo, auditávelMais etapas de configuraçãoRecomendado para produção

Para OAuth 2.0:

  1. No ServiceNow: System OAuth > Application Registry
  2. Crie um novo endpoint OAuth API para clientes externos
  3. Anote o Client ID e Client Secret
  4. Rotacione os secrets em um ciclo de 90 dias

Passo 2: Criar uma Conexão

Navegue até Admin > ServiceNow > aba Conexões.

Criar e Testar

  1. Clique em Adicionar Conexão
  2. Preencha:
CampoValor de ExemploObservações
NomeCMDB ProduçãoRótulo descritivo para sua equipe
URL da Instânciahttps://empresa.service-now.comDeve usar HTTPS
Tipo de AutenticaçãoBasic Auth ou OAuth 2.0OAuth recomendado para produção
Credenciais(conforme tipo de autenticação)Criptografadas em repouso via Fernet
  1. Clique em Criar, depois clique no ícone de teste (símbolo de wifi) para verificar a conectividade
  • Chip verde "Conectado" — Pronto para uso
  • Chip vermelho "Falhou" — Verifique credenciais, rede e URL

Múltiplas Conexões

Você pode criar múltiplas conexões para:

  • Instâncias de produção vs desenvolvimento
  • Instâncias SNOW regionais (ex.: EMEA, APAC)
  • Equipes diferentes com contas de serviço separadas

Cada mapeamento referencia uma conexão específica.


Passo 3: Projetar seus Mapeamentos

Mude para a aba Mapeamentos. Um mapeamento conecta um tipo de card do Canopy a uma tabela do ServiceNow.

Criar um Mapeamento

Clique em Adicionar Mapeamento e configure:

CampoDescriçãoExemplo
ConexãoQual instância do ServiceNow usarCMDB Produção
Tipo de CardO tipo de card do Canopy a sincronizarApplication
Tabela SNOWO nome API da tabela do ServiceNowcmdb_ci_business_app
Direção da SincronizaçãoQuais operações estão disponíveis (veja abaixo)ServiceNow -> Canopy
Modo de SincronizaçãoComo lidar com exclusõesConservador
Taxa Máxima de ExclusãoLimite de segurança para exclusões em massa50%
Consulta de FiltroConsulta codificada do ServiceNow para limitar o escopoactive=true^install_status=1
Pular StagingAplicar alterações diretamente sem revisãoDesativado (recomendado para sincronização inicial)

Mapeamentos Comuns de Tabelas SNOW

Tipo no CanopyTabela no ServiceNowDescrição
Applicationcmdb_ci_business_appAplicações de negócio (mais comum)
Applicationcmdb_ci_applCIs de aplicação gerais
ITComponent (Software)cmdb_ci_spkgPacotes de software
ITComponent (Hardware)cmdb_ci_serverServidores físicos/virtuais
ITComponent (SaaS)cmdb_ci_cloud_service_accountContas de serviços em nuvem
Providercore_companyFornecedores / empresas
Interfacecmdb_ci_endpointEndpoints de integração
DataObjectcmdb_ci_databaseInstâncias de banco de dados
Systemcmdb_ci_computerCIs de computador
Organizationcmn_departmentDepartamentos

Exemplos de Consulta de Filtro

Sempre filtre para evitar importar registros obsoletos ou desativados:

# Apenas CIs ativos (filtro mínimo recomendado)
active=true

# CIs ativos com status de instalação "Instalado"
active=true^install_status=1

# Aplicações em uso de produção
active=true^used_for=Production

# CIs atualizados nos últimos 30 dias
active=true^sys_updated_on>=javascript:gs.daysAgoStart(30)

# Grupo de atribuição específico
active=true^assignment_group.name=IT Operations

# Excluir CIs desativados
active=true^install_statusNOT IN7,8

Melhor prática: Sempre inclua active=true no mínimo. Tabelas do CMDB frequentemente contêm milhares de registros desativados ou descomissionados que não devem ser importados para sua cenário de EA.


Passo 4: Configurar Mapeamentos de Campos

Cada mapeamento contém mapeamentos de campos que definem como os campos individuais são traduzidos entre os dois sistemas. O campo Canopy Field oferece sugestões de autocompletar baseadas no tipo de card selecionado — incluindo campos principais, datas de ciclo de vida e todos os atributos personalizados do esquema do tipo.

Adicionar Campos

Para cada mapeamento de campo, você configura:

ConfiguraçãoDescrição
Campo CanopyCaminho do campo no Canopy (o autocompletar sugere opções baseadas no tipo de card)
Campo SNOWNome da coluna API do ServiceNow (ex.: name, short_description)
DireçãoFonte da verdade por campo: SNOW lidera ou Turbo lidera
TransformaçãoComo converter valores: Direto, Mapa de Valores, Data, Booleano
Identidade (checkbox ID)Usado para correspondência de registros durante a sincronização inicial

Caminhos de Campo do Canopy

O autocompletar agrupa campos por seção. Aqui está a referência completa de caminhos:

CaminhoDestinoValor de Exemplo
nameNome de exibição do card"SAP S/4HANA"
descriptionDescrição do card"Sistema ERP principal para finanças"
lifecycle.planCiclo de vida: Data de planejamento"2024-01-15"
lifecycle.phaseInCiclo de vida: Data de introdução"2024-03-01"
lifecycle.activeCiclo de vida: Data de ativação"2024-06-01"
lifecycle.phaseOutCiclo de vida: Data de descontinuação"2028-12-31"
lifecycle.endOfLifeCiclo de vida: Data de fim de vida"2029-06-30"
attributes.<key>Qualquer atributo personalizado do esquema de campos do tipo de cardVaria conforme o tipo de campo

Por exemplo, se seu tipo Application possui um campo com a chave businessCriticality, selecione attributes.businessCriticality no menu suspenso.

Campos de Identidade — Como Funciona a Correspondência

Marque um ou mais campos como Identidade (ícone de chave). Esses são usados durante a primeira sincronização para corresponder registros do ServiceNow a cards existentes no Canopy:

  1. Consulta ao mapa de identidade — Se um vínculo sys_id <-> card UUID já existir, use-o
  2. Correspondência exata de nome — Correspondência pelo valor do campo de identidade (ex.: correspondência pelo nome da aplicação)
  3. Correspondência aproximada — Se não houver correspondência exata, usa SequenceMatcher com limite de similaridade de 85%

Melhor prática: Sempre marque o campo name como campo de identidade. Se os nomes diferirem entre os sistemas (ex.: SNOW inclui números de versão como "SAP S/4HANA v2.1", mas o Canopy tem "SAP S/4HANA"), limpe-os antes da primeira sincronização para melhor qualidade de correspondência.

Após a primeira sincronização estabelecer vínculos no mapa de identidade, sincronizações subsequentes usam o mapa de identidade persistente e não dependem da correspondência por nome.


Passo 5: Executar sua Primeira Sincronização

Mude para a aba Painel de Sincronização.

Disparar uma Sincronização

Para cada mapeamento ativo, você vê botões Pull e/ou Push dependendo da direção de sincronização configurada:

  • Pull (ícone de download na nuvem) — Busca dados do SNOW para o Canopy
  • Push (ícone de upload na nuvem) — Envia dados do Canopy para o ServiceNow

O que Acontece Durante uma Sincronização Pull

1. BUSCAR Recuperar todos os registros correspondentes do SNOW (lotes de 500)
2. COMBINAR Combinar cada registro com um card existente:
a) Mapa de identidade (consulta persistente sys_id &lt;-> card UUID)
b) Correspondência exata de nome nos campos de identidade
c) Correspondência aproximada de nome (limite de similaridade de 85%)
3. TRANSFORMAR Aplicar mapeamentos de campo para converter formato SNOW -> Canopy
4. COMPARAR Comparar dados transformados com os campos existentes do card
5. STAGING Atribuir uma ação a cada registro:
- create: Novo, nenhum card correspondente encontrado
- update: Correspondência encontrada, campos diferem
- skip: Correspondência encontrada, sem diferenças
- delete: No mapa de identidade mas ausente do SNOW
6. APLICAR Executar ações em staging (criar/atualizar/arquivar cards)

Quando Pular Staging está ativado, os passos 5 e 6 se fundem — as ações são aplicadas diretamente sem gravar registros em staging.

Revisando os Resultados da Sincronização

A tabela Histórico de Sincronização mostra após cada execução:

ColunaDescrição
IniciadoQuando a sincronização começou
DireçãoPull ou Push
Statuscompleted, failed ou running
BuscadosTotal de registros recuperados do ServiceNow
CriadosNovos cards criados no Canopy
AtualizadosCards existentes atualizados
ExcluídosCards arquivados (exclusão suave)
ErrosRegistros que falharam no processamento
DuraçãoTempo total de execução

Clique no ícone de lista em qualquer execução para inspecionar registros individuais em staging, incluindo a diferença campo a campo para cada atualização.

Procedimento Recomendado para a Primeira Sincronização

1. Definir mapeamento para modo ADITIVO com staging ATIVADO
2. Executar sincronização pull
3. Revisar registros em staging — verificar se as criações estão corretas
4. Ir ao Inventário, verificar os cards importados
5. Ajustar mapeamentos de campo ou consulta de filtro se necessário
6. Executar novamente até ficar satisfeito
7. Mudar para modo CONSERVADOR para uso contínuo
8. Após várias execuções bem-sucedidas, ativar Pular Staging

Entendendo Direção de Sincronização vs Direção de Campo

Este é o conceito mais comumente mal interpretado. Existem dois níveis de direção que trabalham juntos:

Nível de Tabela: Direção da Sincronização

Definida no próprio mapeamento. Controla quais operações de sincronização estão disponíveis no Painel de Sincronização:

Direção da SincronizaçãoBotão Pull?Botão Push?Usar quando...
ServiceNow -> CanopySimNãoO CMDB é a fonte principal, você apenas importa
Canopy -> ServiceNowNãoSimA ferramenta de EA enriquece o CMDB com avaliações
BidirecionalSimSimAmbos os sistemas contribuem com campos diferentes

Nível de Campo: Direção

Definida por mapeamento de campo. Controla qual valor do sistema prevalece durante uma execução de sincronização:

Direção do CampoDurante Pull (SNOW -> Turbo)Durante Push (Turbo -> SNOW)
SNOW lideraValor é importado do ServiceNowValor é ignorado (não enviado)
Turbo lideraValor é ignorado (não sobrescrito)Valor é exportado para o ServiceNow

Como Funcionam Juntos — Exemplo

Mapeamento: Application <-> cmdb_ci_business_app, Bidirecional

CampoDireçãoPull faz...Push faz...
nameTurbo lideraIgnora (EA cura nomes)Envia nome do EA -> SNOW
descriptionTurbo lideraIgnora (EA escreve descrições)Envia descrição -> SNOW
lifecycle.activeTurbo lideraIgnora (EA gerencia ciclo de vida)Envia data de go-live -> SNOW
attributes.businessCriticalityTurbo lideraIgnora (avaliação do EA)Envia avaliação -> campo personalizado SNOW
attributes.ipAddressSNOW lideraImporta IP da descobertaIgnora (dados operacionais)
attributes.installStatusSNOW lideraImporta status operacionalIgnora (dados ITSM)

Insight chave: A direção no nível da tabela determina quais botões aparecem. A direção no nível do campo determina quais campos realmente são transferidos durante cada operação. Um mapeamento bidirecional onde o Canopy lidera a maioria dos campos e o SNOW lidera apenas campos operacionais/técnicos é a configuração mais poderosa.

Melhor Prática: Direção de Campo por Tipo de Dado

O padrão deve ser Turbo lidera para a grande maioria dos campos. Defina SNOW lidera apenas para metadados operacionais e técnicos provenientes de descoberta automatizada ou fluxos de trabalho ITSM.

Categoria de DadosDireção RecomendadaJustificativa
Nomes, rótulos de exibiçãoTurbo lideraA equipe de EA cura nomes oficiais e limpos — nomes no CMDB são frequentemente gerados automaticamente ou inconsistentes
DescriçãoTurbo lideraDescrições do EA capturam contexto estratégico, valor de negócio e significado arquitetural
Criticidade de negócio (modelo TIME)Turbo lideraAvaliação essencial do EA — não são dados operacionais
Adequação funcional/técnicaTurbo lideraPontuação e classificação de roadmap específicas do EA
Ciclo de vida (todas as fases)Turbo lideraPlan, phaseIn, active, phaseOut, endOfLife são decisões de planejamento do EA
Dados de custoTurbo lideraO EA rastreia o custo total de propriedade e alocação orçamentária
Tipo de hospedagem, classificaçãoTurbo lideraCategorização estratégica mantida por arquitetos
Informações de fornecedor/provedorTurbo lideraO EA gerencia estratégia de fornecedores, contratos e risco — o SNOW pode ter um nome de fornecedor, mas o EA possui o relacionamento
Metadados técnicos (SO, IP, hostname)SNOW lideraDados de descoberta automatizada — o EA não mantém isso
Metas de SLA, métricas de disponibilidadeSNOW lideraDados operacionais de fluxos de trabalho ITSM
Status de instalação, estado operacionalSNOW lideraO CMDB rastreia se um CI está instalado, desativado, etc.
Grupo de atribuição, equipe de suporteSNOW lideraPropriedade operacional gerenciada no ServiceNow
Metadados de descoberta (primeiro/último visto)SNOW lideraTimestamps de automação do CMDB

Pular Staging — Quando Usar

Por padrão, sincronizações pull seguem um fluxo de trabalho stage-e-depois-aplique:

Buscar -> Combinar -> Transformar -> Comparar -> STAGING -> Revisar -> APLICAR

Os registros são gravados em uma tabela de staging, permitindo que você revise o que será alterado antes de aplicar. Isso é visível no Painel de Sincronização em "Ver registros em staging."

Modo Pular Staging

Quando você ativa Pular Staging em um mapeamento, os registros são aplicados diretamente:

Buscar -> Combinar -> Transformar -> Comparar -> APLICAR DIRETAMENTE

Nenhum registro de staging é criado — as alterações acontecem imediatamente.

Staging (padrão)Pular Staging
Etapa de revisãoSim — inspecione diferenças antes de aplicarNão — alterações são aplicadas imediatamente
Tabela de registros em stagingPreenchida com entradas de criação/atualização/exclusãoNão preenchida
Trilha de auditoriaRegistros em staging + histórico de eventosApenas histórico de eventos
DesempenhoLigeiramente mais lento (grava linhas de staging)Ligeiramente mais rápido
DesfazerPode abortar antes de aplicarDeve reverter manualmente

Quando Usar Cada Um

CenárioRecomendação
Primeira importaçãoUsar staging — Revise o que será criado antes de aplicar
Mapeamento novo ou alteradoUsar staging — Verifique se as transformações de campo produzem saída correta
Mapeamento estável e bem testadoPular staging — Não há necessidade de revisar cada execução
Sincronizações diárias automatizadas (cron)Pular staging — Execuções autônomas não podem esperar por revisão
CMDB grande (10.000+ CIs)Pular staging — Evita criar milhares de linhas de staging
Ambiente sensível a conformidadeUsar staging — Mantenha trilha de auditoria completa na tabela de staging

Melhor prática: Comece com staging ativado nas suas primeiras sincronizações. Quando estiver confiante de que o mapeamento produz resultados corretos, ative pular staging para execuções automatizadas.


Modos de Sincronização e Segurança de Exclusão

Modos de Sincronização

ModoCriaçõesAtualizaçõesExclusõesMelhor Para
AditivoSimSimNuncaImportações iniciais, ambientes de baixo risco
ConservadorSimSimApenas cards criados pela sincronizaçãoPadrão para sincronizações contínuas
EstritoSimSimTodos os cards vinculadosEspelho completo do CMDB

Aditivo nunca remove cards do Canopy, tornando-o a opção mais segura para primeiras importações e ambientes onde o Canopy contém cards não presentes no ServiceNow (cards criados manualmente, cards de outras fontes).

Conservador (padrão) rastreia se cada card foi originalmente criado pelo motor de sincronização. Apenas esses cards podem ser auto-arquivados se desaparecerem do ServiceNow. Cards criados manualmente no Canopy ou importados de outras fontes nunca são afetados.

Estrito arquiva qualquer card vinculado cujo CI correspondente no ServiceNow não aparece mais nos resultados da consulta, independentemente de quem o criou. Use isso apenas quando o ServiceNow for a fonte absoluta da verdade e você quiser que o Canopy o espelhe exatamente.

Taxa Máxima de Exclusão — Rede de Segurança

Como rede de segurança, o motor ignora todas as exclusões se a contagem exceder a taxa configurada:

exclusões / total_vinculados > taxa_máxima_exclusão -> IGNORAR TODAS AS EXCLUSÕES

Exemplo com 10 registros vinculados e limite de 50%:

CenárioExclusõesTaxaResultado
3 CIs removidos normalmente3 / 10 = 30%Abaixo do limiteExclusões prosseguem
6 CIs removidos de uma vez6 / 10 = 60%Acima do limiteTodas as exclusões ignoradas
SNOW retorna vazio (indisponibilidade)10 / 10 = 100%Acima do limiteTodas as exclusões ignoradas

Isso previne perda catastrófica de dados causada por alterações na consulta de filtro, indisponibilidades temporárias do ServiceNow ou nomes de tabela mal configurados.

Melhor prática: Mantenha a taxa de exclusão em 50% ou menos para tabelas com menos de 100 registros. Para tabelas grandes (1.000+), você pode definir com segurança em 25%.

Progressão Recomendada

Semana 1: Modo ADITIVO, staging ATIVADO, executar manualmente, revisar cada registro
Semana 2-4: Modo CONSERVADOR, staging ATIVADO, executar diariamente, verificar resultados por amostragem
Mês 2+: Modo CONSERVADOR, staging DESATIVADO (pular), cron diário automatizado

Receitas Recomendadas por Tipo

Receita 1: Aplicações do CMDB (Mais Comum)

Objetivo: Importar a cenário de aplicações do ServiceNow e depois assumir a propriedade de nomes, descrições, avaliações e ciclo de vida no Canopy. O SNOW lidera apenas campos operacionais.

Mapeamento:

ConfiguraçãoValor
Tipo de CardApplication
Tabela SNOWcmdb_ci_business_app
DireçãoBidirecional
ModoConservador
Filtroactive=true^install_status=1

Mapeamentos de campo:

Campo CanopyCampo SNOWDireçãoTransformaçãoID?
namenameTurbo lideraDiretoSim
descriptionshort_descriptionTurbo lideraDireto
lifecycle.activego_live_dateTurbo lideraData
lifecycle.endOfLiferetirement_dateTurbo lideraData
attributes.businessCriticalitybusines_criticalityTurbo lideraMapa de Valores
attributes.hostingTypehosting_typeTurbo lideraDireto
attributes.installStatusinstall_statusSNOW lideraDireto
attributes.ipAddressip_addressSNOW lideraDireto

Configuração do mapa de valores para businessCriticality:

{
"mapping": {
"1 - most critical": "missionCritical",
"2 - somewhat critical": "businessCritical",
"3 - less critical": "businessOperational",
"4 - not critical": "administrativeService"
}
}

Dica para a primeira sincronização: No primeiro pull, os valores do SNOW preenchem todos os campos (já que os cards ainda não existem). Depois disso, os campos liderados pelo Turbo são de propriedade da equipe de EA — pulls subsequentes atualizam apenas os campos operacionais liderados pelo SNOW (status de instalação, IP), enquanto a equipe de EA gerencia todo o resto diretamente no Canopy.

Após a importação: Refine os nomes das aplicações, escreva descrições estratégicas, mapeie para Capacidades de Negócio, adicione avaliações de adequação funcional/técnica e defina fases do ciclo de vida — tudo isso agora é de propriedade do Canopy e será enviado de volta ao ServiceNow nas sincronizações push.


Receita 2: Componentes de TI (Servidores)

Objetivo: Importar a infraestrutura de servidores para mapeamento de infraestrutura e análise de dependências. Servidores são mais operacionais que aplicações, então mais campos vêm do SNOW — mas o Canopy ainda lidera nomes e descrições.

Mapeamento:

ConfiguraçãoValor
Tipo de CardITComponent
Tabela SNOWcmdb_ci_server
DireçãoBidirecional
ModoConservador
Filtroactive=true^hardware_statusNOT IN6,7

Mapeamentos de campo:

Campo CanopyCampo SNOWDireçãoTransformaçãoID?
namenameTurbo lideraDiretoSim
descriptionshort_descriptionTurbo lideraDireto
attributes.manufacturermanufacturer.nameTurbo lideraDireto
attributes.operatingSystemosSNOW lideraDireto
attributes.ipAddressip_addressSNOW lideraDireto
attributes.serialNumberserial_numberSNOW lideraDireto
attributes.hostnamehost_nameSNOW lideraDireto

Observação: Para servidores, campos operacionais/de descoberta como SO, IP, número de série e hostname naturalmente vêm da descoberta automatizada do SNOW. Mas a equipe de EA ainda possui o nome de exibição (que pode diferir do hostname) e a descrição para contexto estratégico.

Após a importação: Vincule Componentes de TI a Aplicações usando relações, o que alimenta o grafo de dependências e os relatórios de infraestrutura.


Receita 3: Produtos de Software com Rastreamento de EOL

Objetivo: Importar produtos de software e combinar com a integração endoflife.date do Canopy. O Canopy lidera em nomes, descrições e fornecedor — a versão é um campo factual que o SNOW pode liderar.

Mapeamento:

ConfiguraçãoValor
Tipo de CardITComponent
Tabela SNOWcmdb_ci_spkg
DireçãoBidirecional
ModoConservador
Filtroactive=true

Mapeamentos de campo:

Campo CanopyCampo SNOWDireçãoTransformaçãoID?
namenameTurbo lideraDiretoSim
descriptionshort_descriptionTurbo lideraDireto
attributes.versionversionSNOW lideraDireto
attributes.vendormanufacturer.nameTurbo lideraDireto

Após a importação: Vá em Admin > EOL e use Busca em Massa para automaticamente corresponder Componentes de TI importados com produtos do endoflife.date. Isso fornece rastreamento automatizado de risco EOL que combina inventário do CMDB com dados públicos de ciclo de vida.


Receita 4: Fornecedores / Provedores (Bidirecional)

Objetivo: Manter o registro de fornecedores sincronizado. O Canopy possui nomes de fornecedores, descrições e contexto estratégico. O SNOW complementa com dados operacionais de contato.

Mapeamento:

ConfiguraçãoValor
Tipo de CardProvider
Tabela SNOWcore_company
DireçãoBidirecional
ModoAditivo
Filtrovendor=true

Mapeamentos de campo:

Campo CanopyCampo SNOWDireçãoTransformaçãoID?
namenameTurbo lideraDiretoSim
descriptionnotesTurbo lideraDireto
attributes.websitewebsiteTurbo lideraDireto
attributes.contactEmailemailSNOW lideraDireto

Por que o Turbo lidera na maioria dos campos: A equipe de EA cura a estratégia de fornecedores, gerencia relacionamentos e rastreia riscos — isso inclui o nome de exibição do fornecedor, descrição e presença web. O SNOW lidera apenas em dados operacionais de contato que podem ser atualizados por equipes de compras ou gestão de ativos.


Receita 5: Enviar Avaliações do EA de Volta ao ServiceNow

Objetivo: Exportar avaliações específicas do EA para campos personalizados do ServiceNow para que as equipes ITSM possam ver o contexto do EA.

Mapeamento:

ConfiguraçãoValor
Tipo de CardApplication
Tabela SNOWcmdb_ci_business_app
DireçãoCanopy -> ServiceNow
ModoAditivo

Mapeamentos de campo:

Campo CanopyCampo SNOWDireçãoTransformaçãoID?
namenameSNOW lideraDiretoSim
attributes.businessCriticalityu_ea_business_criticalityTurbo lideraMapa de Valores
attributes.functionalSuitabilityu_ea_functional_fitTurbo lideraMapa de Valores
attributes.technicalSuitabilityu_ea_technical_fitTurbo lideraMapa de Valores

Importante: A sincronização push para campos personalizados (prefixados com u_) requer que essas colunas já existam no ServiceNow. Trabalhe com seu administrador do ServiceNow para criá-las antes de configurar o mapeamento de push. A conta de serviço precisa do papel import_admin para acesso de escrita.

Por que isso importa: As equipes ITSM veem as avaliações do EA diretamente nos fluxos de trabalho de incidentes/mudanças do ServiceNow. Quando uma aplicação "Missão Crítica" tem um incidente, as regras de escalonamento de prioridade podem usar a pontuação de criticidade fornecida pelo EA.


Referência de Tipos de Transformação

Direto (padrão)

Passa o valor sem alteração. Use para campos de texto que possuem o mesmo formato em ambos os sistemas.

Mapa de Valores

Traduz valores enumerados entre sistemas. Configure com um mapeamento JSON:

{
"mapping": {
"1": "missionCritical",
"2": "businessCritical",
"3": "businessOperational",
"4": "administrativeService"
}
}

O mapeamento se inverte automaticamente ao enviar do Canopy para o ServiceNow. Por exemplo, durante o push, "missionCritical" se torna "1".

Formato de Data

Trunca valores datetime do ServiceNow (2024-06-15 14:30:00) para apenas data (2024-06-15). Use para datas de fases do ciclo de vida onde o horário é irrelevante.

Booleano

Converte entre booleanos de string do ServiceNow ("true", "1", "yes") e booleanos nativos. Útil para campos como "is_virtual", "active", etc.


Melhores Práticas de Segurança

Gestão de Credenciais

PráticaDetalhes
Criptografia em repousoTodas as credenciais criptografadas via Fernet (AES-128-CBC) derivado da SECRET_KEY. Se você rotacionar a SECRET_KEY, reinsira todas as credenciais do ServiceNow.
Menor privilégioCrie uma conta de serviço SNOW dedicada com acesso somente leitura a tabelas específicas. Conceda acesso de escrita apenas se usar sincronização push.
OAuth 2.0 preferidoBasic Auth envia credenciais em cada chamada API. OAuth usa tokens de curta duração com restrições de escopo.
Rotação de credenciaisRotacione senhas ou client secrets a cada 90 dias.

Segurança de Rede

PráticaDetalhes
HTTPS obrigatórioURLs HTTP são rejeitadas no momento da validação. Todas as conexões devem usar HTTPS.
Validação de nome de tabelaNomes de tabela validados contra ^[a-zA-Z0-9_]+$ para prevenir injeção.
Validação de sys_idValores de sys_id validados como strings hexadecimais de 32 caracteres.
Lista de IPs permitidosConfigure o Controle de Acesso por IP do ServiceNow para permitir apenas o IP do seu servidor Canopy.

Controle de Acesso

PráticaDetalhes
Protegido por RBACOs endpoints do ServiceNow somente leitura requerem a permissão servicenow.view; todas as alterações requerem servicenow.manage.
Trilha de auditoriaTodas as alterações criadas pela sincronização publicam eventos com source: "servicenow_sync", visíveis no histórico do card.
Sem exposição de credenciaisSenhas e secrets nunca são retornados nas respostas da API.

Checklist de Produção

  • Conta de serviço dedicada do ServiceNow (não uma conta pessoal)
  • OAuth 2.0 com concessão de credenciais de cliente
  • Cronograma de rotação de credenciais (a cada 90 dias)
  • Conta de serviço restrita apenas às tabelas mapeadas
  • Lista de IPs permitidos do ServiceNow configurada para o IP do servidor Canopy
  • Taxa máxima de exclusão definida em 50% ou menos
  • Execuções de sincronização monitoradas para contagens incomuns de erros ou exclusões
  • Consultas de filtro incluem active=true no mínimo

Manual Operacional

Sequência de Configuração Inicial

1. Criar conta de serviço do ServiceNow com os papéis mínimos necessários
2. Verificar conectividade de rede (o Canopy consegue alcançar o SNOW via HTTPS?)
3. Criar conexão no Canopy e testá-la
4. Verificar se os tipos do metamodelo possuem todos os campos que deseja sincronizar
5. Criar primeiro mapeamento com modo ADITIVO, staging ATIVADO
6. Usar o botão Pré-visualizar (via API) para verificar se o mapeamento produz saída correta
7. Executar primeira sincronização pull — revisar registros em staging no Painel de Sincronização
8. Aplicar registros em staging
9. Verificar cards importados no Inventário
10. Ajustar mapeamentos de campo se necessário, re-executar
11. Mudar mapeamento para modo CONSERVADOR para uso contínuo
12. Após várias execuções bem-sucedidas, ativar Pular Staging para automação

Operações Contínuas

TarefaFrequênciaComo
Executar sincronização pullDiariamente ou semanalmentePainel de Sincronização > Botão Pull (ou cron)
Revisar estatísticas de sincronizaçãoApós cada execuçãoVerificar contagens de erros/exclusões
Testar conexõesMensalmenteClicar no botão de teste em cada conexão
Rotacionar credenciaisTrimestralmenteAtualizar tanto no SNOW quanto no Canopy
Revisar mapa de identidadeTrimestralmenteVerificar entradas órfãs via estatísticas de sincronização
Auditar histórico de cardsConforme necessárioFiltrar eventos por fonte servicenow_sync

Configurar Sincronizações Automatizadas

Sincronizações podem ser disparadas via API para automação:

# Sincronização pull diária às 2:00 da manhã
0 2 * * * curl -s -X POST \
-H "Authorization: Bearer $TURBOEA_TOKEN" \
"https://canopy.empresa.com/api/v1/servicenow/sync/pull/$MAPPING_ID" \
>> /var/log/canopy-sync.log 2>&1

Melhor prática: Execute sincronizações durante horários fora do pico. Para tabelas grandes do CMDB (10.000+ CIs), espere 2-5 minutos dependendo da latência de rede e contagem de registros.

Planejamento de Capacidade

Tamanho do CMDBDuração EsperadaRecomendação
< 500 CIs< 30 segundosSincronizar diariamente, staging opcional
500-5.000 CIs30s - 2 minutosSincronizar diariamente, pular staging
5.000-20.000 CIs2-5 minutosSincronizar à noite, pular staging
20.000+ CIs5-15 minutosSincronizar semanalmente, usar consultas de filtro para dividir

Solução de Problemas

Problemas de Conexão

SintomaCausaSolução
Connection failed: [SSL]Certificado autoassinado ou expiradoGaranta que o SNOW use um certificado de CA pública válido
HTTP 401: UnauthorizedCredenciais incorretasReinsira usuário/senha; verifique se a conta não está bloqueada
HTTP 403: ForbiddenPapéis insuficientesConceda itil e cmdb_read à conta de serviço
Connection failed: timed outBloqueio de firewallVerifique as regras; adicione o IP do Canopy à lista de permitidos no SNOW
Teste OK mas sincronização falhaPermissões de nível de tabelaConceda acesso de leitura à tabela CMDB específica

Problemas de Sincronização

SintomaCausaSolução
0 registros buscadosTabela ou filtro incorretoVerifique o nome da tabela; simplifique a consulta de filtro
Todos os registros são "create"Incompatibilidade de identidadeMarque name como identidade; verifique se os nomes correspondem entre os sistemas
Alta contagem de errosFalhas de transformaçãoVerifique os registros em staging para mensagens de erro
Exclusões ignoradasTaxa excedidaAumente o limite ou investigue por que os CIs desapareceram
Alterações não visíveisCache do navegadorAtualize a página; verifique o histórico do card para eventos
Cards duplicadosMúltiplos mapeamentos para o mesmo tipoUse um mapeamento por tipo de card por conexão
Alterações push rejeitadasPermissões SNOW insuficientesConceda o papel import_admin à conta de serviço

Ferramentas de Diagnóstico

# Pré-visualizar como os registros serão mapeados (5 amostras, sem efeitos colaterais)
POST /api/v1/servicenow/mappings/{mapping_id}/preview

# Navegar tabelas na instância SNOW
GET /api/v1/servicenow/connections/{conn_id}/tables?search=cmdb

# Inspecionar colunas de uma tabela
GET /api/v1/servicenow/connections/{conn_id}/tables/cmdb_ci_business_app/fields

# Filtrar registros em staging por ação ou status
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=create
GET /api/v1/servicenow/sync/runs/{run_id}/staged?action=update
GET /api/v1/servicenow/sync/runs/{run_id}/staged?status=error

Referência da API (Rápida)

Todos os endpoints requerem Authorization: Bearer <token>. Endpoints somente leitura precisam da permissão servicenow.view; endpoints de modificação precisam de servicenow.manage. Caminho base: /api/v1.

Conexões

MétodoCaminhoDescrição
GET/servicenow/connectionsListar conexões
POST/servicenow/connectionsCriar conexão
GET/servicenow/connections/{id}Obter conexão
PATCH/servicenow/connections/{id}Atualizar conexão
DELETE/servicenow/connections/{id}Excluir conexão + todos os mapeamentos
POST/servicenow/connections/{id}/testTestar conectividade
GET/servicenow/connections/{id}/tablesNavegar tabelas SNOW
GET/servicenow/connections/{id}/tables/{table}/fieldsListar colunas da tabela

Mapeamentos

MétodoCaminhoDescrição
GET/servicenow/mappingsListar mapeamentos com mapeamentos de campo
POST/servicenow/mappingsCriar mapeamento com mapeamentos de campo
GET/servicenow/mappings/{id}Obter mapeamento com mapeamentos de campo
PATCH/servicenow/mappings/{id}Atualizar mapeamento (substitui campos se fornecidos)
DELETE/servicenow/mappings/{id}Excluir mapeamento
POST/servicenow/mappings/{id}/previewPré-visualização simulada (5 registros de amostra)

Operações de Sincronização

MétodoCaminhoDescrição
POST/servicenow/sync/pull/{mapping_id}Sincronização pull (?auto_apply=true padrão)
POST/servicenow/sync/push/{mapping_id}Sincronização push
GET/servicenow/sync/runsListar histórico de sincronização (?limit=20)
GET/servicenow/sync/runs/{id}Obter detalhes da execução + estatísticas
GET/servicenow/sync/runs/{id}/stagedListar registros em staging de uma execução
POST/servicenow/sync/runs/{id}/applyAplicar registros em staging pendentes