Générer l'inventaire logiciel (SBOM) d'un site
Générer l'inventaire logiciel (SBOM) d'un site
Un SBOM (« Software Bill of Materials ») est l'inventaire des composants logiciels d'un site. Dokos le produit au format SPDX 2.3 (JSON). Vous pouvez le fournir à un client, à un auditeur ou à votre équipe sécurité pour suivre les composants et leurs licences.
Prérequis
- Vous avez le rôle Responsable système. Un autre utilisateur reçoit une erreur de permission.
- Un worker de la file
longtourne sur le site. La génération est une tâche de fond. Sur un site auto-hébergé, voir Diagnostiquer un site auto-hébergé.
Générer le fichier
- Ouvrez le document Applications installées.
- Cliquez sur le bouton Generate SBOM (libellé non traduit). L'écran se fige un court instant.
- Dokos affiche un message : « SBOM generation started. You will get a notification when it is ready. » (message non traduit). Si une génération est déjà en cours, le message devient « SBOM generation is already in progress. You will get a notification when it is ready. » et Dokos ne lance pas de seconde tâche.
- Attendez la notification de type Alerte. Elle porte l'objet « SBOM is ready » en cas de succès, ou « SBOM generation failed » en cas d'échec (objets non traduits). Elle est envoyée à l'adresse e-mail de l'utilisateur qui a lancé la génération.
- Ouvrez le document Applications installées. Le fichier apparaît dans la section Pièces jointes de la barre latérale. Si le document était déjà ouvert, rechargez la page.
- Cliquez sur le nom du fichier pour le télécharger. Pour voir tous les fichiers générés, cliquez sur Pièces jointes : la liste Fichier s'ouvre, filtrée sur ce document.
Le fichier est privé. Il s'appelle sbom-<site>-<AAAAMMJJ>-<HHMMSS>.spdx.json. Chaque génération crée un nouveau fichier : les précédents restent joints.
En cas d'échec, Dokos enregistre une erreur dans le Journal des Erreurs, avec le titre « SBOM generation failed ».
Exemple fictif : sur le site demo.example.com, un responsable système lance la génération le 9 novembre 2026 à 09 h 11 min 08 s. Il reçoit la notification « SBOM is ready » et trouve le fichier sbom-demo.example.com-20261109-091108.spdx.json.
Contenu du fichier
Le document SPDX décrit chaque application installée sur le site, avec :
- ses dépendances Python : l'arbre complet des paquets, avec la version installée. Les marqueurs d'environnement et les extras sont résolus ;
- ses dépendances JavaScript d'exécution : versions et sommes de contrôle lues dans
yarn.lock(format yarn v1 uniquement) ; - les bibliothèques JavaScript copiées directement dans Dodock (dossier
frappe/public/js/lib) : jQuery, Leaflet, FullCalendar et d'autres.
Les licences sont exprimées en identifiants SPDX valides. Quand la licence d'un paquet ne permet pas d'en déduire un identifiant exact, Dokos écrit NOASSERTION et place le texte brut de la licence dans le champ licenseComments.
Limites
- La liste des bibliothèques copiées dans le code est fixe et ne concerne que Dodock. Une autre application ne peut pas encore déclarer les siennes.
- Un paquet Python qu'aucune application installée ne demande n'apparaît pas dans le SBOM.
- Pour un lockfile yarn dans un autre format que v1, les versions et sommes de contrôle JavaScript ne sont pas relevées.
Consulter les versions sur la page Attribution
La page Attribution (/attribution) utilise le même inventaire. Elle est réservée aux utilisateurs système. Pour chaque application, le tableau des dépendances directes affiche maintenant la colonne Version, à côté du paquet, du type, de la licence et des auteurs.
Pour la sécurité générale du site, voir Sécuriser un site Dokos.