Applications de visualisation

N'importe qui peut développer une nouvelle application de visualisation de données compatible avec Data Fair. Ces applications sont mises à disposition sous forme de services : ce sont des applications web disponibles en ligne. Une instance de Data Fair fait office de proxy vers les applications configurées et les réexpose en leur communiquant les informations de contexte dont elles ont besoin. Pour pouvoir être intégrée dans une instance Data Fair, une application doit exposer certaines informations.

Exemples

  • Un plugin pour vue-cli qui permet de générer une application : vue-cli-plugin-app ;
  • Une application statique minimaliste en HTML/JS/CSS pur avec juste un petit peu de jQuery : app-minimal ;
  • Une application complète développée avec des frameworks modernes : app-charts.

Métadonnées essentielles

Une application expose un fichier HTML, typiquement un fichier index.html à sa racine. Ce fichier doit contenir certaines informations, renseignées dans des balises de la section HEAD :

  • title : titre de l'application, dans une balise title ;
  • description : description de l'application, dans une balise meta.

Gestion des configurations

Une application doit donner à Data Fair le moyen de créer et éditer des configurations cohérentes avec ses besoins. Les configurations sont décrites à l'aide de JSON schéma, en servant à la racine de l'application un fichier config-schema.json. Ce fichier peut avoir des annotations particulières permettant d'avoir du contrôle sur le formulaire de configuration qui sera généré.

Ce formulaire est généré à l'aide de la librairie vuetify-jsonschema-form (VJSF), la documentation des différentes annotations JSON schéma utilisées est disponible ici.

Informations de contexte

Côté client

Par simplicité, nous privilégions des applications statiques déployables sur un simple serveur web, comme nos applications exemples. Pour ces applications, nous avons prévu un mécanisme simple de transmission des informations contextuelles.

Le proxy Data Fair cherche, dans le contenu HTML qui transite, la chaîne de caractère %APPLICATION% et la remplace par la configuration d'application complète au format JSON. Le code JavaScript peut donc récupérer cet objet et l'utiliser pour effectuer un rendu adapté et consommer l'API de Data Fair en conséquence. L'objet JSON transmis contient les champs suivants :

  • title : titre de la visualisation configurée ;
  • url : URL où est exposée l'application utilisée pour la configuration ;
  • id : identifiant de la visualisation ;
  • status : état de la configuration (brouillon, publié...) ;
  • configuration : la structure de cet objet dépend du schéma de configuration de l'application utilisée ;
  • href : point d'accès de l'API Data Fair permettant de lire / modifier la configuration d'application ;
  • page : page qui présente la visualisation ;
  • exposedUrl : URL d'exposition de la visualisation, peut être utilisée dans une iframe ou en accès direct ;
  • apiUrl : URL de l'API Data Fair ;
  • captureUrl : URL vers le service de capture, permet de réaliser des exports image ou impressions PDF ;
  • wsUrl : URL de la web socket Data Fair, utile pour les applications qui manipulent des données mises à jour en temps réel.

Côté serveur

Il est aussi possible de développer une application avec rendu côté serveur. Dans ce cas, le mode de transmission des informations contextuelles est différent.

Ces informations sont transmises à l'aide de headers HTTP que le serveur de l'application interprète. Les headers suivants sont transmis par le service :

  • X-Exposed-Url : URL d'exposition de la visualisation, peut être utilisée dans une iframe ou en accès direct ;
  • X-Application-Url : URL à utiliser pour connaître le propriétaire de l'application, les droits de l'utilisateur courant (pour par exemple masquer / afficher un bouton de configuration) ;
  • X-API-Url : URL de l'API de Data Fair, ce qui permet ensuite d'accéder aux services distants et aux datasets ;
  • X-Directory-Url : URL vers le service de gestion des utilisateurs.

Outils de développement

Serveur de développement Data Fair

Le projet df-dev-server permet de simplifier le développement des applications Data Fair.

  • Il est plus léger que Data Fair, car il n'a pas besoin des différents services en local (bases de données, gestion utilisateurs...) ;
  • Il permet d'avoir déjà des données disponibles en se connectant à des sources distantes ;
  • Il est plus facile a faire fonctionner sous Windows, car ne nécessite pas Docker ;
  • Il nécessite par contre une connexion internet pour pouvoir accéder aux données.