18. Onde configurar as integrações com terceiros e a instalação
Este capítulo é um guia de consulta rápida: para cada integração com terceiros, mostra onde fica cada configuração, na ordem em que deve ser feita, no formato Menu › Tela › campo. O detalhe de cada tela, as mensagens de erro e as regras de uso estão nos capítulos do hub de integrações e de mensageria; aqui o foco é o caminho.
O roteiro se repete em todas as integrações: cadastrar a integração no hub com o endereço e a credencial, pedir ao administrador do sistema a aprovação do servidor na lista de saída, Testar, e só então ligar a integração ao que a usa (canais de área, alertas, mensagens ou conectores).
A última seção reúne os arquivos e as variáveis da instalação do Bússola/BSC no modo interno (Docker Compose) e em nuvem (Kubernetes). Valores secretos nunca aparecem neste manual: onde houver um segredo, ele está indicado como <valor>.
18.1 Onde configurar o WhatsApp
ID BSC-CFG-01
Para que serve
O WhatsApp leva os alertas pessoais do Bússola/BSC ao celular de cada pessoa que confirmou o número. O envio é feito pelo provedor contratado, em nome da Empresa Exemplo S.A., e a configuração passa por seis telas: o cadastro da conta no hub, a lista de saída, o endereço dos avisos entregue ao provedor, a mensagem com o modelo aprovado, a regra de alertas e, por fim, o consentimento de cada pessoa.
Só pode haver uma integração de WhatsApp ativa por ambiente.
Quem usa: Analista de Integração de Dados; Administrador do sistema; Gestor de Desempenho (escritório de estratégia); Responsável por ação/área.
Passo a passo
- Obtenha com o provedor contratado: a URL base do serviço, o identificador do número, o identificador da conta, o token de acesso, o App Secret, o número de WhatsApp da empresa e o nome e o idioma do modelo aprovado dos alertas.
- Integrações › Integrações › Nova integração › WhatsApp › Identificação: informe Nome (por exemplo, "WhatsApp — alertas (produção)"), Código, Objetivo, Ambiente e responsáveis.
- Mesma tela › Endereço: preencha URL base (o endereço do provedor), Identificador do número (phone number id), Identificador da conta (WABA id), Número de WhatsApp da empresa e Nome da empresa no consentimento (o nome do remetente que aparece no texto de autorização, por exemplo Empresa Exemplo S.A.).
- Mesma tela › Autenticação: preencha Token de acesso, App Secret (assinatura dos avisos) e Token de verificação do webhook (uma palavra que você escolhe). Só altere Cabeçalho de autenticação e Esquema da autenticação se o provedor pedir.
- Mesma tela › Avançado: confira Template aprovado dos alertas, Idioma do template e Teto diário de envios (0 = sem teto); clique em Salvar.
- Início › Lista de saída das integrações › Aprovar destino (administrador do sistema): informe o Servidor do provedor, Protocolo HTTPS, porta 443, e a Justificativa.
- Integrações › Integrações › abra a integração de WhatsApp › Testar. O teste lê o cadastro do número no provedor e não envia mensagem.
- Integrações › Canais de área › quadro WhatsApp da empresa › copie o Endereço dos avisos e entregue-o ao provedor contratado junto com o token de verificação.
- Início › Mensagens institucionais › abra a variação do tipo de aviso com Canal = WhatsApp e confira o nome e o idioma do modelo aprovado e o preenchimento de cada espaço numerado.
- Gestão por indicadores › Alertas e mensagens › em cada tipo de registro, na coluna Pessoas, marque WhatsApp nas famílias de aviso desejadas (Registro novo, Atraso, Comentário, Mudança).
- Início › Preferências de notificação › Meu WhatsApp (cada pessoa): Confirmar pelo WhatsApp, enviar o código pelo próprio celular, Já enviei — verificar de novo e Ligar para os alertas do Bússola/BSC (consentimento).

Figura 196 — Integrações › Nova integração › WhatsApp: endereço do provedor, identificadores do número e da conta, token, App Secret e token de verificação.

Figura 197 — Início › Lista de saída das integrações › Aprovar destino: servidor, protocolo, porta e justificativa.

Figura 198 — Integrações › Canais de área › WhatsApp da empresa: o endereço dos avisos a entregar ao provedor contratado.

Figura 199 — Início › Mensagens institucionais: o modelo da mensagem, com as variantes por canal.

Figura 200 — Gestão por indicadores › Alertas e mensagens: marcar WhatsApp em cada família de aviso.

Figura 201 — Início › Preferências de notificação › Meu WhatsApp: cada pessoa confirma o número e o consentimento.
Observações
- Token de acesso, App Secret e token de verificação ficam cifrados e nunca voltam à tela; a ficha mostra só "Definido em … por …".
- Enquanto o token de acesso não for salvo, o Testar responde que a integração aguarda credenciais e nada é enviado.
- Sem o App Secret, nenhum aviso do provedor é aceito e ninguém consegue confirmar o número; sem o Número de WhatsApp da empresa, também não.
- Se o quadro WhatsApp da empresa disser que o endereço público da instalação não foi configurado, peça à equipe de operação; sem ele não há endereço dos avisos para entregar ao provedor.
- Só chega por WhatsApp o aviso que tem as três condições: WhatsApp marcado em Alertas e mensagens, variação de WhatsApp com modelo aprovado em Mensagens institucionais e pessoa com número confirmado e alertas ligados.
- Registro sigiloso nunca é enviado por WhatsApp. Os envios que não saíram aparecem em Início › Falhas de envio, com o motivo.
18.2 Onde configurar o Microsoft Teams e o Discord
ID BSC-CFG-02
Para que serve
O Microsoft Teams e o Discord recebem os avisos do Bússola/BSC num canal compartilhado de cada área. Cada canal é uma integração do hub com a URL do webhook gerada no próprio Teams (fluxo do Workflows) ou no Discord (webhook do canal); depois de testada, a integração é ligada a uma unidade em Canais de área e escolhida nas regras de Alertas e mensagens.
Quem usa: Analista de Integração de Dados; Administrador do sistema; Diretoria de Estratégia (patrocinador/aprovador); Gestor de Desempenho (escritório de estratégia).
Passo a passo
- No Teams, gere a URL no canal por ⋯ › Workflows, com o modelo de postar no canal quando uma solicitação de webhook for recebida; no Discord, por Configurações do canal › Integrações › Webhooks › Novo webhook › Copiar URL do webhook.
- Integrações › Integrações › Nova integração › Microsoft Teams (ou Discord) › Identificação: informe Nome (por exemplo, "Teams — avisos da DIROB"), Código, Objetivo, Ambiente e responsáveis.
- Mesma tela › Endereço: cole a URL inteira em URL do webhook.
- Mesma tela › Avançado: informe o Nome do canal (como as pessoas o chamam) e clique em Salvar.
- Início › Lista de saída das integrações › Aprovar destino (administrador do sistema): o servidor do Workflows da Microsoft ou discord.com, Protocolo HTTPS, porta 443, com a Justificativa. Uma aprovação do Discord serve para todos os canais.
- Integrações › Integrações › abra a integração › Testar e confira a mensagem de teste no canal.
- Integrações › Canais de área › Ligar canal: escolha a Integração de Teams ou Discord, a Unidade (por exemplo, GEOBR — Gerência de Obras; vazio = Organização inteira) e o Nome do canal; clique em Salvar.
- Gestão por indicadores › Alertas e mensagens › na família de aviso, em Canais da área, clique em Publicar num canal, escolha Microsoft Teams ou Discord e, em Onde, o canal da unidade do registro ou um canal fixo.

Figura 202 — Integrações › Nova integração › Microsoft Teams: a URL do webhook do fluxo do canal.

Figura 203 — Integrações › Nova integração › Discord: a URL do webhook do canal.

Figura 204 — Início › Lista de saída das integrações › Aprovar destino para o servidor do webhook.

Figura 205 — Integrações › Canais de área › Ligar canal: a integração de Teams ou Discord e a unidade que recebe os avisos.

Figura 206 — Gestão por indicadores › Alertas e mensagens: publicar o aviso no canal da área.
Observações
- A URL do webhook é um segredo: quem a tem consegue publicar no canal. Ela fica cifrada e nunca volta à tela nem ao histórico do canal.
- Só é aceita URL HTTPS na porta 443. No Teams, só fluxos do Workflows; os antigos conectores do Office 365 não são aceitos. No Discord, o link do canal não serve: tem de ser a URL do webhook.
- A mesma URL não pode estar em duas integrações. A integração de um canal ligado não muda: desative o canal e ligue outro.
- Em Ligar canal só aparecem integrações ativas; a que falhou no último teste aparece marcada.
- Unidade sem canal ativo do tipo escolhido não recebe a publicação, que fica como "sem destino" em Início › Falhas de envio.
- Registro sigiloso nunca é publicado em canal compartilhado, e ninguém é mencionado nas publicações.
18.3 Onde configurar SEI, SIAFI, Portal da Transparência e Tesouro Gerencial
ID BSC-CFG-03
Para que serve
SEI, SIAFI, Portal da Transparência e Tesouro Gerencial são cadastrados como integrações do hub e usados pelos conectores do BSC. O SEI acompanha e abre processos; o tipo SIAFI traz a execução do orçamento por um de seus canais (API Dados SIAFI (STA), dados abertos do Portal da Transparência, relatório extraído do Tesouro Gerencial ou web services do SIAFI). O De-Para traduz o dado capturado nos objetos do BSC, e cada execução fica registrada no Monitor de integrações.
Para treinar usuários e homologar o lado do Bússola/BSC antes de os acessos reais serem entregues, há um ambiente de simulação para treinamento e homologação que responde como o SEI, o STA e o Portal da Transparência; as integrações de simulação levam o selo Simulador e não existem em produção.
Quem usa: Analista de Integração de Dados; Administrador do sistema; Gestor de Desempenho (escritório de estratégia).
Passo a passo
- SEI: Integrações › Integrações › Nova integração › SEI › Endereço: URL base (https://, por exemplo sei.exemplo.com.br), Interface do SEI, Versão da API e, só se a TI informar outro, Caminho da API do módulo.
- SEI › Autenticação: Usuário de serviço e Senha do usuário de serviço; depois de um Testar com sucesso, em Avançado, escolha Órgão (id no SEI), Unidade padrão (id no SEI) e marque as Operações habilitadas no Bússola/BSC.
- SIAFI: Integrações › Integrações › Nova integração › SIAFI › Canal: escolha API Dados SIAFI (STA), Dados abertos — Portal da Transparência, Relatório extraído do Tesouro Gerencial ou Web services do SIAFI (exige o Tesouro).
- Canal STA: Unidade gestora (UG) (6 dígitos) e Gestão (5 dígitos) em Endereço; Usuário e Senha em Autenticação; Órgão, Exercício e Tamanho máximo de uma resposta (MB) em Avançado.
- Canal Portal da Transparência: Endereço da API do Portal, Chave da API de dados, Unidade gestora (UG), Gestão, Órgão e Exercício. Canal Tesouro Gerencial: Formato do relatório, Codificação do relatório, Separador de colunas, Linha do cabeçalho e Aba. Canal web services: Endereço do serviço (informado pelo Tesouro), Certificado de aplicação (PKCS#12), Senha do certificado, UG, gestão, órgão e exercício.
- Início › Lista de saída das integrações › Aprovar destino (administrador do sistema): o servidor do SEI, do STA ou do Portal, Protocolo HTTPS, porta 443 e Justificativa. O canal Tesouro Gerencial não precisa: o arquivo é enviado pela própria tela.
- Integrações › Integrações › abra a integração › Testar e, nos tipos que leem dados, Pré-visualizar.
- Gestão por indicadores › Configuração de conectores › escolha o componente de captura na paleta, a integração do hub em Envia ou recebe, Por agenda em Quando age (a cada N horas, diária, semanal ou mensal) e Capturar dado em O que faz; Simular (sem enviar) e Salvar conector.
- Na ficha do conector › Abrir o De-Para: Executar leitura de teste (SIAFI), Novo De-Para para (ou um modelo pronto SIAFI), linhas Vem de e Conversão, Validar (prévia) e Publicar.
- Integrações › Tabelas de equivalência › Nova tabela: traduza códigos do outro sistema (por exemplo, plano interno → entrega) e use-a no De-Para com a conversão Tabela de equivalência.
- Integrações › Monitor de integrações › filtre pela integração ou pelo conector para ver cada captura, cada disparo e cada aplicação do De-Para.

Figura 207 — Integrações › Nova integração › SEI: interface, endereço, caminho da API, versão, usuário de serviço e operações habilitadas.

Figura 208 — Integrações › Nova integração › SIAFI e dados abertos de orçamento: o canal (API de dados do SIAFI, Portal da Transparência, Tesouro Gerencial, web services) e os campos de cada um.

Figura 209 — Início › Lista de saída das integrações: os servidores aprovados para as integrações.

Figura 210 — A integração aberta: Testar, Pré-visualizar e o resultado do último teste.

Figura 211 — Gestão por indicadores › Configuração de conectores: a paleta, com os componentes SEI e SIAFI.

Figura 212 — O De-Para do conector de captura: de que campo do dado capturado vem cada valor do Bússola/BSC.

Figura 213 — Integrações › Tabelas de equivalência: o código da origem e o objeto do Bússola/BSC que ele representa.
Observações
- Sem usuário e senha (SEI e STA) ou sem chave (Portal), nada é chamado: o Testar diz o que falta e a integração não é oferecida aos conectores até um teste com sucesso.
- No SEI, a trava do que o Bússola/BSC faz é o campo Operações habilitadas no Bússola/BSC; tudo aparece no SEI como feito pelo usuário de serviço.
- Web services do SIAFI exigem adesão formal ao Tesouro; não são oferecidos aos conectores até a adesão estar completa.
- Até um De-Para ser publicado, o conector de captura fica "De-Para a configurar" e não lê o outro sistema. Os modelos SIAFI trazem uma hipótese de contas contábeis que a contabilidade precisa confirmar.
- Ambiente de simulação: use as integrações com selo Simulador para treinamento e homologação e mantenha ao lado a integração real do mesmo tipo; quando os acessos chegarem, preencha a credencial na real e teste de novo.
- Homologação e produção do mesmo sistema são duas integrações, cada uma com seu selo de ambiente.
18.4 Onde configurar a instalação (Compose e Kubernetes)
ID BSC-CFG-04
Para que serve
Reúne os arquivos e as variáveis que configuram a instalação do Bússola/BSC: no modo interno, com Docker Compose num servidor da empresa; no modo nuvem, com Kubernetes. A configuração da aplicação é a mesma nos dois modos. O procedimento completo de instalação e de backup está nas seções BSC-INS-01 e BSC-INS-02.
Os segredos (senhas, chave de cifragem, chaves do destino do backup) são gerados pela empresa e preenchidos só nos arquivos de segredo, nunca em manual, chamado ou mensagem; aqui eles aparecem como <valor>.
Quem usa: Administrador do sistema.
Passo a passo
- Compose: em `deploy/compose/bussola/`, copie `.env.example` para `.env` e proteja-o com `chmod 600 .env`; preencha todo valor marcado `REPLACE_`.
- Compose › `.env` › imagens e endereço: `BUSSOLA_BACKEND_IMAGE`, `BUSSOLA_FRONTEND_IMAGE`, `BUSSOLA_HOST=bussola.exemplo.com.br`, `HTTPS_PORT`, `HTTP_PORT`; certificado em `tls/fullchain.pem` e `tls/privkey.pem`.
- Compose › `.env` › identidade e ambiente: `KEYCLOAK_ISSUER_URI`, `KEYCLOAK_JWK_URI` (o backend não sobe sem os dois), `BUSSOLA_TENANT_ID` e `BUSSOLA_TENANT_NAME`.
- Compose › `.env` › banco e segredos: `DB_ADMIN_USER`, `DB_ADMIN_PASS=<valor>`, `MASTER_DB_NAME`, `TENANT_DB_NAME`, `TENANT_DB_SCHEMA`, `TENANT_READER_PASS=<valor>`, `RESOURCE_TENANT_SECURITY_KEY=<valor>`, `FINANCE_PIX_WEBHOOK_SECRET=<valor>`.
- Compose › `.env` › backup: `BACKUP_CRON=0 1 * * *`, `BACKUP_TZ=America/Sao_Paulo`, `BACKUP_KEEP_LOCAL`, `BACKUP_DEST_KIND=S3` (ou `PATH` com `BACKUP_DEST_HOST_DIR` e `BACKUP_DEST_KEEP`), `BACKUP_S3_ENDPOINT`, `BACKUP_S3_BUCKET`, `BACKUP_S3_PREFIX`, `BACKUP_S3_REGION`, `BACKUP_S3_ACCESS_KEY=<valor>`, `BACKUP_S3_SECRET_KEY=<valor>`, `BACKUP_S3_SSE=AES256`.
- Compose: suba com `docker compose up -d` e acompanhe `docker compose logs -f backend`.
- Kubernetes: o overlay fica em `k8s/bussola/` (sobre `k8s/base`); confira com `kubectl kustomize k8s/bussola`.
- Kubernetes › `backend.env` (segredo `erp-backend-secret`): `MASTER_DB_URL`, `MASTER_DB_USER`, `MASTER_DB_PASS=<valor>`, `BUSSOLA_TENANT_ID`, `TENANT_DB_URL`, `TENANT_DB_USER`, `TENANT_DB_PASS=<valor>`, `TENANT_DB_SCHEMA`, `TENANT_READER_PASS=<valor>`, `RESOURCE_TENANT_SECURITY_KEY=<valor>`, `FINANCE_PIX_WEBHOOK_SECRET=<valor>`; crie com `kubectl -n bussola create secret generic erp-backend-secret --from-env-file=backend.env`.
- Kubernetes › `configmap.backend.yaml`: `KEYCLOAK_ISSUER_URI`, `KEYCLOAK_JWK_URI`, `KAFKA_BOOTSTRAP_SERVERS`, `ERP_ATTACHMENTS_DIR=/data/attachments`; perfis `SPRING_PROFILES_ACTIVE=homolog,bussola`. No overlay, ajuste também as imagens (`images:`), o host e a classe do Ingress (`ingress.yaml`) e a classe de armazenamento do volume de anexos (`pvc.attachments.yaml`).
- Kubernetes › backup: `configmap.backup.yaml` (`BACKUP_DEST_KIND`, `BACKUP_ATTACHMENTS_DIR`, `BACKUP_TENANT_SCHEMAS`), segredo a partir de `secret.backup.yaml.example` e agendamento em `cronjob.backup.yaml` (`schedule: "0 1 * * *"`, `timeZone: America/Sao_Paulo`).
- Kubernetes: crie o segredo TLS `bussola-tls` e aplique com `kubectl -n bussola apply -k k8s/bussola`.
- Configuração da aplicação (os dois modos): `k8s/bussola/application-bussola.yml`, montada em `/config/`.
Observações
- Guarde uma cópia de `RESOURCE_TENANT_SECURITY_KEY` num cofre de segredos, fora do destino do backup: sem a mesma chave, toda credencial gravada (integrações, conexões) deixa de abrir após uma restauração.
- Nunca guarde o `.env` preenchido em repositório; ele e os segredos do Kubernetes ficam fora do backup, de propósito.
- Sem `BACKUP_TZ`/`timeZone`, o agendamento usa UTC e "0 1" viraria 22:00 de Brasília.
- Os anexos ficam no volume `bussola-attachments` (Compose) ou no volume persistente do overlay, nunca no diretório temporário do contêiner.
- Liberações de rede: entrada HTTPS no nome público; saída para o provedor de identidade, para os sistemas integrados (SEI, SIAFI, Portal da Transparência, provedor contratado do WhatsApp, Teams e Discord) e para o destino do backup. Os destinos das integrações também precisam estar na lista de saída do Bússola/BSC.
- O ambiente de simulação para treinamento e homologação das integrações não é instalado em produção.
- Procedimento completo, conferência da primeira subida e restauração: seções BSC-INS-01 e BSC-INS-02.