Eventos de usuário de webhook ausentes - por design ou lapso?

Existem várias ações que eu esperaria (e gostaria) que gerassem eventos de webhook de usuário, mas elas não o fazem. Antes de registrar relatórios de bugs (ou enviar PRs), eu gostaria de ter uma ideia melhor do porquê isso acontece.

ação evento usuário esperado
conta desativada por admin user_logged_out
conta anonimizada por admin user_logged_out
usuário sai da sessão via botão "Sair de todas as sessões" user_logged_out
adicionado a um grupo user_updated
removido de um grupo user_updated
nível de confiança aumentado/diminuído user_updated
status de moderador concedido/revogado user_updated
status de admin concedido/revogado user_updated
reativado user_updated
silenciado/não silenciado user_updated
  • O primeiro grupo de três são todas ações que resultam em um logout global, invalidando todas as sessões do usuário — mas, ao contrário de outras ações semelhantes (por exemplo, usuário desconectado por admin), essas três não geram um evento user/user_logged_out (ou qualquer outro evento).
  • Ser adicionado/removido de um grupo gera um evento group_user, mas não um evento user. Os eventos group_user não são muito úteis por si só, pois contêm apenas os IDs numéricos internos de grupos e usuários. Por outro lado, o registro "user" enviado em um evento user contém informações muito úteis para todos os grupos aos quais um usuário pertence, incluindo os nomes dos grupos e detalhes sobre os relacionamentos do usuário com os grupos.
  • Quando o nível de confiança de um usuário é aumentado, um evento user_promoted é emitido, que contém dados muito semelhantes, mas não exatamente iguais, a um evento user. Quando o nível de confiança de um usuário é diminuído, nenhum evento semelhante é emitido.
  • Nenhum evento user é emitido quando o status de moderador ou admin muda. (Há evidências indiretas específicas do usuário de ações de concessão via eventos group_user; não há evidências específicas do usuário de ações de revogação.)
  • Suspender um usuário emite um evento user/user_logged_out (com os campos "suspended_reason" e "suspended_till" indicando a suspensão)… mas não há evento quando um usuário é reativado. Nenhum evento é emitido quando um usuário é silenciado ou não silenciado.

Alguma dessas omissões é intencional?

Meu pensamento geral é: “Se os dados em um registro "user" de um evento user tivessem mudado, então um evento user deveria ser emitido.” Isso provavelmente abrange mais situações que atualmente não evocam eventos. No entanto, as poucas que detalhei na tabela acima são as que mais me importam no momento, pois todas envolvem mudanças no status de autorização de um usuário.

5 curtidas