Contexts
Contextos são uma divisão lógica que funciona como marcador da URL de publicação de eventos. Eles permitem reutilizar tópicos em diferentes cenários.
O servidor externo de autorização é definido por contexto. Isso significa que quando dois contextos diferentes são disponibilizados para um tópico, é possível utilizar dois endpoints distintos de autorização para o mesmo tópico.
A tela Contexts lista todos os contextos cadastrados no seu Events Hub:
Como funciona
Para entender como os contextos funcionam, é importante saber como o Events Hub coordena a publicação e subscrição a eventos:
-
Os publicadores de eventos (publishers) enviam requisições ao Events Hub, que as distribui para todos os subscritores (subscribers) cadastrados.
-
Para garantir que os eventos do publicador sejam entregues aos subscritores corretos, o Events Hub utiliza tópicos.
-
Cada tópico pode ter diversos subscritores.
-
Quando um publicador envia um evento para um tópico específico, o Events Hub distribui esse evento para todos os subscritores vinculados ao tópico.
URL de publicação de eventos
Para publicar eventos, você precisa criar um caminho (URL) que serve como canal de envio de eventos de um publicador até o Events Hub.
Essa URL é formada por URL base
+ context
+ handler
+ topic
:
-
URL base: é definida pelo Events Hub. Ela inclui o endereço da interface de cada cliente +
event-receiver
+ um código único (hash). -
Contexto, handler e tópico: são criados por você. Eles ajudam a organizar e gerenciar diferentes canais de publicação.
-
Tópico é o nível mais específico.
-
Handlers são os agregadores de tópicos, servindo como uma camada lógica de agrupamento.
-
Contextos adicionam mais um nível de agrupamento, permitindo usar o mesmo tópico em diferentes situações. Para habilitar um tópico a um publicador, você precisa ativá-lo em pelo menos um contexto.
-
Imagine que você quer criar um fluxo de publicação de vários tipos de alerta e testá-lo sem notificar os subscritores. Para fazer isso, pode:
|
Levando em conta o exemplo acima, as URLs de publicação para o tópico latency
serão:
-
Contexto Default:
<url-base>/alerts/latency
-
Contexto Testing:
<url-base>/testing/alerts/latency
A maior vantagem de usar contextos diferentes é poder reutilizar as configurações de políticas de segurança e tentativas de entrega definidas no handler, sem precisar criar novos tópicos. E como os endpoints de autorização são definidos por contexto, você pode usar um mock de autorização para testes enquanto mantém a autorização do contexto padrão inalterada.
|
Autorização
Os endpoints que validam os publicadores são definidos para cada contexto. Isso é feito na tela Authorizations, que contém duas seções: OAUTH e JWT. Em ambas são mostrados todos os contextos cadastrados no Events Hub, indicando a URL de autorização que está definida para cada um.
A utilização de interceptores de segurança é opcional. No entanto, se adicionar policies ao seu handler, você precisa configurar a URL do Authorization vinculado ao interceptor. Com exceção do "IP Filtering Validation", todos dependem dessa configuração para funcionar.
Veja como usar a Sensedia API Platform para autorização dos publicadores. |
Vincular contextos
Os contextos são vinculados aos tópicos através da aba Topics na criação ou edição de handlers. Para publicar eventos, você relaciona os tópicos e seus contextos a publicadores e subscritores. Isso ocorre da seguinte forma:
-
Publicadores: na etapa Topics durante o registro do publicador, selecione os tópicos desejados. Você verá os contextos disponíveis para cada tópico.
-
Escolha em qual o publicador terá permissão para publicar.
-
-
Subscritores: ao cadastrar um subscritor, você deve inscrevê-lo nos tópicos de que receberá eventos. Habilitando contextos do tópico a ele, apenas receberá eventos dos publicadores ativos no contexto.
-
No cadastro do subscritor, na etapa Topics, selecione os tópicos desejados. Você verá os contextos disponíveis para cada tópico.
-
Escolha de qual o subscritor receberá eventos.
-
Criando contextos
Você pode criar até 5 contextos no Events Hub. O contexto "Default" é padrão e não pode ser editado ou excluído.
Ao atingir o limite de contextos criados, o botão + será desabilitado, impedindo o cadastro. Se precisar de um novo contexto, você precisará excluir um dos existentes. |
Para criar um novo contexto, clique no botão +. Preencha os campos:
-
Name: nome único identificador do contexto.
-
Path: caminho do contexto, que servirá como marcador da URL de publicação.
-
Description: descrição opcional para o contexto.
Após registrá-lo, o contexto será exibido na etapa TOPICS de criação/edição de handlers e poderá ser habilitado para qualquer tópico.
Overview de contextos
Ao clicar sobre o nome de um contexto, você verá os tópicos vinculados a ele. Nesta tela, é possível:
-
buscar um tópico usando o campo Keywords. A busca procura por nome ou descrição dos tópicos e nome do handler;
-
editar o contexto pelo botão EDIT CONTEXT. Essa opção permite editar nome, path e descrição do contexto;
-
ver detalhes de um tópico clicando sobre o nome na coluna Handler. Ao fazer isso, você será direcionado à aba TOPICS, na página de Handlers;
-
deletar o contexto clicando no ícone .
Só é possível excluir contextos que não estão associados a nenhum tópico. Se estiverem, você precisará desabilitar o contexto em cada tópico para poder excluí-lo. |
Share your suggestions with us!
Click here and then [+ Submit idea]