AccueilTechniqueServices → Schémas

    Schémas

    Le service Schémas (ou Draw service en anglais) peut être utilisé pour dessiner des diagrammes, mind maps ou d’autres schémas en tous genres. Il est basé sur le logiciel diagrams.net (anciennement draw.io).

    Fonctionnement🔗

    L’utilisateur·ice se rend sur la page du service et peut déplacer des formes sur la page pour préparer son schéma. Une fois le schéma réalisé, il est possible de le sauvegarder dans le navigateur ou sous forme de fichier. Des fonctionnalités d’export dans divers formats (PNG, PDF, SVG…) sont également disponibles.

    Historique🔗

    Le service Schémas a été inauguré le 8 juin 2019. Il utilisait initialement l’image Docker jgraph/drawio, mais a été finalement réécrite par nos soins pour utiliser nginx plutôt que Apache Tomcat afin d’économiser de la RAM.

    Nous avons choisi d’installer ce logiciel car nous l’utilisions beaucoup en interne, et que nous avions envie de multiplier notre offre de service au moment de candidater au collectif CHATONS. De plus, c’est un service facile à déployer, sans entretien : idéal pour commencer.

    Installation🔗

    Nous construisons notre image Docker à partir de notre Dockerfile, en y ajoutant le fichier nginx.conf pour configurer le démon nginx situé dans ce conteneur pour qu’il serve le dossier /usr/share/nginx/html.

    Nous avons également une variable d’environnement DRAWIO_VERSION qui spécifie la version du logiciel à utiliser.

    Notre Dockerfile inclut un patch du code pour ajouter offline=1 dans les paramètres du logiciel, afin de l’empêcher de réaliser des requêtes de tierce partie vers les serveurs de Google, Microsoft ou d’autres géants, initalement présentes pour permettre de sauvegarder des diagrammes depuis ces fournisseurs de cloud.

    Tests🔗

    Le test du logiciel s’effectue en se rendant directement sur la page du service dans le navigateur. Il convient de faire particulièrement attention aux headers HTTP communiqués par le reverse-proxy : un header CSP mal configuré pourrait bloquer certaines fonctionnalités du logiciel.

    Statistiques d’utilisation🔗

    Quelques statistiques d’utilisation du service Schémas de La Contre-Voie.

    Il s’agit de moyennes journalières mesurées pendant la 5e semaine (calendrier ISO) de chaque année listée.

    AnnéeRequêtesUtilisateur·ice·s uniquesBande passante
    202059316146 MB
    2021268937 MB
    202246713 MB
    20236021444 MB

    En bref : le service n’est quasiment pas utilisé (il peut être pertinent de se demander s’il vaut la peine d’être gardé).

    C’est un service qui reste toutefois plutôt économe en RAM : il est mesuré à 26 MB en février 2023.

    Précautions🔗

    L’hébergement de ce service ne présente aucun risque particulier : il ne stocke aucune donnée et ne sert que des fichiers statiques.

    Il est toutefois préférable de contrôler quelques éléments importants :

    • Vérifier que le service n’appelle aucun script de tierce partie, ce qui est le cas de sa version par défaut (notre image Docker règle ce problème). Cette vérification peut s’effectuer avec une extension comme uBlock Origin.
    • Vérifier que les en-têtes HTTP n’entravent pas le fonctionnement du logiciel, en particulier le CSP.
    • Surveiller les notes de version du logiciel. Le fait qu’il s’agisse d’un site statique ne le prémunit pas pour autant de vulnérabilités exploitables côté client, à travers un lien ou un fichier malicieux par exemple. Il reste donc important de le mettre à jour de temps en temps.
      • Note : une instance nginx tourne nécessairement dans ce conteneur en exposant un port, les mises à jour de sécurité de nginx doivent donc être surveillées aussi.

    Entretien🔗

    Ce service ne nécessite aucun entretien à lui seul, ce qui en fait un service particulièrement facile à héberger.

    Mise à jour🔗

    La mise à jour de ce logiciel consiste à modifier la variable d’environnement DRAWIO_VERSION vers la dernière version disponible, puis à reconstruire l’image. Le conteneur redémarre en quelques secondes.

    Évolutions envisagées🔗

    Utilisation d’une CI/CD🔗

    De la même manière qu’avec le service Liens, il serait particulièrement pratique de mettre en place un outil qui créerait une image Docker associée, de manière automatique, à chaque nouvelle version du logiciel.

    Transformation de l’offre de services actuelle🔗

    Ce service se présente plutôt comme une sorte de petit outil qui n’a pas pour but de stocker des données. Il est facile à héberger et à maintenir, mais est très peu consulté. Si l’on décide de le conserver, peut-être que l’on pourrait l’intégrer à une sorte de « boîte à outils » plutôt qu’un service à part entière ? Voire héberger une instance d’un logiciel similaire à Organizr, notamment utilisé par le CHATONS Roflcopter.