Phase 0 - Test : Prérequis du Composant 1 (Page d'accueil)
Phase 0 - Test : Prérequis du Composant 1 (Page d'accueil)
Documentation technique
Phase : 0 - Golden Path (Composant 1 : Page d’accueil)
Slice : Slice 1
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Statut : En cours
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és1/2
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
1.1. Changements effectués2/2
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
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
ls -la apps/studio/schema.jsonAttendu :
- Fichier
schema.jsonexiste - Contient les types : page, hero, features, testimonials, cta, richText, imageGallery
3. Test du build Astro
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
ls -la apps/web/src/layouts/MainLayout.astroAttendu :
- Fichier
MainLayout.astroexiste - Layout utilise Header, Footer, BaseHead
4. Test du middleware Cloudflare
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 secrets1/3
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
4.2. Configuration des secrets2/3
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
4.2. Configuration des secrets3/3
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
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
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
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
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
- ✅ Build réussi sans erreurs
- ✅ Layout
MainLayoutcréé - ✅ BaseHead mis à jour
5.3. Middleware Cloudflare
- ✅ Middleware Worker créé
- ✅ Validation du secret fonctionnelle
- ✅ Worker démarrable en local
6. Conclusion
La Phase 0 - Prérequis du Composant 1 est terminée avec succès.
6.1. Changements effectués1/2
-
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
6.1. Changements effectués2/2
-
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
- 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
- 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
| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-16 | 1.0 | Création initiale | Devin |