Locations Overview | DefectDojo Documentation

Locations Overview (Pro)

Locations are a new asset-modelling tool in DefectDojo Pro. They replace the legacy Endpoints model and absorb the previous Components (library) data, giving DefectDojo a single, polymorphic way to describe where a Finding lives — whether that’s a URL, a software dependency from an SBOM, or, in the future, a cloud resource ID, container image, or code repository.

Locations are currently in Beta and will need to be enabled on your instance. To enable Locations on your instance, contact support@defectdojo.com.

Why Replace Endpoints?

The original Endpoints model was built around URLs and IP addresses — it carried web-app fields like protocol, host, port, path, and a fixed status table that was tightly coupled to Findings. Three problems followed:

  1. Limited fidelity. Endpoints could not cleanly describe non-URL assets such as third-party libraries, container images, or cloud resources, even though scanners increasingly produce findings about those things.
  2. Performance ceiling. Per-Finding Endpoint_Status rows and the URL-shaped schema did not scale well at large customer volumes.
  3. Components were second-class. Software libraries lived only as denormalised fields on a Finding, so a library could not exist independently of a vulnerability — making true SBOM management impossible.

Locations fix all three by introducing a base Location object with a typed payload, plus dedicated subtypes for each asset shape. The MVP ships two subtypes:

Future Location types under consideration include cloud provider resource IDs (AWS ARN, Azure Resource ID, GCP Full Resource Name), container images (registry/repository:tag and SHA256 fingerprints), and code repositories.

Key Concepts

Locations and Subtypes

A Location is the shared parent. It carries:

A subtype (URL or Dependency) holds the structured fields specific to that kind of location. URLs and Dependencies always live alongside a parent Location object; the subtype’s Location Value is generated from its structured fields.

References

Locations are not directly attached to Products or Findings. Instead, two Reference objects link them:

This separation is what allows a library to exist on a Product without needing a Finding — a missing capability in the old Components model.

Auto-Association at Import Time

When a parser produces a Finding that references a URL or library, the importer:

  1. Looks up an existing Location matching the URL or pURL; if none exists, it creates one.
  2. Creates a Finding Reference linking the Finding to the Location with status Active.
  3. Creates (or reuses) an Asset Reference so the Location also lives on the parent Asset.

Existing parsers have been updated to emit Location data when the feature flag is on, and to fall back to the legacy Endpoint model when it is off. No reconfiguration is needed when Locations are enabled — the next import will route through the Locations pipeline automatically.

What’s in the MVP

Capability Status
Foundational Location, URL, Dependency models Shipped
REST API for Locations and References Shipped (read-only Location, full CRUD on References)
Endpoint API read-compatibility shim Shipped
Endpoint → URL one-way migration command Shipped
Parser updates (URLs and dependencies) Shipped for the major parsers
SBOM upload (CycloneDX, SPDX v2/v3) Shipped via /api/v2/sbom-import/
Pro UI for Locations, URLs, Dependencies Shipped (Beta)
pURL search/filter Shipped
License tracking on dependencies Partial (license_expression field)
SWID Tag SBOM format Not in MVP

Where to Go Next