← Index des services · SI FGA · spécification de service

svc-signatures

Catégorie : Socle  ·  Périmètre : Transverse  ·  Module : services/svc-signatures (monorepo fga-services — ADR-0001)  ·  Stack : Java · Quarkus · Gradle · YAML  ·  Architecture : hexagonale

1. Rôle et responsabilités

Circuits de signature électronique (lettres de garantie, PV de transaction, mises en demeure) : intégration du prestataire de confiance, ordres de signature, horodatage, collecte des preuves.

2. Modèle de domaine (agrégats)

SignatureRequestSignatureProof

3. API exposée

/v1/signature-requests/v1/signature-requests/{id}/proofs

API REST versionnée, contrat OpenAPI généré et versionné avec le service. Authentification par jeton Keycloak (JWT RS256) validé par le service (Quarkus OIDC).

4. Événements publiés

5. Événements consommés

Topics sigfga.<service>.<aggregate> · enveloppe CloudEvents 1.0 · publication via outbox pattern · consommateurs idempotents (déduplication par event id).

6. Dépendances synchrones

prestataire de signature (port out)

7. Flux principal

svc-signatures · flux principalconsommerdocument.generatedou demande directecréer la SignatureRequestpubliersignature.requestedtransmettre au prestataire de confiancenotifier les signatairessigné ?ouinoncollecter preuve et horodatagepubliersignature.completedrefus explicite ?ouidélai expirépubliersignature.declinedpubliersignature.expired

8. Backlog Jira rattaché

Backlog v2 (16/07/2026) : toujours aucun ticket rattaché à ce service.

1 seule mention de la signature électronique dans tout le backlog, alors que trois documents à portée juridique en dépendent (lettre de garantie, PV de transaction, mise en demeure). Backlog à créer, et choix du prestataire à instruire tôt (valeur juridique en Côte d'Ivoire).

MAJ backlog v2 (16/07/2026) — L'épic programme TRANSVERSE « Signature électronique » (FSD-1171) existe désormais — vide : à décomposer dès le choix du prestataire ARTCI.

9. Implémentation

Structure hexagonale standard : domain (modèle, événements, services purs, sans dépendance framework), application (use cases, ports in/out, transactions), adapter (in/rest, in/messaging, out/persistence, out/messaging, out/client). Dépendances verrouillées par test ArchUnit. Base de données dédiée (schéma PostgreSQL propre), migrations Liquibase (changesets exclusivement en SQL formaté — ADR-0002). Code intégralement en anglais ; textes utilisateur en fichiers i18n français.