Migration depuis les Points de terminaison (Pro)
Lorsque vous activez les Emplacements sur une instance DefectDojo Pro existante, les données déjà stockées sous forme de Points de terminaison doivent être reportées dans le nouveau modèle d’Emplacements. Cette page décrit la migration, ce qu’elle préserve, et comment se comporte l’API Endpoint héritée une fois la migration exécutée.
Notez que la migration est à sens unique. Il n’existe aucun chemin de restauration automatisé qui recrée des Points de terminaison à partir des Emplacements.
Ce que fait la migration
Pour chaque Point de terminaison existant, la migration va :
Créer un Emplacement URL (ou réutiliser un existant) en utilisant les champs
protocol,userinfo,host,port,path,queryetfragmentdu Point de terminaison. La nouvelle URL est automatiquement rattachée à un objetLocationparent.Reporter les étiquettes. Chaque étiquette du Point de terminaison est ajoutée à l’ensemble d’étiquettes de l’Emplacement.
Reporter les métadonnées. Chaque ligne
DojoMetarattachée au Point de terminaison est repointée vers le nouvel Emplacement.Créer une
LocationProductReferenceafin que l’URL apparaisse sous le bon Actif (Produit).Créer une
LocationFindingReferencepour chaqueEndpoint_Status:Indicateur Endpoint_Status Statut d’Emplacement résultant risk_accepted=TrueRisque accepté false_positive=TrueFaux positif out_of_scope=TrueHors périmètre mitigated=TrueAtténué (aucun des cas ci-dessus) Actif Le mappage est sensible à l’ordre : le premier indicateur correspondant l’emporte. Cela réduit intentionnellement les anciennes combinaisons multi-indicateurs à l’unique statut canonique utilisé par les Emplacements.
Ce que la migration ne fait pas
- Elle ne crée pas d’Emplacements de dépendance. Les données de SBOM et de bibliothèques n’ont jamais existé sous forme de Points de terminaison ; il n’y a donc rien à convertir. Pour peupler les Dépendances, importez des SBOM (voir Utilisation des SBOM) ou relancez des analyses avec des parseurs qui produisent des données de dépendance.
- Elle ne supprime pas les lignes Endpoint ou Endpoint_Status d’origine. Elles restent dans la base de données pour alimenter l’API héritée en lecture seule. Elles ne sont pas utilisées par la nouvelle interface ni par les imports une fois la fonctionnalité activée.
API Endpoint après la migration
Une fois les Emplacements activés, l’API Endpoint héritée passe dans un mode de compatibilité en lecture conçu pour que les automatisations existantes continuent de fonctionner sans modification de code — mais uniquement pour le trafic en lecture.
Ce qui fonctionne toujours
GET /api/v2/endpoints/— Renvoie des lignes qui ressemblent à des Points de terminaison mais qui sont en réalité projetées à partir de lignes Location Product Reference jointes à des Emplacements URL. Les champs familiers (protocol,host,port,path,query,fragment,tags,product,active_finding_count) sont tous présents.GET /api/v2/endpoints/{id}/— La récupération d’un Point de terminaison unique fonctionne de la même manière. L’idest l’identifiant Endpoint d’origine et est préservé pendant la migration via le mappage Asset Reference.GET /api/v2/endpoint_status/etGET /api/v2/endpoint_status/{id}/— Renvoient des lignes projetées à partir deLocationFindingReference. Les champs booléens héritésmitigated,false_positive,out_of_scopeetrisk_acceptedsont reconstruits.- Le filtrage par
protocol,host,port,path,query,fragment,productettag(s)continue de fonctionner. - L’action
generate_reportsur les Points de terminaison individuels continue de fonctionner.
Ce qui renvoie 403
POST,PUT,PATCHetDELETEsur/api/v2/endpoints/et/api/v2/endpoint_status/renvoient tousHTTP 403avec le corps suivant :Writes to this endpoint are deprecated when V3_FEATURE_LOCATIONS is enabled
Les clients qui écrivent des données Endpoint doivent migrer vers les nouveaux points de terminaison Reference (
POST /api/v2/location_findings/,POST /api/v2/location_products/) et vers le point de terminaison URL (POST /api/v2/urls/).
Différences de comportement à surveiller
Certains éléments se comportent différemment de l’API Endpoint d’origine :
- Un seul statut au lieu d’indicateurs. Les Emplacements n’ont qu’un seul statut à la fois. Si votre code s’appuyait sur une Constatation étant à la fois
mitigated=Trueetfalse_positive=Truesimultanément sur un Endpoint_Status, cela n’est plus représentable — la migration retient l’indicateur de priorité la plus élevée (l’ordre indiqué dans le tableau ci-dessus). - Champ
endpointsur Endpoint_Status. Le champ héritéendpointest reconstruit en recherchant l’Asset Reference correspondante. Dans de rares cas où l’Actif d’une Constatation ne correspond plus aux références d’Actif de son Emplacement, ce champ peut être nul. - Pagination et tri. Les champs de tri disponibles sur la couche de compatibilité en lecture sont
host,product,idetactive_finding_count. Si votre client trie sur un autre champ, passez à l’un de ceux-ci ou migrez vers les nouveaux points de terminaison Emplacements.
Étiquettes et métadonnées
Les étiquettes appliquées aux Points de terminaison deviennent des étiquettes sur l’objet Emplacement (et non sur le sous-type URL). Les filtres basés sur les étiquettes dans l’API héritée continuent de fonctionner.
Les métadonnées des Points de terminaison sont repointées vers l’Emplacement pendant la migration. Les automatisations existantes qui lisent les métadonnées via /api/v2/endpoint_meta/ devraient continuer de fonctionner ; les nouvelles métadonnées doivent être écrites via les points de terminaison Emplacements.