Évolutions et mises à jour
L'IGN assure l'évolution et la qualification des Transformers de la suite IGNFCollaboratifConnector ainsi que leur adaptation aux versions majeures de FME Form. De nouveaux Transformers seront proposés pour suivre l'évolution de l'API Collaborative.
v1 de la gamme IGNFCollaboratifConnector
La v1 de la gamme IGNFCollaboratifConnector étant celle de la diffusion initiale (2024-01-18), aucun changelog n'est disponible.
La documentation de la gamme IGNFCollaboratifConnector v1 est archivée: Cliché Wayback Machine.

v2 de la gamme IGNFCollaboratifConnector, changelog
La v2 de la gamme est issue du besoin d'être cohérente avec l'API Collaborative v4 déployée le 21 mai 2024 de changelog, en sus de prendre en compte les bugs recensés et les évolutions souhaitées. La v2 a été diffusée le 2024-11-18 sur le VStore.
Les modifications apportées sont:
Support de API Collaborative v4
Modification des header du protocole HTTP utilisés dans les HTTPCaller.
Documentation
Reformulations et précisions dans la documentation
Ajouts des sondes en iFrame pour connaître, directement dans la documentation, l'état des services
Ajout d'une page dédiée aux métriques d'usage
Résolution des bugs connus sur la gamme v1
IGNFCollaboratifGetReportsConnector
DEBUG : Le filtre spatial par département dysfonctionne lorsque les départements corses (2A ou 2B) sont requetés, similairement à l'API.
DEBUG : Lorsque les Features entrantes ne sont pas utilisées (case "Utiliser la géométrie entrante comme filtre" NON cochée), les Features qui sortent pas l'Output "Reports" sont d'EPSG:4326 (WGS84-LL).
DEBUG : Erreur avec la description des groupes lorsque celle ci est d'un format html complexe.
DEBUG : Erreur sur le comptage de signalements par requête, le compte rapporté était avant prise en compte du filtre spatial, donc supérieur aux nombre d'objets du F.eatureType Reports.
DEBUG : Le FeatureType Reports était dédoublonné sur le numéro de signalement, alors qu'un des attributs du featureType est l'identifiant de la requête et que plusieurs requêtes différentes peuvent retourner un même signalement.
Résolution des bugs inconnus sur la gamme v1
IGNFCollaboratifGetReportsConnector
DEBUG : des Transformers étaient dans des version uniquement disponibles dans des builds supérieurs à FME2021.2.1.0
DEBUG : le code Python pouvait appeler des fonctions dépréciées de l'API Python FME, notamment sur les objets fmeobjects.FMEFeature.
DEBUG : rendre robuste le parsing de json lorsque ces json étaient, de manière plausible, vides.
Mise en oeuvre des évolutions souhaitées sur la gamme v1
IGNFCollaboratifContextConnector
Réalisation de l'évolution souhaitée: Fusionner les Outputs 'Communauté' et 'Thèmes complets'.
Dans la route GET /users/me : active_themes remplacé par shared_themes qui contient uniquement les thèmes partagés.
Systématisation de l'emploi de noms d'attributs "jetables" (leur nom commence par le caractère _) dans le Transformer afin de protéger les attributs et valeurs des Feature entrantes.
IGNFCollaboratifCreateReportConnector
Réalisation de l'évolution souhaitée: Ajouter un type d'entités de sortie "Reports", pour les signalements créés.
Systématisation de l'emploi de noms d'attributs "jetables" (leur nom commence par le caractère _) dans le Transformer afin de protéger les attributs et valeurs des Feature entrantes.
IGNFCollaboratifGetReportsConnector
Adaptation au fait qu'author est maintenant servi sous la forme d'un objet JSON.
GET /reports permet de filtrer par date (opening_date, updating_date, closing_date) avec 1 ou 2 dates au lieu de seulement une date "à partir de".
Réalisation de l'évolution souhaitée: Permettre de filtrer sur le thème.
Réalisation de l'évolution souhaitée: Transformer en liste FME les réponses attachées au signalement.
Réalisation de l'évolution souhaitée: Transformer en liste FME les pièces jointes attachées au signalement ; télécharger les binaires de de ces pièces jointes.
Réalisation de l'évolution souhaitée: Permettre l'emploi du paramètre "limit" ; et par conséquent ajout d'un critère de tri.
Réalisation de l'évolution souhaitée: Modifier les paramètres du filtre spatial à la commune ou au département pour que ces paramètres fonctionnent comme l'API en n'acceptant qu'une valeur (et non comme actuellement une liste de valeur, ce qui en cas d'erreur ne permet pas de déterminer sa provenance ni une reprise sur incident).
Systématisation de l'emploi de noms d'attributs "jetables" (leur nom commence par le caractère _) dans le Transformer afin de protéger les attributs et valeurs des Feature entrantes.
IGNFCollaboratifReportReplyConnector
Systématisation de l'emploi de noms d'attributs "jetables" (leur nom commence par le caractère _) dans le Transformer afin de protéger les attributs et valeurs des Feature entrantes.
Développement et ajout à la gamme de IGNFCollaboratifDeleteReportConnector, un Transformer permettant de supprimer un signalement.
La documentation de la gamme IGNFCollaboratifConnector v2 est archivée: Cliché Wayback Machine.

v3 de la gamme IGNFCollaboratifConnector, changelog
La v3 a été diffusée le 2026-XX-XX sur le FME Hub par FME Hub Veremes .
Evolutions
Les modifications apportées sont:
Documentation
Reformulations et précisions dans la documentation.
Résolution des bugs connus sur la gamme v2
IGNFCollaboratifGetReportsConnector
En janvier 2025, l'API n'autorisait pas les recherches de signalement par département avec comme critère d'acceptabilité de la valeur de département la regex d{2}|2[AB] qui n'autorise donc pas les départements à trois chiffres ; cela a été corrigé côté API.
DEBUG : Correction de l'évaporation des signalements qui ne sont liés à aucun groupe.
DEBUG : Correction de l'absence de prise en compte du critère de filtre sur le thème, un FeatureJoiner ne faisant pas de jointure sur des clés de valeur nulle.
DEBUG : Correction des valeurs tronquée sur la liste déroulante du paramètre publié de filtre sur les thèmes, respectivement [Adresse, Lieux-dits ; Sentier, GR ; Parcelles, Cadastre] tronqué en [Adresse ; Sentier ; Parcelle].
DEBUG : Correction des attributs Reports/_reponse{}.reponse.* où la valeur JSON null était transposée à tord en chaine litérale 'null'.
DEBUG : Correction de la vérification du filtre spatial en input, systématiquement en erreur du fait d'un mauvais paramétrage du Tester.
DEBUG : Correction du filtrage des thèmes où une requête de thème de valeur explicitement "null" était évaporée.
Résolution des bugs inconnus sur la gamme v2
IGNFCollaboratifCreateReportConnector
DEBUG : Correction de l'évaporation des Feature entrantes invalides mais réparables, maintenant rejetées.
IGNFCollaboratifGetReportsConnector
DEBUG : Découverte et correction du bug formant de manière erronée les requêtes sur un thème.
Mise en oeuvre des évolutions souhaitées sur la gamme v2
Tous les IGNFCollaboratifConnector
Vérifier que tous les Transformers de la gamme sont disponibles uniquement en mode lié (Insert Mode = Linked Always, cf. Export as Custom Transformer).
Suppression des erreurs liées au passage à l'UTF-8 dans les workbench lors de la 2022.0 (permalien)) en basculant la version minimale recquise de FME de 2021.2.1 (publiée le 2021-12-07, build 21797) à 2022.1 (publiée le 2022-07-06, build 22618, Official FME 2022.1 Release) ; versions FME (permalien)
IGNFCollaboratifGetReportsConnector
Réalisation de la vérification souhaitée sur le changement de casse du header "Content-Range" devenu "content-range".
Réalisation de l'évolution souhaitée: insertion paramètre non publié de version du Transformer Personnalisé, pour son usage dans les referer des appels HTTP.
Réalisation de l'évolution souhaitée: insertion paramètre non publié de bascule de environnement de développement/qualification VERSUS environnement de production.
Réalisation de l'évolution souhaitée: insertion paramètre publié 'critère de filtre' permettant de choisir un mode de saisie ("input_device" de valeurs [UNKNOWN, www, SIG-GC, SIG-AG, SIG-QGIS, PHONE, SPOTIT], liste à choix multiple).
Réalisation de l'évolution souhaitée: insertion paramètre publié 'critère de filtre' permettant de rechercher un texte dans le commentaire d'un signalement.
Réalisation de l'évolution souhaitée: harmonisations sémantiques et emploi de la notation objet pour
le FeatureType Requête:
Renommage de Requête/requete_id en Requête/requete.id
Renommage de Requête/requete_reports_httpquery en Requête/requete.httpquery
Renommage de Requête/requete_reports_count en Requête/requete.reports_count.geomfiltered_limited
Renommage de Requête/requete_report_withoutgeomfilter_count en Requête/requete.reports_count.nogeomfilter_nolimit
Renommage de Requête/_date_creation en Requête/_datefilter.creation.min
Renommage de Requête/_date_creation2 en Requête/_datefilter.creation.max
Renommage de Requête/_date_modif en Requête/_datefilter.modification.min
Renommage de Requête/_date_modif2 en Requête/_datefilter.modification.max
Renommage de Requête/_date_cloture en Requête/_datefilter.cloture.min
Renommage de Requête/_date_cloture2 en Requête/_datefilter.cloture.max
le FeatureType Reports:
Renommage de Reports/groupe en Reports/groupe.nom
Renommage de Reports/groupe_id en Reports/groupe.id
Renommage de Reports/groupe_description en Reports/groupe.description
Renommage de Reports/auteur_id en Reports/auteur.id
Renommage de Reports/auteur_username en Reports/auteur.username
Renommage de Reports/code_insee en Reports/commune.insee
Renommage de Reports/nom_com en Reports/commune.nom
Renommage de Reports/insee_dep en Reports/dep.insee
Renommage de Reports/nom_dep en Reports/dep.nom
Renommage de Reports/reponse{}:
reponse{}.reponse.index
reponse{}.reponse.date
reponse{}.reponse.auteur.username
reponse{}.reponse.auteur.id
reponse{}.reponse.contenu
reponse{}.reponse.statut.code
Ajout de Reports/reponse{}.reponse.statut.description
le FeatureType Rejected
Renommage de Rejected/requete_id en Rejected/requete.id
Renommage de Rejected/requete_reports_httpquery en Rejected/requete.httpquery
Renommage de Rejected/_date_creation en Requête/_datefilter.creation.min
Renommage de Rejected/_date_creation2 en Requête/_datefilter.creation.max
Renommage de Rejected/_date_modif en Requête/_datefilter.modification.min
Renommage de Rejected/_date_modif2 en Requête/_datefilter.modification.max
Renommage de Rejected/_date_cloture en Requête/_datefilter.cloture.min
Renommage de Rejected/_date_cloture2 en Requête/_datefilter.cloture.max
Ajustement sémantique des descriptions des codes de statut (submit, pending1, valid0):
Description de valid0 à modifier de "Déjà prise en compte" en "Déjà pris en compte"
Description de valid à modifier de "Prise en compte" en "Pris en compte"
Support de la valeur "test"/"En mode test"
Vérification de l'absence d'effet de bord lié à ces valeurs
IGNFCollaboratifContextConnector
Réalisation de la vérification souhaitée sur le changement de casse du header "Content-Range" devenu "content-range".
Réalisation de l'évolution souhaitée: insertion paramètre non publié de version du Transformer Personnalisé, pour son usage dans les referer des appels HTTP.
Réalisation de l'évolution souhaitée: insertion paramètre non publié de bascule de environnement de développement/qualification VERSUS environnement de production.
Réalisation de l'évolution souhaitée: harmonisations sémantiques et emploi de la notation objet pour
le FeatureType Communautés:
Renommage de Communautés/groupe_nom en Communautés/groupe.nom
Renommage de Communautés/groupe_id en Communautés/groupe.id
Renommage de Communautés/groupe_role en Communautés/groupe.role
Renommage de Communautés/themes_complets{}.theme_nom en Communautés/themes_complets{}.theme.nom
Renommage de Communautés/themes_complets{}.theme_description en Communautés/themes_complets{}.theme.description
Renommage de Communautés/themes_complets{}.theme_json_complet en Communautés/themes_complets{}.theme.json_complet
le FeatureType Thèmes_complets:
Renommage de Thèmes_complets/theme_nom en Thèmes_complets/theme.nom
Renommage de Thèmes_complets/theme_description en Thèmes_complets/theme.description
Renommage de Thèmes_complets/theme_json_complet en Thèmes_complets/theme.json_complet
Renommage de Thèmes_complets/groupes{}.groupe_nom en Thèmes_complets/groupes{}.groupe.nom
Renommage de Thèmes_complets/groupes{}.groupe_id en Thèmes_complets/groupes{}.groupe.id
Renommage de Thèmes_complets/groupes{}.groupe_role en Thèmes_complets/groupes{}.groupe.role
le FeatureType Thèmes_partagés:
Renommage de Thèmes_partagés/groupe_nom en Thèmes_partagés/groupe.nom
Renommage de Thèmes_partagés/groupe_id en Thèmes_partagés/groupe.id
Renommage de Thèmes_partagés/theme_actif en Thèmes_partagés/theme.nom
Renommage de Thèmes_partagés/theme_description en Thèmes_partagés/theme.description
Renommage de Thèmes_partagés/theme_attributs en Thèmes_partagés/theme.attributs
IGNFCollaboratifCreateReportConnector
Réalisation de la vérification souhaitée sur le changement de casse du header "Content-Range" devenu "content-range".
Réalisation de l'évolution souhaitée: insertion paramètre non publié de version du Transformer Personnalisé, pour son usage dans les referer des appels HTTP.
Réalisation de l'évolution souhaitée: insertion paramètre non publié de bascule de environnement de développement/qualification VERSUS environnement de production.
Réalisation de l'évolution souhaitée: harmonisations sémantiques et emploi de la notation objet pour
le FeatureType Reports:
Renommage de Reports/auteur_id en Reports/auteur.id
Renommage de Reports/auteur_username en Reports/auteur.username
Renommage de Reports/code_insee en Reports/commune.insee
Renommage de Reports/nom_com en Reports/commune.nom
Renommage de Reports/insee_dep en Reports/departement.insee
Renommage de Reports/nom_dep en Reports/departement.nom
IGNFCollaboratifDeleteReportConnector
Réalisation de la vérification souhaitée sur le changement de casse du header "Content-Range" devenu "content-range".
Réalisation de l'évolution souhaitée: insertion paramètre non publié de version du Transformer Personnalisé, pour son usage dans les referer des appels HTTP.
Réalisation de l'évolution souhaitée: insertion paramètre non publié de bascule de environnement de développement/qualification VERSUS environnement de production.
Réalisation de l'évolution souhaitée: harmonisations sémantiques et emploi de la notation objet pour
le FeatureType DeletedReports:
Renommage de DeletedReports/groupe en DeletedReports/groupe.nom
Renommage de DeletedReports/groupe_id en DeletedReports/groupe.id
Renommage de DeletedReports/groupe_description en DeletedReports/groupe.description
Renommage de DeletedReports/code_insee en DeletedReports/commune.insee
Renommage de DeletedReports/nom_com en DeletedReports/commune.nom
Renommage de DeletedReports/insee_dep en DeletedReports/departement.insee
Renommage de DeletedReports/nom_dep en DeletedReports/departement.nom
Renommage de DeletedReports/_reponse{}:
reponse{}.reponse.index
reponse{}.reponse.date
reponse{}.reponse.auteur.username
reponse{}.reponse.auteur.id
reponse{}.reponse.contenu
reponse{}.reponse.statut
Réalisation de l'évolution souhaitée: correction du lien de la documentation embarquée dans le Transformer, qui pointait sur IGNFCollaboratifCreateReportConnector au lieu de IGNFCollaboratifDeleteReportConnector.
IGNFCollaboratifReportReplyConnector
Réalisation de la vérification souhaitée sur le changement de casse du header "Content-Range" devenu "content-range".
Réalisation de l'évolution souhaitée: insertion paramètre non publié de version du Transformer Personnalisé, pour son usage dans les referer des appels HTTP.
Réalisation de l'évolution souhaitée: insertion paramètre non publié de bascule de environnement de développement/qualification VERSUS environnement de production.
Réalisation de l'évolution souhaitée: harmonisations sémantiques et emploi de la notation objet pour
le FeatureType Passtrough_data:
Renommage de Passtrough_data/_signalement_id en Passtrough_data/_signalement.id
Renommage de Passtrough_data/_status en Passtrough_data/_signalement.statut.valeur
Renommage de Passtrough_data/_title en Passtrough_data/_signalement.statut.libelle
Renommage de Passtrough_data/_reponse_id en Passtrough_data/_signalement.reponse.id
Renommage de Passtrough_data/_reponse_signalement en Passtrough_data/_signalement.reponse.contenu
le FeatureType Rejected:
Renommage de Rejected/signalement_id en Rejected/signalement.id
Renommage de Rejected/status en Rejected/signalement.statut.valeur
Renommage de Rejected/title en Rejected/signalement.statut.libelle
Renommage de Rejected/_reponse_signalement en Rejected/signalement.reponse.contenu
Développement et ajout à la gamme de:
IGNFCollaboratifGetReportConnector, un Transformer permettant de requêter un signalement spécifié.
Décisions
En sus de ces réalisations, les décisions suivantes ont été prises:
Dans les paramètres 'critère de filtre', le choix du "Statut" est dans une liste à choix unique. Or, cela pourrait être une liste à choix multiple (comme sur le site). Cependant, le paramètre est pilotable par attribut, il est donc possible de cloner/ajuster les Features entrantes pour répondre au besoin. Compte tenu de l'importance du refactoring qui serait nécessaire pour permettre l'emploi d'une liste à choix multiple, du faible nombre de personnes ayant exprimé ce besoin, ainsi que de l'existence d'une solution de contournement de difficulté raisonnable pour l'utilisateur, l'évolution ne sera pas implémentée.
Dans les paramètres 'critère de filtre', le choix du "numéro de groupe" (comme pour le filtre spatial à la commune ou au département) est un choix unique. Or, cela pourrait être une liste à choix multiple (comme sur le site). Cependant, le paramètre est pilotable par attribut, il est donc possible de cloner/ajuster les Features entrantes pour répondre au besoin. Compte tenu de l'importance du refactoring qui serait nécessaire pour permettre l'emploi d'une liste à choix multiple, du faible nombre de personnes ayant exprimé ce besoin, ainsi que de l'existence d'une solution de contournement de difficulté raisonnable pour l'utilisateur, l'évolution ne sera pas implémentée.
Deux nouveaux Transformer Personnalisés IGNFCollaboratifConnector étaient envisagés : IGNFCollaboratifReportGroupSwitcherConnector, un Transformer permettant de basculer un signalement d'un groupe à l'autre ; et IGNFCollaboratifReportThemeSwitcherConnector, un Transformer permettant de basculer un signalement d'un thème à un autre. Après investigation, il apparaît que l'équipe opérant l'Espace Collaboratif documente les transferts de groupe ou de thème dans un table PostGreSQL historisant ces changements. Ladite table n'étant pas exposée à tous les utilisateurs, développer IGNFCollaboratifReportGroupSwitcherConnector ou IGNFCollaboratifReportThemeSwitcherConnector ne permettrait toujours pas aux utilisateurs non IGN gestionnaires de groupes de réaliser en autonomie ces changements de groupe ou de thème. Par conséquent, ces Transformers Personnalisés ne seront pas développés.
La documentation de la gamme IGNFCollaboratifConnector v3 est archivée: Cliché Wayback Machine.

Idées d'évolutions
La gamme IGNFCollaboratifConnector pourrait faire l'objet d'évolutions, dont certaines idées sont communiqués (sans engagement de réalisation) ici.
Contrôles rTest
Aucune évolution envisagée suite à celles réalisées pour la v3.
Tous les Transformers
Pas d'évolution commune à tous les transformers envisagées suite à celles réalisées pour la v3.
Tous les Transformers
Envisager d'insérer un paramètre, non publié, permettant de basculer les appels HTTP soit sur l'environnement de développement/qualification, soit sur l'environnement de production ; au travers des URLs d'API de ces environnements.
IGNFCollaboratifContextConnector
Aucune évolution envisagée suite à celles réalisées pour la v3.
IGNFCollaboratifCreateReportConnector
Aucune évolution envisagée suite à celles réalisées pour la v3.
IGNFCollaboratifGetReportsConnector
Aucune évolution envisagée suite à celles réalisées pour la v3.
IGNFCollaboratifReportReplyConnector
Aucune évolution envisagée suite à celles réalisées pour la v3.
IGNFCollaboratifDeleteReportConnector
Aucune évolution envisagée suite à celles réalisées pour la v3.
Nouveaux Transformers
Envisager IGNFCollaboratifGetDatabaseExtractionConnector, un Transformer permettant de commander la génération d'une extraction (une partie d’une base de données) venant du site espacecollaboratif.ign.fr et d'en effectuer, le cas échéant, le téléchargement.
Envisager IGNFCollaboratifDirectConnector, un Transformer permettant des contributions directes.