É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.
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
Vérifier que tous les Transformers de la gamme sont disponibles uniquement en mode lié (Insert Mode = Linked Always, cf. Export as Custom Transformer). Cette capacité d'audit n'est actuellement pas disponible dans FME (auditer un .fmx avec Workspace Reader, API Python FME).
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 v2 si ce n'est les harmonisations sémantiques et l'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
Renommage de Communautés/themes_complets{}.theme_nom en Communautés/themes_complets{}.theme.nom
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
Aucune évolution envisagée suite à celles réalisées pour la v2 si ce n'est les harmonisations sémantiques et l'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/dep.insee
IGNFCollaboratifGetReportsConnector
Au delà de
la correction des bugs connus de IGNFCollaboratifGetReportsConnector,
au moins un utilisateur a exprimé les besoins d'évolution suivants:
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.
Dans les paramètres 'critère de filtre', il manque le fait de pouvoir choisir un thème (a minima les thèmes publics)
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.
Dans les paramètres 'critère de filtre', il manque le fait de pouvoir choisir par mode de saisie ("input_device" de valeurs [UNKNOWN, www, SIG-GC, SIG-AG, SIG-QGIS, PHONE, SPOTIT], liste à choix multiple).
Dans les paramètres 'critère de filtre', il manque le fait de pouvoir choisir un filtre de "Texte dans les commentaires".
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
Harmonisation sémantique 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.nogeomfilter_nolimit
Renommage de Requête/requete_report_withoutgeomfilter_count en Requête/requete.reports_count.geomfiltered_limited
Harmonisation sémantique et emploi de la notation objet pour le FeatureType Reports:
Renommage de Reports/groupe en Reports/groupe.nom
Renommage de Reports/groupe_id en Reports/groupe.id
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.auteur en Reports/_reponse{}.reponse.auteur.username
Renommage de Reports/_reponse{}.reponse.status en Reports/_reponse{}.reponse.statut
IGNFCollaboratifReportReplyConnector
Aucune évolution envisagée suite à celles réalisées pour la v2 si ce n'est les harmonisations sémantiques et l'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.texte
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.texte
IGNFCollaboratifDeleteReportConnector
Aucune évolution envisagée suite à celles réalisées pour la v2 si ce n'est les harmonisations sémantiques et l'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/dep.insee
Renommage de DeletedReports/nom_dep en DeletedReports/dep.nom
Renommage de DeletedReports/_reponse{}.reponse.auteur_id en DeletedReports/_reponse{}.reponse.auteur.id
Renommage de DeletedReports/_reponse{}.reponse.auteur_username en DeletedReports/_reponse{}.reponse.auteur.username
Nouveaux Transformers
Envisager IGNFCollaboratifGetReportConnector, un Transformer permettant de requêter un signalement spécifié.
Envisager IGNFCollaboratifReportGroupSwitcherConnector, un Transformer permettant de basculer un signalement d'un groupe à l'autre.
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.