Saltar al contenido principal

Cloudflare Workers

Implementar un Cloudflare Worker entre los webhooks de Dinaup y el cliente es una practica recomendada que aporta rendimiento, seguridad y flexibilidad.

Ventajas

VentajaDescripcion
Reescritura de URLsTransforma URLs para facilitar integraciones con Make, Zapier, n8n y otros servicios
Proteccion del endpointFiltra y verifica solicitudes antes de que lleguen al destino, evitando accesos no autorizados
Encolado con Cloudflare QueueGestiona picos de trafico organizando solicitudes en cola
Gestion de secretosAlmacena tokens y credenciales en el sistema de secretos de Cloudflare, fuera del codigo
ObservabilidadCaptura metricas y logs en tiempo real desde la infraestructura de Cloudflare
CachingCachea respuestas para reducir latencia y descargar el backend

Ejemplo: Worker con caching

Este worker actua como proxy que realiza una solicitud POST a la API de Dinaup. La respuesta se cachea durante 10 segundos tanto en Cloudflare como en el navegador.

const apiUrl = "https://webhook.dinaup.com/api/reports?id=6f3d56a0-0a46-422f-b1dc-ee9cd433cc82&page=1&resultsPerPage=100&withFiles=false&safeColumnsName=false";

export default {
async fetch(request, env, ctx) {

const init = {
method: "POST",
headers: {
"Authorization": "Bearer " + env.SECRET_TOKEN,
},
body: "",
};

// Ejecutar la llamada con opciones de cache: 10 segundos
const newRequest = new Request(apiUrl, init);
const response = await fetch(newRequest, {
cf: {
cacheTtl: 10,
cacheEverything: true,
}
});

// Ajustar cabeceras para que el navegador tambien cachee
const newHeaders = new Headers(response.headers);
newHeaders.set("Cache-Control", "public, max-age=10");
newHeaders.delete("set-cookie");

return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: newHeaders,
});
}
};
info

El token de autenticacion se almacena en env.SECRET_TOKEN usando los Secrets de Cloudflare Workers, no en el codigo fuente.

Configuracion del secreto

Para configurar el token como secreto en Cloudflare:

npx wrangler secret put SECRET_TOKEN

Esto pedira el valor del token de forma interactiva sin que quede registrado en el historial del terminal.

aviso

Nunca incluyas tokens de autenticacion directamente en el codigo del Worker. Usa siempre secretos de Cloudflare para credenciales sensibles.