espace-paie-odentas/LAMBDA_EMAIL_SIGNATURE_SALARIE_SUMMARY.md

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' dans EmailTypeV2
  • Ajout des champs matricule et typecontrat dans EmailDataV2
  • 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

Fichier : lib/cleanEnv.ts

  • Ajout de LAMBDA_API_KEY dans l'objet ENV

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 type signature-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 SES
  • uploadEmailToS3() - Upload du HTML sur S3
  • logToAirtable() - Journalisation Airtable
  • generateEmailHtml() - Template HTML hardcodé
  • Import de ses d'AWS SDK

Ajouté :

  • Appel POST vers ${ESPACE_PAIE_URL}/api/emails/signature-salarie
  • Header X-API-Key pour 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

  1. Aller dans AWS Console → Lambda → postDocuSealSalarie
  2. Configuration → Environment variables
  3. Ajouter :
    • ESPACE_PAIE_URL = https://paie.odentas.fr
    • ESPACE_PAIE_API_KEY = <clé_générée> (la même)
  4. Code → Remplacer par LAMBDA_SIGNATURE_SALARIE_UPDATED.js
  5. Deploy

4. Tester

  1. Déclencher un webhook DocuSeal
  2. Vérifier CloudWatch logs
  3. Vérifier /staff/email-logs
  4. 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

  1. Interface : /staff/email-logs
  2. Filtrer par type : signature-request-salarie
  3. Vérifier le statut sent
  4. 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 :

  1. Logs Lambda : CloudWatch Logs
  2. Logs API : Console serveur Next.js (Vercel logs)
  3. Logs email : /staff/email-logs dans l'interface
  4. 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