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. La suscripción conserva origin durante toda su vida, y puedes cambiar event_types después con una edició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. El hub también sondea por su cuenta un webhook nuevo, primero alrededor de 1 minuto después de la creación, así que el ping no es la única forma de activarlo.
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.
