Phase 0 - Test : Prérequis du Composant 1 (Page d'accueil)
Phase : 0 - Golden Path (Composant 1 : Page d’accueil)
Slice : Slice 1
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : En cours
1. Contexte
Section titled “1. Contexte”Cette phase a pour objectif de mettre en place les prérequis manquants pour le premier composant du Golden Path : Page d’accueil (vitrine SSG + Sanity).
1.1. Changements effectués
Section titled “1.1. Changements effectués”Sanity Studio :
- Schéma
pagecréé avec PageBuilder - 6 blocs PageBuilder créés : hero, features, testimonials, cta, richText, imageGallery
- Schéma et types Sanity régénérés
Astro :
- Layout
MainLayout.astrocréé - Composant
BaseHead.astromis à jour pour supportercanonicalURL
Cloudflare :
- Middleware Worker
preview-middlewarecréé (conforme à l’ADR L3) - L’approche existante (route Astro
/api/preview) est conservée pour les tests
2. Test du schéma Sanity
Section titled “2. Test du schéma Sanity”2.1. Extraction du schéma
Section titled “2.1. Extraction du schéma”cd apps/studionpx sanity schema extract --forceAttendu :
- Fichier
schema.jsongénéré - Message de succès :
✔ Extracted schema to /home/anderson/PP/apps/studio/schema.json
2.2. Vérification du schéma
Section titled “2.2. Vérification du schéma”ls -la apps/studio/schema.jsonAttendu :
- Fichier
schema.jsonexiste - Contient les types : page, hero, features, testimonials, cta, richText, imageGallery
3. Test du build Astro
Section titled “3. Test du build Astro”3.1. Build en mode hybride
Section titled “3.1. Build en mode hybride”cd apps/webnpx pnpm@12.3.4 buildAttendu :
- Build réussi sans erreurs
- Message de succès :
[build] Complete! - Mode hybride actif
3.2. Vérification du layout
Section titled “3.2. Vérification du layout”ls -la apps/web/src/layouts/MainLayout.astroAttendu :
- Fichier
MainLayout.astroexiste - Layout utilise Header, Footer, BaseHead
4. Test du middleware Cloudflare
Section titled “4. Test du middleware Cloudflare”4.1. Démarrage du middleware via Taskfile
Section titled “4.1. Démarrage du middleware via Taskfile”task dev:preview-middlewareAttendu :
- Middleware démarré sur
http://localhost:8790 - Message de succès :
Ready on http://localhost:8790
4.2. Configuration des secrets
Section titled “4.2. Configuration des secrets”Pour les tests locaux, configurer le secret via le script d’injection ciblé :
./scripts/inject_secret_to_cloudflare.sh --env=dev --service=preview-middlewareCe script :
- Injecte automatiquement le secret
SANITY_PREVIEW_SECRETdans le worker Cloudflare - Crée le worker s’il n’existe pas
- Configure les secrets locaux dans
.dev.varspourwrangler dev
Attendu :
- Secret configuré pour l’environnement dev
- Message de succès à la fin de l’injection
- Worker créé/déployé automatiquement
- Fichier
.dev.varscréé avec les secrets locaux
Note : Le script lit les valeurs depuis le fichier .env à la racine du projet. Assurez-vous que SANITY_PREVIEW_SECRET est défini dans votre .env (déjà présent dans .env.example).
Autres services disponibles :
--service=web: pour l’app Astro (tous les secrets Sanity)--service=submission-processor: pour le worker de traitement des formulaires--service=preview-middleware: pour le middleware de preview
4.3. Test de validation du secret
Section titled “4.3. Test de validation du secret”curl "http://localhost:8790/api/preview?secret={SANITY_PREVIEW_SECRET}&slug=/test"Attendu :
- Si secret invalide :
Invalid preview secret(HTTP 401) - Si secret valide : Redirect avec cookie
sanity-preview
4.4. Note sur le mode hybride
Section titled “4.4. Note sur le mode hybride”Selon l’ADR-SSR-Pur.md, le mode hybride Astro fonctionne avec output: 'server' et le mode hybride est réalisé via export const prerender = true/false sur les pages individuelles. Il n’est pas nécessaire de changer le mode de rendu dans astro.config.mjs pour activer le SSG sur la page d’accueil.
4.5. Note sur la compatibilité wrangler
Section titled “4.5. Note sur la compatibilité wrangler”Les services Cloudflare (form-handler, submission-processor, preview-middleware) utilisent maintenant wrangler@^4.112.0 pour assurer la compatibilité avec @astrojs/cloudflare@14.3.1. Les versions des packages Cloudflare ont été mises à jour :
wrangler: ^4.112.0@cloudflare/workers-types: ^5.20260911.1
5. Résultats des tests
Section titled “5. Résultats des tests”5.1. Schéma Sanity
Section titled “5.1. Schéma Sanity”- ✅ Schéma
pagecréé avec succès - ✅ 6 blocs PageBuilder créés
- ✅ Schéma extrait avec succès
- ✅ Types générés
5.2. Build Astro
Section titled “5.2. Build Astro”- ✅ Build réussi sans erreurs
- ✅ Layout
MainLayoutcréé - ✅ BaseHead mis à jour
5.3. Middleware Cloudflare
Section titled “5.3. Middleware Cloudflare”- ✅ Middleware Worker créé
- ✅ Validation du secret fonctionnelle
- ✅ Worker démarrable en local
6. Conclusion
Section titled “6. Conclusion”La Phase 0 - Prérequis du Composant 1 est terminée avec succès.
6.1. Changements effectués
Section titled “6.1. Changements effectués”-
Sanity Studio :
- Schéma
pageavec PageBuilder - 6 blocs PageBuilder (hero, features, testimonials, cta, richText, imageGallery)
- Schéma et types régénérés
- Schéma
-
Astro :
- Layout
MainLayout.astrocréé - BaseHead mis à jour
- Layout
-
Cloudflare :
- Middleware Worker
preview-middlewarecréé (conforme à l’ADR L3) - Route Astro
/api/previewconservée pour les tests
- Middleware Worker
6.2. Prochaines étapes
Section titled “6.2. Prochaines étapes”- Passer à l’implémentation du composant 1 (Page d’accueil)
- Créer les composants Astro pour les blocs PageBuilder
- Configurer la route
index.astropour utiliser le schémapage - Configurer
export const prerender = truepour le SSG (selon les besoins de la page) - Note : Selon l’ADR-SSR-Pur.md, le mode hybride Astro fonctionne avec
output: 'server'et le mode hybride est réalisé viaexport const prerender = true/falsesur les pages individuelles
7. Notes importantes
Section titled “7. Notes importantes”- Le middleware Cloudflare est conforme à l’ADR L3 (Worker indépendant)
- La route Astro
/api/previewest conservée pour les tests - Le schéma
pageutilise les blocs PageBuilder modulaires - Le layout
MainLayoutfournit la structure commune des pages marketing
8. Historique des modifications
Section titled “8. Historique des modifications”| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |