Webhooks
1 função do TermoTracing para webhooks.
// npm install termo_core --save-exact
import * as tracing from "termo_core/tracing";
// ou: import { tracing } from "termo_core";| Função | Rota | O que faz |
|---|---|---|
receber_evento_termo_webhook_webhooks | POST /webhooks/termowebhook | Recebe as entregas do TermoWebhook |
receber_evento_termo_webhook_webhooks
POST/webhooks/termowebhook Pública
Recebe as entregas do TermoWebhook
Pública, sem token do usuário: é chamada pelo TermoWebhook, o hub de eventos da Termotubos, para entregar os eventos que o TermoTracing assina. A entrega é conferida pela assinatura Ed25519 do hub (chave pública em /.well-known/jwks.json do TermoWebhook), pela data e pelo destino, que precisa ser o próprio TermoTracing. 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 v2 também traz setor, cargo e função), descartando o evento mais antigo que o último aplicado. Qualquer outro tipo responde 200 sem fazer nada. Como o hub entrega pelo menos uma vez, repetir o mesmo evento é seguro.
function receber_evento_termo_webhook_webhooks(
parametros: ParametrosDeReceberEventoTermoWebhookWebhooks,
corpo_da_requisicao: tipos.EntregaDoTermoWebhook,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>import { receber_evento_termo_webhook_webhooks } from "termo_core/tracing";
await receber_evento_termo_webhook_webhooks({ "X-TermoWebhook-Data": 1, "X-TermoWebhook-Chave": "...", "X-TermoWebhook-Destino": "...", "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.
EntregaDoTermoWebhook
import type { EntregaDoTermoWebhook } from "termo_core/tracing";
export interface EntregaDoTermoWebhook {
dados: Record<string, unknown>;
entidade_id: string;
id: string;
ocorrido_em: string;
tipo: string;
versao: number;
}