Webhooks

1 função do TermoSupport para webhooks.

// npm install termo_core --save-exact
import * as support from "termo_core/support";
// ou: import { support } from "termo_core";
FunçãoRotaO que faz
receber_evento_termo_webhook_webhooksPOST /webhooks/termowebhookRecebe uma entrega de evento do TermoWebhook

receber_evento_termo_webhook_webhooks

POST/webhooks/termowebhook Pública

Recebe uma entrega de evento do TermoWebhook

Pública, sem token do usuário: só o TermoWebhook, o hub de eventos da Termotubos, chama esta rota, para entregar os eventos que o TermoSupport assina. Não é para ser chamada por pessoas nem por IAs.

Assinatura. Cada entrega vem assinada com a chave Ed25519 do hub sobre <data>.<id do aplicativo assinante>.<corpo>, com a data em X-TermoWebhook-Data (horário Unix em segundos, tolerância de 5 minutos), o id da chave em X-TermoWebhook-Chave e X-TermoWebhook-Assinatura: ed25519=<base64url>. A assinatura é conferida com as chaves públicas do hub.

Eventos tratados. colaborador.criado e colaborador.atualizado, versões 1 e 2, publicados pelo TermoAuth: criam ou atualizam o colaborador e o acesso dele (a versão 2 traz também setor, cargo e função). Evento repetido ou mais antigo que o último aplicado não muda nada. Tipo desconhecido é aceito com 200 e ignorado.

Resposta. Sem corpo. Qualquer resposta fora de 2xx faz o hub reenviar a entrega mais tarde.

function receber_evento_termo_webhook_webhooks(
  parametros: ParametrosDeReceberEventoTermoWebhookWebhooks,
  corpo_da_requisicao: tipos.EntregaDoEvento,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>
Exemplo
import { receber_evento_termo_webhook_webhooks } from "termo_core/support";

await receber_evento_termo_webhook_webhooks({ "X-TermoWebhook-Data": 1, "X-TermoWebhook-Chave": "...", "X-TermoWebhook-Assinatura": "..." }, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

EntregaDoEvento

import type { EntregaDoEvento } from "termo_core/support";

export interface EntregaDoEvento {
  dados: Record<string, unknown>;
  entidade_id: string;
  id: string;
  ocorrido_em: string;
  publicador: string;
  recebido_em: string;
  tipo: string;
  versao: number;
}

Nesta página