hub.destination.verified del propio hub, así que no necesitas un productor de producto aparte para la primera comprobación de extremo a extremo.
Cada llamada a /v1 envía el header Authorization: Bearer TOKEN y Content-Type: application/json. El hub nunca toma el tenant del cuerpo, la ruta o la query de la solicitud.
Antes de empezar
Necesitas:
- Un hub en ejecución y un token con los permisos
subscriptionsgetypostde Streaming Hub. La lectura del catálogo también necesitacatalogget. - Un endpoint
https://público que controles.
Las cuatro llamadas
1. Encuentra la clave de coincidencia y el origin
GET /v1/catalog
Encuentra la entrada cuyo eventKey es hub.destination.verified. Su source es streaming-hub.
Pon el eventKey en event_types exactamente como lo sirve el catálogo. No lo construyas a partir de resourceType y eventType. Pon el source en origin.
2. Crea la suscripción
POST /v1/subscriptions
Envía X-Idempotency con un valor único.
event_types recibe valores eventKey del catálogo, no tipos completos de CloudEvents. Tanto event_types como origin son inmutables después de la creación. schema_major es opcional. plan_tier usa standard de forma predeterminada.
La respuesta 201 lleva la nueva subscription con su id y el signingSecret en texto plano. Guarda el secreto ahora. Ninguna ruta de lectura lo devuelve. Un reintento con la misma clave X-Idempotency devuelve la misma respuesta.
3. Activa el destino y emite el hecho de prueba
POST /v1/subscriptions/{id}/ping
Un webhook nuevo empieza en pending_verification. El ping envía un sondeo firmado por la ruta de entrega de producción. Tu endpoint debe responder con 2xx.
outcome: "ok" mueve la suscripción a active. Después de que ese cambio de estado se confirma, el hub intenta emitir hub.destination.verified con ce-source: streaming-hub. Si esa emisión de mejor esfuerzo tiene éxito, la suscripción que acabas de crear coincide con el hecho y lo recibe. Repetir el ping para una suscripción que ya está activa vuelve a sondear el endpoint, pero no reemite el evento de ciclo de vida.
4. Confirma la entrega
Tu endpoint recibe un
POST firmado con X-Lerian-Event-Id, X-Lerian-Event-Type y X-Lerian-Delivery-Id. Verifica el HMAC antes de confiar en el cuerpo y deduplica por X-Lerian-Event-Id.
Luego llama a GET /v1/subscriptions/{id}/health. Un last_success_at reciente y un conteo delivered en delivery_outcomes confirman que el camino funciona de extremo a extremo.
Una suscripción pull no necesita endpoint ni ping. Créala con sink_kind: "pull" y luego lee GET /v1/events?subscription_id=<id>.
Consulta Gestión de suscripciones y Consumo de eventos para el ciclo de vida, las firmas, los reintentos y los cursores.
