Skip to content

Middleware Cloudflare : Preview Mode

Objet : Middleware Cloudflare Worker
Type : Worker
Slice : Slice 1 (Page d’accueil) + Slice 2 (Blog)
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : DOC


Le middleware Cloudflare Worker est un Worker indépendant qui gÚre le mode preview Sanity. Il valide le secret de preview, pose le cookie sanity-preview, et force le bypass du cache Edge.

  • Validation du mode preview Sanity
  • Gestion du cookie sanity-preview
  • Bypass du cache Edge en mode preview
  • Protection contre les open redirects
  • Type : Cloudflare Worker indĂ©pendant
  • Isolation : IsolĂ© d’Astro (conformĂ©ment Ă  l’ADR L3)
  • Localisation : services/preview-middleware/
  • IntĂ©gration : PlacĂ© en amont de la couche de prĂ©sentation

EntrĂ©e : RequĂȘte HTTP avec paramĂštres de preview

Structure :

GET /api/preview?secret={SANITY_PREVIEW_SECRET}&slug={slug}

RĂšgles :

  • secret : obligatoire, secret de preview Sanity
  • slug : obligatoire, slug de la page Ă  prĂ©visualiser
  • Validation du secret cĂŽtĂ© middleware

EntrĂ©e : Variables d’environnement Cloudflare

Structure :

{
SANITY_PREVIEW_SECRET: string,
SANITY_PROJECT_ID: string,
SANITY_DATASET: string
}

RĂšgles :

  • SANITY_PREVIEW_SECRET : obligatoire, secret de validation
  • SANITY_PROJECT_ID : obligatoire, ID du projet Sanity
  • SANITY_DATASET : obligatoire, nom du dataset

Sortie : Cookie sanity-preview posé

Comportement :

  • Cookie sanity-preview = true
  • path = /
  • httpOnly = true
  • secure = true
  • sameSite = lax
  • maxAge = 3600 (1 heure)

Sortie : Redirect vers la page demandée

Comportement :

  • Status HTTP 307 (Temporary Redirect)
  • Redirect vers le slug validĂ©
  • Protection contre les open redirects

Sortie : Bypass du cache Edge en mode preview

Comportement :

  • cf.cacheEverything = false en mode preview
  • Force le rendu Ă  la demande
  • Évite le cache statique

Effet : Le middleware bypass le cache Edge en mode preview

Impact :

  • En mode preview : pas de cache, rendu Ă  la demande
  • En mode normal : cache Edge activĂ©
  • NĂ©cessite de dĂ©tecter le cookie sanity-preview

Effet : Le middleware valide le secret de preview

Impact :

  • Protection contre l’accĂšs non autorisĂ© aux drafts
  • Protection contre les open redirects
  • Cookie sĂ©curisĂ© (httpOnly, secure)

Erreur Cause probable Solution
Secret invalide Secret incorrect ou manquant Retourner HTTP 401
Slug invalide Slug mal formaté Sanitizer le slug (protection open redirect)
Cookie non posé Erreur lors de la pose du cookie Retourner HTTP 500
Variable manquante Variable d’environnement manquante Retourner HTTP 500
  • 200 : Preview activĂ© avec succĂšs
  • 307 : Redirect vers la page demandĂ©e
  • 401 : Secret invalide ou manquant
  • 500 : Erreur serveur

Avant de passer Ă  l’étape SPEC, vĂ©rifier :

  • La structure du middleware est documentĂ©e
  • Les contrats d’entrĂ©e/sortie sont documentĂ©s
  • Les side effects sont identifiĂ©s
  • Les erreurs potentielles sont documentĂ©es

Validation requise : Confirmer que la documentation du middleware preview peut passer Ă  l’étape SPEC.


Date Version Description Auteur
2026-09-16 1.0 Création initiale Devin
Edit page

Last updated: