Aller au contenu principal

Changelog

Historique des modifications de MCM.ApiProxy.

[Unreleased]

Ajouté

  • ISignatureClient.SearchSignaturesV2 — Nouvelle méthode de recherche d'adhésions V2 avec filtres optionnels combinés par ET logique (AND) : Apres, Avant, IdExterneSyndicat, IdExterneEmploye, NoMembre, ASignatureManuscripte, AvecPaiement. Utilise l'endpoint V2 GET b2b/v2/adhesion avec les filtres en paramètres de requête
  • B2BAdhesionSearchRequestV2 — DTO de critères de recherche pour SearchSignaturesV2 (tous les filtres optionnels)

Modifié

  • GET b2b/v2/adhesion — Le paramètre de requête IdExterne (V1) a été renommé IdExterneEmploye. Les consommateurs du SDK MCM.ApiProxy ne sont pas affectés (les méthodes GetSignaturesV2Depuis et GetSignaturesV2ParIdExterne continuent de fonctionner). Les intégrations HTTP directes qui passaient ?IdExterne=... sur l'endpoint V2 doivent migrer vers ?IdExterneEmploye=...

[3.1.0] - 2026-04-16

Version stable consolidant les fonctionnalités des versions alpha 3.1.0-alpha.1 à 3.1.0-alpha.3.

Ajouté

  • IConciliationClient — Nouveau client pour la conciliation des demandes d'adhésion par un système de mission externe
    • GetDemandesATransferer() — Liste des demandes en statut ATransferer
    • Confirmer(idUnique, data?) — Confirme qu'une demande a été traitée et retourne l'IdExterne du nouvel Employe
    • Rejeter(idUnique) — Rejette une demande sans créer de membre
  • IEmploisClient.SearchEmplois — Recherche d'emplois avec filtres optionnels (syndicat, employeur, employé, matricule, statut actif) via l'endpoint V2 b2b/v2/emploi
  • ISignatureClient.DeleteAdhesionByIdUnique — Suppression d'une adhésion par son identifiant unique (GUID) via l'endpoint V2
  • ISignatureClient.DeleteAdhesionsByMembre — Suppression de toutes les adhésions d'un membre, avec filtre optionnel par syndicat
  • B2BDemandeAdhesionConciliationItem — DTO décrivant une demande d'adhésion en attente de traitement externe
  • B2BConfirmerDemandeAdhesionDto — DTO optionnel pour écraser les valeurs de la demande lors de la confirmation
  • B2BEmploiSearchRequest — DTO de critères de recherche pour SearchEmplois (tous les filtres optionnels)
  • WebhookEventTypes.AdhesionSignee (adhesion.signee) — Nouvel événement webhook déclenché à la signature d'une adhésion. Payload : B2BAdhesionItemV2

Modifié

  • B2BListeElectoraleItem — Nouvelle propriété optionnelle Commentaire (string?) pour annoter un membre de la liste électorale

[3.1.0-alpha.3] - 2026-04-16

Ajouté

  • IConciliationClient — Nouveau client pour la conciliation des demandes d'adhésion par un système de mission externe
    • GetDemandesATransferer() — Liste des demandes en statut ATransferer
    • Confirmer(idUnique, data?) — Confirme qu'une demande a été traitée et retourne l'IdExterne du nouvel Employe
    • Rejeter(idUnique) — Rejette une demande sans créer de membre
  • B2BDemandeAdhesionConciliationItem — DTO décrivant une demande d'adhésion en attente de traitement externe
  • B2BConfirmerDemandeAdhesionDto — DTO optionnel pour écraser les valeurs de la demande lors de la confirmation
  • WebhookEventTypes.AdhesionSignee (adhesion.signee) — Nouvel événement webhook déclenché à la signature d'une adhésion. Payload : B2BAdhesionItemV2

[3.1.0-alpha.2] - 2026-04-15

Aucune modification au SDK (ApiProxy / B2B.Contracts). Cette release concerne la refactorisation interne de la configuration des formulaires en sections indépendantes.

[3.1.0-alpha.1] - 2026-04-14

Ajouté

  • IEmploisClient.SearchEmplois — Nouvelle méthode de recherche d'emplois avec filtres optionnels (syndicat, employeur, employé, matricule, statut actif) via l'endpoint V2 b2b/v2/emploi
  • ISignatureClient.DeleteAdhesionByIdUnique — Suppression d'une adhésion par son identifiant unique (GUID) via l'endpoint V2
  • ISignatureClient.DeleteAdhesionsByMembre — Suppression de toutes les adhésions d'un membre, avec filtre optionnel par syndicat
  • B2BEmploiSearchRequest — Nouveau DTO de critères de recherche pour SearchEmplois (tous les filtres sont optionnels)

Modifié

  • B2BListeElectoraleItem — Nouvelle propriété optionnelle Commentaire (string?) pour annoter un membre de la liste électorale

[3.0.2] - 2026-04-13

Aucune modification au SDK (ApiProxy / B2B.Contracts). Cette release corrige le flash d'erreur sur la page de vote et les namespaces i18n des validations utilisateur.

[3.0.1] - 2026-04-12

Aucune modification au SDK (ApiProxy / B2B.Contracts). Cette release ajoute les modèles de courriels système, le support multi-domaine en production, et inclut une revue de code complète avec 31 correctifs.

[3.0.0] - 2026-04-10

Version majeure. Aucune modification au SDK (ApiProxy / B2B.Contracts) depuis 2.19.10. Cette release regroupe des corrections backend et frontend diverses (voir les notes de version pour les détails).

[2.19.0] - 2026-04-01

Version stable consolidant toutes les fonctionnalités des versions alpha 2.19.0-alpha.15 à 2.19.0-alpha.68.

Ajouté

  • IListeElectoraleClient — Nouveau client pour la gestion de la liste électorale (consultation, droits de vote, envoi de jetons)
  • Webhooks sortants — Système de webhooks pour notifier les applications externes (création de liste électorale, etc.)
  • ICourrielClient.EnvoyerDerniereCarteMembrePourEmploi — Envoi de carte de membre ciblant un emploi spécifique
  • ICourrielClient.EnvoyerFormulairePourEmploi — Envoi de formulaire ciblant un emploi spécifique
  • IVotantsClient.MettreAJourDroitsDeVote — Mise à jour en lot des droits de vote
  • B2BAdhesionDtoV2 / B2BAdhesionItemV2 — DTOs d'adhésion V2 avec snapshot des coordonnées
  • B2BUpdateSyndicatDtoV2 — Mise à jour syndicat V2
  • ISignatureClient.GetSignatureInfo — Obtention des informations de signature
  • B2BVotantItem.Commentaire — Annotation libre des votants
  • B2BCampagneStatsItem.ResultatsVisibles — Indicateur de visibilité des résultats
  • B2BCampagneStatsItem.TotalVotantsAvecDroitDeVote — Distinction votants inscrits vs avec droit de vote

Modifié (breaking changes)

  • IVotantsClient — Toutes les méthodes utilisent Guid votantId au lieu de string identifiant
  • IListeElectoraleClient — Méthodes EnvoyerJeton et MettreAJourDroitDeVote utilisent Guid votantId
  • B2BUpsertVotantDtoIdentifiant devient optionnel, nouveau champ VotantId: Guid?
  • B2BMettreAJourDroitsDeVoteDtoIdentifiants remplacé par VotantIds: ICollection<Guid>
  • ApiProxy SDK — Suppression de ApiKeyHandler, ConfigApiKeyProvider, IApiKeyProvider (simplification de l'authentification)
  • ISyncClient.Sync — Accepte 4 paramètres incluant les syndicats V2

Migration

Voir le Guide de migration V2 et les entrées alpha ci-dessous pour les détails de migration.


[2.19.0-alpha.32] - 2026-03-15

Ajouté

  • B2BCampagneStatsItem — Nouvelle propriété ResultatsVisibles (bool) indiquant si les résultats détaillés par option sont visibles. false lorsque le vote est actif et que le feature flag AfficherResultatsVoteActif est désactivé.

[2.19.0-alpha.28] - 2026-03-13

Modifié (breaking changes)

  • IVotantsClient.GetVotantByIdentifiant renommé en GetVotantById — le paramètre string identifiant devient Guid votantId
  • IVotantsClient.DeleteVotant — le paramètre string identifiant devient Guid votantId
  • IVotantsClient.RadierVotant — le paramètre string identifiant devient Guid votantId
  • IVotantsClient.MettreAJourDroitsDeVote — utilise désormais B2BMettreAJourDroitsDeVoteDto.VotantIds (ICollection<Guid>) au lieu de Identifiants (ICollection<string>)
  • IListeElectoraleClient.EnvoyerJeton — le paramètre string identifiant devient Guid votantId
  • IListeElectoraleClient.MettreAJourDroitDeVote — le paramètre string identifiant devient Guid votantId
  • B2BUpsertVotantDtoIdentifiant n'est plus required (devient string?, simple métadonnée). Nouveau champ VotantId: Guid? : null pour créer, fourni pour mettre à jour
  • B2BMettreAJourDroitsDeVoteDtoIdentifiants: ICollection<string> remplacé par VotantIds: ICollection<Guid>
  • B2BMettreAJourDroitsDeVoteResultIdentifiantsNonTrouves: ICollection<string> remplacé par VotantIdsNonTrouves: ICollection<Guid>
  • Routes — tous les segments {identifiant} dans les routes votants deviennent {votantId:guid}

Migration

Remplacer les usages de string identifiant par le Guid retourné par UpsertVotant. Pour B2BUpsertVotantDto, supprimer Identifiant = "..." comme clé de correspondance et utiliser VotantId pour les mises à jour.


[2.19.0-alpha.27] - 2026-03-13

Ajouté

  • B2BVotantItem - Nouvelle propriété Commentaire pour annoter librement un votant
  • B2BUpsertVotantDto - Nouvelle propriété optionnelle Commentaire pour définir un commentaire lors de la création ou mise à jour d'un votant
  • B2BMettreAJourDroitDeVoteDto - Nouvelle propriété optionnelle Commentaire pour enregistrer un motif lors de la mise à jour individuelle du droit de vote
  • B2BMettreAJourDroitsDeVoteDto - Nouvelle propriété optionnelle Commentaire pour enregistrer un motif commun lors de la mise à jour en lot des droits de vote

[2.19.0-alpha.24] - 2026-03-12

Ajouté

  • IListeElectoraleClient - Nouveau client pour la gestion de la liste électorale (consultation, droits de vote, envoi de jetons)
  • B2BListeElectoraleItem / B2BListeElectoraleSearchRequest - Types pour la liste électorale avec filtre par SyndicatIdExterne
  • B2BMettreAJourDroitDeVoteDto - DTO pour la mise à jour individuelle du droit de vote avec option d'envoi de jeton
  • B2BVotantItem - Nouvelles propriétés EmployeIdExterne et SyndicatIdExterne pour identifier les liens employé/syndicat
  • B2BListeElectoraleItem - Nouvelles propriétés EmployeIdExterne et SyndicatIdExterne (même logique que B2BVotantItem)
  • B2BCampagneStatsItem - Nouvelle propriété TotalVotantsAvecDroitDeVote pour distinguer votants inscrits et votants avec droit de vote

Modifié

  • ICampagnesClient.GetCampagneStats - Nouveau paramètre optionnel syndicatIdExterne pour filtrer les compteurs de votants par syndicat

[2.19.0-alpha.22] - 2026-03-04

Ajouté

  • Webhooks sortants - Nouveau système de webhooks pour notifier les applications externes lors d'événements MCM
  • IVotantsClient - Nouvelle méthode MettreAJourDroitsDeVote pour la mise à jour en lot des droits de vote
  • B2BMettreAJourDroitsDeVoteDto / B2BMettreAJourDroitsDeVoteResult - DTOs pour la mise à jour en lot
  • B2BWebhookPayload / B2BListeElectoraleCreeData - DTOs pour les événements webhook
  • IMcmWebhookHandler - Interface pour recevoir et traiter les webhooks MCM
  • WebhookSignatureValidator - Validation HMAC-SHA256 des signatures webhook
  • McmWebhookMiddleware - Middleware ASP.NET Core pour la réception des webhooks

Modifié

  • IConsentementClient - Mise à jour de la méthode de recherche des consentements

[2.19.0-alpha.21] - 2026-02-18

Ajouté

  • ICourrielClient - Nouvelle méthode EnvoyerDerniereCarteMembrePourEmploi pour envoyer la carte de membre en ciblant un emploi spécifique
  • ICourrielClient - Nouvelle méthode EnvoyerFormulairePourEmploi pour envoyer un formulaire en ciblant un emploi spécifique
  • B2BEnvoyerDerniereCarteMembrePourEmploiRequest - Requête avec IdExterneEmploi et Courriel
  • B2BEnvoyerFormulairePourEmploiRequest - Requête avec IdExterneEmploi, Courriel et IdFormulaire

[2.19.0-alpha.16] - 2026-02-11

Corrigé

  • B2BAdhesionSearchQueryV2 - Correction du nom de colonne LibelleLabel dans la requête Dapper des champs personnalisés
  • Tests d'intégration - Ajout de tests pour B2BAdhesionSearchQueryV2 et correction de l'isolation des tests AdhesionDetail

[2.19.0-alpha.15] - 2026-02-11

Ajouté

  • B2BAdhesionDtoV2 - DTO d'adhésion V2 avec snapshot des coordonnées
  • B2BAdhesionItemV2 - Item de recherche d'adhésion V2
  • B2BUpdateSyndicatDtoV2 - Mise à jour syndicat V2
  • ISignatureClient - Nouvelle méthode GetSignatureInfo
  • Endpoint GET /api/b2b/v2/adhesions pour recherche d'adhésions V2

Modifié

  • ApiProxy - Refactorisation du SDK : suppression de ApiKeyHandler, ConfigApiKeyProvider, IApiKeyProvider
  • BaseClient - Simplification de l'authentification
  • ISyncClient - Support du syndicat V2 dans la synchronisation

[2.19.0] - 2026-02-02

Ajouté

  • B2B API V2 - Nouveau modèle multi-employeurs :
    • B2BUpsertEmployeDtoV2 - Employé avec collection d'emplois
    • B2BEmploiDtoV2 - Relation employé-employeur avec matricule et dates
    • B2BUpdateEmployeurDtoV2 - Mise à jour employeur V2
    • B2BSyncEmployesResultV2 - Résultat de synchronisation V2
  • Endpoint POST /api/b2b/v2/employes/upsert pour gestion multi-employeurs
  • Endpoint POST /api/b2b/v2/sync avec support des emplois

Modifié

  • ISyncClient.Sync() accepte maintenant 4 paramètres : syndicats, employeurs, employés V2, objets de consentement

Migration V1 → V2

Voir le Guide de migration V2 pour les détails.

Changements majeurs :

  • EmployeurIdExterne et Matricule retirés de B2BUpsertEmployeDto
  • Utiliser Emplois[] avec B2BEmploiDtoV2 pour les relations employeur

[2.15.0] - 2026-01-08

Ajouté

  • Module Votez - Nouveaux clients pour la gestion des campagnes de vote :
    • ICampagnesClient - Gestion des campagnes (création, publication, statistiques)
    • IQuestionsClient - Gestion des questions et options de réponse
    • IVotantsClient - Gestion des votants (import, radiation, suivi du vote)
  • Documentation complète du module Votez avec types et exemples
  • Restriction des endpoints B2B par module activé (RequireModule)

[2.14.0] - 2026-01-08

Ajouté

  • Documentation SDK avec Docusaurus
  • Intégration de MaCarteDeMembreProxy dans la solution MCM
  • Tests d'intégration B2B avec Testcontainers

[1.0.0] - 2024-01-01

Ajouté

  • Version initiale de MCM.ApiProxy
  • Clients pour toutes les ressources B2B :
    • IEmployesClient - Gestion des employés
    • IEmployeursClient - Gestion des employeurs
    • IFormulaireClient - Récupération des formulaires
    • IConsentementClient - Historique des consentements
    • IObjetsConsentementClient - Objets de consentement
    • IChampUtilisateurClient - Champs personnalisés
    • ICourrielClient - Envoi de courriels
    • ISyncClient - Synchronisation en lot
  • Pattern ErrorOr pour la gestion d'erreurs
  • Injection automatique des clients via AddMcmApiClient()
  • Support de l'authentification par clé API

Format

Ce changelog suit le format Keep a Changelog et ce projet adhère au Semantic Versioning.

Types de changements

  • Ajouté pour les nouvelles fonctionnalités
  • Modifié pour les changements dans les fonctionnalités existantes
  • Déprécié pour les fonctionnalités qui seront supprimées
  • Retiré pour les fonctionnalités supprimées
  • Corrigé pour les corrections de bugs
  • Sécurité pour les vulnérabilités corrigées