Skip to content

Latest commit

 

History

History
362 lines (251 loc) · 21.9 KB

USER_GUIDE.md

File metadata and controls

362 lines (251 loc) · 21.9 KB

User's Guide

Table of contents

  1. How to get & run OpossumUI
    1. Get the latest release
    2. Running the app
  2. Working with OpossumUI
    1. Opossum file format
    2. Json files
    3. Opening a file
    4. Search
    5. Locate signals
    6. Project Metadata
    7. Project Statistics
    8. Exporting Formats
    9. Attributions
    10. Top Bar
    11. Audit View
    12. Attribution View
    13. Report View
    14. Preferred Attributions

How to get & run OpossumUI

Get the latest release

Download the latest release for your OS from Github.

To check if your installation is up to date, open the Help menu and select Check for updates.

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

Opossum file format

Files with a .opossum extension are zip-archives which contain an input.json (must be provided) together with an output.json (optional). An output file will be automatically created and added to the archive after opening the archive if there is no such file yet.

Json files

Two .json files are used by the app to store data:

  • an input file, that must be provided,
  • an output file, which is created by the app when saving for the first time if not already present.

The output file must be in the same folder as the input file and called [NAME_OF_THE_FIRST_FILE]_attributions.json to be recognized by the app.

Opening a File

To open the input file in the app, click the Open File button on the left of the top bar (or on the entry in the File menu with the same name).

integration

If you try to open a .json file, a popup will be shown which asks whether you would like to create a .opossum file and proceed (recommended) or continue working with the old format (two separate .json files).

Search

To search for a path, press CTRL + F or open the Edit menu and select Search for Files and Folders.

integration

Locate signals

To locate signals, press CTRL + L or open the Edit menu and select Locate Signals. This will open the Locate Signals popup. From here, you can choose which signals you want to locate in the resource tree. You can search for signals by string, criticality or choose one or multiple existing license name(s). Once selected, the locations of matching signals will be highlighted in the resource tree.

Note: When searching for matching resources, the input of the search field, the selected criticality and the selected license names are linked with and, while different license names in the license search field are linked with or. That is, when searching for a license name using the search field (and the checkbox) and additionally selecting another license name, only the resources matching the license name and the term in the search field will be highlighted while when searching for multiple license names, all resources matching one of these licenses will be highlighted.

integration

You can also locate signals by license from the Project Statistics popup, by clicking on the locator icon next to each license.

integration

Project Metadata

To view project metadata, open the File menu and select Project Metadata.

Project Statistics

To view project statistics, open the File menu and select Project Statistics. This opens a popup that shows various tables and pie charts summarizing the state of the project.

Exporting Formats

It is possible to directly export data to files. The following formats are available:

  • Follow-Up: Just the items marked as follow-up are present in this file as csv file.
  • Compact component list: All attributions not marked as follow-up or 1st Party are exported to a csv file. Attributions marked as "exclude from notice" are not exported.
  • Detailed component list: All attributions not marked as follow-up or 1st Party are exported to a csv file.
  • SPDX JSON: All attributions are listed as JSON file.
  • SPDX YAML: All attributions are listed as YAML file.

To generate a document, open the File menu and select Export.

integration

Attributions

The basic building block of license/attribution information in the opossumUI is the Attribution. An Attribution isn't only a software package with name & version (or purl) and copyright, distributed under one or more licenses. It can in principle be any file which has a copyright or is distributed under a license. The purpose of the opossumUI is to link resources to the corresponding attributions, with an emphasis on correct licensing and copyright information. In the opossumUI, a distinction between signals and attributions is made:

  • attributions are attribution information that are created in the current run of the opossumUI. They are stored in the output file, together with the resources they have been linked to,
  • signals are attribution information that have been linked to a resource before the current opossumUI run. They can come from automatic tools or previous run of the opossumUI. They have a source and can be used as starting point for assigning attributions.

Top Bar

In the Top Bar, the following elements are present. From left to right:

  • the Open File button (read Open File section to learn more about opening a file),
  • the Progress Bar (shown only if a file is currently opened),
  • the Progress Bar Toggle,
  • the View Switch,
  • the app version.

The Progress Bar indicates how many files have manually received an attribution (dark green), how many have an automatically pre-selected attribution (lighter green with gradient), and how many files have a signal, but have not yet received an attribution (orange), with respect to the total number of files. Hovering on the bar shows a tooltip containing all 4 numbers. Clicking on the bar navigates to a file that has a signal, but no attribution.

integration

Clicking the Progress Bar Toggle replaces the Progress Bar by the Critical Signals Progress Bar. The Critical Signals Progress Bar indicates how many files have a highly critical signal but no attribution (red), a medium critical signal but no attribution (orange) with respect to the total number of files not having an attribution. Hovering on the bar shows a tooltip containing all 4 numbers. Clicking on the bar navigates to a file that has a critical signal, but no attribution.

The View Switch allows to change between the Audit View, the Attribution View, and the Report View (the views are described in more detail in the respective sections).

The app version is crucial to allow the development team to reproduce bugs: please always include it in screenshots/videos/emails documenting a bug.

Audit View

integration

Resource is the generic name used throughout the app to indicate a file or a folder (as in many cases they are treated the same). The Audit View focuses on the navigation through the resources to add/edit/remove attributions while seeing which signals have been found by the remote tools. The page has two main components:

  • a Resource Tree on the left,
  • a Selected Resource Panel on the center right (shown only if a resource has been selected in the Resource Tree).

Folders and inferred attributions

In the case that a folder receives an attribution this attribution is also inferred to all its children that do not have their own attribution. Therefore, adding an attribution to a folder affects its children if these are not attributed themselves. The inference stops once a folder or a file is hit that has a differing attribution.

Resource Tree

In the Resource Tree resources can be selected. Icons help to find information in the folder structure:

  • a file icon integration indicates that the resource is a file,
  • a folder icon integration indicates that the resource is a folder,
  • a icon consisting of four squares integration indicates that the resource is a breakpoint (breakpoints are special folders that are included to visually collect a set of dependencies. These folders cannot have any signal or attribution. Furthermore, no attribution is inferred beyond such a breakpoint),
  • a exclamation mark integration indicates the presence of signals attached to the resource.

integration

The coloring scheme reads as follows:

  • red indicates the presence of signals but no attribution for the resource itself,
  • green indicates the presence of attribution for the resource itself,
  • light red indicates the presence of signals but no attribution in children,
  • light green indicates the presence of attribution in children,
  • grey indicates the absence of both, signals and attribution, in children,
  • blue indicates the presence of signals in children but no attribution of the resource itself.

Selected Resource Panel

The Selected Resource Panel shows the path of the selected resource at the top. If the input file contains information about the location of the file (baseUrlsForSources) an icon to externally open the file is shown.

Below the path, the element is divided into two columns. In the Attribution Selection Column, in the center of the screen, attributions and signals related to the selected resource are listed. In the Attribution Details Column on the right, additional information is shown for the selected attribution/signal.

integration

Attribution Selection Column

In the Attribution Selection Column the following sub-panels may be present:

  • Attribution Sub-Panel (always shown),
  • Signals Sub-Panel (accessible via the LOCAL tab),
  • Attributions in Folder Content Sub-Panel (accessible via the LOCAL tab),
  • Signals in Folder Content Sub-Panel (accessible via the LOCAL tab),
  • Add to Attribution Sub-Panel (accessible via the GLOBAL tab).

The Attributions Sub-Panel shows a list of all attributions that are assigned to the selected resource. Pre-selected attributions are signaled by an P icon. They can be confirmed, therefore being considered attributions in all views and in the progress bar. However, that is not a requirement. Pre-selected and attributions are both written in the output file. Clicking on one of the attributions, shows the details of that attribution in the Attribution Details Column. Clicking on Add new attribution shows a blank Attribution Details Column that allows for adding a new attribution to the list of attributions, upon saving. If the shown attributions are inferred from a containing folder, they cannot be modified. Instead, the OVERRIDE PARENT button can be clicked for creating new attributions for the selected resource. (Note that attributions are not saved separately, if they are identical to the attributions of a containing folder and can thus be inferred.)

The Signals Sub-Panel, Attributions in Folder Content Sub-Panel and Signals in Folder Content Sub-Panel show lists of the signals of the selected resource and the attributions and signals of the resources contained within the selected folder. Clicking on the one of the listed items, shows the details of the respective attribution/signal in the Attribution Details Column. By clicking the + icon of an item, the respective attribution/signal can be added to the attributions of the selected resource. In the Signals Sub-Panel signals that were used to create the pre-selected attributions are shown with a P icon, even if the relative attributions have been deleted. The cards in the ... in folder content sub-panels also show the number of resources in the folder that are linked to the shown attribution.

Similar signals that deviate only by comment, attributionConfidence, originIds, or the preSelected flag are merged into a single signal with multiple comments according to the comments of the individual merged signals. When adding a merged signal to the attributions of the current resource, the comment of the resulting attribution is empty. Relevant parts can be copied from the merged signal.

The Add to Attribution Sub-Panel allows to add an existing attribution to the attributions of the selected resource. As in the other panels, the details of the attributions can be shown by clicking on the respective list item, while the attribution can be added by clicking on the corresponding + icon.

Attribution Details Column

The Attribution Details Column is used in the Audit View and in the Attribution View (see next section) to show details of the selected attribution and to edit and save the information of the selected attribution. Note that inferred attribution information and signals cannot be edited.

IMPORTANT: Some fields in the column have special meanings/behaviors:

  • PURL: If provided, package name and version are extracted from it, and the corresponding fields are not editable. A basic validity check is done on the purl: if the purl text is red it means it is invalid and saving is prevented.
  • License Text: It will appear in the attributions document. It will be automatically filled in for licenses suggested in the license name dropdown.
  • Exclude From Notice Checkbox: If checked, the relative attribution will not be shown in the notice document. In the case of first party code, the respective flag should be preferred. Exclude From Notice Checkbox should be used only if:
    • the content of the attribution does not need attribution or
    • the attribution isn't an actual attribution or
    • it was globally decided that this attribution does not need attribution (e.g. it is proprietary but bought for the whole company).
  • Comment / Comments: In the case of an ordinary signal or an attribution, the comment textbox is displaying a single comment. In the case of a merged signal, the comment textbox is displaying multiple comments according to the comments of the individual merged signals.
  • Needs Review Checkbox: This checkbox can be used to signal to another OpossumUI user that an attribution needs further review. The state of the checkbox is persisted when saving the attribution, so it can e.g. be used for a typical QA workflow.

The Attribution Details Column, if editable, shows the following buttons:

  • SAVE, saves the edited information for the selected resource only, removing the pre-selected attribute if present.
  • SAVE GLOBALLY, (shown only if the attribution of the selected resource is also linked to other resources) saves the changes for all the linked resources. The same can also be done by pressing Ctrl + S.
  • CONFIRM, removes the pre-selected attribute from the attribution for the selected resource only.
  • CONFIRM GLOBALLY, (shown only if the attribution of the selected resource is also linked to other resources) removes the pre-selected attribute from the attribution for all linked resources.
  • ..., opens a menu with the following buttons:
    • Revert, discards the changes,
    • Delete, deletes the attribution of the selected resource only.
    • Delete Globally, (shown only if the attribution of the selected resource is also linked to other resources) deletes the attribution for all the linked resources.

The SAVE / SAVE GLOBALLY and Revert buttons are disabled if no change has been made.

When all fields except for the confidence field are empty, pressing the SAVE or the SAVE GLOBALLY button deletes the respective attribution.

The Attribution Details Column, when a signal is selected, shows the HIDE button. It can be used to hide the given signal in the App for the current input/output files, and it will not have any consequence in the DB. When clicking HIDE for a merged signal, all individual signals that make up the merged signal are hidden.

Attribution View

integration

In the Attribution View all attributions are listed and can be viewed and edited. The page is in structure similar to the Audit View and has two main components:

  • an Attribution List on the left,
  • a Selected Attribution Panel on the center right (shown only if an attribution has been selected from the list).

Attribution List

All existing attributions are listed and can be selected. Pre-selected attributions are signaled by an P icon. They can be confirmed, which converts them into attributions in all views and in the progress bar. However, that is not a requirement. Pre-selected and manual attributions are both written in the output file. On top there is an icon for opening the filter section. By clicking on it, a dropdown will be shown with filters that allows for filtering for attributions marked for follow-up, first party, third party, and other aspects. Additionally, the attribution view has a multi-select mode.

Selected Attribution Panel

The Selected Attribution Panel looks much like the Selected Resource Panel. The main differences are:

  • Only information for the selected attribution are shown, in a fashion almost identical to the Selected Resource Panel. They are always editable.
  • The SAVE and Delete buttons allow saving/deleting the selected attribution. Note that the changes affect multiple resources if the selected attribution is linked to multiple resources.
  • A Resource List shows the path of all resources linked to the selected attribution. Clicking on a path shows the selected resource in the Audit View.

Report View

integration

In the Report View all attributions are shown in a table to provide an overview. On top there is a dropdown list with filters that allows for filtering for attributions marked for follow-up, first party and not first party. The last two are mutually exclusive.

Clicking on the edit buttons in the name columns, navigates to the respective attribution in the attribution view.

Preferred Attributions

In the audit view, an attributions can be marked as preferred, to indicate that it is preferred over the displayed signals. This feature does not have any immediate effect on the signals displayed in OpossumUI; instead, it is intended to give additional information to tools that consume .opossum files. A preferred attribution will store origin IDs of signals visible to the user when it was marked as preferred.

Only signals with a source marked as isRelevantForPreference can be preferred over. If no signal source has this flag set, then the feature is disabled.

To mark an attribution as preferred, choose an attribution in the audit view, and open the auditing options menu. You will see an option to mark the attribution as preferred. When an attribution is marked as preferred, preferred = true is written to the .opossum file, and the origin IDs of all visible signals relevant for preference are written in the field preferredOverOriginIds. Preferred attributions are displayed with a star icon.

Note that you are only able to mark an attribution as preferred (or unmark if it was preferred beforehand) if you are in "QA Mode". To enable this mode click the item "QA Mode" in the View submenu.

disabled_qa_mode

If "QA Mode" is enabled the icon will change as in the screenshot below.

enabled_qa_mode

Comparing an Attribution to its original Signal

If an attribution originates from a signal, a Compare to Original button will be displayed in the row of buttons below the details of the currently selected attribution. Clicking this button opens a popup, where the package coordinates and legal information of both the current attribution and its original signal are displayed side by side. Fields that have changed are highlighted by colored outlines.

You can revert individual fields by pressing the arrow button inside the field. The action can be undone using the same button, which will point in the opposite direction after a revert. Additionally, all changes can be reverted at once by pressing the Revert All button of the popup. Changes are applied to the attribution once the Apply Changes button is pressed, which also closes the popup. To save the changes, you can, for example, use the standard Save button.