Integración nativa de Transparent Edge para Drupal 10.3+ / 11 (PHP 8.1+, validado en ambas versiones). Emite los cache tags de Drupal como Surrogate-Keys, invalida contenido quirúrgicamente vía API, y añade optimizaciones WPO y visibilidad de seguridad coordinadas con el edge.
| Módulo | Qué hace | Activación |
|---|---|---|
transparent_edge |
Núcleo: API OAuth2 con circuit breaker, header Surrogate-Keys (site key + -html, ignore-list, hashing, límite 4 KB), política de caché por grupos, soft purge, warm-up, resource hints, Dashboard, wizard, Drush |
Obligatorio |
transparent_edge_purger |
Purger para el framework Purge: invalidación automática al editar contenido (tag/url/wildcardurl/everything) + diagnostics | Muy recomendado |
transparent_edge_i3 |
Optimización de imágenes en el edge (snippet VCL: auto-WebP, calidad) | Opcional |
transparent_edge_speculation |
Speculation Rules: prefetch/prerender de enlaces (3 modos, por tipo de contenido, inline o edge) | Opcional |
transparent_edge_lcp |
Precarga de la imagen LCP por tipo de contenido (auto-detección de estilo) + header Link (base Early Hints) |
Opcional |
transparent_edge_security |
Security headers (snippet + verificación en vivo), gating por servicios contratados, asesor de mitigación, postura de seguridad | Opcional |
- Drupal 10.3+ o 11.x · PHP 8.1+ (8.3 recomendado)
- Cuenta de Transparent Edge con API habilitada (Company ID, Client ID, Client Secret)
- El dominio del site sirviéndose a través de la CDN de Transparent Edge
composer require drupal/purge # framework de invalidación (para el purger)Opción A — Zip (actual): descarga transparent_edge-x.y.z.zip y descomprímelo en web/modules/custom/, quedando en web/modules/custom/transparent_edge/.
Opción B — Composer vía GitHub (cuando el repositorio sea público):
"repositories": [
{ "type": "vcs", "url": "https://github.com/TransparentEdge/drupal-transparentedge-cache" }
]composer require transparentedge/transparent_edge(Publicación en Packagist prevista tras el periodo de validación: entonces bastará el composer require, sin bloque repositories.)
# Núcleo + invalidación automática (recomendado para todos los sites)
drush en transparent_edge transparent_edge_purger \
purge purge_ui purge_queuer_coretags purge_processor_cron purge_drush -y
# Opcionales, según lo que quieras usar
drush en transparent_edge_i3 transparent_edge_speculation \
transparent_edge_lcp transparent_edge_security -yEl asesor de mitigación de
transparent_edge_securityse apoya en el módulo Update Status de core (drush en update).
// Secreto de API fuera de la configuración exportada.
$settings['transparent_edge.client_secret'] = getenv('TE_CLIENT_SECRET');
// Detrás de la CDN: confiar en los headers del proxy.
$settings['reverse_proxy'] = TRUE;
$settings['reverse_proxy_trusted_headers'] =
\Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_FOR
| \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_PROTO;En Configuración → Servicios web → Transparent Edge, ejecuta el asistente (4 pasos): detección de entorno → credenciales con test en vivo → perfil de caché (Editorial / E-commerce / Conservador / Agresivo) → resumen. Corrige automáticamente el cache.page.max_age = 0 de Drupal si lo encuentra. Relanzable en cualquier momento desde el Dashboard.
En /admin/config/development/performance/purge: añade el purger Transparent Edge, el queuer Core tags y el processor Cron. O por Drush:
drush p:purger-add transparent_edgeLa cola de purgas y el warm-up se procesan en el cron de Drupal. Prográmalo cada pocos minutos:
*/5 * * * * /ruta/a/vendor/bin/drush --root=/ruta/al/docroot cronLos ficheros estáticos puros no pasan por Drupal. En la pestaña Caché: en Apache, botón "Escribir reglas en .htaccess" (con backup automático); en nginx, copia el snippet generado a tu bloque server {} y recarga. Verifica con el botón "Verificar cabeceras de estáticos en vivo".
drush te:status # autenticación, circuit breaker, site key
curl -sI https://tu-dominio/ | grep -i surrogate-keys # el header sale del origenY en el Dashboard del módulo: conexión ✓, política de caché activa, purger registrado, y (si aplica) postura de seguridad del site. Edita cualquier contenido y observa la invalidación automática en "Invalidaciones recientes".
drush te:status # conexión, circuit breaker, site key
drush te:purge-all [--html-only] # purga total (o solo HTML, conservando estáticos)
drush te:purge-tag node:1,node_list # purga por cache tags de Drupal
drush te:purge-url https://... [--recursive]
drush te:warmup --sitemap-url=https://tu-dominio/sitemap.xml- El módulo nunca despliega VCL — genera snippets recomendados que el cliente revisa y aplica desde su dashboard (desplegar VCL reemplaza la configuración activa completa).
- Sin recursos huérfanos — no crea nada por API que luego no se pueda gestionar; las acciones de seguridad son recomendaciones con gestión en el panel de TE.
- Privacidad multi-site — un site nunca ve datos (historial, purgas) de otros sites de la misma company.
- Mismo formateo al emitir y purgar — el purger usa el mismo
TagFormatterque genera el header: ambos lados siempre coinciden.
- Tests: 20 (unit + kernel), verdes en Drupal 10.6 + PHPUnit 9.6 y Drupal 11 + PHPUnit 11
phpcsestándar Drupal: limpio ·phpstannivel 2 + reglas Drupal: 0 errores- CI incluido (
.github/workflows/ci.yml): phpcs + phpstan + tests en matriz D10/D11 - Interfaz bilingüe ES/EN (270+ cadenas, cobertura verificada por herramienta)
doc/guia-usuario-transparent-edge-drupal.pdf— guía completa de usuario (línea corporativa)doc/guia-usuario.md— versión markdownCHANGELOG.md— historial de versiones- Plataforma: docs.transparentedge.eu
help+cdn@transparentedge.eu · www.transparentedge.eu Licencia: GPL-2.0-or-later