Migrating from Endpoints | DefectDojo Documentation

Migrating from Endpoints (Pro)

When you enable Locations on an existing DefectDojo Pro instance, the data already stored as Endpoints needs to be carried forward into the new Locations model. This page describes migration, what it preserves, and how the legacy Endpoint API behaves once the migration has run.

Note that migration is one-way. There is no automated rollback path that re-creates Endpoints from Locations.

What the Migration Does

For every existing Endpoint, migration will:

  1. Creates a URL Location (or re-uses an existing one) using the Endpoint’s protocol, userinfo, host, port, path, query, and fragment fields. The new URL is automatically attached to a parent Location object.

  2. Carries over tags. Every tag on the Endpoint is added to the Location’s tag set.

  3. Carries over metadata. Each DojoMeta row attached to the Endpoint is re-pointed at the new Location.

  4. Creates a LocationProductReference so the URL appears under the correct Asset (Product).

  5. Creates a LocationFindingReference for every Endpoint_Status:

Endpoint_Status flag Resulting Location status
risk_accepted=True Risk Accepted
false_positive=True False Positive
out_of_scope=True Out of Scope
mitigated=True Mitigated
(none of the above) Active

The mapping is order-sensitive: the first matching flag wins. This intentionally collapses the old multi-flag combinations down to the single canonical status that Locations use.

What the Migration Does Not Do

Endpoint API After Migration

Once Locations is enabled, the legacy Endpoint API enters a read-compatibility mode designed to keep existing automations working without code changes — but only for read traffic.

What still works

What returns 403

Writes to this endpoint are deprecated when V3_FEATURE_LOCATIONS is enabled

Clients that write Endpoint data must move to the new Reference endpoints (POST /api/v2/location_findings/, POST /api/v2/location_products/) and to the URL endpoint (POST /api/v2/urls/).

Behavioural Differences to Watch For

A few things behave differently from the original Endpoint API:

Tags and Metadata

Tags applied to Endpoints become tags on the Location object (not on the URL subtype). Tag-based filters in the legacy API continue to match.

Endpoint metadata is re-pointed at the Location during migration. Existing automations that read metadata via /api/v2/endpoint_meta/ should continue to work; new metadata should be written through the Location endpoints.