hub.destination.verified do próprio hub, então você não precisa de um produtor de produto separado para a primeira verificação de ponta a ponta.
Toda chamada /v1 envia o header Authorization: Bearer TOKEN e Content-Type: application/json. O hub lê o tenant apenas do token.
Antes de começar
Você precisa de:
- Um hub rodando e um token. A leitura do catálogo também precisa de
catalogget. - Um endpoint
https://público sob seu controle. O hub rejeita endereços privados, de loopback e de metadados de nuvem.
As quatro chamadas
1. Encontre a chave de correspondência e a origem
GET /v1/catalog
Encontre a entrada hub.destination.verified, que pertence ao hub. A chave de correspondência é <resource>.<event>. A aplicação produtora é streaming-hub.
Cada entrada do catálogo expõe resourceType, o verbo puro do evento como eventType e o topic da aplicação do produtor. Monte a chave de correspondência livre de origem diretamente como <resourceType>.<eventType>. Um tópico v3 tem o formato lerian.streaming.<source> e se repete entre os eventos daquele produtor.
2. Crie a subscription
POST /v1/subscriptions
Envie X-Idempotency com um valor único.
event_types contém chaves de correspondência livres de origem, não tipos CloudEvents completos. O origin fixa a subscription em um ce-source. Omita-o apenas quando você quiser de propósito a mesma chave de qualquer produtor. Os dois campos são imutáveis depois da criação. O schema_major é opcional. O plan_tier tem standard como padrão.
A resposta 201 traz o id da subscription e o signingSecret em texto claro. Guarde o segredo agora. Nenhum caminho de leitura o devolve.
3. Ative o destino e emita o fato de teste
POST /v1/subscriptions/{id}/ping
Um webhook novo começa em pending_verification. O ping envia uma sondagem assinada pelo caminho de entrega de produção. Seu endpoint deve responder com 2xx.
outcome: "ok" move a subscription para active. Depois que essa mudança de estado é confirmada, o hub tenta emitir hub.destination.verified com ce-source: streaming-hub. Se essa emissão de melhor esforço passar, a subscription que você acabou de criar corresponde ao fato e o recebe. Repetir o ping para uma subscription já ativa sonda o endpoint de novo, mas não emite o evento de ciclo de vida outra vez.
4. Confirme a entrega
Seu endpoint recebe um
POST assinado com X-Lerian-Event-Id, X-Lerian-Event-Type e X-Lerian-Delivery-Id. Verifique o HMAC antes de confiar no corpo e deduplique pelo X-Lerian-Event-Id.
Depois chame GET /v1/subscriptions/{id}/health. Um last_success_at recente e um sucesso em delivery_outcomes confirmam que o caminho funciona de ponta a ponta.
Uma subscription pull não precisa de endpoint nem de ping. Crie-a com sink_kind: "pull" e depois leia GET /v1/events?subscription_id=<id>.
Veja Gerenciar subscriptions e Consumir eventos para ciclo de vida, assinaturas, novas tentativas e cursores.
