Migration von Endpoints (Pro)
Wenn Sie Locations auf einer bestehenden DefectDojo-Pro-Instanz aktivieren, müssen die bereits als Endpoints gespeicherten Daten in das neue Locations-Modell übernommen werden. Diese Seite beschreibt die Migration, was dabei erhalten bleibt, und wie sich die veraltete Endpoint-API nach der Migration verhält.
Beachten Sie, dass die Migration einseitig ist. Es gibt keinen automatisierten Rollback-Pfad, der Endpoints aus Locations wiederherstellt.
Was die Migration bewirkt
Für jeden bestehenden Endpoint führt die Migration Folgendes durch:
Erstellt eine URL-Location (oder verwendet eine bestehende weiter) anhand der Felder
protocol,userinfo,host,port,path,queryundfragmentdes Endpoints. Die neue URL wird automatisch einem übergeordnetenLocation-Objekt zugeordnet.Überträgt Tags. Jeder Tag am Endpoint wird der Tag-Menge der Location hinzugefügt.
Überträgt Metadaten. Jede an den Endpoint angehängte
DojoMeta-Zeile wird auf die neue Location umgeleitet.Erstellt eine
LocationProductReference, damit die URL unter dem richtigen Asset (Produkt) erscheint.Erstellt eine
LocationFindingReferencefür jedenEndpoint_Status:Endpoint_Status-Flag Resultierender Location-Status risk_accepted=TrueRisiko akzeptiert false_positive=TrueFalsch-positiv out_of_scope=TrueAußerhalb des Geltungsbereichs mitigated=TrueBehoben (keine der oben genannten) Aktiv Die Zuordnung ist reihenfolgeabhängig: Das erste zutreffende Flag gewinnt. Dadurch werden die alten Mehrfach-Flag-Kombinationen bewusst auf den einen kanonischen Status reduziert, den Locations verwenden.
Was die Migration nicht bewirkt
- Sie erstellt keine Dependency-Locations. SBOM- und Bibliotheksdaten existierten nie als Endpoints, daher gibt es für die Migration nichts zu konvertieren. Um Dependencies zu befüllen, laden Sie SBOMs hoch (siehe Working with SBOMs) oder führen Sie Scans erneut mit Parsern aus, die Dependency-Daten liefern.
- Sie löscht nicht die ursprünglichen Endpoint- oder Endpoint_Status-Zeilen. Diese bleiben in der Datenbank erhalten, um die schreibgeschützte veraltete API zu unterstützen. Sie werden von der neuen Benutzeroberfläche oder von Imports nach Aktivierung des Features nicht mehr verwendet.
Endpoint-API nach der Migration
Sobald Locations aktiviert ist, wechselt die veraltete Endpoint-API in einen Lese-Kompatibilitätsmodus, der bestehende Automatisierungen ohne Codeänderungen weiterlaufen lässt — allerdings nur für Lesezugriffe.
Was weiterhin funktioniert
GET /api/v2/endpoints/— Liefert Zeilen, die wie Endpoints aussehen, tatsächlich aber aus Location-Product-Reference-Zeilen in Verbindung mit URL-Locations projiziert werden. Die bekannten Felder (protocol,host,port,path,query,fragment,tags,product,active_finding_count) sind alle vorhanden.GET /api/v2/endpoints/{id}/— Der Abruf eines einzelnen Endpoints funktioniert auf dieselbe Weise. Dieidist die ursprüngliche Endpoint-ID und bleibt durch die Migration über das Asset-Reference-Mapping erhalten.GET /api/v2/endpoint_status/undGET /api/v2/endpoint_status/{id}/— Liefert Zeilen, die ausLocationFindingReferenceprojiziert werden. Die veralteten booleschen Feldermitigated,false_positive,out_of_scopeundrisk_acceptedwerden rekonstruiert.- Das Filtern nach
protocol,host,port,path,query,fragment,productundtag(s)funktioniert weiterhin. - Die Aktion
generate_reportfür einzelne Endpoints funktioniert weiterhin.
Was 403 zurückgibt
POST,PUT,PATCHundDELETEauf/api/v2/endpoints/und/api/v2/endpoint_status/liefern alleHTTP 403mit folgendem Inhalt zurück:Writes to this endpoint are deprecated when V3_FEATURE_LOCATIONS is enabled
Clients, die Endpoint-Daten schreiben, müssen auf die neuen Reference-Endpunkte (
POST /api/v2/location_findings/,POST /api/v2/location_products/) und auf den URL-Endpunkt (POST /api/v2/urls/) umsteigen.
Verhaltensunterschiede, auf die Sie achten sollten
Einige Dinge verhalten sich anders als bei der ursprünglichen Endpoint-API:
- Ein einzelner Status statt Flags. Locations haben jeweils nur einen Status. Wenn Ihr Code davon ausging, dass ein Befund bei einem Endpoint_Status gleichzeitig sowohl
mitigated=Trueals auchfalse_positive=Truesein kann, lässt sich das nicht mehr abbilden — die Migration wählt das Flag mit der höchsten Priorität (Reihenfolge siehe Tabelle oben). - Feld
endpointbei Endpoint_Status. Das veraltete Feldendpointwird durch Nachschlagen der passenden Asset Reference rekonstruiert. In seltenen Fällen, in denen das Asset eines Befunds nicht mehr mit den Asset-Referenzen seiner Location übereinstimmt, kann dieses Feld null sein. - Paginierung und Sortierung. Verfügbare Sortierfelder im Lese-Kompatibilitäts-Shim sind
host,product,idundactive_finding_count. Wenn Ihr Client nach einem anderen Feld sortiert, wechseln Sie zu einem dieser Felder oder zu den neuen Locations-Endpunkten.
Tags und Metadaten
Auf Endpoints angewendete Tags werden zu Tags am Location-Objekt (nicht am URL-Subtyp). Tag-basierte Filter in der veralteten API funktionieren weiterhin.
Endpoint-Metadaten werden während der Migration auf die Location umgeleitet. Bestehende Automatisierungen, die Metadaten über /api/v2/endpoint_meta/ lesen, sollten weiterhin funktionieren; neue Metadaten sollten über die Location-Endpunkte geschrieben werden.