Open-source licenses, sorted before legal asks.
Every license in your dependencies classified, and your legal policy applied to each.
checkout-apiLicense complianceDemo project
- Blockeditext7-core 8.0.5pom.xml
<name>GNU Affero General Public License v3</name>Strong copyleft: blocked by default, transitive included.
Your policy, applied to every package.
Four families
- MIT
- LGPL-2.1
- GPL-3.0
- AGPL-3.0
SPDX expressions
- MIT OR GPL-3.0
- Apache-2.0 AND BSD-3-Clause
Your overrides
- LGPL-2.1 → permissive
Ignored packages
- @acme/internal-*
- test/fixtures/**
Your policy decides what is flagged.
Every package flagged
- Alert: itext7-core 8.0.5
- Alert: jszip 3.10.1
- Alert: hibernate-core 6.6.1.Final
- Alert: @acme/billing-utils 1.2.0
Your policy applied
- Blocked: itext7-core 8.0.5pom.xml
- Allowed: jszip 3.10.1OR keeps the least restrictive option.
- Allowed: hibernate-core 6.6.1.FinalYour org override: LGPL-2.1 counts as permissive.
- Unknown: @acme/billing-utils 1.2.0No license declared: assign the SPDX identifier by hand.
No extra job to run.
Read from the SCA scan's manifests, next to your vulnerability findings.
- SCA scanManifests read on every push.Read
- SPDXEach license sorted into four families.Classified
- Your policyYour overrides and blocks applied.Blocked
- ReportUnknown licenses first, filtered per team.Ready
Start with one repository.
Connect GitHub, GitLab, Bitbucket or Azure DevOps, pick a repository, and the first scan starts.
In detail
Every license in the tree, classified.
License extraction reuses the manifest parse of the SCA scan, and the results sit next to the vulnerability findings.
Four families
SPDX expressions
Your overrides
Custom licenses
Ignored packages
Every ecosystem
Everything it checks
Four families, your rules on top.
Every SPDX identifier maps to a family your legal team owns. Expressions are resolved, overrides are yours.
- Allowed
Permissive
- Review
Weak copyleft
- Blocked
Strong copyleft
- Ask
Unknown
SPDX expressions, resolved
Your override
Six features, one legal-ready report.
SPDX extraction, expression-aware risk, org overrides and per-package ignore.
Automatic SPDX extraction on every SCA scan
Four risk categories, 100+ licenses pre-classified
SPDX expression parser. OR, AND, WITH
Organisation-level overrides
Manual assignment for Unknown licenses
Ignore internal or test-only packages
Risk you can defend in front of legal.
Aligned with your legal posture
No extra job to run
Filterable for every audience
From flag to policy
GPL-3.0 in the tree.
Judged by policy.
Cleared or replaced.
What teams ask before turning it on.
How is the risk level for each license decided?
Every SPDX identifier maps to one of four categories. Permissive, Weak Copyleft, Strong Copyleft or Unknown. Based on a built-in classification covering 100+ licenses. Organisations can override any classification to match their legal policy; overrides apply immediately to every project in the org.
What happens when a package has no detected license?
The package lands in the Unknown bucket. From the license summary you can open the package and assign the correct SPDX identifier manually; the package then re-categorises and feeds the right counters in the summary. Unknown licenses are surfaced first in the dashboard so they don't quietly accumulate.
Does license detection slow the SCA scan?
No. License extraction reuses the manifest parse step the SCA scan already performs. There's no separate job, no second pipeline, no incremental scan window. License data appears in the same dashboard alongside vulnerability findings.
Can we add custom proprietary licenses?
Yes. The organisation-level configuration accepts custom entries with a chosen classification (Permissive, Weak Copyleft, Strong Copyleft or Unknown). Useful for in-house licenses or vendor agreements that aren't part of SPDX but still need to be tracked alongside open-source licenses.
How are complex SPDX expressions evaluated?
OR picks the least restrictive option (`MIT OR GPL-3.0-only` → effective risk None). AND picks the most restrictive option (`MIT AND GPL-3.0-only` → effective risk High). WITH evaluates the base license with the exception applied (`GPL-2.0-only WITH Classpath-exception-2.0` → GPL-2.0 with Classpath exception). The dashboard shows both the raw expression and the resolved category.