DependencyTrack / DependencyTrack/dependency-track
Support Commercial Licences
- 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
Assessment
This issue has not been assessed yet.