Skip to main content
Backend de VANTS para recibir webhooks de FACEIT (App Studio) e integrarlos con Neon PostgreSQL. Corre como Cloudflare Worker y usa @neondatabase/serverless. Cada evento verificado se guarda en la tabla faceit_webhook_events y, si tiene equivalente en el bus de eventos, se publica allí para que el resto de la plataforma reaccione.

Endpoints

Validación del secreto

El POST solo se acepta si incluye el secreto compartido con FACEIT. Los nombres exactos de header o parámetro que acepta el Worker están en el código del repositorio.

Secrets del Worker

El Worker usa secretos para validar a FACEIT, conectarse a Neon y firmar las peticiones al bus de eventos.
Ninguno vive en el repo. Para cambiarlos: npx wrangler secret put <NOMBRE>.

Puente al bus de eventos (VANTS-BUS)

Cada webhook verificado se guarda en Neon. Si el bus está configurado, además se publica en el bus central para que la web, el launcher y los agentes reaccionen en vivo. Los eventos sin mapeo se ignoran.

Garantías

  • La respuesta a FACEIT no cambia: primero se guarda en Neon y se responde 200. La publicación al bus va en background (ctx.waitUntil).
  • Deduplicación por event_id con la tabla vants_bus_dedup (se crea sola en Neon).
  • 3 reintentos con backoff hacia el bus.

Consumir eventos desde otros proyectos

Otros proyectos leen los eventos del bus con peticiones firmadas con HMAC por proyecto. La implementación está en vants-bus/ (ver Vantsgames).

Despliegue