- Remplacement de DocuSeal par solution souveraine Odentas Sign - Système d'authentification OTP pour signataires (bcryptjs + JWT) - 8 routes API: send-otp, verify-otp, sign, pdf-url, positions, status, webhook, signers - Interface moderne avec canvas de signature et animations (framer-motion, confetti) - Système de templates pour auto-détection des positions de signature (CDDU, RG, avenants) - PDF viewer avec @react-pdf-viewer (compatible Next.js) - Stockage S3: source/, signatures/, evidence/, signed/, certs/ - Tables Supabase: sign_requests, signers, sign_positions, sign_events, sign_assets - Evidence bundle automatique (JSON metadata + timestamps) - Templates emails: OTP et completion - Scripts Lambda prêts: pades-sign (KMS seal) et tsaStamp (RFC3161) - Mode test détecté automatiquement (emails whitelist) - Tests complets avec PDF CDDU réel (2 signataires)
52 lines
3.2 KiB
Text
52 lines
3.2 KiB
Text
-----BEGIN PRIVATE KEY-----
|
|
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
|
|
XKkTYW+gsnPrmEOhe3ccWOGucTprUCc=
|
|
-----END PRIVATE KEY-----
|