name: r2-transfer-service-playbook description: Manage changes to the R2 transfer pipeline (Python service, Cloudflare Workers, PHP logger) with mandatory validations, allowlists, and regression checks.
R2 Transfer Service Playbook
Portée
Utilise ce skill lorsqu'une tâche touche :
services/r2_transfer_service.pyemail_processing/orchestrator.py(section delivery_links / r2_url)deployment/cloudflare-worker/*deployment/public_html/config_api.php,deployment/public_html/test-direct.php, pages de test R2
Pré-requis
- ENV obligatoires :
R2_BASE_URL,R2_FETCH_TOKEN,ALLOWED_R2_DOMAINS. - Virtualenv
/mnt/venv_ext4/venv_render_signal_serverpour les scripts/tests. - Accès au déploiement Cloudflare Workers (wrangler).
Workflow
- Analyse des dépendances
- Confirmer la présence des ENV ci-dessus.
- Vérifier les allowlists (Dropbox/FromSmash/SwissTransfer) avant toute nouvelle source.
- Mises à jour Python
- Toujours valider les domaines via
is_allowed_domain. - Injecter le header
X-R2-FETCH-TOKENpour chaque requête Worker. - Conserver les logs sans PII et retour fallback
raw_urlen cas d'échec.
- Toujours valider les domaines via
- Workers Cloudflare
- Garder le mode fetch avec timeout 120s pour Dropbox
/scl/fo/. - Mettre à jour
httpMetadata.contentDispositionpour préserver le nom de fichier. - Exécuter
wrangler deploy --dry-run(documenter la sortie).
- Garder le mode fetch avec timeout 120s pour Dropbox
- PHP Logger / Diagnostics
- Assurer que
config_api.phpcontinue d'écrire les pairessource_url/r2_url. - Tester
deployment/public_html/test-direct.phppour valider le flux complet.
- Assurer que
- Tests & validation
- Lancer le helper
./.cline/skills/r2-transfer-service-playbook/test_r2_worker.sh. - Compléter si besoin avec des tests ciblés sur les nouvelles sources.
- Lancer le helper
- Documentation & Memory Bank
- Mettre à jour
docs/processing/file-offload.mdou section dédiée R2. - Ajouter une entrée dans la Memory Bank si de nouvelles sources sont supportées.
- Mettre à jour
Ressources
test_r2_worker.sh: active le venv, exécute les tests R2 et vérifie la page de test PHP.
Conseils
- En cas de nouvelle plateforme de fichiers, créer un helper dédié (normalisation URL, validation).
- Limiter les retries côté Worker, gérer les erreurs HTTP explicitement.
- Garder les scripts de cleanup alignés (expiration 24h par défaut).