6.7 KiB
6.7 KiB
📧 Résumé : Migration Email Signature Salarié vers Système Universel v2
🎯 Objectif atteint
Au lieu que la Lambda postDocuSealSalarie envoie directement les emails via AWS SES, elle appelle maintenant une API de l'Espace Paie qui utilise le système universel v2. Tous les emails sont maintenant loggés dans la base de données.
✅ Ce qui a été fait
1. Espace Paie - Système Email
Fichier : lib/emailTemplateService.ts
- ✅ Ajout du type
'signature-request-salarie'dansEmailTypeV2 - ✅ Ajout des champs
matriculeettypecontratdansEmailDataV2 - ✅ Configuration complète du template avec :
- Subject :
"Signez votre contrat {{organizationName}}" - Carte info : employeur + matricule
- Carte détails : référence, type contrat, dates, poste, production
- Bouton CTA : "Signer le contrat"
- Footer personnalisé pour les salariés
- Subject :
Fichier : lib/cleanEnv.ts
- ✅ Ajout de
LAMBDA_API_KEYdans l'objetENV
Fichier : app/api/emails/signature-salarie/route.ts ⭐ NOUVEAU
- ✅ Route POST protégée par API Key
- ✅ Validation des données entrantes
- ✅ Appel à
sendUniversalEmailV2()avec le typesignature-request-salarie - ✅ Retour du messageId SES
- ✅ Logs automatiques dans
email_logs(via le système universel)
2. Lambda AWS
Fichier : LAMBDA_SIGNATURE_SALARIE_UPDATED.js ⭐ CODE MIS À JOUR
Changements par rapport à l'ancien code :
❌ Supprimé :
sendSignatureEmail()- Envoi direct via SESuploadEmailToS3()- Upload du HTML sur S3logToAirtable()- Journalisation AirtablegenerateEmailHtml()- Template HTML hardcodé- Import de
sesd'AWS SDK
✅ Ajouté :
- Appel POST vers
${ESPACE_PAIE_URL}/api/emails/signature-salarie - Header
X-API-Keypour l'authentification - Payload structuré avec tous les champs nécessaires
- Gestion d'erreur améliorée avec timeout
📝 Variables d'environnement :
- Nouvelles :
ESPACE_PAIE_URL,ESPACE_PAIE_API_KEY - À supprimer :
AWS_SES_FROM,S3_BUCKET_NAME_EMAILS,AIRTABLE_API_KEY
3. Documentation
Fichier : LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md ⭐ NOUVEAU
Guide complet avec :
- Architecture du système
- Configuration AWS Lambda
- Configuration Espace Paie
- Déploiement pas à pas
- Debug & monitoring
- Sécurité
- Gestion des erreurs
- Checklist de déploiement
🔧 Configuration requise
Variables d'environnement Espace Paie
# .env.local (développement)
LAMBDA_API_KEY=<générer une clé de 64 caractères hex>
# Vercel (production)
# Ajouter via : vercel env add LAMBDA_API_KEY
Variables d'environnement Lambda AWS
# À AJOUTER
ESPACE_PAIE_URL=https://paie.odentas.fr
ESPACE_PAIE_API_KEY=<même clé que LAMBDA_API_KEY>
# À CONSERVER (pour Supabase, DocuSeal, Zapier)
DOCUSEAL_API_TOKEN=xxxxx
SUPABASE_URL=xxxxx
SUPABASE_SERVICE_ROLE=xxxxx
ZAPIER_WEBHOOK_URL=xxxxx
# À SUPPRIMER (optionnel mais recommandé)
AWS_SES_FROM=paie@odentas.fr
S3_BUCKET_NAME_EMAILS=odentas-emails
AIRTABLE_API_KEY=xxxxx
📊 Flux de données
Avant (ancien système)
DocuSeal → Lambda → AWS SES → Salarié
↓
S3 (HTML)
↓
Airtable (logs)
Après (nouveau système) ⭐
DocuSeal → Lambda → API Espace Paie → Système Email v2 → AWS SES → Salarié
↓
Supabase email_logs
↓
Interface /staff/email-logs
🎁 Avantages
| Aspect | Avant | Après |
|---|---|---|
| Templates | HTML hardcodé dans Lambda | Template universel v2 centralisé |
| Logs | Airtable (externe) | Supabase email_logs (intégré) |
| Debugging | CloudWatch uniquement | CloudWatch + Interface Staff + DB |
| Cohérence | Email différent des autres | Même style que tous les emails |
| Maintenance | 4 fichiers à maintenir | 1 configuration template |
| HTML Storage | S3 manuel | Automatique dans logs |
🚀 Pour déployer
1. Générer l'API Key
openssl rand -hex 32
# Copier la clé générée
2. Espace Paie
# Local
echo "LAMBDA_API_KEY=<clé_générée>" >> .env.local
# Vercel
vercel env add LAMBDA_API_KEY
# Coller la clé
# Puis redéployer
vercel --prod
3. Lambda AWS
- Aller dans AWS Console → Lambda →
postDocuSealSalarie - Configuration → Environment variables
- Ajouter :
ESPACE_PAIE_URL=https://paie.odentas.frESPACE_PAIE_API_KEY=<clé_générée>(la même)
- Code → Remplacer par
LAMBDA_SIGNATURE_SALARIE_UPDATED.js - Deploy
4. Tester
- Déclencher un webhook DocuSeal
- Vérifier CloudWatch logs
- Vérifier
/staff/email-logs - Vérifier la réception de l'email
🔍 Vérifications
✅ L'API fonctionne
curl -X POST https://paie.odentas.fr/api/emails/signature-salarie \
-H "X-API-Key: votre_cle" \
-H "Content-Type: application/json" \
-d '{
"employeeEmail": "test@example.com",
"signatureLink": "https://test.com",
"reference": "TEST-001",
"organizationName": "Test Org"
}'
Réponse attendue :
{
"success": true,
"messageId": "01000192...",
"recipient": "test@example.com",
"reference": "TEST-001"
}
✅ Les logs apparaissent
- Interface :
/staff/email-logs - Filtrer par type :
signature-request-salarie - Vérifier le statut
sent - Cliquer pour voir le HTML
📁 Fichiers du projet
Espace Paie/
├── app/api/emails/signature-salarie/
│ └── route.ts ⭐ NOUVEAU
├── lib/
│ ├── emailTemplateService.ts ✏️ MODIFIÉ
│ └── cleanEnv.ts ✏️ MODIFIÉ
├── LAMBDA_SIGNATURE_SALARIE_UPDATED.js ⭐ NOUVEAU (à copier dans Lambda)
├── LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md ⭐ NOUVEAU
└── LAMBDA_EMAIL_SIGNATURE_SALARIE_SUMMARY.md ⭐ CE FICHIER
🆘 Support
En cas de problème :
- Logs Lambda : CloudWatch Logs
- Logs API : Console serveur Next.js (Vercel logs)
- Logs email :
/staff/email-logsdans l'interface - Documentation :
LAMBDA_EMAIL_SIGNATURE_SALARIE_GUIDE.md
📝 Notes
- ✅ Compatible avec l'ancien système (possibilité de rollback)
- ✅ Pas d'impact sur les autres emails
- ✅ Le template peut être modifié dans
emailTemplateService.ts - ✅ L'API peut être réutilisée pour d'autres webhooks Lambda
Implémentation réalisée le 15 octobre 2025
Système Email Universel v2 - Odentas Espace Paie