mercredi, 1 avril, 2026
Plugins
Le système de plugins permet d'étendre les fonctionnalités d'IsoFind sans modifier le logiciel lui-même. Chaque plugin est un module indépendant qui s'intègre directement dans l'interface et peut interagir avec vos données isotopiques via l'API interne.
Accéder au gestionnaire de plugins
Menu principal
›
Plugins
›
Gestionnaire de plugins
Figure 1 : Menu "Gestionaire de plugins" dans le menu "Plugins".
Le gestionnaire centralise l'ensemble des plugins installés sur votre instance. Il présente un tableau de bord avec le nombre total de plugins, le nombre de plugins actifs et les mises à jour disponibles.
Lorsque le mode hors-ligne est activé, un badge orange s'affiche dans le titre du gestionnaire. Ce mode bloque toutes les connexions réseau initiées par les plugins.
Installer un plugin
Gestionnaire de plugins
›
Installer un plugin
Figure 2 : Menu d'installation de plugin
IsoFind propose deux méthodes d'installation selon votre configuration réseau.
Depuis un fichier
Glissez un fichier .isplugin ou .zip directement dans la zone de dépôt, ou cliquez sur Sélectionner un fichier pour ouvrir l'explorateur. IsoFind lit le manifeste du plugin, vérifie les champs obligatoires et installe le code automatiquement.
L'installation se déroule en sept étapes visibles dans la barre de progression :
| Étape | Opération |
|---|---|
| 1 | Préparation de l'environnement |
| 2 | Lecture du fichier |
| 3 | Décompression de l'archive |
| 4 | Lecture et validation du manifeste |
| 5 | Extraction du code principal |
| 6 | Détection des conflits |
| 7 | Finalisation et enregistrement |
Depuis une URL
Saisissez l'URL directe d'un fichier .isplugin dans le champ prévu et cliquez sur Télécharger. IsoFind télécharge et installe le plugin en une seule opération. Cette méthode n'est pas disponible lorsque le mode hors-ligne est actif.
Si JSZip n'est pas chargé dans votre instance, l'installation depuis fichier .zip échouera avec un message explicite. Vérifiez que la librairie est bien incluse dans votre configuration.
Structure d'un plugin
Chaque plugin est une archive contenant au minimum deux fichiers : un manifeste et un fichier de code principal. Le manifeste décrit le plugin et ses exigences ; le fichier de code contient la logique exécutée par IsoFind.
Le fichier manifeste
Le manifeste est un fichier manifest.json placé à la racine de l'archive. Trois champs sont obligatoires.
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string | Requis | Identifiant unique du plugin, en minuscules avec tirets |
| name | string | Requis | Nom affiché dans le gestionnaire |
| version | string | Requis | Version au format X.Y.Z |
| author | string | Nom de l'auteur ou de l'organisation | |
| description | string | Description courte affichée dans la carte du plugin | |
| category | string | Catégorie : analysis, visualization, data, tools | |
| permissions | array | Permissions demandées par le plugin (voir section Permissions) | |
| main | string | Nom du fichier de code principal. Par défaut : plugin.js | |
| language | string | javascript ou python. Par défaut : javascript | |
| github | string | URL du dépôt GitHub pour affichage dans les paramètres | |
| contact | string | Adresse email de contact |
Permissions
Un plugin doit déclarer les permissions dont il a besoin dans son manifeste. L'utilisateur peut consulter ces permissions avant installation. Quatre permissions sont disponibles.
| Permission | Identifiant | Accès accordé |
|---|---|---|
| Accès aux échantillons | samples | Lecture et écriture des données isotopiques de la base |
| Lancer des analyses | analysis | Exécution de pipelines d'analyse internes |
| Accès réseau | network | Requêtes HTTP et HTTPS vers des serveurs externes |
| Accès fichiers | filesystem | Lecture et écriture de fichiers sur le système local |
La permission network est automatiquement bloquée lorsque le mode hors-ligne est actif, même si le plugin la déclare dans son manifeste.
API IsoFind pour les plugins
Chaque plugin a accès à un objet global API qui expose les fonctions d'interaction avec IsoFind. Cet objet est injecté automatiquement à l'exécution du plugin.
Fonctions disponibles
| Fonction | Description |
|---|---|
| API.getSamples() | Retourne la liste des échantillons de la base de données active |
| API.getSelectedSamples() | Retourne uniquement les échantillons sélectionnés par l'utilisateur |
| API.showNotification(message, type) | Affiche une notification dans l'interface. Types : success, error, info, warning |
| API.registerMenuItem(label, callback) | Ajoute une entrée dans le menu principal d'IsoFind |
| API.createPanel(html) | Crée un panneau flottant dans l'interface avec le contenu HTML fourni |
| API.getConfig(key) | Lit une valeur de configuration persistante propre au plugin |
| API.setConfig(key, value) | Écrit une valeur de configuration persistante propre au plugin |
Plugins Python
Manifeste
›
language: "python"
IsoFind supporte les plugins écrits en Python via Pyodide, un environnement Python complet exécuté dans le navigateur. Les packages numpy et pandas sont chargés automatiquement. Les packages scipy et matplotlib peuvent être requis à la demande.
Le code Python accède aux données d'IsoFind via le module isofind injecté automatiquement dans l'environnement Pyodide :
| Méthode Python | Équivalent JavaScript |
|---|---|
| IsoFindAPI.get_samples() | API.getSamples() |
| IsoFindAPI.get_samples_df() | Retourne un DataFrame pandas directement exploitable |
| IsoFindAPI.notify(message, type) | API.showNotification() |
Le chargement de Pyodide depuis le CDN est bloqué en mode hors-ligne. Pour utiliser des plugins Python sans connexion, configurez un chemin local vers Pyodide dans les paramètres des plugins.
Détection de conflits
Avant toute installation, IsoFind analyse automatiquement le code du plugin pour détecter les conflits potentiels avec les plugins déjà installés et les patterns de code dangereux.
Conflits vérifiés
| Type de conflit | Niveau de risque | Description |
|---|---|---|
| Variables globales | Élevé | Le plugin déclare une variable déjà utilisée par un plugin installé |
| Noms de menus | Moyen | Une entrée de menu porte le même nom qu'un menu existant |
| Permissions partagées | Faible | Deux plugins peuvent modifier les mêmes données simultanément |
| Catégorie similaire | Faible | Un ou plusieurs plugins de même catégorie sont déjà installés |
| localStorage.clear() | Critique | Suppression de toutes les données de session |
| document.write() | Élevé | Peut effacer intégralement le contenu de la page |
| eval() | Élevé | Évaluation de code dynamique, risque de sécurité |
| Injection via innerHTML | Moyen | Injection de balises script dans le DOM |
En cas de conflit détecté, une fenêtre récapitule les problèmes avant de proposer deux options : annuler l'installation ou installer quand même. Les conflits de niveau critique ne peuvent pas être ignorés.
Activer et désactiver un plugin
Chaque carte de plugin dans le gestionnaire dispose d'un interrupteur d'activation. Désactiver un plugin décharge son code de la mémoire sans le désinstaller. Le plugin conserve ses paramètres et peut être réactivé à tout moment.
Figure 3 : Activer ou désactiver un plugin.
Un plugin activé est chargé automatiquement à chaque démarrage d'IsoFind. Son code s'exécute dans le contexte global de l'application et peut interagir avec l'interface dès le lancement.
Paramètres d'un plugin
Gestionnaire
›
Carte du plugin
›
Paramètres
La fenêtre de paramètres d'un plugin affiche ses informations complètes : version, auteur, description, identifiant, catégorie, date d'installation et adresse de contact. Si le plugin déclare un dépôt GitHub dans son manifeste, un lien direct est affiché.
Figure 4 : Accéder aux paramètres d'un plugin.
Un bouton Vérifier mise à jour compare la version installée avec la version disponible dans la bibliothèque en ligne. Si une mise à jour est détectée, une confirmation est demandée avant installation. Cette vérification est désactivée en mode hors-ligne.
Désinstaller un plugin
La désinstallation supprime définitivement le plugin et ses données de configuration. L'opération est irréversible. IsoFind demande confirmation avant de procéder.
Si le plugin était actif au moment de la désinstallation, son code est déchargé de la mémoire avant suppression. Les entrées de menu enregistrées par ce plugin sont retirées immédiatement.
Paramètres globaux des plugins
Plugins
›
Paramètres des plugins
Figure 5 : Paramètres globaux des plugins.
Sécurité
| Paramètre | Description | Valeur par défaut |
|---|---|---|
| Vérifier les signatures | Valide l'authenticité des plugins avant installation | Activé |
| Mode sandbox | Exécute les plugins dans un environnement isolé | Activé |
| Mises à jour automatiques | Installe les mises à jour sans demander confirmation | Désactivé |
Permissions par défaut
Ces paramètres définissent les permissions accordées par défaut aux nouveaux plugins installés. Ils ne modifient pas les permissions des plugins déjà en place.
| Permission | Valeur par défaut |
|---|---|
| Accès réseau | Désactivé |
| Accès fichiers | Désactivé |
Mode hors-ligne (air-gap)
Paramètres des plugins
›
Mode hors-ligne
Figure 6 : Paramètres du mode air-gap.
Le mode hors-ligne est conçu pour les environnements sans accès à internet, notamment les infrastructures sensibles ou les postes en réseau isolé. Lorsqu'il est actif, toutes les connexions réseau initiées par les plugins sont bloquées au niveau du système.
Les fonctionnalités suivantes sont désactivées en mode hors-ligne :
| Fonctionnalité | Comportement en mode hors-ligne |
|---|---|
| Installation depuis une URL | Onglet masqué dans l'installeur |
| Bibliothèque en ligne | Accès bloqué avec notification |
| Vérification des mises à jour | Bloquée avec notification |
| Chargement Pyodide (CDN) | Bloqué sauf si un chemin local est configuré |
| Permission réseau des plugins | Bloquée même si déclarée dans le manifeste |
Chemin local pour Pyodide
Pour utiliser des plugins Python en mode hors-ligne, vous devez télécharger Pyodide et le servir localement. Renseignez le chemin vers pyodide.js dans le champ Chemin local Pyodide. Exemple : /static/pyodide/.
Pyodide peut être téléchargé sur github.com/pyodide/pyodide/releases. Placez l'ensemble des fichiers dans un répertoire servi par votre instance IsoFind et renseignez le chemin complet dans les paramètres.
Exporter et importer des plugins
La section Exporter les plugins dans les paramètres permet de sauvegarder l'ensemble des plugins installés dans un fichier .isoplugins. Ce fichier contient les métadonnées de tous les plugins et peut être importé sur une autre instance IsoFind.
Pour importer un bundle, cliquez sur Importer une archive et sélectionnez un fichier .isoplugins. IsoFind ajoute les plugins absents de l'instance sans écraser ceux déjà présents.
Le format .isoplugins ne contient que les métadonnées des plugins, pas leur code source. Pour une installation complète en environnement hors-ligne, fournissez également les fichiers .isplugin correspondants.
Créer un plugin
Plugins
›
Créer un plugin
L'assistant de création guide la construction d'un plugin en quatre étapes. Aucune connaissance préalable de la structure des archives n'est requise : IsoFind génère le manifeste et prépare le fichier exportable.
Figure 7 : Menu de création d'un plugin.
| Étape | Contenu |
|---|---|
| 1. Informations | Nom, version, description, auteur, email |
| 2. Configuration | Langage (JavaScript ou Python), permissions requises |
| 3. Code | Éditeur de code avec templates de départ |
| 4. Finalisation | Résumé, options d'export (README, icône), génération du fichier |
Templates disponibles
Quatre templates de départ sont proposés à l'étape Code. Chacun contient une structure fonctionnelle prête à modifier.
| Template | Usage typique |
|---|---|
| Vide | Partir de zéro, structure minimale uniquement |
| Basique | Plugin simple avec notification et entrée de menu |
| Analyseur | Traitement des données isotopiques et affichage de résultats |
| Visualiseur | Création d'un panneau graphique dans l'interface |
Bibliothèque de plugins
Plugins
›
Parcourir la bibliothèque
La bibliothèque recense les plugins publiés et compatibles avec votre version d'IsoFind. Elle permet de filtrer par catégorie et de trier par popularité, date de publication ou note. L'installation se fait en un clic depuis la fiche de chaque plugin.
La bibliothèque n'est pas accessible en mode hors-ligne. Pour distribuer des plugins dans ce contexte, utilisez l'export et l'import de bundles .isoplugins.
Pour proposer un plugin dans la bibliothèque officielle, consultez la page Collaborer sur le site IsoFind. Les plugins tiers sont soumis à une revue de code avant publication.