DependencyTrack / DependencyTrack/dependency-track

Support Commercial Licences

Open
#2,843 0 comments 3 reactions 0 assignees View on GitHub
cdx-1.5 enhancement
Dominant language
Java
Stars
4.2k
Forks
811
Avg merge
8h 39m
Merged PRs (30d)
237

Description

### Current Behavior

Dependency-Track supports OSS licences but does not support Commercial licences, which is new functionality introduced in CycloneDX v1.5

### Proposed Behavior

CycloneDX can also help organizations manage their commercial software licenses by providing a clear understanding of
what licenses are in use and which ones require renewal or additional purchases, which may impact the operational aspects
of applications or systems. By leveraging CycloneDX for commercial license compliance, organizations can reduce the risks
associated with license violations, enhance their license management practices, and align their SBOM practice with
Software Asset Management (SAM) and IT Asset Management (ITAM) systems for enterprise visibility.

The following example illustrates a commercial license for a given component. Note that, to be useful, Depedency-Track would need to support elements such as "expiration" and offer appropriate policies to aide management. For instance, a policy should be able to alert on a expiring licence (say) 45 days before it expires.

```json
"licenses": [
{
"license": {
"name": "Acme Commercial License",
"licensing": {
"licensor": {
"organization": {
"name": "Acme Inc",
}
},
"licensee": {
"organization": {
"name": "Example Co."
}
},
"purchaser": {
"individual": {
"name": "Samantha Wright",
"email": "samantha.wright@gmail.com",
"phone": "800-555-1212"
}
},
"purchaseOrder": "PO-12345",
"licenseTypes": [ "appliance" ],
"lastRenewal": "2022-04-13T20:20:39+00:00",
"expiration": "2023-04-13T20:20:39+00:00"
}
}
}
]
```

All commercial license fields are optional. The licensor, licensee, and purchaser may be an organization or individual.
Multiple license types may be specified and include:

| **License Type** | **Description** |
|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| academic | A license that grants use of software solely for the purpose of education or research. |
| appliance | A license covering use of software embedded in a specific piece of hardware. |
| client-access | A Client Access License (CAL) allows client computers to access services provided by server software. |
| concurrent-user | A Concurrent User license (aka floating license) limits the number of licenses for a software application and licenses are shared among a larger number of users. |
| core-points | A license where the core of a computer's processor is assigned a specific number of points. |
| custom-metric | A license for which consumption is measured by non-standard metrics. |
| device | A license that covers a defined number of installations on computers and other types of devices. |
| evaluation | A license that grants permission to install and use software for trial purposes. |
| named-user | A license that grants access to the software to one or more pre-defined users. |
| node-locked | A license that grants access to the software on one or more pre-defined computers or devices. |
| oem | An Original Equipment Manufacturer license that is delivered with hardware, cannot be transferred to other hardware, and is valid for the life of the hardware. |
| perpetual | A license where the software is sold on a one-time basis and the licensee can use a copy of the software indefinitely. |
| processor-points | A license where each installation consumes points per processor. |
| subscription | A license where the licensee pays a fee to use the software or service. |
| user | A license that grants access to the software or service by a specified number of users. |
| other | Another license type. |

### Checklist

- [X] I have read and understand the [contributing guidelines](https://github.com/DependencyTrack/dependency-track/blob/master/CONTRIBUTING.md#filing-issues)
- [X] I have checked the [existing issues](https://github.com/DependencyTrack/dependency-track/issues) for whether this enhancement was already requested

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.