Safeguard
Compliance•

A 30, 60, 90 day open source license cleanup before you raise

A phased plan to tidy open source licenses before diligence: inventory, triage, policy, evidence. The timings are a suggestion, not a standard.

Safeguard Security Team
3 min read

Start with an inventory in the first 30 days, triage findings and write the policy by day 60, and finish with automation and an evidence folder by day 90. These timings are a suggested pace for a small team, not a standard. This is general information, not legal advice.

Days 1 to 30: see what you have

  1. List every repository and every shipped artifact: web app, mobile app, containers, libraries.
  2. Generate an SBOM per artifact, direct and transitive. The NTIA minimum elements give a baseline of seven fields, and you add license as an extra.
  3. Record one license per component using SPDX identifiers or the NOASSERTION value where you could not determine it.
  4. Mark each component as shipped, hosted only or build only.
  5. Note vendored code, copied snippets and forks, which scanners often miss.

Output: a dated inventory that you can hand to someone.

Days 31 to 60: triage and decide

  1. Sort findings into allow, review and deny. The three tier policy post has a template.
  2. Chase unknowns. A blank license field means unknown, not free. See blank license field handling.
  3. For each deny finding, choose: replace, remove, isolate, or request an exception with counsel.
  4. Write the one page policy. See what goes in an open source policy.
  5. Name the approver and open the exception log.

Output: a policy, a decision for each risky component, an exception log.

Days 61 to 90: make it stick

  1. Add a license check on pull requests so new deny licenses cannot enter silently.
  2. Generate the notices file in CI. See building a notices file from your SBOM.
  3. Build the evidence folder. See license evidence index.
  4. Rehearse the answers. Have someone play the investor.
  5. Date the snapshot so it reflects a known point in time.

Phase summary

PhaseGoalArtifact
1 to 30Know what is in the productSBOMs and a license inventory
31 to 60Decide what is allowedPolicy and exception log
61 to 90Keep it trueCI checks, notices file, evidence folder

What to skip

Do not try to remove every copyleft component in a month. Many are fine for your use, such as internal tools. The goal is decisions you can explain. Equally, do not rewrite history in git to hide anything. If a problem is found, a documented fix is better than a gap.

Try it yourself

Open the continuous monitoring demo to see how a recurring check keeps findings current after the first cleanup.

Click through it at your own pace, or open it full screen.

Safeguard's SBOM and dependency scanning, plus policies and gates, can cover the inventory and the pull request check phases. Decisions about what each license means stay with you and your counsel.

Quick check

Is 90 days a rule?

No. It is a pacing suggestion. A smaller codebase may take days, a larger one longer.

What if we find a problem on day 20?

Log it, decide on the fix with counsel, and keep the record. Diligence reviewers generally prefer a known and handled issue over a hidden one.

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.