Features

Below you can find a list of features that dependency-management-data supports.

Looking for an in-depth example of how this data can be used?

Check out the Case Studies!

Tooling

dependency-management-data produces three key tools to use:

Feature

A directory of the features that dependency-management-data supports across different datasources.

SQL database

The most important result of the use of dependency-management-data is the resulting SQLite database, which can then be used by any other tooling, or interacted with over the GraphQL API.

The full database schema is documented to make it easier to understand what the columns indicate, and there is a cookbook for understanding the data model to provide more insight into how to get started with the data.

It may be worth reading the design decisions.

Advisories

You can use dependency-management-data to get more insight into your dependencies using Advisories, which indicates where dependencies are in use that maybe they shouldn't be.

When generating advisories, a number of data sources are used to discover dependency insights:

Additionally, if you use Dependency Health insights, this will also create Advisories.

Feature Renovate Software Bill
of Materials
(SBOM)
AWS
Infrastructure
Advisories
End-of-Life lookups, via EndOfLife.date
Licensing + CVE Lookups, via deps.dev

End-of-Life checking

When performing End-of-Life checking for programming languages or popular packages that have a defined support window, via endoflife.date, the following lookups are currently supported:

Product Renovate Software Bill
of Materials
(SBOM)
Go
Alpine
NodeJS
Python
Redis
Ruby
Ruby on Rails
Gradle

Is there a product that EndOfLife.date supports that is missing? Drop a comment into the evergreen tracking issue or raise a fresh issue on the issue tracker to request it.

CVE + license checking

When performing Advisory checks, dependency-management-data uses deps.dev to look up any known CVEs for packages as well as information about the license, if it can be detected.

Ecosystem Renovate Software Bill
of Materials
(SBOM)
npm
Go
Maven
PyPI
NuGet
Cargo

Is there an ecosystem that deps.dev supports that is missing? Drop a comment into the evergreen tracking issue or raise a fresh issue on the issue tracker to request it.

Reports

Reports are available through the command-line application, dmd, as well as when running the dmd-web web frontend.

The following datasources are supported for each of the reports:

Report Renovate Software Bill
of Materials
(SBOM)
AWS
Infrastructure
advisories
dependenton
funding
golangCILint
infrastructure-advisories
libyear
licenses
mostPopularDockerImages
mostPopularPackageManagers
policy-violations

Generating missing package data

In some cases, you may be using a datasource that doesn't always provide all the data about your full dependency tree, and so want to pick up on any data that may not be present.

To do this, you can discover that missing data using deps.dev.

Note that there are cases where this may not directly line up with the version in use in your project, as noted in blog One set of requirements, zillions of SBOMs by the Open Source Insights team.

The following package ecosystems are supported:

Ecosystem Renovate Software Bill
of Materials
(SBOM)
npm
Go
Maven
PyPI
NuGet
Cargo

Policy violations via Open Policy Agent

As well as generating Advisories through external sources, as well as writing your own custom Advisories, you can use Open Policy Agent's Policy Language, Rego to write much more complex advisories, also called Policies.

Full details of supported data that can be used with policy management can be found in the Turning complex policies into custom Advisories using Open Policy Agent cookbook.

Feature Renovate Software Bill
of Materials
(SBOM)
Policy Violations

Dependency Health insights

It is possible to generate insights into your dependencies' health to gain additional information and data around your use of specific dependencies.

This consumes data from different sources to augment the understanding of dependencies in use, for instance giving an indication of whether they are (well) maintained, have been recently released, or may have supply chain hygiene issues.

Currently, this data is derived from:

This data is a best-efforts attempt to provide this insight, and may be stale at the time of fetching.

Known issues:

Feature Renovate Software Bill
of Materials
(SBOM)
Dependency Health

Libyear calculations

It is possible to generate insights into dependencies' libyear metrics to gain additional information and data around the age of your dependencies.

This uses the Libyear metric, which is defined as "how many years between the version we're currently using and the latest version released", and then totalled across all libraries used by the project.

NOTE: that this may not include all dependencies, so the number could be higher than shown.

For further reading on the Libyear metric, check out https://libyear.com/ and https://chaoss.community/kb/metric-libyears/ for more information.

Feature Renovate Software Bill
of Materials
(SBOM)
Libyear metrics

Known issues:

Ownership

It is possible to store ownership information for the given Repository Key, allowing you to ask questions like "which team should I get in touch with about this unmaintained dependency".

For more information, check out the cookbook for using repository ownership information and the following Case Studies:

Repository metadata

In addition to storing ownership information, it is also possible to to store additional metadata around a source repository, such as whether it's a monorepo, or how critical it is to the business.

For more information, check out the following Case Studies: