Safeguard
Security Guides•

What lifecycle statuses should a dependency inventory use?

Five lifecycle statuses for an inventory: supported, security only, extended, end of life and unknown. Definitions, examples and who decides each one.

Safeguard Security Team
4 min read

Use five lifecycle statuses in a dependency inventory: supported, security only, extended, end of life and unknown. They map to what a project actually promises, they sort cleanly in a report, and they stop the word "supported" from hiding the difference between a fix and a courtesy.

Why one flag is not enough

Many inventories carry a yes or no column called "supported". That loses the detail reviewers care about. Look at how real projects describe themselves:

  • Angular's release page describes an active phase of 12 months with regular updates, followed by a long-term phase of 12 months where only critical fixes and security patches ship.
  • Rails' maintenance page separates bug fixes from security issues, with security fixes continuing after bug fixes stop.
  • PHP's page defines active support, security fixes only, and end of life as three separate states.
  • Oracle's Java roadmap separates Premier, Extended and Sustaining Support.

Four projects, four vocabularies, one common need: a status you can sort and filter. A small shared set of labels solves that.

The five statuses

StatusDefinitionTypical example
SupportedThe maintainer ships bug and security fixesCurrent Angular active release
Security onlyOnly security or critical fixes shipA PHP branch past active support
ExtendedFixes continue under a separate arrangement, often paid or limitedA runtime under a vendor extended plan
End of lifeThe maintainer states no more fixesA framework version removed from the supported table
UnknownYou could not find a stated policy or dateA small library with no policy page

Add a sixth field alongside them: the end date for the current status, if one is stated.

Rules that keep the labels honest

  1. Status comes from a source you can cite. Store the page and the check date next to the label.
  2. Extended needs evidence. Mark a row Extended only if you can show the contract or enrollment. A web page that offers extended support is not coverage.
  3. Unknown is allowed, and it expires. Give every Unknown a follow-up date. Unknown is a task, not a resting state.
  4. Never mark End of life as Supported because a fix exists in git. The Rails maintenance page says that for unsupported series, backports may be published to git but no new versions are released. A fix you must build yourself is not the same as a supported release.
  5. Record the phase and the end date separately. The status says what is true today. The date says when it changes.

Using the statuses to drive work

Sort by status and exposure. End of life on an internet-facing service goes first. Security only with an end date in 90 days is next. Extended gets a review date before the arrangement ends. Unknown gets a research task. For ordering inside a status, see which end-of-life component to fix first.

Each status also suggests a default decision from upgrade, extend, isolate or retire. Supported needs nothing. End of life needs one of the four.

What not to do

Do not invent a status for every nuance. Ten statuses become impossible to apply consistently. Keep five, and put nuance in a free text note. Do not mix status with risk: an End of life library in a build tool that never ships is a different risk from the same library in a production service. Status is a fact, risk is a judgment.

Try it yourself

Click through it at your own pace, or open it full screen. Scan the component list and imagine a status column with these five values on the right.

Where Safeguard fits

Safeguard's SBOM and dependency scanning produces the component list, and its policies and gates can express which statuses your team will accept in a build. Try the free scan at gold.safeguard.sh/scan.

Quick check

Is security only the same as end of life?

No. Security only still ships fixes. End of life does not.

When should I use Unknown?

When you cannot find a stated policy. Set a follow-up date so it does not stay Unknown.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.