- 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)
31 lines
1.9 KiB
Text
31 lines
1.9 KiB
Text
-----BEGIN CERTIFICATE-----
|
|
MIIFYzCCA0ugAwIBAgIUD+kDTGMWduItjjCmHPqOLLqLTfQwDQYJKoZIhvcNAQEL
|
|
BQAwOTELMAkGA1UEBhMCRlIxEDAOBgNVBAoMB09kZW50YXMxGDAWBgNVBAMMD09k
|
|
ZW50YXMgUm9vdCBDQTAeFw0yNTEwMjYxOTIyMjRaFw0zNTEwMjQxOTIyMjRaMDkx
|
|
CzAJBgNVBAYTAkZSMRAwDgYDVQQKDAdPZGVudGFzMRgwFgYDVQQDDA9PZGVudGFz
|
|
IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDI8EHttkpz
|
|
bo7IlL0Lz1MrsRAkU1/xnU0yxx4SNB2DO2VAKBlyV+JB0iItsNKVQUhsDp24UyUX
|
|
AFqe5gapwU9MTrv9xFWrcHMxYU0A8ENR9wRHf2Liq9m42DAPtjUZqWs2smFvGzV2
|
|
apX1VrjLyQonw4L5QiAc+lTBHzZbpKOBnzKhkuZahjQaJPRsR5OjoT+IkUxNl53Z
|
|
cJGl1Q/JRusiD0jtavYGRs96EcxDmEw+R8NXdsIBAmlMma9bfQ3xfHoShiD//WY4
|
|
UmDcbFVNDZaeflMZVMlm0wt8b7eXxMFX9yKUa7sW/pLIgMwaPo/iQ3NizjVRsKSB
|
|
YB3/IkC2kWMiedAZv8IE3Q82QcPGLXT5ku25PG5DcTF1PInAVeVWqRXUqCWBiUY6
|
|
AGQSXzVNpyW3e9MY2L36WxvCE6WpCY6bnnq2Y3Za2tn/s1ShlufO1ObaKPEV13Ca
|
|
JBlmFGMgBPiMDSl8rQpFWZdfqK0m94f//CJHeKFxVG49sCsq1uC5Ls6H09c4J5aD
|
|
g5odxCH1NzEXbsv7hv6grPvwc+FgGlviTrjo7BO7aEUDGQYfL505908izq18CbCh
|
|
t7r3UynsDMChibIk1D2aakT9epWjp7D29yoH/gdFqZt/VoUUr0DP0p4XyeEM26Yf
|
|
12zo69rrgp5UgYYEvn7qdalO9tdNqnpDbQIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
|
|
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUneD9sxs//bg80vYmPoLSRtT4
|
|
IcQwHwYDVR0jBBgwFoAUneD9sxs//bg80vYmPoLSRtT4IcQwDQYJKoZIhvcNAQEL
|
|
BQADggIBAA2gZQh5AWyxPMznh0Rira9HE+vHBK4U69J4N/EiKAh2IYfAZbjObz+t
|
|
dqfbzGCAiuXPe/1dIWEQr3HtOJ64growGS92kPZTAq+E+rgDS77wKI1sksoxtzRo
|
|
OM9yQMnhXczUQ6dZz3m9Ehn0djoqfNElYwfzKFjahCh2EFBNGtJwpLdHETER2hq0
|
|
H7ML9r1XZTz/+1N3bU16Q4054DvutrgPQe3+e+BtJr3B6wvtVI7TYy+/FLGyRaq8
|
|
j+6XOidMFyPTDNI4TaG1/N4mRvwypJoY3l04yrueQniCm74I5yrImhwtQec3QXgb
|
|
XxP+wiWmyr00VpN9HPPyAzxs3fhrnyIS9mhg2X4kM8aCkxq/+MlQi0K1oUJufzm/
|
|
DFRbYdPA9LP4yeLF++8PeCvOQjrYDihf3/pbua27fGNQy6Trl/JK7q5LZ6VoOghm
|
|
YI4g7pyNstB7MExwn9L+RHSRnf8yhJagLWeQRh08w4tb74cwqed4KsvIpk+6jxfA
|
|
qojkbH7JoY9ZKckcCyCLhN1FST6Roswf8+Cle/C30idVfbwLe/8SDSlQdkhMk6Ip
|
|
sU+5thjxbKk2caprFnDCVu14L0FqCLbn2Prn3szEcKXjBvh8a1Gu6Yhzpz0hocES
|
|
26cT8Qa26VB31LARk9OmVol9yQBQB55tFEOWweRGNR8zYohL8Frg
|
|
-----END CERTIFICATE-----
|