Chargement de Nomenclature logicielle fichiers à l’aide d’une REST API
Vérifiez les informations suivantes avant de Nomenclature logicielle charger des fichiers à l’aide d’une API.
Utilisation de REST API
Pour charger un fichier SBOM avec une API, le rôle sn_sbom_core.sbom_ingest est requis.
Charger l’API.
Cette API est utilisée pour charger et ingérer un fichier SBOM (CycloneDX/SPDX) dans votre instance.
- XML et JSON dans CycloneDx (versions 1.0 - 1.6).
- JSON dans SPDX (versions 2.2-2.3)
-
Remarque :Les fichiers de plus de 32 Mo peuvent ne pas se charger correctement.
Méthode HTTP : (POST)
- ID de construction
- lifecycleStage
- buildId : chaîne que vous envoyez
- lifecycleStage : deux valeurs, production ou pre_production
- fetchVulenrabilityInfo- t/f
- fetchPackageInfo-t/f
| Paramètres de demande | Valeurs possibles | Description |
|---|---|---|
| ID modèle produit | ID système | ID système du modèle de produit à mapper avec l’application racine de la nomenclature logicielle donnée. |
| ID d’application commerciale | ID système | ID système de l’application d’entreprise à mapper avec l’application racine de la nomenclature logicielle donnée. |
| businessApplicationName (en anglais seulement) | Nom de votre application d’entreprise | Nom de l’application d’entreprise à mapper avec l’application racine de la nomenclature logicielle donnée. |
| sbomSource (en anglais seulement) | Un produit tel que Vericode, par exemple | La source de votre fichier SBOM. |
| requestedBy | Un outil, ou le nom d’une méthodologie, Jenkins. Si vous utilisez « devops », buildId et lifecycleStage sont obligatoires. | Chargement demandé par |
| ID de construction | Une chaîne envoyée par le demandeur. | ID de build de la build SBOM. |
| lifecycleStage | Production ou pre_production | Étape du cycle de vie de l’entité. |
| fetchVulenrabilityInfo | T/F | Si vrai, déclenche l’intégration de l’intelligence des vulnérabilités. |
| informations sur le package fetchPackage | T/F | Si vrai, déclenche l’intégration de l’intelligence du package. |
{
"result": {
"status": "success",
"message": "Queued for processing.",
"bomRecordId": "f207059b4393c290629aa597cbb8f247"
}
}API d’état
- URL de l’API : /api/sbom/core/upload/status
- Méthode HTTP (GET)
| Paramètres de demande | Valeurs possibles | Description |
|---|---|---|
| BomRecordId (en anglais seulement) | ID système | ID d’enregistrement SBOM renvoyé via l’API de chargement pour un chargement SBOM réussi. |
Exemple de réponse par défaut de l’API d’état.
{
"result": {
"bomRecordId": "0407c0fea3e70a505df340f5251e617e",
"uploadStatus": "processed",
"additionalInfoStatus": "not_requested",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 70
}
}
}
}
Réponse API d’état avec exemple de paramètres supplémentaires. Si vous avez demandé fetchVulenrabilityInfo pour ce SBOM, vous obtenez la répartition des vulnérabilités dans le cadre de la réponse.
{
"result": {
"bomRecordId": "93af349b4393c290629aa597cbb8f258",
"uploadStatus": "processed",
"additionalInfoStatus": "complete",
"uploadSummary": {
"components": {
"added": 0,
"removed": 0,
"total": 3
},
"vulnerabilityInfo": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0,
"none": 0
}
},
"buildId": "1"
}
}
Si vous avez demandé fetchPackageInfo pour cette nomenclature logicielle, vous obtenez les nombres périmés et abandonnés dans le cadre de la réponse.
Une fois qu’un SBOM processus est traité avec succès, l’emplacement d’affichage des enregistrements chargés dépend des applications que vous utilisez.
- Si vous utilisez SBOM la réponse, l’enregistrement de l’entité BOM s’affiche dans la liste État d’ingestion SBOM du module File d’attente BOM de l’espace SBOM de travail.
- Si vous utilisez SBOM Core, accédez à .
Améliorations apportées aux normes prises en charge SBOM et aux informations générales sur l’utilisation
- XML et JSON dans CycloneDx (versions 1.0 - 1.6).
- JSON dans SPDX (versions 2.2-2.3)
-
Remarque :Les fichiers de plus de 32 Mo peuvent ne pas se charger correctement.
- Importez des informations supplémentaires dans les fichiers SBOM CycloneDX avec la propriété (sn_sbom_core.collect_properties). Cette propriété est désactivée par défaut. Activez la propriété pour importer des informations qui ne sont généralement pas prises en charge. Toutes les informations importées à partir de ces propriétés sont téléchargées dans la table Propriété du composant SBOM [sn_sbom_comp_property] pour ce qui suit :
- Fichiers SBOM chargés
- Métadonnées
- Vulnérabilités individuelles
- Composants
- Affichez les données de composants importés pour les licences déclarées et conclues pour les fichiers SBOM dans les versions 1.4 et ultérieures de CycloneDX dans deux nouveaux champs de licence :
- Déclaré
- Conclu
- La prise en charge de l’analyse SBOM est étendue aux types de composants CycloneDX suivants :
- Version 1.5 : plateforme, données, pilote d’appareil, modèle d’apprentissage automatique
- Version 1.6 : Cryptographique
- XML et JSON dans CycloneDx (jusqu’à la version 1.4 incluse).
- JSON dans SPDX (jusqu’à la version 2.3 incluse).
Si l’utilisateur appelant est authentifié avec succès et qu’il dispose du rôle sn_sbom_core.sbom_ingest dans votre ServiceNow instance, vous pouvez accéder à l’API depuis l’extérieur de votre instance pour charger les SBOM données.
Une fois les données chargées, elles sont analysées. Avant l’analyse des données, les exigences suivantes sont vérifiées :
- On vérifie que les données entrantes sont valides au format JSON ou XML.
- Le format BOM est pris en charge. À partir de la version 2.1 de SBOM Core, les formats CycloneDX (JSON et XML) et SPDX (XML) sont pris en charge.
- Le nombre minimum de champs est disponible afin que les données puissent être analysées.
Une fois ces vérifications vérifiées, une entrée est effectuée dans la table Nomenclature [sn_sbom_doc] avec les données entrantes SBOM en pièce jointe.
Tous les composants répertoriés dans un SBOM ont un type défini.
- Les composants pour lesquels SBOM les fichiers ont été chargés sont considérés comme des entités BOM.
- Les composants répertoriés comme type=library sont considérés comme des composants tiers.