[{"data":1,"prerenderedAt":247},["ShallowReactive",2],{"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fgenerer-sbom":3,"section:\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fgenerer-sbom":246},{"id":4,"title":5,"body":6,"description":207,"extension":208,"meta":209,"navigation":220,"path":242,"seo":243,"stem":244,"__hash__":245},"docs\u002F1.v5\u002F5.administrer\u002F03.exploitation\u002F16.generer-sbom.md","Générer l'inventaire logiciel (SBOM) d'un site",{"type":7,"value":8,"toc":197},"minimark",[9,13,17,22,48,52,93,100,107,120,124,127,146,156,160,171,175,190],[10,11,5],"h1",{"id":12},"générer-linventaire-logiciel-sbom-dun-site",[14,15,16],"p",{},"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.",[18,19,21],"h2",{"id":20},"prérequis","Prérequis",[23,24,25,34],"ul",{},[26,27,28,29,33],"li",{},"Vous avez le rôle ",[30,31,32],"strong",{},"Responsable système",". Un autre utilisateur reçoit une erreur de permission.",[26,35,36,37,41,42,47],{},"Un worker de la file ",[38,39,40],"code",{},"long"," tourne sur le site. La génération est une tâche de fond. Sur un site auto-hébergé, voir ",[43,44,46],"a",{"href":45},"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fdiagnostic","Diagnostiquer un site auto-hébergé",".",[18,49,51],{"id":50},"générer-le-fichier","Générer le fichier",[53,54,55,61,68,71,74,83],"ol",{},[26,56,57,58,47],{},"Ouvrez le document ",[30,59,60],{},"Applications installées",[26,62,63,64,67],{},"Cliquez sur le bouton ",[30,65,66],{},"Generate SBOM"," (libellé non traduit). L'écran se fige un court instant.",[26,69,70],{},"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.",[26,72,73],{},"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.",[26,75,57,76,78,79,82],{},[30,77,60],{},". Le fichier apparaît dans la section ",[30,80,81],{},"Pièces jointes"," de la barre latérale. Si le document était déjà ouvert, rechargez la page.",[26,84,85,86,88,89,92],{},"Cliquez sur le nom du fichier pour le télécharger. Pour voir tous les fichiers générés, cliquez sur ",[30,87,81],{}," : la liste ",[30,90,91],{},"Fichier"," s'ouvre, filtrée sur ce document.",[14,94,95,96,99],{},"Le fichier est privé. Il s'appelle ",[38,97,98],{},"sbom-\u003Csite>-\u003CAAAAMMJJ>-\u003CHHMMSS>.spdx.json",". Chaque génération crée un nouveau fichier : les précédents restent joints.",[14,101,102,103,106],{},"En cas d'échec, Dokos enregistre une erreur dans le ",[30,104,105],{},"Journal des Erreurs",", avec le titre « SBOM generation failed ».",[14,108,109,112,113,116,117,47],{},[30,110,111],{},"Exemple fictif"," : sur le site ",[38,114,115],{},"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 ",[38,118,119],{},"sbom-demo.example.com-20261109-091108.spdx.json",[18,121,123],{"id":122},"contenu-du-fichier","Contenu du fichier",[14,125,126],{},"Le document SPDX décrit chaque application installée sur le site, avec :",[23,128,129,132,139],{},[26,130,131],{},"ses dépendances Python : l'arbre complet des paquets, avec la version installée. Les marqueurs d'environnement et les extras sont résolus ;",[26,133,134,135,138],{},"ses dépendances JavaScript d'exécution : versions et sommes de contrôle lues dans ",[38,136,137],{},"yarn.lock"," (format yarn v1 uniquement) ;",[26,140,141,142,145],{},"les bibliothèques JavaScript copiées directement dans Dodock (dossier ",[38,143,144],{},"frappe\u002Fpublic\u002Fjs\u002Flib",") : jQuery, Leaflet, FullCalendar et d'autres.",[14,147,148,149,152,153,47],{},"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 ",[38,150,151],{},"NOASSERTION"," et place le texte brut de la licence dans le champ ",[38,154,155],{},"licenseComments",[18,157,159],{"id":158},"limites","Limites",[23,161,162,165,168],{},[26,163,164],{},"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.",[26,166,167],{},"Un paquet Python qu'aucune application installée ne demande n'apparaît pas dans le SBOM.",[26,169,170],{},"Pour un lockfile yarn dans un autre format que v1, les versions et sommes de contrôle JavaScript ne sont pas relevées.",[18,172,174],{"id":173},"consulter-les-versions-sur-la-page-attribution","Consulter les versions sur la page Attribution",[14,176,177,178,181,182,185,186,189],{},"La page ",[30,179,180],{},"Attribution"," (",[38,183,184],{},"\u002Fattribution",") 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 ",[30,187,188],{},"Version",", à côté du paquet, du type, de la licence et des auteurs.",[14,191,192,193,47],{},"Pour la sécurité générale du site, voir ",[43,194,196],{"href":195},"\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fsecurite","Sécuriser un site Dokos",{"title":198,"searchDepth":199,"depth":200,"links":201},"",1,2,[202,203,204,205,206],{"id":20,"depth":200,"text":21},{"id":50,"depth":200,"text":51},{"id":122,"depth":200,"text":123},{"id":158,"depth":200,"text":159},{"id":173,"depth":200,"text":174},"Produire un fichier SPDX 2.3 qui liste les applications, les paquets Python et JavaScript et leurs licences, puis lire la version des dépendances sur la page Attribution.","md",{"icon":210,"sources":211,"generated":220,"generated_at":221,"source_mrs":222,"reviewed":220,"labels_pending":224},"i-mdi-package-variant-closed",[212,213,214,215,216,217,218,219],"frappe@v5-dev:frappe\u002Fcore\u002Fdoctype\u002Finstalled_applications\u002Finstalled_applications.js","frappe@v5-dev:frappe\u002Futils\u002Fsbom\u002F__init__.py","frappe@v5-dev:frappe\u002Futils\u002Fsbom\u002Fcollector.py","frappe@v5-dev:frappe\u002Futils\u002Fsbom\u002Flicenses.py","frappe@v5-dev:frappe\u002Futils\u002Fsbom\u002Fspdx.py","frappe@v5-dev:frappe\u002Futils\u002Fsbom\u002Fvendored_libraries.json","frappe@v5-dev:frappe\u002Fwww\u002Fattribution.py","frappe@v5-dev:frappe\u002Fwww\u002Fattribution.html",true,"2026-11-09",[223],"https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdodock\u002F-\u002Fmerge_requests\u002F12839",[225,230,233,236,239],{"msgid":66,"proposed":226,"app":227,"branch":228,"quoted":229},"Générer le SBOM","dodock","v5-dev","msgid",{"msgid":231,"proposed":232,"app":227,"branch":228,"quoted":229},"SBOM generation started. You will get a notification when it is ready.","La génération du SBOM a démarré. Vous recevrez une notification quand il sera prêt.",{"msgid":234,"proposed":235,"app":227,"branch":228,"quoted":229},"SBOM generation is already in progress. You will get a notification when it is ready.","La génération du SBOM est déjà en cours. Vous recevrez une notification quand il sera prêt.",{"msgid":237,"proposed":238,"app":227,"branch":228,"quoted":229},"SBOM is ready","Le SBOM est prêt",{"msgid":240,"proposed":241,"app":227,"branch":228,"quoted":229},"SBOM generation failed","La génération du SBOM a échoué","\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fgenerer-sbom",{"title":5,"description":207},"1.v5\u002F5.administrer\u002F03.exploitation\u002F16.generer-sbom","TuosnixXMP9E_Asgq6tCjxGv4wKDkbFNiNMngvsuAoY",{},1794606053286]