Cache¶
Dependency-Track caches results of expensive operations to reduce load on external services and speed up repeated lookups. Each cache has a TTL after which entries expire and the cache provider drops them.
Select the provider via dt.cache.provider.
Providers¶
Database¶
The database provider stores cache entries in the CACHE_ENTRY table on a
configured data source. This is the only built-in provider.
Warning
The provider does not manage its own schema. The configured data source
must point at the same schema as the default data source, where Dependency-Track's
schema migrations create the CACHE_ENTRY table.
Tip
Pointing the cache at a secondary data source that targets the same schema can still be useful as a way to isolate cache traffic from the main connection pool, so that cache activity doesn't compete with the API server for database connections.
A background maintenance worker periodically deletes expired rows and refreshes the per-cache size counters that feed the cache metrics.
Configuration:
dt.cache.provider.database.datasource.namedt.cache.provider.database.maintenance.initial-delay-msdt.cache.provider.database.maintenance.interval-ms
Entry TTLs¶
Each named cache has its own TTL property of the form
dt.cache."<name>".ttl-ms.
Vulnerability analyzer results¶
Cached results of remote vulnerability analyzer lookups, keyed by component identifier. Reduces API calls to upstream services across analyses of the same components.
Configuration:
Package metadata resolver responses¶
Cached HTTP responses from package registry metadata endpoints, used to detect outdated components.
Tip
Entries include the response body together with ETag and Last-Modified validators
so that refreshes after the freshness window revalidate with a conditional request and
receive a 304 when the upstream response hasn't changed. The TTL must exceed the 12 h
freshness window for conditional requests to fire.
Configuration:
dt.cache."package-metadata-resolver.cargo.responses".ttl-msdt.cache."package-metadata-resolver.composer.responses".ttl-msdt.cache."package-metadata-resolver.cpan.responses".ttl-msdt.cache."package-metadata-resolver.gem.responses".ttl-msdt.cache."package-metadata-resolver.github.responses".ttl-msdt.cache."package-metadata-resolver.gomodules.responses".ttl-msdt.cache."package-metadata-resolver.hackage.responses".ttl-msdt.cache."package-metadata-resolver.hex.responses".ttl-msdt.cache."package-metadata-resolver.maven.responses".ttl-msdt.cache."package-metadata-resolver.nixpkgs.responses".ttl-msdt.cache."package-metadata-resolver.npm.responses".ttl-msdt.cache."package-metadata-resolver.nuget.responses".ttl-msdt.cache."package-metadata-resolver.pypi.responses".ttl-ms