All Projects → opossum-tool → OpossumUI

opossum-tool / OpossumUI

Licence: Apache-2.0 License
A light-weight app to audit and inventory large codebases for open source license compliance.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to OpossumUI

cyclonedx-cli
CycloneDX CLI tool for SBOM analysis, merging, diffs and format conversions.
Stars: ✭ 154 (+381.25%)
Mutual labels:  spdx, software-bill-of-materials
scancode.io
ScanCode.io is a server to script and automate software composition analysis pipelines with ScanPipe pipelines. This project is sponsored by NLnet project https://nlnet.nl/project/vulnerabilitydatabase/ Google Summer of Code, nexB and others generous sponsors!
Stars: ✭ 66 (+106.25%)
Mutual labels:  spdx, software-composition-analysis
specification
Software Bill of Material (SBOM) standard designed for use in application security contexts and supply chain component analysis
Stars: ✭ 129 (+303.13%)
Mutual labels:  spdx, software-bill-of-materials
cyclonedx-maven-plugin
Creates CycloneDX Software Bill of Materials (SBOM) from Maven projects
Stars: ✭ 103 (+221.88%)
Mutual labels:  spdx, software-bill-of-materials
cyclonedx-php-composer
Create CycloneDX Software Bill of Materials (SBOM) from PHP Composer projects
Stars: ✭ 20 (-37.5%)
Mutual labels:  spdx, software-bill-of-materials
cyclonedx-dotnet
Creates CycloneDX Software Bill of Materials (SBOM) from .NET Projects
Stars: ✭ 110 (+243.75%)
Mutual labels:  spdx, software-bill-of-materials
cyclonedx-python
Creates CycloneDX Software Bill of Materials (SBOM) from Python projects and environments.
Stars: ✭ 78 (+143.75%)
Mutual labels:  spdx, software-bill-of-materials
awesome-open-source-licensing
Cool links, tools & papers related to Open Source Licensing
Stars: ✭ 17 (-46.87%)
Mutual labels:  license-scan, oss-compliance
license-ls
Get a list of licenses used by a projects dependencies
Stars: ✭ 17 (-46.87%)
Mutual labels:  spdx, license-scan
vulndb-data-mirror
A simple Java command-line utility to mirror the entire contents of VulnDB.
Stars: ✭ 36 (+12.5%)
Mutual labels:  software-composition-analysis
awesome-sbom
A curated list of SBOM (Software Bill Of Materials) related tools, frameworks, blogs, podcasts, and articles
Stars: ✭ 164 (+412.5%)
Mutual labels:  software-bill-of-materials
licensor
write licenses to stdout
Stars: ✭ 138 (+331.25%)
Mutual labels:  spdx
RHEL8-STIG
Ansible role for Red Hat 8 STIG Baseline
Stars: ✭ 73 (+128.13%)
Mutual labels:  remediation
node-healthcheck-operator
K8s Node Health Check Operator
Stars: ✭ 22 (-31.25%)
Mutual labels:  remediation
PowerSponse
PowerSponse is a PowerShell module focused on targeted containment and remediation during incident response.
Stars: ✭ 35 (+9.38%)
Mutual labels:  remediation
Sharing-creates-value
This repo realizes the idea that OSS compliance activities will be less expensive by applying OSS principles
Stars: ✭ 66 (+106.25%)
Mutual labels:  oss-compliance
cyclonedx-node-module
creates CycloneDX Software Bill of Materials (SBOM) from node-based projects
Stars: ✭ 104 (+225%)
Mutual labels:  software-bill-of-materials
tools-python
A Python library to parse, validate and create SPDX documents.
Stars: ✭ 65 (+103.13%)
Mutual labels:  spdx
lunasec
LunaSec - Dependency Security Scanner that automatically notifies you about vulnerabilities like Log4Shell or node-ipc in your Pull Requests and Builds. Protect yourself in 30 seconds with the LunaTrace GitHub App: https://github.com/marketplace/lunatrace-by-lunasec/
Stars: ✭ 1,261 (+3840.63%)
Mutual labels:  software-composition-analysis
spdx-license-ids
a list of SPDX license identifiers
Stars: ✭ 29 (-9.37%)
Mutual labels:  spdx

logo

OpossumUI: A compliance audit/review frontend.

OpossumUI is a tool to

  • discover open source software used in applications.
  • review licenses.
  • generate reports from an open source code scan.

Features

  • use of multiple scanners (open source and/or proprietary).
  • currently integrates with OSS Review Toolkit, FOSSLight and ScanCode.
  • unified interface for browsing scanner evidence.
  • simple navigation through the codebase’s file tree.
  • create attributions for individual files or groups.

License REUSE status GitHub release (latest by date) build workflow build workflow code style: prettier

screenshots_of_the_ui

Use Cases

  • A team performing audits for open source license compliance.
  • Producing legal docs such as inventory (BOMs) and license conflicts that need to be remediated.
  • OpossumUI can be used to visually inspect (QA) existing attributions, identify any false positives or incorrect attributions by manual selection and improve existing data.
  • To aid M&A due diligence activities. OpossumUI can be used by acquirers for blind audits of intellectual property, since only compliance-relevant metadata is exposed in the app without the need to ever share the source code.

Motivation

OpossumUI was developed with the goal to build a tool for managing and combining open source compliance data from different sources. While existing analysis tools for software compliance can provide good information, using multiple of such tools often leads to huge amounts of data due to an increased detection rate. Even though the results can be merged and noise can be filtered through automatic tools, final manual revisions are often necessary. So, OpossumUI was born: A light-weight app for review of compliance information for large codebases.

Integration in the ecosystem

To integrate well with different analysis tools, different converters are provided to generate input files in json format that can be opened with OpossumUI. After completing the review process with OpossumUI, the information can be outputted in different formats.

integration

User's Quick Start Guide

Input and output files

To work with OpossumUI, an input file can be opened to visualize and edit license compliance data of a project. When opening an input file for the first time, an accompanying output file with the naming convention "[INPUT NAME]_attributions.json" is created in the same directory as the input file.

Generating input files

Result files (yaml / json) from the OSS Review Toolkit can be converted into OpossumUI input files via a reporter. It uses metadata from the analyzer as well as scan results from the scanner. The implementation is in oss-review-toolkit/ort and the new reporter output is called Opossum.

For details of the file format, see Contributing

How to get & run OpossumUI

Get the latest release

Download the latest release for your OS from Github.

Running the app

Linux

Run the executable OpossumUI-for-linux.AppImage

macOS

Run OpossumUI in OpossumUI-for-mac.zip.

Windows

Run OpossumUI-for-win.exe to install the OpossumUI. Then open OpossumUI from the start menu.

Working with OpossumUI

For an in-depth explanation, read the Users's Guide.

File formats

JSON schemas for both the input and output files are available. Example files can be found under example files.

Input file

It has to be generated through external tools and provided to the app. Contains 5 main fields:

  • metadata: contains some project-level information,
  • resources: defines the file tree,
  • externalAttributions: contains all attributions which are provided as signals (preselected signals will be automatically used by the app to create attributions in the output file),
  • resourcesToAttributions: links attributions to file paths,
  • frequentlicenses: A list of licenses that can be selected in a dropdown when the user enters a license name.

There are additional fields which are optional:

  • attributionBreakpoints: a list of folder paths where attribution inference stops, e.g. node_modules."
  • filesWithChildren: a list of folders that are treated as files. This can be used to attach another file tree to files like package.json, usually also setting an attribution breakpoint.
  • baseUrlsForSources: a map from paths to the respective base url. The base url should contain a {path} placeholder. E.g.
      "baseUrlsForSources": {
        "/": "https://github.com/opossum-tool/opossumUI/blob/main/{path}"
      }
    
  • externalAttributionSources: used to store a mapping of short names for attribution sources to full names and priorities used for sorting in the PackagePanel. Entries with higher numbers have a higher priority. E.g.:
      "externalAttributionSources": {
        SC: {
          name: "ScanCode",
          priority: 1
        }
      }
    

Output file

Contains 4 main fields:

  • metadata: contains some project-level information,
  • manualAttributions: contains all attributions created by the user or preselected,
  • resourcesToAttributions: links attributions to file paths,
  • resolvedExternalAttributions: used to store which signal attributions have been resolved, as they are hidden in the UI.

Exporting data

In addition to the default output file, OpossumUI provides the following export options.

Exporting SPDX documents:

An SPDX document can be exported in the json and the yaml format through the ExportSPDX (yaml) and SPDX (json) option in the File menu.

Exporting BOM-like CSV files:

These can be exported through the ExportCompact / Detailed component list option in the File menu. Both component list files contain a list of all attributions that are present in the project, including package name, version, copyright, license name and URL. In addition, the detailed component list is more comprehensive and includes the PURL and its subcomponents, as well as the license texts.

Exporting follow-up document:

This can be exported through the ExportFollow-Up option in the File menu. Similar to the component list, it contains attributions with licenses flagged for legal review through the Follow-Up checkbox in the UI.

Limitations

SPDX License Expressions are only partially supported at the moment. Currently, a license expression can only be entered as license name of a package. The full license text of the different licenses (e.g. GPL-2.0-only OR BSD-2-Clause) that apply should also be entered in the license text field.

Developer's guide

Contributions to the project are welcome. See Contributing.

Licensing

OpossumUI is licensed under Apache-2.0, documentation is licensed under CC0-1.0. For Contributions, we use the Developer Certificate of Origin (DCO) process via sign-offs in every commit, to help ensure licensing criteria are met.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].