Configuration Wrangler Globale
Type de ressource : Configuration Wrangler (Monorepo / Services Cloudflare)
Fichier source :wrangler.toml(racine) etservices/[worker-name]/wrangler.toml
Statut : Actif
1. Vue dâensemble
Section titled â1. Vue dâensembleâ1.1. Description
Section titled â1.1. DescriptionâConfiguration centralisĂ©e des ressources Cloudflare partagĂ©es (R2, KV, Queues) pour le monorepo. Ce fichier Ă la racine nâest pas un Worker Ă dĂ©ployer directement, mais sert de rĂ©fĂ©rence pour les identifiants de ressources partagĂ©es.
1.2. Objectif
Section titled â1.2. Objectifâ- Centraliser les identifiants des ressources Cloudflare partagĂ©es
- Fournir une référence unique pour les R2 buckets, Queues et KV namespaces
- Documenter lâarchitecture de dĂ©ploiement du monorepo
1.3. PérimÚtre concerné
Section titled â1.3. PĂ©rimĂštre concernĂ©â- Services couverts : form-handler, submission-processor
- Environnements : Development, Production
- Type de configuration : Wrangler.toml (référence), Bindings (R2, KV, Queue)
2. Architecture du Monorepo
Section titled â2. Architecture du Monorepoâ2.1. Structure du dĂ©pĂŽt
Section titled â2.1. Structure du dĂ©pĂŽtââââ apps/â âââ web/ # Projet Front-End Astro (Couche 02)â â âââ wrangler.tomlâ âââ studio/ # Sanity Studio SPA (Couche 01)â âââ wrangler.tomlâââ services/â âââ form-handler/ # Microservice formulairesâ â âââ src/â â â âââ index.tsâ â âââ wrangler.tomlâ â âââ package.jsonâ âââ submission-processor/ # Microservice traitement soumissionsâ âââ src/â â âââ index.tsâ âââ wrangler.tomlâ âââ package.jsonâââ package.json # Scripts monorepo (Taskfile.yaml)âââ wrangler.toml # Configuration racine (rĂ©fĂ©rence)âââ README.md2.2. Composants impliquĂ©s
Section titled â2.2. Composants impliquĂ©sâ| Composant | RĂŽle | Type |
|---|---|---|
wrangler.toml (racine) |
Configuration globale (référence) | Config |
services/*/wrangler.toml |
Configuration par service | Config |
| Cloudflare Resources | R2, KV, Queues | Infrastructure |
| Taskfile.yaml | Scripts de déploiement | Automation |
3. Configuration par service
Section titled â3. Configuration par serviceâ3.1. Worker form-handler (Traitement des Formulaires)
Section titled â3.1. Worker form-handler (Traitement des Formulaires)âname = "amn-form-handler"main = "src/index.ts"compatibility_date = "2025-07-18"compatibility_flags = ["nodejs_compat"]
[vars]ENVIRONMENT = "dev"
[[queues.producers]]queue = "submissions-queue-dev"binding = "SUBMISSIONS_QUEUE"
[env.dev]name = "amn-form-handler-dev"vars = { ENVIRONMENT = "dev" }
[[env.dev.queues.producers]]queue = "submissions-queue-dev"binding = "SUBMISSIONS_QUEUE"
[env.production]name = "amn-form-handler-prod"vars = { ENVIRONMENT = "production" }
[[env.production.queues.producers]]queue = "submissions-queue-prod"binding = "SUBMISSIONS_QUEUE"3.2. Worker submission-processor (Traitement des Soumissions)
Section titled â3.2. Worker submission-processor (Traitement des Soumissions)âname = "amn-submission-processor"main = "src/index.ts"compatibility_date = "2025-07-18"compatibility_flags = ["nodejs_compat"]
[vars]ENVIRONMENT = "dev"
[env.dev]name = "amn-submission-processor-dev"vars = { ENVIRONMENT = "dev" }
[[env.dev.queues.consumers]]queue = "submissions-queue-dev"max_batch_size = 10max_batch_timeout = 30
[env.production]name = "amn-submission-processor-prod"vars = { ENVIRONMENT = "production" }
[[env.production.queues.consumers]]queue = "submissions-queue-prod"max_batch_size = 10max_batch_timeout = 303.3. Services non implémentés
Section titled â3.3. Services non implĂ©mentĂ©sâLes services suivants du template ne sont pas implĂ©mentĂ©s dans le projet actuel :
middleware(Middleware Global)cms-webhook-receiver(Récepteur Webhooks)media-upload(Upload Présigné)media-cleanup(Nettoyage Cron)sanity-backup(Backup Cron)
4. Gestion des secrets
Section titled â4. Gestion des secretsâ4.1. Matrice des secrets par service
Section titled â4.1. Matrice des secrets par serviceâ| Service | Secret | Description | Rotation |
|---|---|---|---|
form-handler |
Aucun secret configuré | - | - |
submission-processor |
SANITY_PROJECT_ID |
ID du projet Sanity | 90 jours |
submission-processor |
SANITY_DATASET |
Nom du dataset | 90 jours |
submission-processor |
SANITY_API_WRITE_TOKEN |
Token dâĂ©criture Sanity | 90 jours |
4.2. Commandes dâinjection
Section titled â4.2. Commandes dâinjectionâ# Injection des secrets pour le service submission-processorwrangler secret put SANITY_PROJECT_ID --env production --config services/submission-processor/wrangler.tomlwrangler secret put SANITY_DATASET --env production --config services/submission-processor/wrangler.tomlwrangler secret put SANITY_API_WRITE_TOKEN --env production --config services/submission-processor/wrangler.toml4.3. RĂšgles de sĂ©curitĂ©
Section titled â4.3. RĂšgles de sĂ©curitĂ©â- â Les secrets ne sont jamais commitĂ©s dans Git
- â
Les secrets sont injectés via
wrangler secret put(chiffrĂ©s par Cloudflare) - â Rotation recommandĂ©e tous les 90 jours
- â Les secrets sont spĂ©cifiques Ă chaque environnement (production/development)
- â Les secrets ne sont jamais loggĂ©s dans les Workers
4.4. Vérification des secrets
Section titled â4.4. VĂ©rification des secretsâ# Liste des secrets d'un servicewrangler secret list --config services/submission-processor/wrangler.toml --env production
# Suppression d'un secretwrangler secret delete SECRET_NAME --config services/submission-processor/wrangler.toml --env production5. Scripts npm du monorepo
Section titled â5. Scripts npm du monorepoâ5.1. Scripts de dĂ©ploiement
Section titled â5.1. Scripts de dĂ©ploiementâ# Taskfile.yaml (utilisĂ© Ă la place de package.json)tasks: dev:services: # DĂ©marre tous les services build: # Build l'application web typecheck:services: # Typecheck les services5.2. Scripts de gestion des secrets
Section titled â5.2. Scripts de gestion des secretsâNon implĂ©mentĂ© - utilisez wrangler secret put directement.
6. Configuration des environnements
Section titled â6. Configuration des environnementsâ6.1. Matrice des environnements
Section titled â6.1. Matrice des environnementsâ| Environnement | Usage | DĂ©clenchement |
|---|---|---|
dev |
Développement local | task dev:services |
production |
Production publique | Merge sur main (via GitHub Actions) |
6.2. Variables dâenvironnement par environnement
Section titled â6.2. Variables dâenvironnement par environnementâ| Variable | Dev | Production |
|---|---|---|
ENVIRONMENT |
dev |
production |
| Queue | submissions-queue-dev |
submissions-queue-prod |
6.3. RÚgles de déploiement
Section titled â6.3. RĂšgles de dĂ©ploiementâ- â
La branche
maindĂ©clenche le dĂ©ploiement en production via GitHub Actions - â Les secrets sont spĂ©cifiques Ă chaque environnement
- â Les bindings (Queue) sont partagĂ©s ou isolĂ©s selon lâenvironnement
7. Bindings Cloudflare
Section titled â7. Bindings Cloudflareâ7.1. Matrice des bindings par service
Section titled â7.1. Matrice des bindings par serviceâ| Service | KV | R2 | Queue | Service |
|---|---|---|---|---|
form-handler |
- | - | SUBMISSIONS_QUEUE |
- |
submission-processor |
- | - | SUBMISSIONS_QUEUE |
- |
7.2. Création des ressources
Section titled â7.2. CrĂ©ation des ressourcesâ# CrĂ©ation des Queueswrangler queues create submissions-queue-devwrangler queues create submissions-queue-prod7.3. Lifecycle Rules R2
Section titled â7.3. Lifecycle Rules R2âNon implĂ©mentĂ© - aucun bucket R2 nâest configurĂ© dans les services actuels.
8. CI/CD et déploiement
Section titled â8. CI/CD et dĂ©ploiementâ8.1. Pipeline de dĂ©ploiement
Section titled â8.1. Pipeline de dĂ©ploiementâNon documentĂ© - le dĂ©ploiement est automatique via GitHub Actions (selon rĂšgles globales).
8.2. Rollback
Section titled â8.2. Rollbackâ# Liste des dĂ©ploiementswrangler deployments list --config services/form-handler/wrangler.toml
# Rollback vers une version précédentewrangler deployments rollback --deployment-id=[id] --config services/form-handler/wrangler.toml8.3. Tests manuels
Section titled â8.3. Tests manuelsâ# Test local d'un servicetask dev:form-handler
# Test d'un endpointcurl -X POST http://localhost:8789/test-direct \ -H "Content-Type: application/json" \ -d '{"name":"Test","email":"test@example.com","message":"Test message"}'9. Monitoring et observabilité
Section titled â9. Monitoring et observabilitĂ©â9.1. Logs en temps rĂ©el
Section titled â9.1. Logs en temps rĂ©elâ# Logs d'un service spĂ©cifiquewrangler tail form-handler
# Logs avec filtrewrangler tail submission-processor --format pretty9.2. Métriques clés
Section titled â9.2. MĂ©triques clĂ©sâNon implĂ©mentĂ© - aucune mĂ©trique ou alerte nâest configurĂ©e.
9.3. Cloudflare Logpush
Section titled â9.3. Cloudflare LogpushâNon implĂ©mentĂ© - Logpush nâest pas configurĂ©.
10. Débogage et troubleshooting
Section titled â10. DĂ©bogage et troubleshootingâ10.1. ProblĂšmes courants
Section titled â10.1. ProblĂšmes courantsâ| SymptĂŽme | Cause probable | Solution |
|---|---|---|
| âBinding not foundâ | Binding mal configurĂ© | VĂ©rifier le wrangler.toml et redĂ©ployer |
| âSecret not foundâ | Secret non injectĂ© | ExĂ©cuter wrangler secret put |
| âService unavailableâ | Worker non dĂ©ployĂ© | VĂ©rifier le dĂ©ploiement avec wrangler deployments list |
| Erreur de compatibilité | compatibility_date trop ancien |
Mettre Ă jour vers 2025-07-18 |
10.2. Commandes de debug
Section titled â10.2. Commandes de debugâ# VĂ©rification de la configurationwrangler deploy --dry-run --config services/form-handler/wrangler.toml
# Inspection des bindingswrangler queues list11. Bonnes pratiques
Section titled â11. Bonnes pratiquesâ11.1. Architecture
Section titled â11.1. Architectureâ- â
Séparer la configuration par service (un
wrangler.tomlpar Worker) - â Utiliser des environnements distincts (dev/production)
- â Documenter les bindings et secrets dans ce fichier
- â
Versionner les
wrangler.tomldans Git (sauf les secrets)
11.2. Sécurité
Section titled â11.2. SĂ©curitĂ©â- â Ne jamais commiter les secrets dans Git
- â
Utiliser
wrangler secret putpour injecter les secrets - â Rotation rĂ©guliĂšre des secrets (tous les 90 jours)
- â Valider les permissions des tokens API (principe du moindre privilĂšge)
11.3. Performance
Section titled â11.3. Performanceâ- â
Utiliser
compatibility_daterĂ©cent pour bĂ©nĂ©ficier des optimisations - â Minimiser le nombre de bindings par Worker
11.4. Maintenance
Section titled â11.4. Maintenanceâ- â Documenter les changements de configuration dans ce fichier
- â Surveiller les mĂ©triques aprĂšs chaque dĂ©ploiement
12. Ăvolutions et roadmap
Section titled â12. Ăvolutions et roadmapâ12.1. AmĂ©liorations planifiĂ©es
Section titled â12.1. AmĂ©liorations planifiĂ©esâ- Ajout du service middleware (Middleware Global)
- Ajout du service cms-webhook-receiver (Webhooks Sanity)
- Ajout du service media-upload (Upload présigné)
- Ajout du service media-cleanup (Nettoyage Cron)
- Ajout du service sanity-backup (Backup Cron)
- Configuration de Logpush vers un SIEM
12.2. Limitations connues
Section titled â12.2. Limitations connuesâ- â Les secrets ne peuvent pas ĂȘtre versionnĂ©s dans Git
- â Pas de monitoring configurĂ©
- â Pas de Logpush configurĂ©
- â Pas de bucket R2 configurĂ©
13. Ressources liées
Section titled â13. Ressources liĂ©esâ- Documentation Cloudflare : Wrangler Configuration
- Documentation Cloudflare : Queues
- Fichiers concernés :
wrangler.toml(racine)services/form-handler/wrangler.tomlservices/submission-processor/wrangler.tomlapps/web/wrangler.tomlapps/studio/wrangler.toml
14. Historique des modifications
Section titled â14. Historique des modificationsâ| Date | Version | Description | Auteur |
|---|---|---|---|
| 2026-09-15 | 1.0 | Création initiale | Devin |