1. Home
  2. Documentation
  3. Events Hub
  4. Policies

Policies

Entenda o que são políticas e como criá-las.

As políticas (policies) são uma ferramenta para gerenciar dois aspectos do processo de recebimento e distribuição de eventos:

  • Autorização de publicadores: as validações de segurança garantem que apenas publicadores autorizados possam enviar eventos para o Events Hub.
  • Entrega de eventos: as retentativas automáticas que o sistema deve fazer, caso o primeiro envio de um evento falhe.

Listagem de políticas

A tela Policies exibe todas as políticas existentes por ordem de criação. No campo Order by, você seleciona a ordenação que deseja entre:

  • Creation (desc): padrão. Lista as políticas da data de criação mais recente para a mais antiga.

  • Creation (asc): lista as políticas da data de criação mais antiga para a mais recente.

  • Name (desc): lista as políticas por ordem alfabética, do final para o começo.

  • Name (asc): lista as políticas por ordem alfabética, do começo para o final.

Você também pode buscar políticas pelo nome através do campo NAME.

A coluna DETAILS contém o ícone Expand Icon, que exibe as configurações da política selecionada.

A coluna ACTIONS contém ícones para editar e excluir políticas.

Policies Details

Opções de segurança

Para autorização de publicadores, são usados interceptores. Existem cinco tipos disponíveis:

  • Access Token Validation
  • Client ID Validation
  • OAuth Validation
  • JWT Validation
  • IP Filtering Validation

Os endpoints de autorização são definidos por contexto na tela Authorizations. Nela, há duas seções:

  • OAUTH: para os interceptores OAuth Validation, Client ID Validation e Access Token Validation.
  • JWT: para o interceptor JWT Validation.
IMPORTANT

A utilização de interceptores de segurança é opcional. No entanto, se adicionar policies ao seu handler, você precisa configurar a URL da autorização vinculada ao interceptor. Com exceção do "IP Filtering Validation", todos dependem dessa configuração para funcionar. Se for utilizar a Sensedia API Platform para isso, veja como obter a URL de autorização.

Tentativas automáticas de entrega

Quando a primeira tentativa de entrega de evento a um subscritor falha, o Events Hub pode tentar novamente o envio, seguindo as configurações cadastradas. Essas configurações incluem:

  • Número de tentativas (até 10 vezes).
  • Código de estado HTTP que aciona uma nova tentativa.
  • Tempo limite da requisição.

O Events Hub tenta reenviar novamente os eventos até obter sucesso ou atingir o número de tentativas automáticas definido nas configurações. Para aumentar as chances de entrega, usamos o algoritmo exponential backoff. Isso significa que o sistema espera um tempo cada vez maior entre as tentativas para evitar congestionamento na rede.

Se todas as tentativas automáticas falharem, você pode tentar a entrega manual através da tela Delivery Retry.

Criando uma política

Para criar uma nova política:

Clique no botão [+].

Preencha Name e Description (opcional). O nome deve ser único. Não é possível criar duas políticas com o mesmo nome.

Se quiser, configure opções de segurança e entrega para a política. Veja abaixo:

Segurança

A seção HANDLER PUBLISHER SECURITY FLOW inclui os interceptores de segurança que podem ser adicionados ao fluxo.

TIP

Veja como usar a Sensedia API Platform para prover a autorização de publicadores.

Clique no ícone de Add Icon ao lado do nome do interceptor que deseja aplicar. É possível adicionar mais de um interceptor.

Veja abaixo os interceptores disponíveis:

Cliend ID Validation

Valida um client ID passado na requisição. Ao selecioná-lo, você deve informar:

  • Location: onde o client ID será passado, podendo ser any (todas as opções serão selecionadas), cookie, header header ou cookie, ou query param.

  • Name: o nome com o qual o valor do client ID será passado.

Client ID and Token Validation

Os interceptores selecionados são mostrados na seção Execution Flow. Se quiser, você pode:

  • Editá-los clicando no ícone do lápis.
  • Desativá-los clicando no ícone de menos.
  • Reordená-los clicando sobre o interceptor e arrastando-o para a posição desejada.

As validações acontecerão na ordem em que aparecem na tela. Se alguma delas não der certo, a requisição é interrompida.

Execution Flow

Configurações de entrega

A seção Delivery Settings define o número máximo de tentativas automáticas de reenvio e os códigos de status que acionarão essas tentativas.

Configure os campos:

  • Automatic Retry Quantity: a quantidade de tentativas automáticas que serão realizadas caso o primeiro envio falhe. Permite até 10.

  • Requisition Timeout: tempo limite de espera pelo retorno da URL do subscritor a cada tentativa de entrega. Até 30 segundos.

  • Status Code For Automatic Retry: códigos de estado HTTP de retorno que devem acionar uma tentativa automática.

    • Se inserir mais de um, separe-os por vírgula.

    • Se quiser cadastrar uma família de código, use "xx": 4xx, 5xx.

    • Códigos da família 200 não são aceitos neste campo. Isso porque retornos 2xx indicam que o evento foi entregue com sucesso e não precisam ser enviados novamente.

Retry Settings

Recomendações de status codes

O campo Status Code for Automatic Retry permite a inclusão de códigos da família 400 e 500. No entanto, nem todos fazem sentido para a retentativa. Nas tabelas abaixo, detalhamos quais são recomendados e quais não:

Recomendados

Código de status
Descrição
Retentativa faz sentido?
Motivo
408Request TimeoutSimO servidor não respondeu a tempo.
429Too Many RequestsSimO usuário enviou muitas solicitações.
500Internal Server ErrorSimFalha no servidor por picos temporários.
502Bad GatewaySimResposta inválida de um servidor upstream.
503Service UnavailableSimServidor indisponível por manutenção.
504Gateway TimeoutSimServidor intermediário não respondeu.

Não recomendados

Código de status
Descrição
Retentativa faz sentido?
Motivo
400Bad RequestNãoSolicitação mal formulada.
401UnauthorizedNãoAutenticação necessária ou falhou.
403ForbiddenNãoCliente sem permissão para executar ação.
404Not FoundNãoRecurso solicitado não encontrado.

Quão satisfeito você está com esta página?

Nosso site utiliza cookies para habilitar funcionalidades essenciais de avaliação e notificações. Não utilizamos cookies de rastreamento para publicidade ou análise de terceiros.Saiba mais