Migrazione dagli Endpoint (Pro)
Quando si abilita Location su un’istanza DefectDojo Pro esistente, i dati già memorizzati come Endpoint devono essere riportati nel nuovo modello Location. Questa pagina descrive la migrazione, cosa viene preservato e come si comporta l’API Endpoint legacy una volta eseguita la migrazione.
Nota che la migrazione è a senso unico. Non esiste un percorso di rollback automatizzato che ricrei gli Endpoint a partire dalle Location.
Cosa fa la migrazione
Per ogni Endpoint esistente, la migrazione:
Crea una URL Location (o ne riutilizza una esistente) usando i campi
protocol,userinfo,host,port,path,queryefragmentdell’Endpoint. Il nuovo URL viene collegato automaticamente a un oggettoLocationpadre.Riporta i tag. Ogni tag presente sull’Endpoint viene aggiunto all’insieme di tag della Location.
Riporta i metadati. Ogni riga
DojoMetacollegata all’Endpoint viene ricollegata alla nuova Location.Crea una
LocationProductReferencein modo che l’URL compaia sotto l’Asset (Product) corretto.Crea una
LocationFindingReferenceper ogniEndpoint_Status:Flag Endpoint_Status Stato Location risultante risk_accepted=TrueRischio accettato false_positive=TrueFalso positivo out_of_scope=TrueFuori ambito mitigated=TrueMitigato (nessuno dei precedenti) Attivo La mappatura dipende dall’ordine: vince il primo flag corrispondente. Questo comprime intenzionalmente le vecchie combinazioni multi-flag in un unico stato canonico usato dalle Location.
Cosa non fa la migrazione
- Non crea Dependency Location. I dati SBOM e delle librerie non sono mai esistiti come Endpoint, quindi non c’è nulla da convertire per la migrazione. Per popolare le Dependency, caricare gli SBOM (vedi Utilizzo degli SBOM) oppure rieseguire le scansioni con parser che generano dati sulle dipendenze.
- Non elimina le righe originali di Endpoint o Endpoint_Status. Rimangono nel database a supporto dell’API legacy in sola lettura. Non vengono utilizzate dalla nuova interfaccia né dagli import dopo l’abilitazione della funzionalità .
API Endpoint dopo la migrazione
Una volta abilitata Location, l’API Endpoint legacy entra in una modalità di compatibilità in lettura pensata per mantenere funzionanti le automazioni esistenti senza modifiche al codice, ma solo per il traffico in lettura.
Cosa continua a funzionare
GET /api/v2/endpoints/— Restituisce righe che sembrano Endpoint ma sono in realtà proiettate dalle righe Location Product Reference unite alle URL Location. I campi consueti (protocol,host,port,path,query,fragment,tags,product,active_finding_count) sono tutti presenti.GET /api/v2/endpoints/{id}/— Il recupero di un singolo Endpoint funziona allo stesso modo. L’idè l’ID Endpoint originale e viene preservato durante la migrazione tramite la mappatura Asset Reference.GET /api/v2/endpoint_status/eGET /api/v2/endpoint_status/{id}/— Restituiscono righe proiettate daLocationFindingReference. I campi booleani legacymitigated,false_positive,out_of_scopeerisk_acceptedvengono ricostruiti.- Il filtraggio per
protocol,host,port,path,query,fragment,productetag(s)continua a funzionare. - L’azione
generate_reportsui singoli Endpoint continua a funzionare.
Cosa restituisce 403
POST,PUT,PATCHeDELETEsu/api/v2/endpoints/e/api/v2/endpoint_status/restituiscono tuttiHTTP 403con il seguente corpo:Writes to this endpoint are deprecated when V3_FEATURE_LOCATIONS is enabled
I client che scrivono dati Endpoint devono passare ai nuovi endpoint Reference (
POST /api/v2/location_findings/,POST /api/v2/location_products/) e all’endpoint URL (POST /api/v2/urls/).
Differenze di comportamento da tenere presenti
Alcuni aspetti si comportano diversamente rispetto all’API Endpoint originale:
- Stato singolo invece di flag. Le Location hanno un solo stato alla volta. Se il codice si basava su un Finding con sia
mitigated=Truesiafalse_positive=Truecontemporaneamente su un Endpoint_Status, questo non è più rappresentabile — la migrazione sceglie il flag con priorità più alta (l’ordine mostrato nella tabella sopra). - Campo
endpointsu Endpoint_Status. Il campo legacyendpointviene ricostruito cercando l’Asset Reference corrispondente. Nei rari casi in cui l’Asset di un Finding non corrisponde più agli Asset Reference della sua Location, questo campo può essere nullo. - Paginazione e ordinamento. I campi di ordinamento disponibili sullo shim di compatibilità in lettura sono
host,product,ideactive_finding_count. Se il client ordina per un altro campo, passare a uno di questi o migrare ai nuovi endpoint Location.
Tag e metadati
I tag applicati agli Endpoint diventano tag sull’oggetto Location (non sul sottotipo URL). I filtri basati su tag nell’API legacy continuano a funzionare correttamente.
I metadati Endpoint vengono ricollegati alla Location durante la migrazione. Le automazioni esistenti che leggono i metadati tramite /api/v2/endpoint_meta/ dovrebbero continuare a funzionare; i nuovi metadati vanno scritti attraverso gli endpoint Location.