2026 OpenClaw, front-end terrain :
Cloudflare Pages Deploy Hook → Mac distant — fumée, audit d’en-têtes et rappel de résumé de build
Public : équipes Cloudflare Pages avec caches résiduels et régressions d’en-têtes. Par rapport au flux Netlify, cette chaîne ajoute purge, diff _headers, lots curl, OpenClaw et métriques → PR. Voir aussi fumée pré-déploiement, CSP Safari, Service Worker.
01 Pourquoi un hook Pages exige encore un runner Mac distant
Un Deploy Hook annonce la fin de build, pas que CSP, HSTS ou Permissions-Policy survivent à Workers + _headers. Sans convergence de purge, la CI peut être verte alors que le bord sert encore une coquille ancienne.
- Invalidation. Purge ciblée ou actifs hachés : sinon la fumée rate un document collant au CDN.
- En-têtes fusionnés. Comparez les en-têtes effectifs après déploiement (apex,
www, préprod). - Navigateurs réels. WebKit vs stockage/SW : un Mac distant pour Playwright ; voir HTTP/3 · QUIC pour les preuves réseau.
02 Matrice de décision : hooks Netlify vs hooks Cloudflare Pages
Même principe de hook, sémantique du bord différente : Pages exige purge, Workers et _headers vérifiés par diff face au vivant.
| Sujet | Accent Netlify Deploy Hook | Accent Cloudflare Pages |
|---|---|---|
| Contrat du hook | Build terminé ; les URL de preview sont citoyennes de première classe. | Projets prod/preview ; associer le hook à une purge et aux routes Workers qui recollent le trafic. |
| Source de vérité des en-têtes | Blocs headers dans netlify.toml. |
Fichier _headers + règles tableau de bord ; exiger un diff curl face aux réponses réelles. |
| Risque de contenu périmé | Patterns d’invalidation CDN propres à la plateforme. | API de purge explicites et stratégies de tags ; traiter HTML et fragments hachés séparément. |
| Style de vérification | Chauffe GET + Playwright reste souvent suffisant. | Ajouter des lots curl sur les en-têtes de sécurité et les chaînes de redirection pour plusieurs entrées. |
03 Chaîne reproductible que l’on peut coller dans un shell
Secret de hook, OPENCLAW_RUN_ID, réponse 202 Accepted rapide ; travail lourd sur Mac loué. Même script en dry-run local et en prod.
- Contexte :
GIT_SHA,CF_PAGES_COMMIT_SHA,DEPLOYMENT_ID,PAGES_URL. - Purge : coquille HTML et JSON non empreint, ou actifs immuables émis par le bundler.
- Chauffe :
curlsur/healthzjusqu’à200; backoff si429. - Diff
_headers:diff -uvs tag précédent ; artefact texte pour la revue. - Lot curl : liste d’URL →
curl -sSIpour HSTS/CSP/Permissions-Policy ; échec si directive requise manque. - Playwright :
npx playwright test tests/smoke --project=webkit --project=chromiumaprès les portes curl. build_summary:.openclaw/reports/build_summary.json(build_summary/v1), POST avecIdempotency-Key: ${GIT_SHA}:${DEPLOYMENT_ID}:cfpages.
04 Passerelle OpenClaw : orchestration et digest d’échecs
La passerelle OpenClaw enchaîne curl_batch, headers_diff, playwright_smoke ; arrêt au premier échec. NDJSON : phase, attempt, http_status, openclaw_run_id ; digest avec première URL faute et DEPLOYMENT_ID.
Même en succès, logguez cf_cache_status / age. Multi-dépôts : un digest par repo et environment.
05 Informations réutilisables (audit, preuve, périmètre)
Listez URL, préfixe ou tag ; évitez la purge zone sauf urgence (limites API).
_headers
Artefact diff + déploiement : intention Git vs curl réel.
Jeton passerelle : résumé et file seulement ; jamais de jetons CF dans le front ou les logs publics.
06 FAQ : hooks, caches et en-têtes
| Symptôme | Cause probable | Que vérifier |
|---|---|---|
| Fumée verte puis flakiness | Course avec la purge ou POP différents. | Allongez la deadline de chauffe, tracez cf-ray et age, relancez le lot curl avant Playwright. |
| CSP absente seulement en prod | Une autre règle écrase les en-têtes statiques. | Comparez curl -sSI sur apex et www ; inspectez les Workers pour des injections d’en-têtes concurrentes. |
| Hook en 403 | Secret pivoté ou mauvais slug de projet. | Régénérez l’URL de hook, mettez à jour le coffre et chassez les endpoints obsolètes dans la documentation interne. |
| 429 sur les API Cloudflare | Rafales de purge ou limites secondaires. | Échelonnez les purges, backoff jitterisé, mettez en cache les métadonnées de déploiement ~5 minutes. |
Les lots curl remplacent-ils Playwright ?
Non : curl prouve transport, redirections et directives d’en-têtes ; le navigateur applique encore CSP et contenu mixte différemment. Servez-vous du lot comme porte rapide, puis laissez Playwright couvrir DOM et stockage.
Que reprendre du guide Netlify ?
L’hygiène générique des hooks, les champs NDJSON et l’idempotence des callbacks restent valables ; substituez simplement les URL fournisseur et ajoutez les étapes cache plus en-têtes propres à Pages.
Enchaînez vos hooks Cloudflare sur du matériel Apple réel
Gardez les déploiements Pages attachés à une automatisation Safari et Chromium durable, diffusez les synthèses OpenClaw et évitez les nuits sur portable. Parcourez les tarifs et le centre d’aide sans compte, puis achat ou location lorsque vos releases edge dépassent les minutes CI partagées.
Pour poursuivre : index du blog, accueil MacWww, centre d’aide.