@@ -262,11 +262,25 @@ CREATE TABLE expected_signers (
262262 id BIGSERIAL PRIMARY KEY ,
263263 doc_id TEXT NOT NULL ,
264264 email TEXT NOT NULL ,
265+ name TEXT NOT NULL DEFAULT ' ' , -- Nom d'affichage (optionnel)
265266 added_at TIMESTAMPTZ NOT NULL DEFAULT now(),
266267 added_by TEXT NOT NULL , -- Admin qui a ajouté
267268 notes TEXT ,
268269 UNIQUE (doc_id, email) -- Une attente par email/doc
269270);
271+
272+ -- Table des métadonnées de documents
273+ CREATE TABLE documents (
274+ doc_id TEXT PRIMARY KEY ,
275+ title TEXT NOT NULL DEFAULT ' ' ,
276+ url TEXT NOT NULL DEFAULT ' ' , -- Emplacement du document
277+ checksum TEXT NOT NULL DEFAULT ' ' , -- SHA-256/SHA-512/MD5
278+ checksum_algorithm TEXT NOT NULL DEFAULT ' SHA-256' ,
279+ description TEXT NOT NULL DEFAULT ' ' ,
280+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
281+ updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
282+ created_by TEXT NOT NULL DEFAULT ' '
283+ );
270284```
271285
272286** Garanties** :
@@ -275,6 +289,7 @@ CREATE TABLE expected_signers (
275289- ✅ ** Intégrité** : Hachage SHA-256 pour détecter modifications
276290- ✅ ** Non-répudiation** : Signature Ed25519 cryptographiquement prouvable
277291- ✅ ** Suivi** : Signataires attendus pour monitoring de complétion
292+ - ✅ ** Métadonnées** : Informations de documents avec URL, checksum et description
278293
279294---
280295
@@ -356,6 +371,11 @@ ACKIFY_MAIL_PASSWORD="${SMTP_PASSWORD}"
356371- ` GET /admin/docs/{docID} ` - Détails du document avec gestion des signataires attendus
357372- ` POST /admin/docs/{docID}/expected ` - Ajouter des signataires attendus
358373- ` POST /admin/docs/{docID}/expected/remove ` - Retirer un signataire attendu
374+ - ` POST /admin/docs/{docID}/reminders/send ` - Envoyer des rappels par email aux lecteurs en attente
375+ - ` GET /admin/docs/{docID}/reminders/history ` - Obtenir l'historique des rappels en JSON
376+ - ` GET /admin/docs/{docID}/metadata ` - Obtenir les métadonnées du document en JSON
377+ - ` POST /admin/docs/{docID}/metadata ` - Créer ou mettre à jour les métadonnées du document
378+ - ` DELETE /admin/docs/{docID}/metadata ` - Supprimer les métadonnées du document
359379- ` GET /admin/docs/{docID}/status.json ` - Statut du document en JSON (AJAX)
360380- ` GET /admin/api/chain-integrity/{docID} ` - Vérification d'intégrité de chaîne (JSON)
361381
@@ -364,11 +384,21 @@ Contrôle d'accès: définir `ACKIFY_ADMIN_EMAILS` avec des emails admins, sépa
364384ACKIFY_ADMIN_EMAILS=" alice@entreprise.com,bob@entreprise.com"
365385```
366386
387+ #### Gestion des Métadonnées de Documents
388+ Les administrateurs peuvent gérer des métadonnées complètes pour chaque document :
389+ - ** Stocker les informations** : Titre, URL/emplacement, checksum, description
390+ - ** Vérification d'intégrité** : Support pour les checksums SHA-256, SHA-512 et MD5
391+ - ** Accès facile** : Copie en un clic pour les checksums, URLs de documents cliquables
392+ - ** Horodatage automatique** : Suivi de la création et des mises à jour avec triggers PostgreSQL
393+ - ** Intégration email** : URL du document automatiquement incluse dans les emails de rappel
394+
367395#### Fonctionnalité Signataires Attendus
368396Les administrateurs peuvent définir et suivre les signataires attendus pour chaque document :
369397- ** Ajouter des signataires** : Coller des emails séparés par des sauts de ligne, virgules ou point-virgules
398+ - ** Support des noms** : Utiliser le format "Nom < email@example.com > " pour les emails personnalisés
370399- ** Suivre la complétion** : Barre de progression visuelle avec pourcentage
371400- ** Monitorer le statut** : Voir qui a signé (✓) vs. qui est en attente (⏳)
401+ - ** Rappels par email** : Envoyer des rappels en masse ou sélectifs dans la langue de l'utilisateur
372402- ** Détecter les signatures inattendues** : Identifier les utilisateurs qui ont signé sans être attendus
373403- ** Partage facile** : Copie en un clic du lien de signature du document
374404- ** Gestion en masse** : Ajouter/retirer des signataires individuellement ou en lot
0 commit comments