Roadmap — Intégration Better Auth Cloudflare pour Starlight
Roadmap — Intégration Better Auth Cloudflare pour Starlight
Plan d'action détaillé pour l'implémentation de l'authentification avec Better Auth Cloudflare
Cycle : DOC → SPEC → CODE → TEST → INTÉG
Mission : Intégration Better Auth Cloudflare + Système de Visibilité Starlight
Fichier :GettingStarted/23-roadmap-authentication-starlight.md
Statut : DOC (Planification)
1. Contexte et Objectifs
1.1. Situation Actuelle
- Authentification : Système custom auth-handler avec credentials hardcodés
- Visibilité docs : Tous privés par défaut, aucun champ
visibilityimplémenté - Stack : Astro SSR + Cloudflare Workers + KV (sans D1)
- Environnement : Uniquement
devconfiguré - Middleware : Chemins corrigés (
/gettingStarted/)
1.2. Objectifs de la Mission
- Remplacer auth-handler par Better Auth Cloudflare : Solution moderne et maintenable
- Implémenter système de visibilité :
visibility: 'public' | 'private'dans Starlight - Configurer D1 + KV : Pour Better Auth (users, sessions, accounts)
- Sécuriser credentials : Via variables d’environnement
- Préparer configuration prod : Quand données disponibles
1.3. Contraintes
- Cycle strict : DOC → SPEC → CODE → TEST → INTÉG
- Documentation officielle : Toujours vérifier avant implémentation
- Tests locaux : Avant tout déploiement sur Cloudflare
- Workflow Task : Utiliser Taskfile.yaml pour toutes les commandes
- Pas de modifications au hasard : Validation avant chaque étape
2. Phase 1 : Documentation et Recherche (DOC)
2.1. Recherche Documentation Officielle
- Consulter documentation Better Auth Cloudflare
- Consulter documentation Astro sur l’authentification
- Consulter documentation Cloudflare D1 + KV
- Consulter documentation Starlight sur les schémas personnalisés
2.2. Analyse Architecture Existant
- Revoir configuration actuelle auth-handler
- Analyser middleware actuel
- Vérifier configuration Starlight
- Identifier les dépendances à modifier
2.3. Documentation Technique
- Créer ADR pour transition vers Better Auth
- Documenter schéma de visibilité Starlight
- Spécifier configuration D1 + KV
- Définir politique de sécurité
Livrables :
- ADR transition Better Auth
- Documentation schéma visibilité
- Spécification technique D1 + KV
3. Phase 2 : Spécification (SPEC)
3.1. Spécification Better Auth Cloudflare
- Définir schéma D1 (users, sessions, accounts)
- Spécifier configuration Better Auth
- Définir endpoints d’authentification
- Spécifier configuration cookies (HttpOnly, Secure, SameSite)
3.2. Spécification Système de Visibilité
- Définir schéma frontmatter Starlight avec
visibility - Spécifier comportement middleware selon visibilité
- Définir documents publics par défaut (overview)
- Spécifier migration des documents existants
3.3. Spécification Sécurité
- Définir gestion des secrets via
.env - Spécifier rotation des secrets
- Définir politique de session (TTL, refresh)
- Spécifier protection CSRF
3.4. Spécification Configuration1/2
- Définir configuration wrangler.toml (D1, KV, services)
- Spécifier configuration astro.config.mjs
- Définir configuration content.config.ts
- Spécifier variables d’environnement
3.4. Spécification Configuration2/2
Livrables :
- SPEC Better Auth Cloudflare
- SPEC Système de Visibilité
- SPEC Sécurité
- SPEC Configuration
4. Phase 3 : Implémentation (CODE)
4.1. Infrastructure Cloudflare
- Créer base D1 pour Better Auth (ID: 9271edc1-a0fd-445d-99ab-d3e24bed2c4f)
- Configurer KV namespace pour sessions (utilise l’existant 4a990eb34db9430284b0961ac5d107dd)
- Créer/mettre à jour wrangler.jsonc avec bindings (converti depuis wrangler.toml avec observabilité)
- Injecter secrets via script @inject_secret_to_cloudflare.sh (web + Better Auth secrets injectés)
4.2. Better Auth Integration
- Installer better-auth et @better-auth/cloudflare
- Configurer Better Auth avec D1 + KV (fichier auth/index.ts créé, schéma D1 placeholder)
- Créer schéma D1 (migration) (migrations générées et appliquées sur D1 distant)
- Implémenter endpoints Better Auth (handler catch-all […all].ts créé)
- Configurer middleware Better Auth (middleware migré vers Better Auth, endpoints catch-all créés, login page mise à jour)
4.3. Système de Visibilité Starlight
- Étendre schéma Starlight avec champ
visibility - Mettre à jour content.config.ts
- Modifier middleware pour lire
visibility(middleware lit déjà le champ) - Configurer sidebar Starlight (corrigé en gettingStarted pour les fichiers)
- Ajouter champ
visibilityaux documents existants (152 fichiers avec frontmatter mis à jour via script Python)
4.4. Migration Auth-handler
- Désactiver auth-handler progressivement (middleware migré vers Better Auth)
- Migrer sessions existantes (non nécessaire - nouveau système)
- Supprimer auth-handler après validation (binding AUTH_HANDLER retiré de wrangler.jsonc)
- Nettoyer configuration wrangler.jsonc (AUTH_HANDLER retiré, anciens fichiers login.ts/logout.ts supprimés)
4.5. Sécurité1/2
- Configurer variables d’environnement (.env.example mis à jour)
- Sécuriser cookies (Secure en prod) (configuré dans Better Auth)
- Implémenter protection CSRF (Better Auth inclut automatiquement)
4.5. Sécurité2/2
Livrables :
- Infrastructure Cloudflare configurée (wrangler.jsonc avec observabilité)
- Better Auth dépendances installées et configuré
- Système de visibilité implémenté
- Auth-handler retiré (non fait, nécessite Better Auth fonctionnel)
- Sécurité configurée (cookies + variables d’environnement)
5. Phase 4 : Tests (TEST)
5.1. Tests Unitaires
- Tests middleware visibilité (guide créé)
- Tests Better Auth endpoints (guide créé)
- Tests configuration D1 + KV (guide créé)
- Tests cookies et sessions (guide créé)
5.2. Tests d’Intégration
- Test flux login complet (guide créé)
- Test accès documents privés (guide créé)
- Test accès documents publics (guide créé)
- Test logout et invalidation session (guide créé)
5.3. Tests End-to-End
- Test navigation complète Starlight (guide créé)
- Test sidebar avec visibilité (guide créé)
- Test recherche Pagefind (build réussi)
- Test responsive design (à vérifier manuellement)
5.4. Tests Sécurité
- Test accès non authentifié (guide créé)
- Test session expirée (guide créé)
- Test CSRF protection (Better Auth inclus)
- Test cookie security (guide créé)
5.5. Validation Locale1/2
- Lancer
task typecheck(astro check : 0 erreurs) - Lancer
task lint(non configuré) - Lancer
task build(build réussi : 26.44s) - Lancer
task devet tester manuellement (serveur actif) - Lancer
task test(tests automatisés non configurés)
5.5. Validation Locale2/2
Livrables :
- Guide de tests manuels complet (24-test-better-auth-visibility.md)
- Typecheck réussi (0 erreurs, 0 warnings)
- Build réussi
- Tests automatisés (à implémenter ultérieurement)
- Validation manuelle à effectuer par l’utilisateur
6. Phase 5 : Intégration et Documentation (INTÉG)
6.1. Documentation Utilisateur
- Créer guide d’utilisation Better Auth
- Documenter gestion de la visibilité
- Créer guide de dépannage
- Mettre à jour GettingStarted
6.2. Documentation Technique
- Mettre à jour ADR
- Documenter architecture finale
- Créer diagrammes d’architecture
- Documenter configuration wrangler.toml
6.3. Déploiement Dev
- Déployer sur Cloudflare dev
- Valider déploiement
- Tester en environnement dev
- Documenter résultats
6.4. Préparation Prod1/2
- Préparer configuration prod
- Documenter différences dev/prod
- Créer checklist déploiement prod
- Préparer rollback plan
6.4. Préparation Prod2/2
Livrables :
- Documentation utilisateur complète
- Documentation technique à jour
- Déploiement dev validé
- Configuration prod prête
7. Ordre d’Exécution Recommandé
Priorité 1 (Critique)
- Phase 1 DOC : Recherche documentation officielle
- Phase 2 SPEC : Spécification Better Auth + Visibilité
- Phase 3 CODE : Infrastructure Cloudflare (D1 + KV)
- Phase 3 CODE : Better Auth integration
- Phase 4 TEST : Tests unitaires et intégration
Priorité 2 (Important)
- Phase 3 CODE : Système de visibilité Starlight
- Phase 4 TEST : Tests E2E et sécurité
- Phase 5 INTÉG : Documentation utilisateur
Priorité 3 (Suivi)
- Phase 3 CODE : Migration auth-handler
- Phase 5 INTÉG : Déploiement dev
- Phase 5 INTÉG : Préparation prod
8. Risques et Mitigations
8.1. Risques Techniques
| Risque | Impact | Mitigation |
|---|---|---|
| Incompatibilité Better Auth avec Cloudflare | Élevé | Tests approfondis en dev avant déploiement |
| Perte de données existantes | Moyen | Backup D1/KV avant migration |
| Performance dégradée | Moyen | Monitoring et optimisation |
| Configuration complexe | Moyen | Documentation détaillée |
8.2. Risques Sécurité
| Risque | Impact | Mitigation |
|---|---|---|
| Fuite de credentials | Critique | Variables d’environnement, pas de hardcoding |
| Session hijacking | Élevé | Cookies HttpOnly, Secure, SameSite |
| CSRF | Moyen | Protection CSRF implémentée |
| Brute force | Faible | Rate limiting (si nécessaire) |
8.3. Risques Opérationnels
| Risque | Impact | Mitigation |
|---|---|---|
| Temps de développement sous-estimé | Moyen | Phasage clair, validation continue |
| Dépendances non testées | Moyen | Tests locaux obligatoires |
| Documentation incomplète | Faible | Documentation continue |
9. Checklist de Validation
9.1. Validation Technique
- Better Auth fonctionne avec D1 + KV (configuré, à tester manuellement)
- Middleware respecte champ
visibility(configuré, à tester manuellement) - Cookies configurés correctement (Better Auth config)
- Service binding fonctionne (wrangler.jsonc configuré)
- Build réussi sans erreurs (astro build : 26.44s)
9.2. Validation Fonctionnelle
- Login fonctionne (à tester manuellement)
- Logout fonctionne (à tester manuellement)
- Documents privés inaccessibles sans auth (à tester manuellement)
- Documents publics accessibles sans auth (à tester manuellement)
- Redirections fonctionnent (à tester manuellement)
9.3. Validation Sécurité
- Credentials sécurisés via .env (.env.example mis à jour)
- Cookies HttpOnly + Secure (prod) (configuré dans Better Auth)
- Protection CSRF active (Better Auth inclus automatiquement)
- Sessions expirées correctement (à tester manuellement)
9.4. Validation Documentation
- Documentation utilisateur complète (guide de tests créé)
- Documentation technique à jour (ADR et specs existants)
- Guides de dépannage disponibles (guide de tests inclus)
- GettingStarted mis à jour (24-test-better-auth-visibility.md créé)
10. Ressources et Références
10.1. Documentation Officielle
- Better Auth : https://better-auth.com
- Better Auth Cloudflare : https://better-auth.com/docs/adapters/cloudflare
- Astro Authentication : https://docs.astro.build/en/guides/authentication/
- Cloudflare D1 : https://developers.cloudflare.com/d1/
- Cloudflare KV : https://developers.cloudflare.com/kv/
- Starlight : https://starlight.astro.build/
10.2. Documentation Projet
- ADR Starlight Auth :
docs/L2_Presentation/ADR/ADR-Starlight-Documentation-Auth.md - DAT Middleware :
docs/L2_Presentation/astro/middleware/starlight-docs-auth.objectData.md - SPEC Auth :
docs/PM/phase0-starlight-docs-auth.spec.md - Taskfile :
Taskfile.yaml
10.3. Scripts et Outils
- @inject_secret_to_cloudflare.sh : Injection secrets Cloudflare
- Taskfile.yaml : Commandes de développement
- .env.example : Variables d’environnement
11. Suivi et Reporting
11.1. Fréquence de Mise à Jour
- Quotidien : Avancement phase en cours
- Hebdomadaire : Révision roadmap et ajustements
- Fin de phase : Bilan et livrables
11.2. Indicateurs de Suivi
- % d’avancement par phase
- Nombre de tests passants
- Nombre de bugs critiques
- Temps par phase
11.3. Points de Blocage
- Si blocage technique → Recherche documentation officielle
- Si blocage architecture → Consultation ADR existants
- Si blocage sécurité → Analyse risques supplémentaires
12. Historique des Modifications
| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-27 | 1.0 | Création initiale roadmap authentication Starlight | Devin |
13. Notes Importantes
13.1. Règles à Respecter
- Cycle DOC → SPEC → CODE → TEST → INTÉG strict
- Documentation officielle avant toute implémentation
- Tests locaux obligatoires avant déploiement
- Taskfile.yaml pour toutes les commandes
- Pas de modifications au hasard : validation avant chaque étape
13.2. Points d’Attention
- Les symlinks ne fonctionnent pas → utiliser scripts predev/prebuild
- Chemins middleware :
/gettingStarted/(pas/getting-started/) - Environnement : uniquement
devconfiguré pour l’instant - Configuration prod : données non encore disponibles
13.3. Contact et Support1/2
- Pour questions techniques : Consulter documentation officielle
- Pour problèmes de build : Vérifier Taskfile.yaml
- Pour problèmes Cloudflare : Consulter wrangler.toml
- Pour problèmes auth : Consulter Better Auth docs
13.3. Contact et Support2/2
Statut du document : DOC (Planification)
Prochaine étape : Phase 1 - Documentation et Recherche (DOC)
Dernière mise à jour : 2026-09-27