Migração a partir de Endpoints (Pro)
Quando você habilita as Localizações em uma instância existente do DefectDojo Pro, os dados já armazenados como Endpoints precisam ser transportados para o novo modelo de Localizações. Esta página descreve a migração, o que ela preserva e como a API legada de Endpoint se comporta depois que a migração é executada.
Observe que a migração é de mão única. Não existe um caminho de rollback automatizado que recrie Endpoints a partir de Localizações.
O Que a Migração Faz
Para cada Endpoint existente, a migração vai:
Criar uma Localização de URL (ou reutilizar uma existente) usando os campos
protocol,userinfo,host,port,path,queryefragmentdo Endpoint. A nova URL é automaticamente anexada a um objetoLocationpai.Transferir as tags. Cada tag do Endpoint é adicionada ao conjunto de tags da Localização.
Transferir os metadados. Cada linha
DojoMetaanexada ao Endpoint é redirecionada para a nova Localização.Criar uma
LocationProductReferencepara que a URL apareça sob o Ativo (Produto) correto.Criar uma
LocationFindingReferencepara cadaEndpoint_Status:Flag do Endpoint_Status Status resultante da Localização risk_accepted=TrueRisco aceito false_positive=TrueFalso positivo out_of_scope=TrueFora do escopo mitigated=TrueMitigado (nenhum dos anteriores) Ativo O mapeamento é sensível à ordem: a primeira flag correspondente prevalece. Isso reduz intencionalmente as antigas combinações de múltiplas flags a um único status canônico usado pelas Localizações.
O Que a Migração Não Faz
- Ela não cria Localizações de Dependência. Dados de SBOM e de bibliotecas nunca existiram como Endpoints, então não há nada para a migração converter. Para popular Dependências, faça upload de SBOMs (veja Trabalhando com SBOMs) ou execute novamente as varreduras com parsers que emitam dados de dependência.
- Ela não exclui as linhas originais de Endpoint ou Endpoint_Status. Elas permanecem no banco de dados para sustentar a API legada somente leitura. Não são usadas pela nova interface nem pelas importações após o recurso ser habilitado.
API de Endpoint Após a Migração
Depois que as Localizações são habilitadas, a API legada de Endpoint entra em um modo de compatibilidade de leitura, projetado para manter as automações existentes funcionando sem alterações de código — mas apenas para tráfego de leitura.
O Que Ainda Funciona
GET /api/v2/endpoints/— Retorna linhas que parecem Endpoints, mas na verdade são projetadas a partir de linhas de Location Product Reference unidas a Localizações de URL. Os campos conhecidos (protocol,host,port,path,query,fragment,tags,product,active_finding_count) estão todos presentes.GET /api/v2/endpoints/{id}/— A busca de um único Endpoint funciona da mesma forma. Oidé o ID original do Endpoint e é preservado ao longo da migração por meio do mapeamento de Asset Reference.GET /api/v2/endpoint_status/eGET /api/v2/endpoint_status/{id}/— Retornam linhas projetadas a partir deLocationFindingReference. Os campos booleanos legadosmitigated,false_positive,out_of_scopeerisk_acceptedsão reconstruídos.- A filtragem por
protocol,host,port,path,query,fragment,productetag(s)continua funcionando. - A ação
generate_reportem Endpoints individuais continua funcionando.
O Que Retorna 403
POST,PUT,PATCHeDELETEem/api/v2/endpoints/e/api/v2/endpoint_status/retornam todosHTTP 403com o corpo:Writes to this endpoint are deprecated when V3_FEATURE_LOCATIONS is enabled
Os clientes que gravam dados de Endpoint devem migrar para os novos endpoints de referência (
POST /api/v2/location_findings/,POST /api/v2/location_products/) e para o endpoint de URL (POST /api/v2/urls/).
Diferenças de Comportamento a Observar
Algumas coisas se comportam de maneira diferente em relação à API original de Endpoint:
- Status único em vez de flags. As Localizações têm apenas um status por vez. Se o seu código dependia de um Achado ser ao mesmo tempo
mitigated=Trueefalse_positive=Trueem um Endpoint_Status, isso deixa de ser representável — a migração escolhe a flag de maior prioridade (a ordem mostrada na tabela acima). - Campo
endpointno Endpoint_Status. O campo legadoendpointé reconstruído buscando a Asset Reference correspondente. Em casos raros, quando o Ativo de um Achado não corresponde mais às referências de Ativo de sua Localização, esse campo pode ser nulo. - Paginação e ordenação. Os campos de ordenação disponíveis na camada de compatibilidade de leitura são
host,product,ideactive_finding_count. Se o seu cliente ordena por outro campo, mude para um destes ou migre para os novos endpoints de Localizações.
Tags e Metadados
As tags aplicadas a Endpoints se tornam tags no objeto Localização (não no subtipo URL). Os filtros baseados em tags na API legada continuam funcionando.
Os metadados de Endpoint são redirecionados para a Localização durante a migração. As automações existentes que leem metadados por meio de /api/v2/endpoint_meta/ devem continuar funcionando; novos metadados devem ser gravados por meio dos endpoints de Localização.