# Odentas Sign - Configuration Lambda URLs

## URLs des Lambdas de Production

### Lambda PAdES Seal
**Fonction:** Scellage des PDFs avec signature électronique qualifiée (PAdES)
- **Nom:** `odentas-pades-sign`
- **URL:** `https://to6vdbnrcencifu3rlg5rygrua0hhdqc.lambda-url.eu-west-3.on.aws/`
- **Région:** eu-west-3 (Paris)
- **Variable d'environnement:** `LAMBDA_PADES_URL`

### Lambda TSA Timestamp
**Fonction:** Horodatage des documents signés (RFC 3161)
- **Nom:** `odentas-tsa-stamp`
- **URL:** `https://fs5drdovby3tye4i3fmb27b3gi0zfqyw.lambda-url.eu-west-3.on.aws/`
- **Région:** eu-west-3 (Paris)
- **Variable d'environnement:** `LAMBDA_TSA_URL`

## Configuration KMS

**Clé KMS pour chiffrement des signatures:**
```
arn:aws:kms:eu-west-3:292468105557:key/4d08be1d-a871-486e-bf70-f651f18c5f19
```
**Variable d'environnement:** `KMS_KEY_ID`

## Serveur d'Horodatage TSA

**URL du serveur TSA (Sectigo):**
```
https://timestamp.sectigo.com
```
**Variable d'environnement:** `TSA_URL`

## Configuration dans .env

Ajoutez ces lignes dans votre fichier `.env` :

```bash
# Odentas Sign - Lambda URLs
LAMBDA_PADES_URL=https://to6vdbnrcencifu3rlg5rygrua0hhdqc.lambda-url.eu-west-3.on.aws/
LAMBDA_TSA_URL=https://fs5drdovby3tye4i3fmb27b3gi0zfqyw.lambda-url.eu-west-3.on.aws/
KMS_KEY_ID=arn:aws:kms:eu-west-3:292468105557:key/4d08be1d-a871-486e-bf70-f651f18c5f19
TSA_URL=https://timestamp.sectigo.com
```

## Déploiement sur Vercel

Pour déployer en production sur Vercel, ajoutez ces variables d'environnement :

1. Aller dans **Settings** > **Environment Variables**
2. Ajouter chaque variable :
   - `LAMBDA_PADES_URL`
   - `LAMBDA_TSA_URL`
   - `KMS_KEY_ID`
   - `TSA_URL`
3. Sélectionner **Production**, **Preview**, et **Development**
4. Redéployer l'application

## Workflow de Signature Complet

1. **Signature électronique** → Les signataires signent via l'interface web
2. **Déclenchement automatique** → Quand tous ont signé, webhook appelé
3. **Lambda PAdES** → Scellage du PDF avec signature qualifiée
4. **Lambda TSA** → Horodatage du document
5. **S3 Archive** → Stockage avec compliance lock (10 ans)
6. **Email de confirmation** → Notification aux signataires

## Gestion des Erreurs

Si une Lambda échoue :
- ❌ Le statut de la demande passe à `failed`
- 🔔 Un événement `sealing_failed` est loggé
- 🚫 Le document n'est **pas** marqué comme `completed`

Avant ce correctif, le système marquait le document comme `completed` même en cas d'échec du scellage, ce qui posait un problème de conformité.

## Vérification des URLs

Pour vérifier que les Lambdas sont accessibles :

```bash
# Test Lambda PAdES
curl -X POST https://to6vdbnrcencifu3rlg5rygrua0hhdqc.lambda-url.eu-west-3.on.aws/ \
  -H "Content-Type: application/json" \
  -d '{}'

# Test Lambda TSA
curl -X POST https://fs5drdovby3tye4i3fmb27b3gi0zfqyw.lambda-url.eu-west-3.on.aws/ \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Sécurité

Les Function URLs sont actuellement configurées avec `auth-type: NONE` pour permettre l'accès direct depuis Next.js.

Pour une sécurité renforcée en production, considérez :
- Utiliser IAM authentication
- Ajouter une API Gateway avec authentification
- Implémenter un système de tokens/signatures
