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
| Ventaja | Descripcion |
|---|---|
| Reescritura de URLs | Transforma URLs para facilitar integraciones con Make, Zapier, n8n y otros servicios |
| Proteccion del endpoint | Filtra y verifica solicitudes antes de que lleguen al destino, evitando accesos no autorizados |
| Encolado con Cloudflare Queue | Gestiona picos de trafico organizando solicitudes en cola |
| Gestion de secretos | Almacena tokens y credenciales en el sistema de secretos de Cloudflare, fuera del codigo |
| Observabilidad | Captura metricas y logs en tiempo real desde la infraestructura de Cloudflare |
| Caching | Cachea 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.