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 lee el tenant solo desde el token.
Antes de empezar
Necesitas:
- Un hub en ejecución y un token. La lectura del catálogo también necesita
catalogget. - Un endpoint
https://público que controles. El hub rechaza direcciones privadas, de loopback y de metadatos de nube.
Las cuatro llamadas
1. Encuentra la clave de coincidencia y el origin
GET /v1/catalog
Encuentra la entrada hub.destination.verified, que pertenece al hub. La clave de coincidencia es <resource>.<event>. La aplicación productora es streaming-hub.
Cada entrada del catálogo expone resourceType, el verbo de evento simple como eventType y el topic de la aplicación del productor. Construye la clave de coincidencia sin fuente directamente como <resourceType>.<eventType>. Un tema v3 tiene la forma lerian.streaming.<source> y se repite en los eventos de ese productor.
2. Crea la suscripción
POST /v1/subscriptions
Envía X-Idempotency con un valor único.
event_types contiene claves de coincidencia sin fuente, no tipos completos de CloudEvents. origin fija la suscripción a un solo ce-source. Omítelo solo cuando quieras intencionalmente la misma clave de cualquier productor. Ambos campos son inmutables después de la creación. schema_major es opcional. plan_tier usa standard de forma predeterminada.
La respuesta 201 lleva el id de la suscripción y el signingSecret en texto plano. Guarda el secreto ahora. Ninguna ruta de lectura lo devuelve.
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 éxito 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.
