É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.

Logo 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.