Hooks de ciclo de vida
Um hook se inscreve em um evento e executa uma das suas operações quando ele dispara. Cada entrega é armazenada com seu status, então uma que falhou pode ser encontrada e reexecutada.
Os eventos
Eventos de registro disparam quando um registro é criado, atualizado, excluído, publicado ou despublicado. Outros eventos do projeto cobrem seus usuários e suas sessões, o resultado de uma operação, importações concluídas, migrações e mudanças em lote, e a vida de uma organização, da criação até uma mudança em seus membros. Outro conjunto (mudanças de participação na equipe, de plano, de projeto e de convites) é assinado no workspace.
Declarando um hook
defineHook na configuração indica um evento e a chave da operação a executar. Um filtro restringe o hook por igualdade nas chaves de nível superior do evento, tipicamente a um modelo. Um hook criado no console também pode acionar o recurso nativo de notificações.
O que uma entrega carrega
Uma entrega é um HTTP POST para o endpoint da operação. Ela é autenticada por um token de curta duração enviado em X-Foir-Token como cabeçalho, que você verifica contra o JWKS do Fóir, e não há cabeçalho de assinatura HMAC. O corpo diz o que mudou, por id do registro e chave do modelo, e não carrega conteúdo de campos. O receptor lê o registro de volta.
Acompanhamento, novas tentativas e a dead-letter queue
Cada entrega é uma linha armazenada com um status. foir hooks lista as entregas com falha de um hook, reexecuta uma e envia uma entrega sintética para testar um endpoint. As novas tentativas e o circuit breaker pertencem à operação que o hook executa. Uma execução que esgota suas novas tentativas cai na dead-letter queue, onde pode ser inspecionada, tentada de novo ou descartada.
Ordem e loops
A ordem de entrega não é garantida. Cada entrega carrega um número de sequência, para que um receptor possa aplicar last-write-wins, e um id de execução para descartar duplicatas. Um hook que dispara a si mesmo não pode sair de controle: uma operação que já está na cadeia de causas não é executada de novo, e uma cadeia para em três saltos.
Leia os detalhes
O guia de hooks de ciclo de vida cobre os eventos, a declaração de um hook, e a inspeção e a reexecução de entregas.